| 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 r
ights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All r
ights reserved. |
| 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
| 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 } | 290 } |
| 291 | 291 |
| 292 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensurePseudoInvalidationSet(CSSSe
lector::PseudoType pseudoType, InvalidationType type) | 292 ALWAYS_INLINE InvalidationSet& RuleFeatureSet::ensurePseudoInvalidationSet(CSSSe
lector::PseudoType pseudoType, InvalidationType type) |
| 293 { | 293 { |
| 294 return ensureInvalidationSet(m_pseudoInvalidationSets, pseudoType, type); | 294 return ensureInvalidationSet(m_pseudoInvalidationSets, pseudoType, type); |
| 295 } | 295 } |
| 296 | 296 |
| 297 bool RuleFeatureSet::extractInvalidationSetFeature(const CSSSelector& selector,
InvalidationSetFeatures& features) | 297 bool RuleFeatureSet::extractInvalidationSetFeature(const CSSSelector& selector,
InvalidationSetFeatures& features) |
| 298 { | 298 { |
| 299 if (selector.match() == CSSSelector::Tag && selector.tagQName().localName()
!= starAtom) { | 299 if (selector.match() == CSSSelector::Tag && selector.tagQName().localName()
!= starAtom) { |
| 300 features.tagName = selector.tagQName().localName(); | 300 features.tagNames.append(selector.tagQName().localName()); |
| 301 return true; | 301 return true; |
| 302 } | 302 } |
| 303 if (selector.match() == CSSSelector::Id) { | 303 if (selector.match() == CSSSelector::Id) { |
| 304 features.id = selector.value(); | 304 features.ids.append(selector.value()); |
| 305 return true; | 305 return true; |
| 306 } | 306 } |
| 307 if (selector.match() == CSSSelector::Class) { | 307 if (selector.match() == CSSSelector::Class) { |
| 308 features.classes.append(selector.value()); | 308 features.classes.append(selector.value()); |
| 309 return true; | 309 return true; |
| 310 } | 310 } |
| 311 if (selector.isAttributeSelector()) { | 311 if (selector.isAttributeSelector()) { |
| 312 features.attributes.append(selector.attribute().localName()); | 312 features.attributes.append(selector.attribute().localName()); |
| 313 return true; | 313 return true; |
| 314 } | 314 } |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 invalidationSet.setTreeBoundaryCrossing(); | 519 invalidationSet.setTreeBoundaryCrossing(); |
| 520 if (features.insertionPointCrossing) | 520 if (features.insertionPointCrossing) |
| 521 invalidationSet.setInsertionPointCrossing(); | 521 invalidationSet.setInsertionPointCrossing(); |
| 522 if (features.invalidatesSlotted) | 522 if (features.invalidatesSlotted) |
| 523 invalidationSet.setInvalidatesSlotted(); | 523 invalidationSet.setInvalidatesSlotted(); |
| 524 if (features.forceSubtree) | 524 if (features.forceSubtree) |
| 525 invalidationSet.setWholeSubtreeInvalid(); | 525 invalidationSet.setWholeSubtreeInvalid(); |
| 526 if (features.contentPseudoCrossing || features.forceSubtree) | 526 if (features.contentPseudoCrossing || features.forceSubtree) |
| 527 return; | 527 return; |
| 528 | 528 |
| 529 if (!features.id.isEmpty()) | 529 for (const auto& id : features.ids) |
| 530 invalidationSet.addId(features.id); | 530 invalidationSet.addId(id); |
| 531 if (!features.tagName.isEmpty()) | 531 for (const auto& tagName : features.tagNames) |
| 532 invalidationSet.addTagName(features.tagName); | 532 invalidationSet.addTagName(tagName); |
| 533 for (const auto& className : features.classes) | 533 for (const auto& className : features.classes) |
| 534 invalidationSet.addClass(className); | 534 invalidationSet.addClass(className); |
| 535 for (const auto& attribute : features.attributes) | 535 for (const auto& attribute : features.attributes) |
| 536 invalidationSet.addAttribute(attribute); | 536 invalidationSet.addAttribute(attribute); |
| 537 if (features.customPseudoElement) | 537 if (features.customPseudoElement) |
| 538 invalidationSet.setCustomPseudoInvalid(); | 538 invalidationSet.setCustomPseudoInvalid(); |
| 539 } | 539 } |
| 540 | 540 |
| 541 // selector is the selector immediately to the left of the rightmost combinator. | 541 // selector is the selector immediately to the left of the rightmost combinator. |
| 542 // siblingFeatures is null if selector is not immediately to the left of a sibli
ng combinator. | 542 // siblingFeatures is null if selector is not immediately to the left of a sibli
ng combinator. |
| (...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 addFeaturesToInvalidationSet(universalSet.ensureSiblingDescendants(), de
scendantFeatures); | 939 addFeaturesToInvalidationSet(universalSet.ensureSiblingDescendants(), de
scendantFeatures); |
| 940 } | 940 } |
| 941 | 941 |
| 942 DEFINE_TRACE(RuleFeatureSet) | 942 DEFINE_TRACE(RuleFeatureSet) |
| 943 { | 943 { |
| 944 visitor->trace(siblingRules); | 944 visitor->trace(siblingRules); |
| 945 visitor->trace(uncommonAttributeRules); | 945 visitor->trace(uncommonAttributeRules); |
| 946 } | 946 } |
| 947 | 947 |
| 948 } // namespace blink | 948 } // namespace blink |
| OLD | NEW |