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 |