Index: Source/core/css/invalidation/StyleInvalidator.h |
diff --git a/Source/core/css/invalidation/StyleInvalidator.h b/Source/core/css/invalidation/StyleInvalidator.h |
index 77e60719b3d37201208b2128844faecb6e3e3a89..6f762aad9b60acd59175d0e1d280568ef582e910 100644 |
--- a/Source/core/css/invalidation/StyleInvalidator.h |
+++ b/Source/core/css/invalidation/StyleInvalidator.h |
@@ -5,16 +5,24 @@ |
#ifndef StyleInvalidator_h |
#define StyleInvalidator_h |
-#include "core/css/RuleFeature.h" |
#include "heap/Heap.h" |
namespace WebCore { |
+class DescendantInvalidationSet; |
+class Document; |
+class Element; |
+ |
class StyleInvalidator { |
- STACK_ALLOCATED(); |
public: |
- explicit StyleInvalidator(Document&); |
- void invalidate(); |
+ explicit StyleInvalidator(); |
+ void invalidate(Document&); |
+ void scheduleInvalidation(PassRefPtr<DescendantInvalidationSet>, Element*); |
esprehn
2014/03/31 18:20:39
by reference
chrishtr
2014/03/31 19:22:59
Done.
|
+ |
+ // Clears all style invalidation state for the passed node. |
+ void clearStyleInvalidation(Node*); |
esprehn
2014/03/31 18:20:39
by reference
chrishtr
2014/03/31 19:22:59
Done.
|
+ |
+ void clear(); |
esprehn
2014/03/31 18:20:39
This needs a better name.
chrishtr
2014/03/31 19:22:59
Done.
|
private: |
bool invalidate(Element&); |
@@ -23,10 +31,11 @@ private: |
bool checkInvalidationSetsAgainstElement(Element&); |
struct RecursionData { |
- RecursionData() : m_foundInvalidationSet(false) { } |
+ RecursionData(); |
void pushInvalidationSet(const DescendantInvalidationSet&); |
bool matchesCurrentInvalidationSets(Element&); |
bool foundInvalidationSet() { return m_foundInvalidationSet; } |
+ void clear(); |
Vector<AtomicString> m_invalidationClasses; |
Vector<AtomicString> m_invalidationAttributes; |
@@ -55,8 +64,12 @@ private: |
RecursionData* m_data; |
}; |
- Document& m_document; |
- RuleFeatureSet::PendingInvalidationMap& m_pendingInvalidationMap; |
+ typedef Vector<RefPtr<DescendantInvalidationSet> > InvalidationList; |
+ typedef HashMap<Element*, OwnPtr<InvalidationList> > PendingInvalidationMap; |
+ |
+ InvalidationList& ensurePendingInvalidationList(Element*); |
+ |
+ PendingInvalidationMap m_pendingInvalidationMap; |
RecursionData m_recursionData; |
}; |