Auto merge of #20240 - emilio:special-color-fix, r=upsuper

style: Fix special color keywords.

They're -moz-activehyperlinktext and -moz-visitedhyperlinktext.

This fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1444059.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20240)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-03-08 10:06:03 -05:00 committed by GitHub
commit 212c321145
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 12 deletions

View file

@ -63,7 +63,6 @@ pub mod system_colors {
IMESelectedConvertedTextBackground IMESelectedConvertedTextForeground IMESelectedConvertedTextBackground IMESelectedConvertedTextForeground
IMESelectedConvertedTextUnderline SpellCheckerUnderline""".split() IMESelectedConvertedTextUnderline SpellCheckerUnderline""".split()
%> %>
use cssparser::Parser;
use gecko_bindings::bindings::Gecko_GetLookAndFeelSystemColor; use gecko_bindings::bindings::Gecko_GetLookAndFeelSystemColor;
use gecko_bindings::structs::root::mozilla::LookAndFeel_ColorID; use gecko_bindings::structs::root::mozilla::LookAndFeel_ColorID;
use std::fmt::{self, Write}; use std::fmt::{self, Write};
@ -109,7 +108,7 @@ pub mod system_colors {
} }
impl SystemColor { impl SystemColor {
pub fn parse<'i, 't>(input: &mut Parser<'i, 't>,) -> Result<Self, ()> { pub fn from_ident<'i, 't>(ident: &str) -> Result<Self, ()> {
ascii_case_insensitive_phf_map! { ascii_case_insensitive_phf_map! {
color_name -> SystemColor = { color_name -> SystemColor = {
% for color in system_colors: % for color in system_colors:
@ -118,7 +117,6 @@ pub mod system_colors {
} }
} }
let ident = input.expect_ident().map_err(|_| ())?;
color_name(ident).cloned().ok_or(()) color_name(ident).cloned().ok_or(())
} }
} }

View file

@ -52,8 +52,8 @@ mod gecko {
MozDefaultColor, MozDefaultColor,
MozDefaultBackgroundColor, MozDefaultBackgroundColor,
MozHyperlinktext, MozHyperlinktext,
MozActiveHyperlinktext, MozActivehyperlinktext,
MozVisitedHyperlinktext, MozVisitedhyperlinktext,
} }
} }
@ -160,12 +160,14 @@ impl Parse for Color {
Err(e) => { Err(e) => {
#[cfg(feature = "gecko")] #[cfg(feature = "gecko")]
{ {
if let Ok(system) = input.try(SystemColor::parse) { if let Ok(ident) = input.expect_ident() {
return Ok(Color::System(system)); if let Ok(system) = SystemColor::from_ident(ident) {
} return Ok(Color::System(system));
}
if let Ok(c) = gecko::SpecialColorKeyword::parse(input) { if let Ok(c) = gecko::SpecialColorKeyword::from_ident(ident) {
return Ok(Color::Special(c)); return Ok(Color::Special(c));
}
} }
} }
@ -368,8 +370,8 @@ impl Color {
Keyword::MozDefaultColor => pres_context.mDefaultColor, Keyword::MozDefaultColor => pres_context.mDefaultColor,
Keyword::MozDefaultBackgroundColor => pres_context.mBackgroundColor, Keyword::MozDefaultBackgroundColor => pres_context.mBackgroundColor,
Keyword::MozHyperlinktext => pres_context.mLinkColor, Keyword::MozHyperlinktext => pres_context.mLinkColor,
Keyword::MozActiveHyperlinktext => pres_context.mActiveLinkColor, Keyword::MozActivehyperlinktext => pres_context.mActiveLinkColor,
Keyword::MozVisitedHyperlinktext => pres_context.mVisitedLinkColor, Keyword::MozVisitedhyperlinktext => pres_context.mVisitedLinkColor,
}) })
}) })
} }