diff options
-rw-r--r-- | components/style/legacy.rs | 32 | ||||
-rw-r--r-- | resources/servo.css | 2 | ||||
-rw-r--r-- | tests/ref/basic.list | 1 | ||||
-rw-r--r-- | tests/ref/input_button_size_a.html | 9 | ||||
-rw-r--r-- | tests/ref/input_button_size_ref.html | 9 |
5 files changed, 35 insertions, 18 deletions
diff --git a/components/style/legacy.rs b/components/style/legacy.rs index 7ddee2f8a0d..2ce112a2f3a 100644 --- a/components/style/legacy.rs +++ b/components/style/legacy.rs @@ -167,25 +167,23 @@ impl PresentationalHintSynthesis for Stylist { shareable); } name if *name == atom!("input") => { - match element.get_integer_attribute(IntegerAttribute::Size) { - Some(value) if value != 0 => { - // Per HTML 4.01 § 17.4, this value is in characters if `type` is `text` or - // `password` and in pixels otherwise. - // - // FIXME(pcwalton): More use of atoms, please! - let value = match element.get_attr(&ns!(""), &atom!("type")) { - Some("text") | Some("password") => { - specified::Length::ServoCharacterWidth(specified::CharacterWidth(value)) + // FIXME(pcwalton): More use of atoms, please! + match element.get_attr(&ns!(""), &atom!("type")) { + Some("text") | Some("password") => { + match element.get_integer_attribute(IntegerAttribute::Size) { + Some(value) if value != 0 => { + let value = specified::Length::ServoCharacterWidth( + specified::CharacterWidth(value)); + matching_rules_list.vec_push(from_declaration( + PropertyDeclaration::Width(SpecifiedValue( + specified::LengthOrPercentageOrAuto::Length(value))))); + *shareable = false } - _ => specified::Length::Absolute(Au::from_px(value as isize)), - }; - matching_rules_list.vec_push(from_declaration( - PropertyDeclaration::Width(SpecifiedValue( - specified::LengthOrPercentageOrAuto::Length(value))))); - *shareable = false + Some(_) | None => {} + } } - Some(_) | None => {} - } + _ => {} + }; } name if *name == atom!("textarea") => { match element.get_integer_attribute(IntegerAttribute::Cols) { diff --git a/resources/servo.css b/resources/servo.css index e62ca9837bb..6008dafc2db 100644 --- a/resources/servo.css +++ b/resources/servo.css @@ -4,7 +4,7 @@ textarea { background: white; min-height: 1.0em; padding: 0em; pa button, input[type="button"], input[type="submit"], -input[type="reset"] { background: lightgrey; border-top: solid 1px #EEEEEE; border-left: solid 1px #CCCCCC; border-right: solid 1px #999999; border-bottom: solid 1px #999999; text-align: center; vertical-align: middle; color: black; width: 100%; } +input[type="reset"] { background: lightgrey; border-top: solid 1px #EEEEEE; border-left: solid 1px #CCCCCC; border-right: solid 1px #999999; border-bottom: solid 1px #999999; text-align: center; vertical-align: middle; color: black; } input[type="hidden"] { display: none !important } input[type="checkbox"], input[type="radio"] { font-family: monospace !important; border: none !important; background: transparent; } diff --git a/tests/ref/basic.list b/tests/ref/basic.list index 8d8a6b21add..1e9a887fcb1 100644 --- a/tests/ref/basic.list +++ b/tests/ref/basic.list @@ -179,6 +179,7 @@ flaky_cpu == append_style_a.html append_style_b.html # inline_text_align_a.html inline_text_align_b.html == inline_whitespace_a.html inline_whitespace_ref.html == inline_whitespace_b.html inline_whitespace_ref.html +== input_button_size_a.html input_button_size_ref.html != input_height_a.html input_height_ref.html == inset.html inset_ref.html != inset_blackborder.html blackborder_ref.html diff --git a/tests/ref/input_button_size_a.html b/tests/ref/input_button_size_a.html new file mode 100644 index 00000000000..4640d1f199b --- /dev/null +++ b/tests/ref/input_button_size_a.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<html> +<head> +</head> +<body> +<input type=submit size=100 value=sumbit> +</body> +</html> + diff --git a/tests/ref/input_button_size_ref.html b/tests/ref/input_button_size_ref.html new file mode 100644 index 00000000000..672f4d7e67f --- /dev/null +++ b/tests/ref/input_button_size_ref.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<html> +<head> +</head> +<body> +<input type=submit value=sumbit> +</body> +</html> + |