| 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 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 | 311 |
| 312 if (!contentValue->isValueList()) | 312 if (!contentValue->isValueList()) |
| 313 return; | 313 return; |
| 314 | 314 |
| 315 for (auto& item : toCSSValueList(*contentValue)) { | 315 for (auto& item : toCSSValueList(*contentValue)) { |
| 316 if (!item->isFunctionValue()) | 316 if (!item->isFunctionValue()) |
| 317 continue; | 317 continue; |
| 318 CSSFunctionValue* functionValue = toCSSFunctionValue(item.get()); | 318 CSSFunctionValue* functionValue = toCSSFunctionValue(item.get()); |
| 319 if (functionValue->functionType() != CSSValueAttr) | 319 if (functionValue->functionType() != CSSValueAttr) |
| 320 continue; | 320 continue; |
| 321 ensureAttributeInvalidationSet(AtomicString(toCSSPrimitiveValue(function
Value->item(0))->getStringValue())); | 321 ensureAttributeInvalidationSet(AtomicString(toCSSPrimitiveValue(function
Value->item(0))->getStringValue())).setInvalidatesSelf(); |
| 322 } | 322 } |
| 323 } | 323 } |
| 324 | 324 |
| 325 std::pair<const CSSSelector*, RuleFeatureSet::UseFeaturesType> | 325 std::pair<const CSSSelector*, RuleFeatureSet::UseFeaturesType> |
| 326 RuleFeatureSet::extractInvalidationSetFeatures(const CSSSelector& selector, Inva
lidationSetFeatures& features, bool negated) | 326 RuleFeatureSet::extractInvalidationSetFeatures(const CSSSelector& selector, Inva
lidationSetFeatures& features, bool negated) |
| 327 { | 327 { |
| 328 bool foundFeatures = false; | 328 bool foundFeatures = false; |
| 329 for (const CSSSelector* current = &selector; current; current = current->tag
History()) { | 329 for (const CSSSelector* current = &selector; current; current = current->tag
History()) { |
| 330 if (!negated) | 330 if (!negated) |
| 331 foundFeatures |= extractInvalidationSetFeature(*current, features); | 331 foundFeatures |= extractInvalidationSetFeature(*current, features); |
| 332 // Initialize the entry in the invalidation set map, if supported. | 332 // Initialize the entry in the invalidation set map, if supported. |
| 333 if (!invalidationSetForSelector(*current)) { | 333 if (InvalidationSet* invalidationSet = invalidationSetForSelector(*curre
nt)) { |
| 334 invalidationSet->setInvalidatesSelf(); |
| 335 } else { |
| 334 if (requiresSubtreeInvalidation(*current)) { | 336 if (requiresSubtreeInvalidation(*current)) { |
| 335 // Fall back to use subtree invalidations, even for features in
the | 337 // Fall back to use subtree invalidations, even for features in
the |
| 336 // rightmost compound selector. Returning the start &selector he
re | 338 // rightmost compound selector. Returning the start &selector he
re |
| 337 // will make addFeaturesToInvalidationSets start marking invalid
ation | 339 // will make addFeaturesToInvalidationSets start marking invalid
ation |
| 338 // sets for subtree recalc for features in the rightmost compoun
d | 340 // sets for subtree recalc for features in the rightmost compoun
d |
| 339 // selector. | 341 // selector. |
| 340 return std::make_pair(&selector, ForceSubtree); | 342 return std::make_pair(&selector, ForceSubtree); |
| 341 } | 343 } |
| 342 if (const CSSSelectorList* selectorList = current->selectorList()) { | 344 if (const CSSSelectorList* selectorList = current->selectorList()) { |
| 343 ASSERT(supportsInvalidationWithSelectorList(current->pseudoType(
))); | 345 ASSERT(supportsInvalidationWithSelectorList(current->pseudoType(
))); |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 visitor->trace(siblingRules); | 587 visitor->trace(siblingRules); |
| 586 visitor->trace(uncommonAttributeRules); | 588 visitor->trace(uncommonAttributeRules); |
| 587 visitor->trace(m_classInvalidationSets); | 589 visitor->trace(m_classInvalidationSets); |
| 588 visitor->trace(m_attributeInvalidationSets); | 590 visitor->trace(m_attributeInvalidationSets); |
| 589 visitor->trace(m_idInvalidationSets); | 591 visitor->trace(m_idInvalidationSets); |
| 590 visitor->trace(m_pseudoInvalidationSets); | 592 visitor->trace(m_pseudoInvalidationSets); |
| 591 #endif | 593 #endif |
| 592 } | 594 } |
| 593 | 595 |
| 594 } // namespace blink | 596 } // namespace blink |
| OLD | NEW |