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

Side by Side Diff: third_party/WebKit/Source/core/css/RuleFeature.h

Issue 1717703002: Use invalidation sets to invalidate slotted elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed expected text Created 4 years, 10 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 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 AtomicString id; 138 AtomicString id;
139 AtomicString tagName; 139 AtomicString tagName;
140 unsigned maxDirectAdjacentSelectors = UINT_MAX; 140 unsigned maxDirectAdjacentSelectors = UINT_MAX;
141 bool customPseudoElement = false; 141 bool customPseudoElement = false;
142 bool hasBeforeOrAfter = false; 142 bool hasBeforeOrAfter = false;
143 bool treeBoundaryCrossing = false; 143 bool treeBoundaryCrossing = false;
144 bool adjacent = false; 144 bool adjacent = false;
145 bool insertionPointCrossing = false; 145 bool insertionPointCrossing = false;
146 bool forceSubtree = false; 146 bool forceSubtree = false;
147 bool contentPseudoCrossing = false; 147 bool contentPseudoCrossing = false;
148 bool invalidatesSlotted = false;
148 }; 149 };
149 150
150 static bool extractInvalidationSetFeature(const CSSSelector&, InvalidationSe tFeatures&); 151 static bool extractInvalidationSetFeature(const CSSSelector&, InvalidationSe tFeatures&);
151 152
152 enum UseFeaturesType { UseFeatures, ForceSubtree }; 153 enum UseFeaturesType { UseFeatures, ForceSubtree };
153 154
154 enum PositionType { Subject, Ancestor }; 155 enum PositionType { Subject, Ancestor };
155 std::pair<const CSSSelector*, UseFeaturesType> extractInvalidationSetFeature s(const CSSSelector&, InvalidationSetFeatures&, PositionType, CSSSelector::Pseud oType = CSSSelector::PseudoUnknown); 156 std::pair<const CSSSelector*, UseFeaturesType> extractInvalidationSetFeature s(const CSSSelector&, InvalidationSetFeatures&, PositionType, CSSSelector::Pseud oType = CSSSelector::PseudoUnknown);
156 157
157 void addFeaturesToInvalidationSet(InvalidationSet&, const InvalidationSetFea tures&); 158 void addFeaturesToInvalidationSet(InvalidationSet&, const InvalidationSetFea tures&);
158 void addFeaturesToInvalidationSets(const CSSSelector*, InvalidationSetFeatur es* siblingFeatures, InvalidationSetFeatures& descendantFeatures); 159 void addFeaturesToInvalidationSets(const CSSSelector*, InvalidationSetFeatur es* siblingFeatures, InvalidationSetFeatures& descendantFeatures);
159 160
160 void addClassToInvalidationSet(const AtomicString& className, Element&); 161 void addClassToInvalidationSet(const AtomicString& className, Element&);
161 162
162 FeatureMetadata m_metadata; 163 FeatureMetadata m_metadata;
163 InvalidationSetMap m_classInvalidationSets; 164 InvalidationSetMap m_classInvalidationSets;
164 InvalidationSetMap m_attributeInvalidationSets; 165 InvalidationSetMap m_attributeInvalidationSets;
165 InvalidationSetMap m_idInvalidationSets; 166 InvalidationSetMap m_idInvalidationSets;
166 PseudoTypeInvalidationSetMap m_pseudoInvalidationSets; 167 PseudoTypeInvalidationSetMap m_pseudoInvalidationSets;
167 168
168 friend class RuleFeatureSetTest; 169 friend class RuleFeatureSetTest;
169 }; 170 };
170 171
171 } // namespace blink 172 } // namespace blink
172 173
173 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleFeature); 174 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleFeature);
174 175
175 #endif // RuleFeature_h 176 #endif // RuleFeature_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSSelector.h ('k') | third_party/WebKit/Source/core/css/RuleFeature.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698