Quellcode durchsuchen

LibWeb: Don't infer descendant combinator for <compound-selector>

This fixes an issue where :host(foo) would parse as if "foo" was the
on the right side of a descendant combinator.

Not testable yet, but will be in the next commit.
Andreas Kling vor 11 Monaten
Ursprung
Commit
274c46a3c9
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      Userland/Libraries/LibWeb/CSS/Parser/SelectorParsing.cpp

+ 4 - 1
Userland/Libraries/LibWeb/CSS/Parser/SelectorParsing.cpp

@@ -506,7 +506,10 @@ Parser::ParseErrorOr<Selector::SimpleSelector> Parser::parse_pseudo_simple_selec
                 return ParseError::SyntaxError;
             }
 
-            Vector compound_selectors { compound_selector_or_error.release_value().release_value() };
+            auto compound_selector = compound_selector_or_error.release_value().release_value();
+            compound_selector.combinator = Selector::Combinator::None;
+
+            Vector compound_selectors { move(compound_selector) };
             auto selector = Selector::create(move(compound_selectors));
 
             return Selector::SimpleSelector {