Index: third_party/WebKit/Source/core/dom/StyleEngine.cpp |
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.cpp b/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
index cc21a6a6f028ca5314bc6d271708ba791caab474..16804d7714d8bc1964c6068dafab22aa1565a9a7 100644 |
--- a/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
@@ -33,6 +33,7 @@ |
#include "core/css/CSSStyleSheet.h" |
#include "core/css/FontFaceCache.h" |
#include "core/css/StyleSheetContents.h" |
+#include "core/css/invalidation/InvalidationSet.h" |
#include "core/css/resolver/ScopedStyleResolver.h" |
#include "core/dom/DocumentStyleSheetCollector.h" |
#include "core/dom/Element.h" |
@@ -631,18 +632,17 @@ void StyleEngine::platformColorsChanged() |
void StyleEngine::classChangedForElement(const SpaceSplitString& changedClasses, Element& element) |
{ |
ASSERT(isMaster()); |
- InvalidationSetVector invalidationSets; |
+ InvalidationLists invalidationLists; |
unsigned changedSize = changedClasses.size(); |
RuleFeatureSet& ruleFeatureSet = ensureResolver().ensureUpdatedRuleFeatureSet(); |
for (unsigned i = 0; i < changedSize; ++i) |
- ruleFeatureSet.collectInvalidationSetsForClass(invalidationSets, element, changedClasses[i]); |
- scheduleInvalidationSetsForElement(invalidationSets, element); |
+ ruleFeatureSet.collectInvalidationSetsForClass(invalidationLists, element, changedClasses[i]); |
+ m_styleInvalidator.scheduleInvalidationSetsForElement(invalidationLists, element); |
} |
void StyleEngine::classChangedForElement(const SpaceSplitString& oldClasses, const SpaceSplitString& newClasses, Element& element) |
{ |
ASSERT(isMaster()); |
- InvalidationSetVector invalidationSets; |
if (!oldClasses.size()) { |
classChangedForElement(newClasses, element); |
return; |
@@ -652,6 +652,7 @@ void StyleEngine::classChangedForElement(const SpaceSplitString& oldClasses, con |
BitVector remainingClassBits; |
remainingClassBits.ensureSize(oldClasses.size()); |
+ InvalidationLists invalidationLists; |
RuleFeatureSet& ruleFeatureSet = ensureResolver().ensureUpdatedRuleFeatureSet(); |
for (unsigned i = 0; i < newClasses.size(); ++i) { |
@@ -667,51 +668,45 @@ void StyleEngine::classChangedForElement(const SpaceSplitString& oldClasses, con |
} |
// Class was added. |
if (!found) |
- ruleFeatureSet.collectInvalidationSetsForClass(invalidationSets, element, newClasses[i]); |
+ ruleFeatureSet.collectInvalidationSetsForClass(invalidationLists, element, newClasses[i]); |
} |
for (unsigned i = 0; i < oldClasses.size(); ++i) { |
if (remainingClassBits.quickGet(i)) |
continue; |
// Class was removed. |
- ruleFeatureSet.collectInvalidationSetsForClass(invalidationSets, element, oldClasses[i]); |
+ ruleFeatureSet.collectInvalidationSetsForClass(invalidationLists, element, oldClasses[i]); |
} |
- scheduleInvalidationSetsForElement(invalidationSets, element); |
+ m_styleInvalidator.scheduleInvalidationSetsForElement(invalidationLists, element); |
} |
void StyleEngine::attributeChangedForElement(const QualifiedName& attributeName, Element& element) |
{ |
ASSERT(isMaster()); |
- InvalidationSetVector invalidationSets; |
- ensureResolver().ensureUpdatedRuleFeatureSet().collectInvalidationSetsForAttribute(invalidationSets, element, attributeName); |
- scheduleInvalidationSetsForElement(invalidationSets, element); |
+ InvalidationLists invalidationLists; |
+ ensureResolver().ensureUpdatedRuleFeatureSet().collectInvalidationSetsForAttribute(invalidationLists, element, attributeName); |
+ m_styleInvalidator.scheduleInvalidationSetsForElement(invalidationLists, element); |
} |
void StyleEngine::idChangedForElement(const AtomicString& oldId, const AtomicString& newId, Element& element) |
{ |
ASSERT(isMaster()); |
- InvalidationSetVector invalidationSets; |
+ InvalidationLists invalidationLists; |
RuleFeatureSet& ruleFeatureSet = ensureResolver().ensureUpdatedRuleFeatureSet(); |
if (!oldId.isEmpty()) |
- ruleFeatureSet.collectInvalidationSetsForId(invalidationSets, element, oldId); |
+ ruleFeatureSet.collectInvalidationSetsForId(invalidationLists, element, oldId); |
if (!newId.isEmpty()) |
- ruleFeatureSet.collectInvalidationSetsForId(invalidationSets, element, newId); |
- scheduleInvalidationSetsForElement(invalidationSets, element); |
+ ruleFeatureSet.collectInvalidationSetsForId(invalidationLists, element, newId); |
+ m_styleInvalidator.scheduleInvalidationSetsForElement(invalidationLists, element); |
} |
void StyleEngine::pseudoStateChangedForElement(CSSSelector::PseudoType pseudoType, Element& element) |
{ |
ASSERT(isMaster()); |
- InvalidationSetVector invalidationSets; |
- ensureResolver().ensureUpdatedRuleFeatureSet().collectInvalidationSetsForPseudoClass(invalidationSets, element, pseudoType); |
- scheduleInvalidationSetsForElement(invalidationSets, element); |
-} |
- |
-void StyleEngine::scheduleInvalidationSetsForElement(const InvalidationSetVector& invalidationSets, Element& element) |
-{ |
- for (auto invalidationSet : invalidationSets) |
- m_styleInvalidator.scheduleInvalidation(invalidationSet, element); |
+ InvalidationLists invalidationLists; |
+ ensureResolver().ensureUpdatedRuleFeatureSet().collectInvalidationSetsForPseudoClass(invalidationLists, element, pseudoType); |
+ m_styleInvalidator.scheduleInvalidationSetsForElement(invalidationLists, element); |
} |
DEFINE_TRACE(StyleEngine) |