Index: Source/core/css/RuleFeature.cpp |
diff --git a/Source/core/css/RuleFeature.cpp b/Source/core/css/RuleFeature.cpp |
index f8ce8dd99902cd8455f5b19516311ed85ed56980..bdc04544ce4e4a588c187dbca89a74e2ef7ea4b5 100644 |
--- a/Source/core/css/RuleFeature.cpp |
+++ b/Source/core/css/RuleFeature.cpp |
@@ -348,10 +348,10 @@ void RuleFeatureSet::clear() |
m_metadata.clear(); |
m_classInvalidationSets.clear(); |
m_attributeInvalidationSets.clear(); |
- m_pendingInvalidationMap.clear(); |
+ m_styleInvalidator.clearPendingInvalidations(); |
} |
-void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitString& changedClasses, Element* element) |
+void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitString& changedClasses, Element& element) |
{ |
unsigned changedSize = changedClasses.size(); |
for (unsigned i = 0; i < changedSize; ++i) { |
@@ -359,7 +359,7 @@ void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitStr |
} |
} |
-void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitString& oldClasses, const SpaceSplitString& newClasses, Element* element) |
+void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitString& oldClasses, const SpaceSplitString& newClasses, Element& element) |
{ |
if (!oldClasses.size()) |
scheduleStyleInvalidationForClassChange(newClasses, element); |
@@ -392,41 +392,21 @@ void RuleFeatureSet::scheduleStyleInvalidationForClassChange(const SpaceSplitStr |
} |
} |
-void RuleFeatureSet::scheduleStyleInvalidationForAttributeChange(const QualifiedName& attributeName, Element* element) |
+void RuleFeatureSet::scheduleStyleInvalidationForAttributeChange(const QualifiedName& attributeName, Element& element) |
{ |
- if (RefPtr<DescendantInvalidationSet> invalidationSet = m_attributeInvalidationSets.get(attributeName.localName())) { |
- ensurePendingInvalidationList(element).append(invalidationSet); |
- element->setNeedsStyleInvalidation(); |
- } |
-} |
- |
-void RuleFeatureSet::addClassToInvalidationSet(const AtomicString& className, Element* element) |
-{ |
- if (RefPtr<DescendantInvalidationSet> invalidationSet = m_classInvalidationSets.get(className)) { |
- ensurePendingInvalidationList(element).append(invalidationSet); |
- element->setNeedsStyleInvalidation(); |
- } |
-} |
- |
-RuleFeatureSet::InvalidationList& RuleFeatureSet::ensurePendingInvalidationList(Element* element) |
-{ |
- PendingInvalidationMap::AddResult addResult = m_pendingInvalidationMap.add(element, nullptr); |
- if (addResult.isNewEntry) |
- addResult.storedValue->value = adoptPtr(new InvalidationList); |
- return *addResult.storedValue->value; |
+ if (RefPtr<DescendantInvalidationSet> invalidationSet = m_attributeInvalidationSets.get(attributeName.localName())) |
+ m_styleInvalidator.scheduleInvalidation(invalidationSet, element); |
} |
-void RuleFeatureSet::clearStyleInvalidation(Node* node) |
+void RuleFeatureSet::addClassToInvalidationSet(const AtomicString& className, Element& element) |
{ |
- node->clearChildNeedsStyleInvalidation(); |
- node->clearNeedsStyleInvalidation(); |
- if (node->isElementNode()) |
- m_pendingInvalidationMap.remove(toElement(node)); |
+ if (RefPtr<DescendantInvalidationSet> invalidationSet = m_classInvalidationSets.get(className)) |
+ m_styleInvalidator.scheduleInvalidation(invalidationSet, element); |
} |
-RuleFeatureSet::PendingInvalidationMap& RuleFeatureSet::pendingInvalidationMap() |
+StyleInvalidator& RuleFeatureSet::styleInvalidator() |
{ |
- return m_pendingInvalidationMap; |
+ return m_styleInvalidator; |
} |
} // namespace WebCore |