| Index: Source/core/dom/Element.cpp
|
| diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp
|
| index eb04d84f1f757cb56c9b9cf073925ec82fe89bba..13f1db1c6e8efa2ac1cb66be3966624cc75bdf0d 100644
|
| --- a/Source/core/dom/Element.cpp
|
| +++ b/Source/core/dom/Element.cpp
|
| @@ -1598,11 +1598,15 @@ ElementShadow& Element::ensureShadow()
|
| return ensureElementRareData().ensureShadow();
|
| }
|
|
|
| -void Element::didAffectSelector(AffectedSelectorMask mask)
|
| +void Element::pseudoStateChanged(CSSSelector::PseudoType pseudo)
|
| {
|
| - setNeedsStyleRecalc(SubtreeStyleChange);
|
| + StyleResolver* styleResolver = document().styleResolver();
|
| +
|
| + if (inActiveDocument() && styleResolver && styleChangeType() < SubtreeStyleChange)
|
| + styleResolver->ensureUpdatedRuleFeatureSet().scheduleStyleInvalidationForPseudoChange(pseudo, *this);
|
| +
|
| if (ElementShadow* elementShadow = shadowWhereNodeCanBeDistributed(*this))
|
| - elementShadow->didAffectSelector(mask);
|
| + elementShadow->distributedNodePseudoStateChanged(pseudo);
|
| }
|
|
|
| void Element::setAnimationStyleChange(bool animationStyleChange)
|
|
|