Chromium Code Reviews| 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; |
| }; |