diff --git a/components/style/properties/longhand/color.mako.rs b/components/style/properties/longhand/color.mako.rs index 3dfc685f082..a4d1830190a 100644 --- a/components/style/properties/longhand/color.mako.rs +++ b/components/style/properties/longhand/color.mako.rs @@ -63,7 +63,6 @@ pub mod system_colors { IMESelectedConvertedTextBackground IMESelectedConvertedTextForeground IMESelectedConvertedTextUnderline SpellCheckerUnderline""".split() %> - use cssparser::Parser; use gecko_bindings::bindings::Gecko_GetLookAndFeelSystemColor; use gecko_bindings::structs::root::mozilla::LookAndFeel_ColorID; use std::fmt::{self, Write}; @@ -109,7 +108,7 @@ pub mod system_colors { } impl SystemColor { - pub fn parse<'i, 't>(input: &mut Parser<'i, 't>,) -> Result { + pub fn from_ident<'i, 't>(ident: &str) -> Result { ascii_case_insensitive_phf_map! { color_name -> SystemColor = { % 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(()) } } diff --git a/components/style/values/specified/color.rs b/components/style/values/specified/color.rs index a9c52de811a..492e92c32d2 100644 --- a/components/style/values/specified/color.rs +++ b/components/style/values/specified/color.rs @@ -160,12 +160,14 @@ impl Parse for Color { Err(e) => { #[cfg(feature = "gecko")] { - if let Ok(system) = input.try(SystemColor::parse) { - return Ok(Color::System(system)); - } + if let Ok(ident) = input.expect_ident() { + if let Ok(system) = SystemColor::from_ident(ident) { + return Ok(Color::System(system)); + } - if let Ok(c) = gecko::SpecialColorKeyword::parse(input) { - return Ok(Color::Special(c)); + if let Ok(c) = gecko::SpecialColorKeyword::from_ident(ident) { + return Ok(Color::Special(c)); + } } }