| OLD | NEW |
| 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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 InvalidationSet& ensureClassInvalidationSet(const AtomicString& className, I
nvalidationType type) { return ensureClassInvalidationData(className).ensureInva
lidationSet(type); } | 131 InvalidationSet& ensureClassInvalidationSet(const AtomicString& className, I
nvalidationType type) { return ensureClassInvalidationData(className).ensureInva
lidationSet(type); } |
| 132 InvalidationSet& ensureAttributeInvalidationSet(const AtomicString& attribut
eName, InvalidationType type) { return ensureAttributeInvalidationData(attribute
Name).ensureInvalidationSet(type); } | 132 InvalidationSet& ensureAttributeInvalidationSet(const AtomicString& attribut
eName, InvalidationType type) { return ensureAttributeInvalidationData(attribute
Name).ensureInvalidationSet(type); } |
| 133 InvalidationSet& ensureIdInvalidationSet(const AtomicString& id, Invalidatio
nType type) { return ensureIdInvalidationData(id).ensureInvalidationSet(type); } | 133 InvalidationSet& ensureIdInvalidationSet(const AtomicString& id, Invalidatio
nType type) { return ensureIdInvalidationData(id).ensureInvalidationSet(type); } |
| 134 InvalidationSet& ensurePseudoInvalidationSet(CSSSelector::PseudoType pseudoT
ype, InvalidationType type) { return ensurePseudoInvalidationData(pseudoType).en
sureInvalidationSet(type); } | 134 InvalidationSet& ensurePseudoInvalidationSet(CSSSelector::PseudoType pseudoT
ype, InvalidationType type) { return ensurePseudoInvalidationData(pseudoType).en
sureInvalidationSet(type); } |
| 135 | 135 |
| 136 void updateInvalidationSets(const RuleData&); | 136 void updateInvalidationSets(const RuleData&); |
| 137 void updateInvalidationSetsForContentAttribute(const RuleData&); | 137 void updateInvalidationSetsForContentAttribute(const RuleData&); |
| 138 | 138 |
| 139 struct InvalidationSetFeatures { | 139 struct InvalidationSetFeatures { |
| 140 DISALLOW_NEW(); | 140 DISALLOW_NEW(); |
| 141 InvalidationSetFeatures() | |
| 142 : maxDirectAdjacentSelectors(UINT_MAX) | |
| 143 , customPseudoElement(false) | |
| 144 , hasBeforeOrAfter(false) | |
| 145 , treeBoundaryCrossing(false) | |
| 146 , adjacent(false) | |
| 147 , insertionPointCrossing(false) | |
| 148 , forceSubtree(false) | |
| 149 { } | |
| 150 | 141 |
| 151 Vector<AtomicString> classes; | 142 Vector<AtomicString> classes; |
| 152 Vector<AtomicString> attributes; | 143 Vector<AtomicString> attributes; |
| 153 AtomicString id; | 144 AtomicString id; |
| 154 AtomicString tagName; | 145 AtomicString tagName; |
| 155 unsigned maxDirectAdjacentSelectors; | 146 unsigned maxDirectAdjacentSelectors = UINT_MAX; |
| 156 bool customPseudoElement; | 147 bool customPseudoElement = false; |
| 157 bool hasBeforeOrAfter; | 148 bool hasBeforeOrAfter = false; |
| 158 bool treeBoundaryCrossing; | 149 bool treeBoundaryCrossing = false; |
| 159 bool adjacent; | 150 bool adjacent = false; |
| 160 bool insertionPointCrossing; | 151 bool insertionPointCrossing = false; |
| 161 bool forceSubtree; | 152 bool forceSubtree = false; |
| 153 bool contentPseudoCrossing = false; |
| 162 }; | 154 }; |
| 163 | 155 |
| 164 static bool extractInvalidationSetFeature(const CSSSelector&, InvalidationSe
tFeatures&); | 156 static bool extractInvalidationSetFeature(const CSSSelector&, InvalidationSe
tFeatures&); |
| 165 | 157 |
| 166 enum UseFeaturesType { UseFeatures, ForceSubtree }; | 158 enum UseFeaturesType { UseFeatures, ForceSubtree }; |
| 167 | 159 |
| 168 enum PositionType { Subject, Ancestor }; | 160 enum PositionType { Subject, Ancestor }; |
| 169 std::pair<const CSSSelector*, UseFeaturesType> extractInvalidationSetFeature
s(const CSSSelector&, InvalidationSetFeatures&, PositionType, CSSSelector::Pseud
oType = CSSSelector::PseudoUnknown); | 161 std::pair<const CSSSelector*, UseFeaturesType> extractInvalidationSetFeature
s(const CSSSelector&, InvalidationSetFeatures&, PositionType, CSSSelector::Pseud
oType = CSSSelector::PseudoUnknown); |
| 170 | 162 |
| 171 void addFeaturesToInvalidationSet(InvalidationSet&, const InvalidationSetFea
tures&); | 163 void addFeaturesToInvalidationSet(InvalidationSet&, const InvalidationSetFea
tures&); |
| 172 void addFeaturesToInvalidationSets(const CSSSelector*, InvalidationSetFeatur
es* siblingFeatures, InvalidationSetFeatures& descendantFeatures); | 164 void addFeaturesToInvalidationSets(const CSSSelector*, InvalidationSetFeatur
es* siblingFeatures, InvalidationSetFeatures& descendantFeatures); |
| 173 | 165 |
| 174 void addClassToInvalidationSet(const AtomicString& className, Element&); | 166 void addClassToInvalidationSet(const AtomicString& className, Element&); |
| 175 | 167 |
| 176 FeatureMetadata m_metadata; | 168 FeatureMetadata m_metadata; |
| 177 InvalidationSetMap m_classInvalidationSets; | 169 InvalidationSetMap m_classInvalidationSets; |
| 178 InvalidationSetMap m_attributeInvalidationSets; | 170 InvalidationSetMap m_attributeInvalidationSets; |
| 179 InvalidationSetMap m_idInvalidationSets; | 171 InvalidationSetMap m_idInvalidationSets; |
| 180 PseudoTypeInvalidationSetMap m_pseudoInvalidationSets; | 172 PseudoTypeInvalidationSetMap m_pseudoInvalidationSets; |
| 181 | 173 |
| 182 friend class RuleFeatureSetTest; | 174 friend class RuleFeatureSetTest; |
| 183 }; | 175 }; |
| 184 | 176 |
| 185 } // namespace blink | 177 } // namespace blink |
| 186 | 178 |
| 187 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleFeature); | 179 WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(blink::RuleFeature); |
| 188 | 180 |
| 189 #endif // RuleFeature_h | 181 #endif // RuleFeature_h |
| OLD | NEW |