Index: third_party/WebKit/Source/core/css/RuleFeature.cpp |
diff --git a/third_party/WebKit/Source/core/css/RuleFeature.cpp b/third_party/WebKit/Source/core/css/RuleFeature.cpp |
index 7d665f6057df23c93869a1da4565b0fdfba17404..d3aaa9ba30c1584d487682a4e917b06939d02b4c 100644 |
--- a/third_party/WebKit/Source/core/css/RuleFeature.cpp |
+++ b/third_party/WebKit/Source/core/css/RuleFeature.cpp |
@@ -610,10 +610,13 @@ RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromSelector(con |
break; |
case CSSSelector::PseudoHost: |
case CSSSelector::PseudoHostContext: |
- if (relation == CSSSelector::SubSelector) |
+ if (!foundHostPseudo && relation == CSSSelector::SubSelector) |
return SelectorNeverMatches; |
- if (!current->isLastInTagHistory() && current->tagHistory()->match() != CSSSelector::PseudoElement) |
+ if (!current->isLastInTagHistory() |
+ && current->tagHistory()->match() != CSSSelector::PseudoElement |
+ && !current->tagHistory()->isHostPseudoClass()) { |
return SelectorNeverMatches; |
+ } |
foundHostPseudo = true; |
// fall through. |
default: |