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

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

Issue 222643002: Support tag names as invalidation set features. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased. 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 | Annotate | Revision Log
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 24 matching lines...) Expand all
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 Vector<AtomicString> m_invalidationIds;
45 Vector<AtomicString> m_invalidationTagNames;
45 bool m_foundInvalidationSet; 46 bool m_foundInvalidationSet;
46 bool m_invalidateCustomPseudo; 47 bool m_invalidateCustomPseudo;
47 }; 48 };
48 49
49 class RecursionCheckpoint { 50 class RecursionCheckpoint {
50 public: 51 public:
51 RecursionCheckpoint(RecursionData* data) 52 RecursionCheckpoint(RecursionData* data)
52 : m_prevClassLength(data->m_invalidationClasses.size()), 53 : m_prevClassLength(data->m_invalidationClasses.size()),
53 m_prevAttributeLength(data->m_invalidationAttributes.size()), 54 m_prevAttributeLength(data->m_invalidationAttributes.size()),
54 m_prevIdLength(data->m_invalidationIds.size()), 55 m_prevIdLength(data->m_invalidationIds.size()),
56 m_prevTagNameLength(data->m_invalidationTagNames.size()),
55 m_prevFoundInvalidationSet(data->m_foundInvalidationSet), 57 m_prevFoundInvalidationSet(data->m_foundInvalidationSet),
56 m_prevInvalidateCustomPseudo(data->m_invalidateCustomPseudo), 58 m_prevInvalidateCustomPseudo(data->m_invalidateCustomPseudo),
57 m_data(data) 59 m_data(data)
58 { } 60 { }
59 ~RecursionCheckpoint() 61 ~RecursionCheckpoint()
60 { 62 {
61 m_data->m_invalidationClasses.remove(m_prevClassLength, m_data->m_in validationClasses.size() - m_prevClassLength); 63 m_data->m_invalidationClasses.remove(m_prevClassLength, m_data->m_in validationClasses.size() - m_prevClassLength);
62 m_data->m_invalidationAttributes.remove(m_prevAttributeLength, m_dat a->m_invalidationAttributes.size() - m_prevAttributeLength); 64 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); 65 m_data->m_invalidationIds.remove(m_prevIdLength, m_data->m_invalidat ionIds.size() - m_prevIdLength);
66 m_data->m_invalidationTagNames.remove(m_prevTagNameLength, m_data->m _invalidationTagNames.size() - m_prevTagNameLength);
64 m_data->m_foundInvalidationSet = m_prevFoundInvalidationSet; 67 m_data->m_foundInvalidationSet = m_prevFoundInvalidationSet;
65 m_data->m_invalidateCustomPseudo = m_prevInvalidateCustomPseudo; 68 m_data->m_invalidateCustomPseudo = m_prevInvalidateCustomPseudo;
66 } 69 }
67 70
68 private: 71 private:
69 int m_prevClassLength; 72 int m_prevClassLength;
70 int m_prevAttributeLength; 73 int m_prevAttributeLength;
71 int m_prevIdLength; 74 int m_prevIdLength;
75 int m_prevTagNameLength;
72 bool m_prevFoundInvalidationSet; 76 bool m_prevFoundInvalidationSet;
73 bool m_prevInvalidateCustomPseudo; 77 bool m_prevInvalidateCustomPseudo;
74 RecursionData* m_data; 78 RecursionData* m_data;
75 }; 79 };
76 80
77 typedef Vector<RefPtr<DescendantInvalidationSet> > InvalidationList; 81 typedef Vector<RefPtr<DescendantInvalidationSet> > InvalidationList;
78 typedef HashMap<Element*, OwnPtr<InvalidationList> > PendingInvalidationMap; 82 typedef HashMap<Element*, OwnPtr<InvalidationList> > PendingInvalidationMap;
79 83
80 InvalidationList& ensurePendingInvalidationList(Element&); 84 InvalidationList& ensurePendingInvalidationList(Element&);
81 85
82 PendingInvalidationMap m_pendingInvalidationMap; 86 PendingInvalidationMap m_pendingInvalidationMap;
83 RecursionData m_recursionData; 87 RecursionData m_recursionData;
84 }; 88 };
85 89
86 } // namespace WebCore 90 } // namespace WebCore
87 91
88 #endif // StyleInvalidator_h 92 #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