Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Side by Side Diff: Source/core/css/invalidation/StyleInvalidator.h

Issue 220123004: Add support for element ids in TargetedStyleRecalc (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Adjust test. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef StyleInvalidator_h 5 #ifndef StyleInvalidator_h
6 #define StyleInvalidator_h 6 #define StyleInvalidator_h
7 7
8 #include "heap/Heap.h" 8 #include "heap/Heap.h"
9 9
10 namespace WebCore { 10 namespace WebCore {
(...skipping 23 matching lines...) Expand all
34 RecursionData() 34 RecursionData()
35 : m_foundInvalidationSet(false) 35 : m_foundInvalidationSet(false)
36 , m_invalidateCustomPseudo(false) 36 , m_invalidateCustomPseudo(false)
37 { } 37 { }
38 void pushInvalidationSet(const DescendantInvalidationSet&); 38 void pushInvalidationSet(const DescendantInvalidationSet&);
39 bool matchesCurrentInvalidationSets(Element&); 39 bool matchesCurrentInvalidationSets(Element&);
40 bool foundInvalidationSet() { return m_foundInvalidationSet; } 40 bool foundInvalidationSet() { return m_foundInvalidationSet; }
41 41
42 Vector<AtomicString> m_invalidationClasses; 42 Vector<AtomicString> m_invalidationClasses;
43 Vector<AtomicString> m_invalidationAttributes; 43 Vector<AtomicString> m_invalidationAttributes;
44 Vector<AtomicString> m_invalidationIds;
44 bool m_foundInvalidationSet; 45 bool m_foundInvalidationSet;
45 bool m_invalidateCustomPseudo; 46 bool m_invalidateCustomPseudo;
46 }; 47 };
47 48
48 class RecursionCheckpoint { 49 class RecursionCheckpoint {
49 public: 50 public:
50 RecursionCheckpoint(RecursionData* data) 51 RecursionCheckpoint(RecursionData* data)
51 : m_prevClassLength(data->m_invalidationClasses.size()), 52 : m_prevClassLength(data->m_invalidationClasses.size()),
52 m_prevAttributeLength(data->m_invalidationAttributes.size()), 53 m_prevAttributeLength(data->m_invalidationAttributes.size()),
54 m_prevIdLength(data->m_invalidationIds.size()),
53 m_prevFoundInvalidationSet(data->m_foundInvalidationSet), 55 m_prevFoundInvalidationSet(data->m_foundInvalidationSet),
54 m_prevInvalidateCustomPseudo(data->m_invalidateCustomPseudo), 56 m_prevInvalidateCustomPseudo(data->m_invalidateCustomPseudo),
55 m_data(data) 57 m_data(data)
56 { } 58 { }
57 ~RecursionCheckpoint() 59 ~RecursionCheckpoint()
58 { 60 {
59 m_data->m_invalidationClasses.remove(m_prevClassLength, m_data->m_in validationClasses.size() - m_prevClassLength); 61 m_data->m_invalidationClasses.remove(m_prevClassLength, m_data->m_in validationClasses.size() - m_prevClassLength);
60 m_data->m_invalidationAttributes.remove(m_prevAttributeLength, m_dat a->m_invalidationAttributes.size() - m_prevAttributeLength); 62 m_data->m_invalidationAttributes.remove(m_prevAttributeLength, m_dat a->m_invalidationAttributes.size() - m_prevAttributeLength);
63 m_data->m_invalidationIds.remove(m_prevIdLength, m_data->m_invalidat ionIds.size() - m_prevIdLength);
61 m_data->m_foundInvalidationSet = m_prevFoundInvalidationSet; 64 m_data->m_foundInvalidationSet = m_prevFoundInvalidationSet;
62 m_data->m_invalidateCustomPseudo = m_prevInvalidateCustomPseudo; 65 m_data->m_invalidateCustomPseudo = m_prevInvalidateCustomPseudo;
63 } 66 }
64 67
65 private: 68 private:
66 int m_prevClassLength; 69 int m_prevClassLength;
67 int m_prevAttributeLength; 70 int m_prevAttributeLength;
71 int m_prevIdLength;
68 bool m_prevFoundInvalidationSet; 72 bool m_prevFoundInvalidationSet;
69 bool m_prevInvalidateCustomPseudo; 73 bool m_prevInvalidateCustomPseudo;
70 RecursionData* m_data; 74 RecursionData* m_data;
71 }; 75 };
72 76
73 typedef Vector<RefPtr<DescendantInvalidationSet> > InvalidationList; 77 typedef Vector<RefPtr<DescendantInvalidationSet> > InvalidationList;
74 typedef HashMap<Element*, OwnPtr<InvalidationList> > PendingInvalidationMap; 78 typedef HashMap<Element*, OwnPtr<InvalidationList> > PendingInvalidationMap;
75 79
76 InvalidationList& ensurePendingInvalidationList(Element&); 80 InvalidationList& ensurePendingInvalidationList(Element&);
77 81
78 PendingInvalidationMap m_pendingInvalidationMap; 82 PendingInvalidationMap m_pendingInvalidationMap;
79 RecursionData m_recursionData; 83 RecursionData m_recursionData;
80 }; 84 };
81 85
82 } // namespace WebCore 86 } // namespace WebCore
83 87
84 #endif // StyleInvalidator_h 88 #endif // StyleInvalidator_h
OLDNEW
« no previous file with comments | « Source/core/css/invalidation/DescendantInvalidationSet.cpp ('k') | Source/core/css/invalidation/StyleInvalidator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698