| Index: Source/core/css/ElementRuleCollector.cpp
|
| diff --git a/Source/core/css/ElementRuleCollector.cpp b/Source/core/css/ElementRuleCollector.cpp
|
| index e421fbb7e5f520afda79d359612f3b52af914737..633bb9f1e776d1cfce493bb8f99dae21b29ca7ca 100644
|
| --- a/Source/core/css/ElementRuleCollector.cpp
|
| +++ b/Source/core/css/ElementRuleCollector.cpp
|
| @@ -78,11 +78,11 @@ PassRefPtrWillBeRawPtr<CSSRuleList> ElementRuleCollector::matchedCSSRuleList()
|
| return m_cssRuleList.release();
|
| }
|
|
|
| -inline void ElementRuleCollector::addMatchedRule(const RuleData* rule, unsigned specificity, CascadeScope cascadeScope, CascadeOrder cascadeOrder, unsigned styleSheetIndex, const CSSStyleSheet* parentStyleSheet)
|
| +inline void ElementRuleCollector::addMatchedRule(const RuleData* rule, unsigned specificity, CascadeOrder cascadeOrder, unsigned styleSheetIndex, const CSSStyleSheet* parentStyleSheet)
|
| {
|
| if (!m_matchedRules)
|
| m_matchedRules = adoptPtrWillBeNoop(new WillBeHeapVector<MatchedRule, 32>);
|
| - m_matchedRules->append(MatchedRule(rule, specificity, cascadeScope, cascadeOrder, styleSheetIndex, parentStyleSheet));
|
| + m_matchedRules->append(MatchedRule(rule, specificity, cascadeOrder, styleSheetIndex, parentStyleSheet));
|
| }
|
|
|
| void ElementRuleCollector::clearMatchedRules()
|
| @@ -135,7 +135,7 @@ static bool rulesApplicableInCurrentTreeScope(const Element* element, const Cont
|
| return false;
|
| }
|
|
|
| -void ElementRuleCollector::collectMatchingRules(const MatchRequest& matchRequest, RuleRange& ruleRange, SelectorChecker::ContextFlags contextFlags, CascadeScope cascadeScope, CascadeOrder cascadeOrder)
|
| +void ElementRuleCollector::collectMatchingRules(const MatchRequest& matchRequest, RuleRange& ruleRange, SelectorChecker::ContextFlags contextFlags, CascadeOrder cascadeOrder)
|
| {
|
| ASSERT(matchRequest.ruleSet);
|
| ASSERT(m_context.element());
|
| @@ -144,11 +144,11 @@ void ElementRuleCollector::collectMatchingRules(const MatchRequest& matchRequest
|
| const AtomicString& pseudoId = element.shadowPseudoId();
|
| if (!pseudoId.isEmpty()) {
|
| ASSERT(element.isStyledElement());
|
| - collectMatchingRulesForList(matchRequest.ruleSet->shadowPseudoElementRules(pseudoId), contextFlags, ignoreCascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->shadowPseudoElementRules(pseudoId), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| }
|
|
|
| if (element.isVTTElement())
|
| - collectMatchingRulesForList(matchRequest.ruleSet->cuePseudoRules(), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->cuePseudoRules(), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| // Check whether other types of rules are applicable in the current tree scope. Criteria for this:
|
| // a) it's a UA rule
|
| // b) the tree scope allows author rules
|
| @@ -162,18 +162,18 @@ void ElementRuleCollector::collectMatchingRules(const MatchRequest& matchRequest
|
| // We need to collect the rules for id, class, tag, and everything else into a buffer and
|
| // then sort the buffer.
|
| if (element.hasID())
|
| - collectMatchingRulesForList(matchRequest.ruleSet->idRules(element.idForStyleResolution()), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->idRules(element.idForStyleResolution()), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| if (element.isStyledElement() && element.hasClass()) {
|
| for (size_t i = 0; i < element.classNames().size(); ++i)
|
| - collectMatchingRulesForList(matchRequest.ruleSet->classRules(element.classNames()[i]), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->classRules(element.classNames()[i]), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| }
|
|
|
| if (element.isLink())
|
| - collectMatchingRulesForList(matchRequest.ruleSet->linkPseudoClassRules(), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->linkPseudoClassRules(), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| if (SelectorChecker::matchesFocusPseudoClass(element))
|
| - collectMatchingRulesForList(matchRequest.ruleSet->focusPseudoClassRules(), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| - collectMatchingRulesForList(matchRequest.ruleSet->tagRules(element.localName()), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| - collectMatchingRulesForList(matchRequest.ruleSet->universalRules(), contextFlags, cascadeScope, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->focusPseudoClassRules(), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->tagRules(element.localName()), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| + collectMatchingRulesForList(matchRequest.ruleSet->universalRules(), contextFlags, cascadeOrder, matchRequest, ruleRange);
|
| }
|
|
|
| CSSRuleList* ElementRuleCollector::nestedRuleList(CSSRule* rule)
|
| @@ -276,7 +276,7 @@ inline bool ElementRuleCollector::ruleMatches(const RuleData& ruleData, const Co
|
| return true;
|
| }
|
|
|
| -void ElementRuleCollector::collectRuleIfMatches(const RuleData& ruleData, SelectorChecker::ContextFlags contextFlags, CascadeScope cascadeScope, CascadeOrder cascadeOrder, const MatchRequest& matchRequest, RuleRange& ruleRange)
|
| +void ElementRuleCollector::collectRuleIfMatches(const RuleData& ruleData, SelectorChecker::ContextFlags contextFlags, CascadeOrder cascadeOrder, const MatchRequest& matchRequest, RuleRange& ruleRange)
|
| {
|
| if (m_canUseFastReject && m_selectorFilter.fastRejectSelector<RuleData::maximumIdentifierCount>(ruleData.descendantSelectorIdentifierHashes()))
|
| return;
|
| @@ -308,7 +308,7 @@ void ElementRuleCollector::collectRuleIfMatches(const RuleData& ruleData, Select
|
| ruleRange.firstRuleIndex = ruleRange.lastRuleIndex;
|
|
|
| // Add this rule to our list of matched rules.
|
| - addMatchedRule(&ruleData, result.specificity, cascadeScope, cascadeOrder, matchRequest.styleSheetIndex, matchRequest.styleSheet);
|
| + addMatchedRule(&ruleData, result.specificity, cascadeOrder, matchRequest.styleSheetIndex, matchRequest.styleSheet);
|
| return;
|
| }
|
| }
|
| @@ -316,9 +316,6 @@ void ElementRuleCollector::collectRuleIfMatches(const RuleData& ruleData, Select
|
|
|
| static inline bool compareRules(const MatchedRule& matchedRule1, const MatchedRule& matchedRule2)
|
| {
|
| - if (matchedRule1.cascadeScope() != matchedRule2.cascadeScope())
|
| - return matchedRule1.cascadeScope() > matchedRule2.cascadeScope();
|
| -
|
| unsigned specificity1 = matchedRule1.specificity();
|
| unsigned specificity2 = matchedRule2.specificity();
|
| if (specificity1 != specificity2)
|
| @@ -343,7 +340,6 @@ bool ElementRuleCollector::hasAnyMatchingRules(RuleSet* ruleSet)
|
| // information about "scope".
|
| int firstRuleIndex = -1, lastRuleIndex = -1;
|
| RuleRange ruleRange(firstRuleIndex, lastRuleIndex);
|
| - // FIXME: Verify whether it's ok to ignore CascadeScope here.
|
| collectMatchingRules(MatchRequest(ruleSet), ruleRange, SelectorChecker::DefaultBehavior);
|
|
|
| return m_matchedRules && !m_matchedRules->isEmpty();
|
|
|