| Index: Source/core/css/RuleFeature.cpp
|
| diff --git a/Source/core/css/RuleFeature.cpp b/Source/core/css/RuleFeature.cpp
|
| index 69ea193992b9bec69ff3659e3801a1fd1dbc4775..bc75b5266a72013a3ab7af5b09c553a65a429748 100644
|
| --- a/Source/core/css/RuleFeature.cpp
|
| +++ b/Source/core/css/RuleFeature.cpp
|
| @@ -53,6 +53,7 @@ static bool isSkippableComponentForInvalidation(const CSSSelector& selector)
|
| case CSSSelector::PseudoAfter:
|
| case CSSSelector::PseudoBackdrop:
|
| case CSSSelector::PseudoShadow:
|
| + case CSSSelector::PseudoContent:
|
| return true;
|
| default:
|
| ASSERT(!selector.isCustomPseudoElement());
|
| @@ -288,6 +289,8 @@ void RuleFeatureSet::addFeaturesToInvalidationSet(DescendantInvalidationSet& inv
|
| {
|
| if (features.treeBoundaryCrossing)
|
| invalidationSet.setTreeBoundaryCrossing();
|
| + if (features.insertionPointCrossing)
|
| + invalidationSet.setInsertionPointCrossing();
|
| if (features.adjacent) {
|
| invalidationSet.setWholeSubtreeInvalid();
|
| return;
|
| @@ -310,8 +313,10 @@ void RuleFeatureSet::addFeaturesToInvalidationSets(const CSSSelector& selector,
|
| if (DescendantInvalidationSet* invalidationSet = invalidationSetForSelector(*current)) {
|
| addFeaturesToInvalidationSet(*invalidationSet, features);
|
| } else {
|
| - if (current->pseudoType() == CSSSelector::PseudoHost)
|
| + if (current->isTreeBoundaryCrossing())
|
| features.treeBoundaryCrossing = true;
|
| + if (current->isInsertionPointCrossing())
|
| + features.insertionPointCrossing = true;
|
| if (const CSSSelectorList* selectorList = current->selectorList()) {
|
| ASSERT(current->pseudoType() == CSSSelector::PseudoHost || current->pseudoType() == CSSSelector::PseudoAny || current->pseudoType() == CSSSelector::PseudoNot);
|
| for (const CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(*selector))
|
|
|