Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef StyleInvalidator_h | |
| 6 #define StyleInvalidator_h | |
| 7 | |
| 8 #include "core/css/RuleFeature.h" | |
| 9 #include "heap/Heap.h" | |
| 10 | |
| 11 namespace WebCore { | |
| 12 | |
| 13 class StyleInvalidator { | |
| 14 STACK_ALLOCATED(); | |
| 15 public: | |
| 16 StyleInvalidator(Document&); | |
|
esprehn
2014/03/20 00:33:03
explicit
chrishtr
2014/03/20 03:46:33
Done.
| |
| 17 void invalidate(); | |
| 18 | |
| 19 private: | |
| 20 bool invalidate(Element&); | |
| 21 bool invalidateChildren(Element&); | |
| 22 | |
| 23 bool checkInvalidationSetsAgainstElement(Element&); | |
| 24 | |
| 25 struct RecursionData { | |
| 26 RecursionData() : m_foundInvalidationSet(false) { } | |
| 27 void pushInvalidationSet(const DescendantInvalidationSet&); | |
| 28 bool matchesCurrentInvalidationSets(Element&); | |
| 29 bool foundInvalidationSet() { return m_foundInvalidationSet; } | |
| 30 | |
| 31 Vector<AtomicString> m_invalidationClasses; | |
| 32 bool m_foundInvalidationSet; | |
| 33 }; | |
| 34 | |
| 35 class RecursionCheckpoint { | |
| 36 public: | |
| 37 RecursionCheckpoint(RecursionData* data) | |
| 38 : m_prevClassLength(data->m_invalidationClasses.size()), | |
| 39 m_prevFoundInvalidationSet(data->m_foundInvalidationSet), | |
| 40 m_data(data) | |
| 41 { } | |
| 42 ~RecursionCheckpoint() | |
| 43 { | |
| 44 m_data->m_invalidationClasses.remove(m_prevClassLength, m_data->m_in validationClasses.size() - m_prevClassLength); | |
| 45 m_data->m_foundInvalidationSet = m_prevFoundInvalidationSet; | |
| 46 } | |
| 47 | |
| 48 private: | |
| 49 int m_prevClassLength; | |
| 50 bool m_prevFoundInvalidationSet; | |
| 51 RecursionData* m_data; | |
| 52 }; | |
| 53 | |
| 54 Document& m_document; | |
| 55 RuleFeatureSet::PendingInvalidationMap& m_pendingInvalidationMap; | |
| 56 RecursionData m_recursionData; | |
| 57 }; | |
| 58 | |
| 59 } // namespace WebCore | |
| 60 | |
| 61 #endif // StyleInvalidator_h | |
| OLD | NEW |