From 9038b3a8c1c99d7102752f6ded6241d5b8f81af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Thu, 28 Apr 2016 00:38:08 +0200 Subject: [PATCH] geckolib: Parse anon-box pseudo-elements just on UA stylesheets --- ports/geckolib/selector_impl.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/ports/geckolib/selector_impl.rs b/ports/geckolib/selector_impl.rs index 8561881330b..03803563443 100644 --- a/ports/geckolib/selector_impl.rs +++ b/ports/geckolib/selector_impl.rs @@ -151,14 +151,24 @@ impl SelectorImpl for GeckoSelectorImpl { Ok(pseudo_class) } - fn parse_pseudo_element(_context: &ParserContext, + fn parse_pseudo_element(context: &ParserContext, name: &str) -> Result { use self::PseudoElement::*; - let pseudo_element = match_ignore_ascii_case! { name, - "before" => Before, - "after" => After, - "first-line" => FirstLine, + // The braces here are unfortunate, but they're needed for + // match_ignore_ascii_case! to work as expected. + match_ignore_ascii_case! { name, + "before" => { return Ok(Before) }, + "after" => { return Ok(After) }, + "first-line" => { return Ok(FirstLine) }, + _ => {} + } + + if !context.in_user_agent_stylesheet { + return Err(()) + } + + Ok(match_ignore_ascii_case! { name, "-moz-non-element" => MozNonElement, "-moz-anonymous-block" => MozAnonymousBlock, @@ -225,9 +235,7 @@ impl SelectorImpl for GeckoSelectorImpl { "-moz-svg-text" => MozSVGText, _ => return Err(()) - }; - - Ok(pseudo_element) + }) } }