| 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 f2da0c24a98cc945a68241005d9a75e13241b254..47ea1b49ebe89349e0866fa400c42a2737d712ca 100644
|
| --- a/third_party/WebKit/Source/core/css/RuleFeature.cpp
|
| +++ b/third_party/WebKit/Source/core/css/RuleFeature.cpp
|
| @@ -587,15 +587,21 @@ void RuleFeatureSet::collectFeaturesFromSelector(const CSSSelector& selector, Ru
|
| metadata.maxDirectAdjacentSelectors = maxDirectAdjacentSelectors;
|
| maxDirectAdjacentSelectors = 0;
|
| }
|
| - if (!metadata.foundInsertionPointCrossing && current->isSiblingSelector())
|
| + if (!metadata.foundInsertionPointCrossing && current->isSiblingPseudo())
|
| metadata.foundSiblingSelector = true;
|
|
|
| if (const CSSSelectorList* selectorList = current->selectorList()) {
|
| for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(*subSelector))
|
| collectFeaturesFromSelector(*subSelector, metadata);
|
| }
|
| - if (current->relationIsAffectedByPseudoContent())
|
| + if (current->relationIsAffectedByPseudoContent()
|
| + || current->pseudoType() == CSSSelector::PseudoHost
|
| + || current->pseudoType() == CSSSelector::PseudoHostContext
|
| + || current->pseudoType() == CSSSelector::PseudoSlotted) {
|
| metadata.foundInsertionPointCrossing = true;
|
| + }
|
| + if (!metadata.foundInsertionPointCrossing && current->isAdjacentSelector())
|
| + metadata.foundSiblingSelector = true;
|
| }
|
|
|
| ASSERT(!maxDirectAdjacentSelectors);
|
|
|