Changeset 140530 in webkit
- Timestamp:
- Jan 23, 2013 2:26:04 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r140529 r140530 1 2013-01-23 Andreas Kling <akling@apple.com> 2 3 Pass CSSSelector pointers around as const after parsing stage. 4 <http://webkit.org/b/107645> 5 6 Reviewed by Antti Koivisto. 7 8 Have CSSSelectorList vend const CSSSelector* and make the style resolution code 9 operate on const pointers instead. 10 11 This gives us some compile-time confidence that nobody is changing the selectors 12 after we've parsed them. 13 14 * css/CSSSelector.cpp: 15 (WebCore::CSSSelector::operator==): 16 (WebCore::CSSSelector::selectorText): 17 (WebCore::CSSSelector::parseNth): 18 (WebCore::CSSSelector::matchNth): 19 * css/CSSSelector.h: 20 (CSSSelector): 21 (WebCore::CSSSelector::tagHistory): 22 (WebCore::CSSSelector::selectorList): 23 * css/CSSSelectorList.cpp: 24 (WebCore::CSSSelectorList::selectorsText): 25 (WebCore::forEachTagSelector): 26 (WebCore::forEachSelector): 27 (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()): 28 (WebCore::SelectorHasInvalidSelectorFunctor::operator()): 29 * css/CSSSelectorList.h: 30 (WebCore::CSSSelectorList::first): 31 (CSSSelectorList): 32 (WebCore::CSSSelectorList::selectorAt): 33 (WebCore::CSSSelectorList::indexOfNextSelectorAfter): 34 (WebCore::CSSSelectorList::next): 35 * css/CSSStyleRule.cpp: 36 (WebCore::CSSStyleRule::generateSelectorText): 37 * css/RuleSet.cpp: 38 (WebCore::selectorListContainsUncommonAttributeSelector): 39 (WebCore::collectFeaturesFromRuleData): 40 * css/RuleSet.h: 41 (WebCore::RuleData::selector): 42 (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair): 43 (RuleSetSelectorPair): 44 * css/SelectorChecker.cpp: 45 (WebCore::SelectorChecker::matches): 46 (WebCore::SelectorChecker::match): 47 (WebCore::SelectorChecker::checkOne): 48 (WebCore::SelectorChecker::checkScrollbarPseudoClass): 49 (WebCore::SelectorChecker::determineLinkMatchType): 50 * css/SelectorChecker.h: 51 (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): 52 (SelectorCheckingContext): 53 (SelectorChecker): 54 * css/StyleInvalidationAnalysis.cpp: 55 (WebCore::determineSelectorScopes): 56 * css/StyleResolver.cpp: 57 (WebCore::StyleResolver::collectMatchingRulesForRegion): 58 (WebCore::StyleResolver::checkRegionSelector): 59 * css/StyleResolver.h: 60 (StyleResolver): 61 * dom/SelectorQuery.cpp: 62 (WebCore::SelectorDataList::initialize): 63 (WebCore::SelectorDataList::execute): 64 * dom/SelectorQuery.h: 65 (WebCore::SelectorDataList::SelectorData::SelectorData): 66 (SelectorData): 67 * html/shadow/ContentDistributor.cpp: 68 (WebCore::ContentDistributor::collectSelectFeatureSetFrom): 69 * html/shadow/ContentSelectorQuery.cpp: 70 (WebCore::ContentSelectorChecker::checkContentSelector): 71 (WebCore::ContentSelectorDataList::initialize): 72 * html/shadow/ContentSelectorQuery.h: 73 (ContentSelectorChecker): 74 (ContentSelectorDataList): 75 * html/shadow/HTMLContentElement.cpp: 76 (WebCore::validateSubSelector): 77 (WebCore::validateSelector): 78 (WebCore::HTMLContentElement::validateSelect): 79 * inspector/InspectorCSSAgent.cpp: 80 (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList): 81 * inspector/InspectorStyleSheet.cpp: 82 (WebCore::InspectorStyleSheet::buildObjectForSelectorList): 83 1 84 2013-01-23 Sergio Villar Senin <svillar@igalia.com> 2 85 -
trunk/Source/WebCore/css/CSSSelector.cpp
r140371 r140530 561 561 } 562 562 563 bool CSSSelector::operator==(const CSSSelector& other) 563 bool CSSSelector::operator==(const CSSSelector& other) const 564 564 { 565 565 const CSSSelector* sel1 = this; … … 617 617 switch (cs->pseudoType()) { 618 618 case PseudoNot: 619 if ( CSSSelectorList* selectorList = cs->selectorList())619 if (const CSSSelectorList* selectorList = cs->selectorList()) 620 620 str.append(selectorList->first()->selectorText()); 621 621 str.append(')'); … … 630 630 break; 631 631 case PseudoAny: { 632 CSSSelector* firstSubSelector = cs->selectorList()->first();633 for ( CSSSelector* subSelector = firstSubSelector; subSelector; subSelector = CSSSelectorList::next(subSelector)) {632 const CSSSelector* firstSubSelector = cs->selectorList()->first(); 633 for (const CSSSelector* subSelector = firstSubSelector; subSelector; subSelector = CSSSelectorList::next(subSelector)) { 634 634 if (subSelector != firstSubSelector) 635 635 str.append(','); … … 689 689 } 690 690 691 if ( CSSSelector* tagHistory = cs->tagHistory()) {691 if (const CSSSelector* tagHistory = cs->tagHistory()) { 692 692 String tagHistoryText = tagHistory->selectorText(); 693 693 switch (cs->relation()) { … … 728 728 } 729 729 730 bool CSSSelector::parseNth() 730 bool CSSSelector::parseNth() const 731 731 { 732 732 if (!m_hasRareData) … … 738 738 } 739 739 740 bool CSSSelector::matchNth(int count) 740 bool CSSSelector::matchNth(int count) const 741 741 { 742 742 ASSERT(m_hasRareData); -
trunk/Source/WebCore/css/CSSSelector.h
r140383 r140530 48 48 49 49 // checks if the 2 selectors (including sub selectors) agree. 50 bool operator==(const CSSSelector&) ;50 bool operator==(const CSSSelector&) const; 51 51 52 52 // tag == -1 means apply to all elements (Selector = *) … … 199 199 // Selectors are kept in an array by CSSSelectorList. The next component of the selector is 200 200 // the next item in the array. 201 CSSSelector* tagHistory() const { return m_isLastInTagHistory ? 0 : const_cast<CSSSelector*>(this + 1); }201 const CSSSelector* tagHistory() const { return m_isLastInTagHistory ? 0 : const_cast<CSSSelector*>(this + 1); } 202 202 203 203 const QualifiedName& tagQName() const; … … 205 205 const QualifiedName& attribute() const; 206 206 const AtomicString& argument() const { return m_hasRareData ? m_data.m_rareData->m_argument : nullAtom; } 207 CSSSelectorList* selectorList() const { return m_hasRareData ? m_data.m_rareData->m_selectorList.get() : 0; }207 const CSSSelectorList* selectorList() const { return m_hasRareData ? m_data.m_rareData->m_selectorList.get() : 0; } 208 208 209 209 void setValue(const AtomicString&); … … 212 212 void setSelectorList(PassOwnPtr<CSSSelectorList>); 213 213 214 bool parseNth() ;215 bool matchNth(int count) ;214 bool parseNth() const; 215 bool matchNth(int count) const; 216 216 217 217 bool matchesPseudoElement() const; … … 238 238 239 239 private: 240 bool m_parsedNth: 1; // Used for :nth-*240 mutable bool m_parsedNth : 1; // Used for :nth-* 241 241 bool m_isLastInSelectorList : 1; 242 242 bool m_isLastInTagHistory : 1; -
trunk/Source/WebCore/css/CSSSelectorList.cpp
r140371 r140530 135 135 StringBuilder result; 136 136 137 for ( CSSSelector* s = first(); s; s = next(s)) {137 for (const CSSSelector* s = first(); s; s = next(s)) { 138 138 if (s != first()) 139 139 result.append(", "); … … 151 151 152 152 template <typename Functor> 153 static bool forEachTagSelector(Functor& functor, CSSSelector* selector)153 static bool forEachTagSelector(Functor& functor, const CSSSelector* selector) 154 154 { 155 155 ASSERT(selector); … … 158 158 if (functor(selector)) 159 159 return true; 160 if ( CSSSelectorList* selectorList = selector->selectorList()) {161 for ( CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) {160 if (const CSSSelectorList* selectorList = selector->selectorList()) { 161 for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) { 162 162 if (forEachTagSelector(functor, subSelector)) 163 163 return true; … … 172 172 static bool forEachSelector(Functor& functor, const CSSSelectorList* selectorList) 173 173 { 174 for ( CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(selector)) {174 for (const CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(selector)) { 175 175 if (forEachTagSelector(functor, selector)) 176 176 return true; … … 182 182 class SelectorNeedsNamespaceResolutionFunctor { 183 183 public: 184 bool operator()( CSSSelector* selector)184 bool operator()(const CSSSelector* selector) 185 185 { 186 186 if (selector->m_match == CSSSelector::Tag && selector->tagQName().prefix() != nullAtom && selector->tagQName().prefix() != starAtom) … … 200 200 class SelectorHasInvalidSelectorFunctor { 201 201 public: 202 bool operator()( CSSSelector* selector)202 bool operator()(const CSSSelector* selector) 203 203 { 204 204 return selector->isUnknownPseudoElement() || selector->isCustomPseudoElement(); -
trunk/Source/WebCore/css/CSSSelectorList.h
r134693 r140530 44 44 void adoptSelectorVector(Vector<OwnPtr<CSSParserSelector> >& selectorVector); 45 45 46 CSSSelector* first() const { return m_selectorArray ? m_selectorArray : 0; }47 static CSSSelector* next(CSSSelector*);46 const CSSSelector* first() const { return m_selectorArray ? m_selectorArray : 0; } 47 static const CSSSelector* next(const CSSSelector*); 48 48 bool hasOneSelector() const { return m_selectorArray && !next(m_selectorArray); } 49 CSSSelector* selectorAt(size_t index) const { return &m_selectorArray[index]; }49 const CSSSelector* selectorAt(size_t index) const { return &m_selectorArray[index]; } 50 50 51 51 size_t indexOfNextSelectorAfter(size_t index) const 52 52 { 53 CSSSelector* current = selectorAt(index);53 const CSSSelector* current = selectorAt(index); 54 54 current = next(current); 55 55 if (!current) … … 74 74 }; 75 75 76 inline CSSSelector* CSSSelectorList::next(CSSSelector* current)76 inline const CSSSelector* CSSSelectorList::next(const CSSSelector* current) 77 77 { 78 78 // Skip subparts of compound selectors. -
trunk/Source/WebCore/css/CSSStyleRule.cpp
r135465 r140530 70 70 { 71 71 StringBuilder builder; 72 for ( CSSSelector* s = m_styleRule->selectorList().first(); s; s = CSSSelectorList::next(s)) {73 if (s != m_styleRule->selectorList().first())72 for (const CSSSelector* selector = m_styleRule->selectorList().first(); selector; selector = CSSSelectorList::next(selector)) { 73 if (selector != m_styleRule->selectorList().first()) 74 74 builder.append(", "); 75 builder.append(s ->selectorText());75 builder.append(selector->selectorText()); 76 76 } 77 77 return builder.toString(); -
trunk/Source/WebCore/css/RuleSet.cpp
r140505 r140530 76 76 static inline bool selectorListContainsUncommonAttributeSelector(const CSSSelector* selector) 77 77 { 78 CSSSelectorList* selectorList = selector->selectorList();78 const CSSSelectorList* selectorList = selector->selectorList(); 79 79 if (!selectorList) 80 80 return false; 81 for ( CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(selector)) {82 for ( CSSSelector* component = selector; component; component = component->tagHistory()) {81 for (const CSSSelector* selector = selectorList->first(); selector; selector = CSSSelectorList::next(selector)) { 82 for (const CSSSelector* component = selector; component; component = component->tagHistory()) { 83 83 if (component->isAttributeSelector()) 84 84 return true; … … 191 191 { 192 192 bool foundSiblingSelector = false; 193 for ( CSSSelector* selector = ruleData.selector(); selector; selector = selector->tagHistory()) {193 for (const CSSSelector* selector = ruleData.selector(); selector; selector = selector->tagHistory()) { 194 194 features.collectFeaturesFromSelector(selector); 195 195 196 if ( CSSSelectorList* selectorList = selector->selectorList()) {197 for ( CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) {196 if (const CSSSelectorList* selectorList = selector->selectorList()) { 197 for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = CSSSelectorList::next(subSelector)) { 198 198 if (!foundSiblingSelector && selector->isSiblingSelector()) 199 199 foundSiblingSelector = true; -
trunk/Source/WebCore/css/RuleSet.h
r140371 r140530 60 60 unsigned position() const { return m_position; } 61 61 StyleRule* rule() const { return m_rule; } 62 CSSSelector* selector() const { return m_rule->selectorList().selectorAt(m_selectorIndex); }62 const CSSSelector* selector() const { return m_rule->selectorList().selectorAt(m_selectorIndex); } 63 63 unsigned selectorIndex() const { return m_selectorIndex; } 64 64 … … 160 160 161 161 struct RuleSetSelectorPair { 162 RuleSetSelectorPair( CSSSelector* selector, PassOwnPtr<RuleSet> ruleSet) : selector(selector), ruleSet(ruleSet) { }162 RuleSetSelectorPair(const CSSSelector* selector, PassOwnPtr<RuleSet> ruleSet) : selector(selector), ruleSet(ruleSet) { } 163 163 RuleSetSelectorPair(const RuleSetSelectorPair& rs) : selector(rs.selector), ruleSet(const_cast<RuleSetSelectorPair*>(&rs)->ruleSet.release()) { } 164 164 void reportMemoryUsage(MemoryObjectInfo*) const; 165 165 166 CSSSelector* selector;166 const CSSSelector* selector; 167 167 OwnPtr<RuleSet> ruleSet; 168 168 }; -
trunk/Source/WebCore/css/SelectorChecker.cpp
r140382 r140530 70 70 } 71 71 72 bool SelectorChecker::matches( CSSSelector* sel, Element* element, bool isFastCheckableSelector) const72 bool SelectorChecker::matches(const CSSSelector* selector, Element* element, bool isFastCheckableSelector) const 73 73 { 74 74 if (isFastCheckableSelector && !element->isSVGElement()) { 75 if (!fastCheckRightmostSelector(sel , element, VisitedMatchDisabled))76 return false; 77 return fastCheck(sel , element);75 if (!fastCheckRightmostSelector(selector, element, VisitedMatchDisabled)) 76 return false; 77 return fastCheck(selector, element); 78 78 } 79 79 80 80 PseudoId ignoreDynamicPseudo = NOPSEUDO; 81 return match(SelectorCheckingContext(sel , element, SelectorChecker::VisitedMatchDisabled), ignoreDynamicPseudo, DOMSiblingTraversalStrategy()) == SelectorMatches;81 return match(SelectorCheckingContext(selector, element, SelectorChecker::VisitedMatchDisabled), ignoreDynamicPseudo, DOMSiblingTraversalStrategy()) == SelectorMatches; 82 82 } 83 83 … … 281 281 282 282 // Prepare next selector 283 CSSSelector* historySelector = context.selector->tagHistory();283 const CSSSelector* historySelector = context.selector->tagHistory(); 284 284 if (!historySelector) 285 285 return SelectorMatches; … … 474 474 { 475 475 Element* const & element = context.element; 476 CSSSelector* const & selector = context.selector;476 const CSSSelector* const & selector = context.selector; 477 477 ASSERT(element); 478 478 ASSERT(selector); … … 502 502 // Handle :not up front. 503 503 if (selector->pseudoType() == CSSSelector::PseudoNot) { 504 CSSSelectorList* selectorList = selector->selectorList();504 const CSSSelectorList* selectorList = selector->selectorList(); 505 505 506 506 // FIXME: We probably should fix the parser and make it never produce :not rules with missing selector list. … … 904 904 905 905 PseudoId ignoreDynamicPseudo = NOPSEUDO; 906 CSSSelector* const & selector = context.selector;906 const CSSSelector* const & selector = context.selector; 907 907 for (subContext.selector = selector->selectorList()->first(); subContext.selector; subContext.selector = CSSSelectorList::next(subContext.selector)) { 908 908 if (match(subContext, ignoreDynamicPseudo, siblingTraversalStrategy) == SelectorMatches) … … 916 916 } 917 917 918 bool SelectorChecker::checkScrollbarPseudoClass(Document* document, CSSSelector* sel) const918 bool SelectorChecker::checkScrollbarPseudoClass(Document* document, const CSSSelector* selector) const 919 919 { 920 920 RenderScrollbar* scrollbar = RenderScrollbar::scrollbarForStyleResolve(); … … 923 923 // FIXME: This is a temporary hack for resizers and scrollbar corners. Eventually :window-inactive should become a real 924 924 // pseudo class and just apply to everything. 925 if (sel ->pseudoType() == CSSSelector::PseudoWindowInactive)925 if (selector->pseudoType() == CSSSelector::PseudoWindowInactive) 926 926 return !document->page()->focusController()->isActive(); 927 927 … … 929 929 return false; 930 930 931 ASSERT(sel ->m_match == CSSSelector::PseudoClass);932 switch (sel ->pseudoType()) {931 ASSERT(selector->m_match == CSSSelector::PseudoClass); 932 switch (selector->pseudoType()) { 933 933 case CSSSelector::PseudoEnabled: 934 934 return scrollbar->enabled(); … … 1025 1025 { 1026 1026 // :not(:visited) is equivalent to :link. Parser enforces that :not can't nest. 1027 CSSSelectorList* selectorList = selector->selectorList();1027 const CSSSelectorList* selectorList = selector->selectorList(); 1028 1028 if (!selectorList) 1029 1029 break; 1030 1030 1031 for ( CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = subSelector->tagHistory()) {1031 for (const CSSSelector* subSelector = selectorList->first(); subSelector; subSelector = subSelector->tagHistory()) { 1032 1032 CSSSelector::PseudoType subType = subSelector->pseudoType(); 1033 1033 if (subType == CSSSelector::PseudoVisited) -
trunk/Source/WebCore/css/SelectorChecker.h
r140371 r140530 53 53 struct SelectorCheckingContext { 54 54 // Initial selector constructor 55 SelectorCheckingContext( CSSSelector* selector, Element* element, VisitedMatchType visitedMatchType)55 SelectorCheckingContext(const CSSSelector* selector, Element* element, VisitedMatchType visitedMatchType) 56 56 : selector(selector) 57 57 , element(element) … … 66 66 { } 67 67 68 CSSSelector* selector;68 const CSSSelector* selector; 69 69 Element* element; 70 70 const ContainerNode* scope; … … 78 78 }; 79 79 80 bool matches( CSSSelector*, Element*, bool isFastCheckableSelector = false) const;80 bool matches(const CSSSelector*, Element*, bool isFastCheckableSelector = false) const; 81 81 template<typename SiblingTraversalStrategy> 82 82 Match match(const SelectorCheckingContext&, PseudoId&, const SiblingTraversalStrategy&) const; … … 102 102 103 103 private: 104 bool checkScrollbarPseudoClass(Document*, CSSSelector*) const;104 bool checkScrollbarPseudoClass(Document*, const CSSSelector*) const; 105 105 static bool isFrameFocused(const Element*); 106 106 -
trunk/Source/WebCore/css/StyleInvalidationAnalysis.cpp
r137406 r140530 45 45 static bool determineSelectorScopes(const CSSSelectorList& selectorList, HashSet<AtomicStringImpl*>& idScopes, HashSet<AtomicStringImpl*>& classScopes) 46 46 { 47 for ( CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) {48 CSSSelector* scopeSelector = 0;47 for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) { 48 const CSSSelector* scopeSelector = 0; 49 49 // This picks the widest scope, not the narrowest, to minimize the number of found scopes. 50 for ( CSSSelector* current = selector; current; current = current->tagHistory()) {50 for (const CSSSelector* current = selector; current; current = current->tagHistory()) { 51 51 // Prefer ids over classes. 52 52 if (current->m_match == CSSSelector::Id) -
trunk/Source/WebCore/css/StyleResolver.cpp
r140371 r140530 698 698 unsigned size = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.size(); 699 699 for (unsigned i = 0; i < size; ++i) { 700 CSSSelector* regionSelector = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.at(i).selector;700 const CSSSelector* regionSelector = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.at(i).selector; 701 701 if (checkRegionSelector(regionSelector, static_cast<Element*>(m_regionForStyling->node()))) { 702 702 RuleSet* regionRules = matchRequest.ruleSet->m_regionSelectorsAndRuleSets.at(i).ruleSet.get(); … … 2295 2295 } 2296 2296 2297 bool StyleResolver::checkRegionSelector( CSSSelector* regionSelector, Element* regionElement)2297 bool StyleResolver::checkRegionSelector(const CSSSelector* regionSelector, Element* regionElement) 2298 2298 { 2299 2299 if (!regionSelector || !regionElement) … … 2302 2302 m_pseudoStyle = NOPSEUDO; 2303 2303 2304 for ( CSSSelector* s = regionSelector; s; s = CSSSelectorList::next(s))2304 for (const CSSSelector* s = regionSelector; s; s = CSSSelectorList::next(s)) 2305 2305 if (m_selectorChecker.matches(s, regionElement)) 2306 2306 return true; -
trunk/Source/WebCore/css/StyleResolver.h
r140173 r140530 374 374 375 375 bool ruleMatches(const RuleData&, const ContainerNode* scope); 376 bool checkRegionSelector( CSSSelector* regionSelector, Element* regionElement);376 bool checkRegionSelector(const CSSSelector* regionSelector, Element* regionElement); 377 377 void applyMatchedProperties(const MatchResult&, const Element*); 378 378 enum StyleApplicationPass { -
trunk/Source/WebCore/dom/SelectorQuery.cpp
r139406 r140530 41 41 42 42 unsigned selectorCount = 0; 43 for ( CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector))43 for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) 44 44 selectorCount++; 45 45 46 46 m_selectors.reserveInitialCapacity(selectorCount); 47 for ( CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector))47 for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) 48 48 m_selectors.uncheckedAppend(SelectorData(selector, SelectorChecker::isFastCheckableSelector(selector))); 49 49 } … … 108 108 if (canUseIdLookup(rootNode)) { 109 109 ASSERT(m_selectors.size() == 1); 110 CSSSelector* selector = m_selectors[0].selector;110 const CSSSelector* selector = m_selectors[0].selector; 111 111 Element* element = rootNode->treeScope()->getElementById(selector->value()); 112 112 if (!element || !(isTreeScopeRoot(rootNode) || element->isDescendantOf(rootNode))) -
trunk/Source/WebCore/dom/SelectorQuery.h
r123451 r140530 49 49 private: 50 50 struct SelectorData { 51 SelectorData( CSSSelector* selector, bool isFastCheckable) : selector(selector), isFastCheckable(isFastCheckable) { }52 CSSSelector* selector;51 SelectorData(const CSSSelector* selector, bool isFastCheckable) : selector(selector), isFastCheckable(isFastCheckable) { } 52 const CSSSelector* selector; 53 53 bool isFastCheckable; 54 54 }; -
trunk/Source/WebCore/html/shadow/ContentDistributor.cpp
r140371 r140530 410 410 continue; 411 411 const CSSSelectorList& list = toHTMLContentElement(element)->selectorList(); 412 for ( CSSSelector* selector = list.first(); selector; selector = CSSSelectorList::next(selector)) {413 for ( CSSSelector* component = selector; component; component = component->tagHistory())412 for (const CSSSelector* selector = list.first(); selector; selector = CSSSelectorList::next(selector)) { 413 for (const CSSSelector* component = selector; component; component = component->tagHistory()) 414 414 m_selectFeatures.collectFeaturesFromSelector(component); 415 415 } -
trunk/Source/WebCore/html/shadow/ContentSelectorQuery.cpp
r140371 r140530 42 42 } 43 43 44 bool ContentSelectorChecker::checkContentSelector( CSSSelector* selector, const Vector<RefPtr<Node> >& siblings, int nth) const44 bool ContentSelectorChecker::checkContentSelector(const CSSSelector* selector, const Vector<RefPtr<Node> >& siblings, int nth) const 45 45 { 46 46 SelectorChecker::SelectorCheckingContext context(selector, toElement(siblings[nth].get()), SelectorChecker::VisitedMatchEnabled); … … 52 52 void ContentSelectorDataList::initialize(const CSSSelectorList& selectors) 53 53 { 54 for ( CSSSelector* selector = selectors.first(); selector; selector = CSSSelectorList::next(selector))54 for (const CSSSelector* selector = selectors.first(); selector; selector = CSSSelectorList::next(selector)) 55 55 m_selectors.append(selector); 56 56 } -
trunk/Source/WebCore/html/shadow/ContentSelectorQuery.h
r138571 r140530 48 48 ContentSelectorChecker(Document*); 49 49 50 bool checkContentSelector( CSSSelector*, const Vector<RefPtr<Node> >& siblings, int nthNode) const;50 bool checkContentSelector(const CSSSelector*, const Vector<RefPtr<Node> >& siblings, int nthNode) const; 51 51 private: 52 52 SelectorChecker m_selectorChecker; … … 59 59 60 60 private: 61 Vector< CSSSelector*> m_selectors;61 Vector<const CSSSelector*> m_selectors; 62 62 }; 63 63 -
trunk/Source/WebCore/html/shadow/HTMLContentElement.cpp
r140371 r140530 118 118 } 119 119 120 static bool validateSubSelector( CSSSelector* selector)120 static bool validateSubSelector(const CSSSelector* selector) 121 121 { 122 122 switch (selector->m_match) { … … 163 163 } 164 164 165 static bool validateSelector( CSSSelector* selector)165 static bool validateSelector(const CSSSelector* selector) 166 166 { 167 167 ASSERT(selector); … … 170 170 return false; 171 171 172 CSSSelector* prevSubSelector = selector;173 CSSSelector* subSelector = selector->tagHistory();172 const CSSSelector* prevSubSelector = selector; 173 const CSSSelector* subSelector = selector->tagHistory(); 174 174 175 175 while (subSelector) { … … 196 196 return false; 197 197 198 for ( CSSSelector* selector = m_selectorList.first(); selector; selector = m_selectorList.next(selector)) {198 for (const CSSSelector* selector = m_selectorList.first(); selector; selector = m_selectorList.next(selector)) { 199 199 if (!validateSelector(selector)) 200 200 return false; -
trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp
r138457 r140530 1164 1164 const CSSSelectorList& selectorList = rule->styleRule()->selectorList(); 1165 1165 long index = 0; 1166 for ( CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) {1166 for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) { 1167 1167 ExceptionCode ec; 1168 1168 bool matched = element->webkitMatchesSelector(selector->selectorText(), ec); -
trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp
r139866 r140530 995 995 selectors = TypeBuilder::Array<String>::create(); 996 996 const CSSSelectorList& selectorList = rule->styleRule()->selectorList(); 997 for ( CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector))997 for (const CSSSelector* selector = selectorList.first(); selector; selector = CSSSelectorList::next(selector)) 998 998 selectors->addItem(selector->selectorText()); 999 999 }
Note: See TracChangeset
for help on using the changeset viewer.