Index: Source/core/css/parser/BisonCSSParser-in.cpp |
diff --git a/Source/core/css/parser/BisonCSSParser-in.cpp b/Source/core/css/parser/BisonCSSParser-in.cpp |
index 8ab5561a934df07b7f2c67e060129f53b35a1b19..fcf9b9e36d49f0c7165c6139c3228b26678804ae 100644 |
--- a/Source/core/css/parser/BisonCSSParser-in.cpp |
+++ b/Source/core/css/parser/BisonCSSParser-in.cpp |
@@ -1934,9 +1934,11 @@ CSSParserSelector* BisonCSSParser::rewriteSpecifiersWithElementName(const Atomic |
if (specifiers->needsCrossingTreeScopeBoundary()) |
return rewriteSpecifiersWithElementNameForCustomPseudoElement(tag, elementName, specifiers, tagIsForNamespaceRule); |
- if (tag == anyQName()) |
+ // *:host never matches, so we can't discard the * otherwise we can't tell the |
+ // difference between *:host and just :host. |
+ if (tag == anyQName() && !specifiers->hasHostPseudoSelector()) |
return specifiers; |
- if (!(specifiers->pseudoType() == CSSSelector::PseudoCue)) |
+ if (specifiers->pseudoType() != CSSSelector::PseudoCue) |
specifiers->prependTagSelector(tag, tagIsForNamespaceRule); |
return specifiers; |
} |