Index: Source/core/dom/Element.cpp |
diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp |
index 1f2fed69eefcbaeb8f6dd79a86194da9d66c3598..6ecb77722fdbfa7d0b64531482d8923085384971 100644 |
--- a/Source/core/dom/Element.cpp |
+++ b/Source/core/dom/Element.cpp |
@@ -1604,11 +1604,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) |