Index: trunk/Source/core/css/ElementRuleCollector.cpp |
=================================================================== |
--- trunk/Source/core/css/ElementRuleCollector.cpp (revision 201870) |
+++ trunk/Source/core/css/ElementRuleCollector.cpp (working copy) |
@@ -129,7 +129,7 @@ |
} |
template<typename RuleDataListType> |
-void ElementRuleCollector::collectMatchingRulesForList(const RuleDataListType* rules, const MatchRequest& matchRequest) |
+void ElementRuleCollector::collectMatchingRulesForList(const RuleDataListType* rules, CascadeOrder cascadeOrder, const MatchRequest& matchRequest) |
{ |
if (!rules) |
return; |
@@ -177,7 +177,7 @@ |
} |
matched++; |
- didMatchRule(ruleData, result, matchRequest); |
+ didMatchRule(ruleData, result, cascadeOrder, matchRequest); |
} |
if (StyleResolver* resolver = m_context.element()->document().styleResolver()) { |
@@ -187,7 +187,7 @@ |
} |
} |
-void ElementRuleCollector::collectMatchingRules(const MatchRequest& matchRequest, bool matchingTreeBoundaryRules) |
+void ElementRuleCollector::collectMatchingRules(const MatchRequest& matchRequest, CascadeOrder cascadeOrder, bool matchingTreeBoundaryRules) |
{ |
ASSERT(matchRequest.ruleSet); |
ASSERT(m_context.element()); |
@@ -196,11 +196,11 @@ |
const AtomicString& pseudoId = element.shadowPseudoId(); |
if (!pseudoId.isEmpty()) { |
ASSERT(element.isStyledElement()); |
- collectMatchingRulesForList(matchRequest.ruleSet->shadowPseudoElementRules(pseudoId), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->shadowPseudoElementRules(pseudoId), cascadeOrder, matchRequest); |
} |
if (element.isVTTElement()) |
- collectMatchingRulesForList(matchRequest.ruleSet->cuePseudoRules(), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->cuePseudoRules(), cascadeOrder, matchRequest); |
// Check whether other types of rules are applicable in the current tree scope. Criteria for this: |
// a) it's a UA rule |
// b) the rules comes from a scoped style sheet within the same tree scope |
@@ -213,23 +213,23 @@ |
// 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()), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->idRules(element.idForStyleResolution()), cascadeOrder, matchRequest); |
if (element.isStyledElement() && element.hasClass()) { |
for (size_t i = 0; i < element.classNames().size(); ++i) |
- collectMatchingRulesForList(matchRequest.ruleSet->classRules(element.classNames()[i]), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->classRules(element.classNames()[i]), cascadeOrder, matchRequest); |
} |
if (element.isLink()) |
- collectMatchingRulesForList(matchRequest.ruleSet->linkPseudoClassRules(), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->linkPseudoClassRules(), cascadeOrder, matchRequest); |
if (SelectorChecker::matchesFocusPseudoClass(element)) |
- collectMatchingRulesForList(matchRequest.ruleSet->focusPseudoClassRules(), matchRequest); |
- collectMatchingRulesForList(matchRequest.ruleSet->tagRules(element.localNameForSelectorMatching()), matchRequest); |
- collectMatchingRulesForList(matchRequest.ruleSet->universalRules(), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->focusPseudoClassRules(), cascadeOrder, matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->tagRules(element.localNameForSelectorMatching()), cascadeOrder, matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->universalRules(), cascadeOrder, matchRequest); |
} |
-void ElementRuleCollector::collectMatchingShadowHostRules(const MatchRequest& matchRequest, bool matchingTreeBoundaryRules) |
+void ElementRuleCollector::collectMatchingShadowHostRules(const MatchRequest& matchRequest, CascadeOrder cascadeOrder, bool matchingTreeBoundaryRules) |
{ |
- collectMatchingRulesForList(matchRequest.ruleSet->shadowHostRules(), matchRequest); |
+ collectMatchingRulesForList(matchRequest.ruleSet->shadowHostRules(), cascadeOrder, matchRequest); |
} |
template<class CSSRuleCollection> |
@@ -295,7 +295,7 @@ |
} |
} |
-void ElementRuleCollector::didMatchRule(const RuleData& ruleData, const SelectorChecker::MatchResult& result, const MatchRequest& matchRequest) |
+void ElementRuleCollector::didMatchRule(const RuleData& ruleData, const SelectorChecker::MatchResult& result, CascadeOrder cascadeOrder, const MatchRequest& matchRequest) |
{ |
PseudoId dynamicPseudo = result.dynamicPseudo; |
// If we're matching normal rules, set a pseudo bit if |
@@ -313,7 +313,7 @@ |
if (m_style && ruleData.containsUncommonAttributeSelector()) |
m_style->setUnique(); |
- m_matchedRules.append(MatchedRule(&ruleData, result.specificity, matchRequest.styleSheetIndex, matchRequest.styleSheet)); |
+ m_matchedRules.append(MatchedRule(&ruleData, result.specificity, cascadeOrder, matchRequest.styleSheetIndex, matchRequest.styleSheet)); |
} |
} |