Skip to content

Commit

Permalink
Store blink value for text-decoration-line
Browse files Browse the repository at this point in the history
The spec does say user agents may not blink, but it doesn't say this
value can be ignored during parsing.
  • Loading branch information
upsuper committed Jan 16, 2017
1 parent ad1b117 commit 66af7e4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
3 changes: 3 additions & 0 deletions components/style/properties/gecko.mako.rs
Expand Up @@ -2315,6 +2315,9 @@ fn static_assert() {
if v.line_through {
bits |= structs::NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH as u8;
}
if v.blink {
bits |= structs::NS_STYLE_TEXT_DECORATION_LINE_BLINK as u8;
}
self.gecko.mTextDecorationLine = bits;
}

Expand Down
19 changes: 12 additions & 7 deletions components/style/properties/longhand/text.mako.rs
Expand Up @@ -117,8 +117,7 @@ ${helpers.single_keyword("unicode-bidi",
pub underline: bool,
pub overline: bool,
pub line_through: bool,
// 'blink' is accepted in the parser but ignored.
// Just not blinking the text is a conforming implementation per CSS 2.1.
pub blink: bool,
}

impl ToCss for SpecifiedValue {
Expand All @@ -140,6 +139,13 @@ ${helpers.single_keyword("unicode-bidi",
try!(dest.write_str(" "));
}
try!(dest.write_str("line-through"));
space = true;
}
if self.blink {
if space {
try!(dest.write_str(" "));
}
try!(dest.write_str("blink"));
}
Ok(())
}
Expand All @@ -148,7 +154,7 @@ ${helpers.single_keyword("unicode-bidi",
pub type T = super::SpecifiedValue;
#[allow(non_upper_case_globals)]
pub const none: T = super::SpecifiedValue {
underline: false, overline: false, line_through: false
underline: false, overline: false, line_through: false, blink: false
};
}
#[inline] pub fn get_initial_value() -> computed_value::T {
Expand All @@ -157,12 +163,11 @@ ${helpers.single_keyword("unicode-bidi",
/// none | [ underline || overline || line-through || blink ]
pub fn parse(_context: &ParserContext, input: &mut Parser) -> Result<SpecifiedValue, ()> {
let mut result = SpecifiedValue {
underline: false, overline: false, line_through: false,
underline: false, overline: false, line_through: false, blink: false
};
if input.try(|input| input.expect_ident_matching("none")).is_ok() {
return Ok(result)
}
let mut blink = false;
let mut empty = true;

while input.try(|input| {
Expand All @@ -174,8 +179,8 @@ ${helpers.single_keyword("unicode-bidi",
else { empty = false; result.overline = true },
"line-through" => if result.line_through { return Err(()) }
else { empty = false; result.line_through = true },
"blink" => if blink { return Err(()) }
else { empty = false; blink = true },
"blink" => if result.blink { return Err(()) }
else { empty = false; result.blink = true },
_ => return Err(())
}
} else {
Expand Down

0 comments on commit 66af7e4

Please sign in to comment.