mirror of
https://github.com/servo/servo.git
synced 2025-07-30 18:50:36 +01:00
Auto merge of #7898 - frewsxcv:htmlfontelement-size-attribute-setter, r=nox
Use the correct IDL setter for <font>.size Previously, the IDL attribute would incorrectly set the `size` attribute for `<font>` elements as `AttrValue::String`. Now it correctly sets it as `AttrValue::Length`. Also included is a regression test. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7898) <!-- Reviewable:end -->
This commit is contained in:
commit
60a77defe5
2 changed files with 15 additions and 2 deletions
|
@ -70,7 +70,11 @@ impl HTMLFontElementMethods for HTMLFontElement {
|
||||||
make_getter!(Size);
|
make_getter!(Size);
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-font-size
|
// https://html.spec.whatwg.org/multipage/#dom-font-size
|
||||||
make_setter!(SetSize, "size");
|
fn SetSize(&self, value: DOMString) {
|
||||||
|
let element = ElementCast::from_ref(self);
|
||||||
|
let length = parse_length(&value);
|
||||||
|
element.set_attribute(&Atom::from_slice("size"), AttrValue::Length(value, length));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl VirtualMethods for HTMLFontElement {
|
impl VirtualMethods for HTMLFontElement {
|
||||||
|
@ -100,7 +104,7 @@ impl VirtualMethods for HTMLFontElement {
|
||||||
match name {
|
match name {
|
||||||
&atom!("face") => AttrValue::from_atomic(value),
|
&atom!("face") => AttrValue::from_atomic(value),
|
||||||
&atom!("size") => {
|
&atom!("size") => {
|
||||||
let length = parse_legacy_font_size(&value).and_then(|parsed| specified::Length::from_str(&parsed));
|
let length = parse_length(&value);
|
||||||
AttrValue::Length(value, length)
|
AttrValue::Length(value, length)
|
||||||
},
|
},
|
||||||
_ => self.super_type().unwrap().parse_plain_attribute(name, value),
|
_ => self.super_type().unwrap().parse_plain_attribute(name, value),
|
||||||
|
@ -133,3 +137,7 @@ impl HTMLFontElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn parse_length(value: &str) -> Option<specified::Length> {
|
||||||
|
parse_legacy_font_size(&value).and_then(|parsed| specified::Length::from_str(&parsed))
|
||||||
|
}
|
||||||
|
|
|
@ -20,6 +20,11 @@ var sizes = ["0", "1", "2", "3", "4", "5", "6", "7", "8"];
|
||||||
var testSize = function (attrValue) {
|
var testSize = function (attrValue) {
|
||||||
elem.setAttribute("size", attrValue);
|
elem.setAttribute("size", attrValue);
|
||||||
assert_equals(elem.getAttribute("size"), attrValue);
|
assert_equals(elem.getAttribute("size"), attrValue);
|
||||||
|
assert_equals(elem.size, attrValue);
|
||||||
|
|
||||||
|
elem.size = attrValue;
|
||||||
|
assert_equals(elem.getAttribute("size"), attrValue);
|
||||||
|
assert_equals(elem.size, attrValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
var args = [];
|
var args = [];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue