Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All | 
| 6 * rights reserved. | 6 * rights reserved. | 
| 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 
| 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 
| 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 
| 10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) | 
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 241 CSSSelector::PseudoType key, | 241 CSSSelector::PseudoType key, | 
| 242 InvalidationType type) { | 242 InvalidationType type) { | 
| 243 RefPtr<InvalidationSet>& invalidationSet = | 243 RefPtr<InvalidationSet>& invalidationSet = | 
| 244 map.insert(key, nullptr).storedValue->value; | 244 map.insert(key, nullptr).storedValue->value; | 
| 245 return storedInvalidationSet(invalidationSet, type); | 245 return storedInvalidationSet(invalidationSet, type); | 
| 246 } | 246 } | 
| 247 | 247 | 
| 248 void extractInvalidationSets(InvalidationSet* invalidationSet, | 248 void extractInvalidationSets(InvalidationSet* invalidationSet, | 
| 249 DescendantInvalidationSet*& descendants, | 249 DescendantInvalidationSet*& descendants, | 
| 250 SiblingInvalidationSet*& siblings) { | 250 SiblingInvalidationSet*& siblings) { | 
| 251 RELEASE_ASSERT(invalidationSet->isAlive()); | 251 CHECK(invalidationSet->isAlive()); | 
| 252 if (invalidationSet->type() == InvalidateDescendants) { | 252 if (invalidationSet->type() == InvalidateDescendants) { | 
| 253 descendants = toDescendantInvalidationSet(invalidationSet); | 253 descendants = toDescendantInvalidationSet(invalidationSet); | 
| 254 siblings = nullptr; | 254 siblings = nullptr; | 
| 255 return; | 255 return; | 
| 256 } | 256 } | 
| 257 | 257 | 
| 258 siblings = toSiblingInvalidationSet(invalidationSet); | 258 siblings = toSiblingInvalidationSet(invalidationSet); | 
| 259 descendants = siblings->descendants(); | 259 descendants = siblings->descendants(); | 
| 260 } | 260 } | 
| 261 | 261 | 
| 262 } // anonymous namespace | 262 } // anonymous namespace | 
| 263 | 263 | 
| 264 RuleFeature::RuleFeature(StyleRule* rule, | 264 RuleFeature::RuleFeature(StyleRule* rule, | 
| 265 unsigned selectorIndex, | 265 unsigned selectorIndex, | 
| 266 bool hasDocumentSecurityOrigin) | 266 bool hasDocumentSecurityOrigin) | 
| 267 : rule(rule), | 267 : rule(rule), | 
| 268 selectorIndex(selectorIndex), | 268 selectorIndex(selectorIndex), | 
| 269 hasDocumentSecurityOrigin(hasDocumentSecurityOrigin) {} | 269 hasDocumentSecurityOrigin(hasDocumentSecurityOrigin) {} | 
| 270 | 270 | 
| 271 DEFINE_TRACE(RuleFeature) { | 271 DEFINE_TRACE(RuleFeature) { | 
| 272 visitor->trace(rule); | 272 visitor->trace(rule); | 
| 273 } | 273 } | 
| 274 | 274 | 
| 275 RuleFeatureSet::RuleFeatureSet() : m_isAlive(true) {} | 275 RuleFeatureSet::RuleFeatureSet() : m_isAlive(true) {} | 
| 276 | 276 | 
| 277 RuleFeatureSet::~RuleFeatureSet() { | 277 RuleFeatureSet::~RuleFeatureSet() { | 
| 278 RELEASE_ASSERT(m_isAlive); | 278 CHECK(m_isAlive); | 
| 279 | 279 | 
| 280 m_metadata.clear(); | 280 m_metadata.clear(); | 
| 281 m_classInvalidationSets.clear(); | 281 m_classInvalidationSets.clear(); | 
| 282 m_attributeInvalidationSets.clear(); | 282 m_attributeInvalidationSets.clear(); | 
| 283 m_idInvalidationSets.clear(); | 283 m_idInvalidationSets.clear(); | 
| 284 m_pseudoInvalidationSets.clear(); | 284 m_pseudoInvalidationSets.clear(); | 
| 285 m_universalSiblingInvalidationSet.clear(); | 285 m_universalSiblingInvalidationSet.clear(); | 
| 286 m_nthInvalidationSet.clear(); | 286 m_nthInvalidationSet.clear(); | 
| 287 | 287 | 
| 288 m_isAlive = false; | 288 m_isAlive = false; | 
| 289 } | 289 } | 
| 290 | 290 | 
| 291 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureClassInvalidationSet( | 291 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureClassInvalidationSet( | 
| 292 const AtomicString& className, | 292 const AtomicString& className, | 
| 293 InvalidationType type) { | 293 InvalidationType type) { | 
| 294 RELEASE_ASSERT(!className.isEmpty()); | 294 CHECK(!className.isEmpty()); | 
| 295 return ensureInvalidationSet(m_classInvalidationSets, className, type); | 295 return ensureInvalidationSet(m_classInvalidationSets, className, type); | 
| 296 } | 296 } | 
| 297 | 297 | 
| 298 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureAttributeInvalidationSet( | 298 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureAttributeInvalidationSet( | 
| 299 const AtomicString& attributeName, | 299 const AtomicString& attributeName, | 
| 300 InvalidationType type) { | 300 InvalidationType type) { | 
| 301 RELEASE_ASSERT(!attributeName.isEmpty()); | 301 CHECK(!attributeName.isEmpty()); | 
| 302 return ensureInvalidationSet(m_attributeInvalidationSets, attributeName, | 302 return ensureInvalidationSet(m_attributeInvalidationSets, attributeName, | 
| 303 type); | 303 type); | 
| 304 } | 304 } | 
| 305 | 305 | 
| 306 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureIdInvalidationSet( | 306 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensureIdInvalidationSet( | 
| 307 const AtomicString& id, | 307 const AtomicString& id, | 
| 308 InvalidationType type) { | 308 InvalidationType type) { | 
| 309 RELEASE_ASSERT(!id.isEmpty()); | 309 CHECK(!id.isEmpty()); | 
| 310 return ensureInvalidationSet(m_idInvalidationSets, id, type); | 310 return ensureInvalidationSet(m_idInvalidationSets, id, type); | 
| 311 } | 311 } | 
| 312 | 312 | 
| 313 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensurePseudoInvalidationSet( | 313 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensurePseudoInvalidationSet( | 
| 314 CSSSelector::PseudoType pseudoType, | 314 CSSSelector::PseudoType pseudoType, | 
| 315 InvalidationType type) { | 315 InvalidationType type) { | 
| 316 RELEASE_ASSERT(pseudoType != CSSSelector::PseudoUnknown); | 316 CHECK(pseudoType != CSSSelector::PseudoUnknown); | 
| 
 
tkent
2017/03/28 14:44:56
Use CHECK_NE
 
nikhil.sahni
2017/03/30 12:17:58
Done.
 
 | |
| 317 return ensureInvalidationSet(m_pseudoInvalidationSets, pseudoType, type); | 317 return ensureInvalidationSet(m_pseudoInvalidationSets, pseudoType, type); | 
| 318 } | 318 } | 
| 319 | 319 | 
| 320 void RuleFeatureSet::updateFeaturesFromCombinator( | 320 void RuleFeatureSet::updateFeaturesFromCombinator( | 
| 321 const CSSSelector& lastInCompound, | 321 const CSSSelector& lastInCompound, | 
| 322 const CSSSelector* lastCompoundInAdjacentChain, | 322 const CSSSelector* lastCompoundInAdjacentChain, | 
| 323 InvalidationSetFeatures& lastCompoundInAdjacentChainFeatures, | 323 InvalidationSetFeatures& lastCompoundInAdjacentChainFeatures, | 
| 324 InvalidationSetFeatures*& siblingFeatures, | 324 InvalidationSetFeatures*& siblingFeatures, | 
| 325 InvalidationSetFeatures& descendantFeatures) { | 325 InvalidationSetFeatures& descendantFeatures) { | 
| 326 if (lastInCompound.isAdjacentSelector()) { | 326 if (lastInCompound.isAdjacentSelector()) { | 
| (...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 795 DCHECK(lastInCompound); | 795 DCHECK(lastInCompound); | 
| 796 updateFeaturesFromCombinator(*lastInCompound, compound, | 796 updateFeaturesFromCombinator(*lastInCompound, compound, | 
| 797 lastCompoundInSiblingChainFeatures, | 797 lastCompoundInSiblingChainFeatures, | 
| 798 siblingFeatures, descendantFeatures); | 798 siblingFeatures, descendantFeatures); | 
| 799 compound = lastInCompound->tagHistory(); | 799 compound = lastInCompound->tagHistory(); | 
| 800 } | 800 } | 
| 801 } | 801 } | 
| 802 | 802 | 
| 803 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromRuleData( | 803 RuleFeatureSet::SelectorPreMatch RuleFeatureSet::collectFeaturesFromRuleData( | 
| 804 const RuleData& ruleData) { | 804 const RuleData& ruleData) { | 
| 805 RELEASE_ASSERT(m_isAlive); | 805 CHECK(m_isAlive); | 
| 806 FeatureMetadata metadata; | 806 FeatureMetadata metadata; | 
| 807 if (collectFeaturesFromSelector(ruleData.selector(), metadata) == | 807 if (collectFeaturesFromSelector(ruleData.selector(), metadata) == | 
| 808 SelectorNeverMatches) | 808 SelectorNeverMatches) | 
| 809 return SelectorNeverMatches; | 809 return SelectorNeverMatches; | 
| 810 | 810 | 
| 811 m_metadata.add(metadata); | 811 m_metadata.add(metadata); | 
| 812 | 812 | 
| 813 if (metadata.foundSiblingSelector) { | 813 if (metadata.foundSiblingSelector) { | 
| 814 m_siblingRules.push_back(RuleFeature(ruleData.rule(), | 814 m_siblingRules.push_back(RuleFeature(ruleData.rule(), | 
| 815 ruleData.selectorIndex(), | 815 ruleData.selectorIndex(), | 
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 912 void RuleFeatureSet::FeatureMetadata::clear() { | 912 void RuleFeatureSet::FeatureMetadata::clear() { | 
| 913 usesFirstLineRules = false; | 913 usesFirstLineRules = false; | 
| 914 usesWindowInactiveSelector = false; | 914 usesWindowInactiveSelector = false; | 
| 915 foundSiblingSelector = false; | 915 foundSiblingSelector = false; | 
| 916 foundInsertionPointCrossing = false; | 916 foundInsertionPointCrossing = false; | 
| 917 needsFullRecalcForRuleSetInvalidation = false; | 917 needsFullRecalcForRuleSetInvalidation = false; | 
| 918 maxDirectAdjacentSelectors = 0; | 918 maxDirectAdjacentSelectors = 0; | 
| 919 } | 919 } | 
| 920 | 920 | 
| 921 void RuleFeatureSet::add(const RuleFeatureSet& other) { | 921 void RuleFeatureSet::add(const RuleFeatureSet& other) { | 
| 922 RELEASE_ASSERT(m_isAlive); | 922 CHECK(m_isAlive); | 
| 923 RELEASE_ASSERT(other.m_isAlive); | 923 CHECK(other.m_isAlive); | 
| 924 RELEASE_ASSERT(&other != this); | 924 CHECK_NE(&other, this); | 
| 925 for (const auto& entry : other.m_classInvalidationSets) | 925 for (const auto& entry : other.m_classInvalidationSets) | 
| 926 ensureInvalidationSet(m_classInvalidationSets, entry.key, | 926 ensureInvalidationSet(m_classInvalidationSets, entry.key, | 
| 927 entry.value->type()) | 927 entry.value->type()) | 
| 928 .combine(*entry.value); | 928 .combine(*entry.value); | 
| 929 for (const auto& entry : other.m_attributeInvalidationSets) | 929 for (const auto& entry : other.m_attributeInvalidationSets) | 
| 930 ensureInvalidationSet(m_attributeInvalidationSets, entry.key, | 930 ensureInvalidationSet(m_attributeInvalidationSets, entry.key, | 
| 931 entry.value->type()) | 931 entry.value->type()) | 
| 932 .combine(*entry.value); | 932 .combine(*entry.value); | 
| 933 for (const auto& entry : other.m_idInvalidationSets) | 933 for (const auto& entry : other.m_idInvalidationSets) | 
| 934 ensureInvalidationSet(m_idInvalidationSets, entry.key, entry.value->type()) | 934 ensureInvalidationSet(m_idInvalidationSets, entry.key, entry.value->type()) | 
| (...skipping 13 matching lines...) Expand all Loading... | |
| 948 | 948 | 
| 949 m_siblingRules.appendVector(other.m_siblingRules); | 949 m_siblingRules.appendVector(other.m_siblingRules); | 
| 950 m_uncommonAttributeRules.appendVector(other.m_uncommonAttributeRules); | 950 m_uncommonAttributeRules.appendVector(other.m_uncommonAttributeRules); | 
| 951 m_viewportDependentMediaQueryResults.appendVector( | 951 m_viewportDependentMediaQueryResults.appendVector( | 
| 952 other.m_viewportDependentMediaQueryResults); | 952 other.m_viewportDependentMediaQueryResults); | 
| 953 m_deviceDependentMediaQueryResults.appendVector( | 953 m_deviceDependentMediaQueryResults.appendVector( | 
| 954 other.m_deviceDependentMediaQueryResults); | 954 other.m_deviceDependentMediaQueryResults); | 
| 955 } | 955 } | 
| 956 | 956 | 
| 957 void RuleFeatureSet::clear() { | 957 void RuleFeatureSet::clear() { | 
| 958 RELEASE_ASSERT(m_isAlive); | 958 CHECK(m_isAlive); | 
| 959 m_siblingRules.clear(); | 959 m_siblingRules.clear(); | 
| 960 m_uncommonAttributeRules.clear(); | 960 m_uncommonAttributeRules.clear(); | 
| 961 m_metadata.clear(); | 961 m_metadata.clear(); | 
| 962 m_classInvalidationSets.clear(); | 962 m_classInvalidationSets.clear(); | 
| 963 m_attributeInvalidationSets.clear(); | 963 m_attributeInvalidationSets.clear(); | 
| 964 m_idInvalidationSets.clear(); | 964 m_idInvalidationSets.clear(); | 
| 965 m_pseudoInvalidationSets.clear(); | 965 m_pseudoInvalidationSets.clear(); | 
| 966 m_universalSiblingInvalidationSet.clear(); | 966 m_universalSiblingInvalidationSet.clear(); | 
| 967 m_nthInvalidationSet.clear(); | 967 m_nthInvalidationSet.clear(); | 
| 968 m_viewportDependentMediaQueryResults.clear(); | 968 m_viewportDependentMediaQueryResults.clear(); | 
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1227 bool RuleFeatureSet::InvalidationSetFeatures::hasFeatures() const { | 1227 bool RuleFeatureSet::InvalidationSetFeatures::hasFeatures() const { | 
| 1228 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() || | 1228 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty() || | 
| 1229 !tagNames.isEmpty() || customPseudoElement; | 1229 !tagNames.isEmpty() || customPseudoElement; | 
| 1230 } | 1230 } | 
| 1231 | 1231 | 
| 1232 bool RuleFeatureSet::InvalidationSetFeatures::hasIdClassOrAttribute() const { | 1232 bool RuleFeatureSet::InvalidationSetFeatures::hasIdClassOrAttribute() const { | 
| 1233 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty(); | 1233 return !classes.isEmpty() || !attributes.isEmpty() || !ids.isEmpty(); | 
| 1234 } | 1234 } | 
| 1235 | 1235 | 
| 1236 } // namespace blink | 1236 } // namespace blink | 
| OLD | NEW |