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 we really just matched // a pseudo-element. if (dynamicPseudo != PseudoIdNone && m_pseudoStyleRequest.pseudoId == PseudoIdNone) { if (m_mode == SelectorChecker::CollectingCSSRules || m_mode == SelectorChecker::CollectingStyleRules) return; // FIXME: Matching should not modify the style directly. if (!m_style || dynamicPseudo >= FirstInternalPseudoId) return; if ((dynamicPseudo == PseudoIdBefore || dynamicPseudo == PseudoIdAfter) && !ruleData.rule()->properties().hasProperty(CSSPropertyContent)) return; m_style->setHasPseudoStyle(dynamicPseudo); } else { if (m_style && ruleData.containsUncommonAttributeSelector()) m_style->setUnique(); m_matchedRules.append( MatchedRule(&ruleData, result.specificity, cascadeOrder, matchRequest.styleSheetIndex, matchRequest.styleSheet)); } }
inline void ElementRuleCollector::addMatchedRule(const RuleData* rule, CascadeScope cascadeScope, CascadeOrder cascadeOrder) { if (!m_matchedRules) m_matchedRules = adoptPtr(new Vector<MatchedRule, 32>); m_matchedRules->append(MatchedRule(rule, cascadeScope, cascadeOrder)); }
inline void ElementRuleCollector::addMatchedRule(const RuleData* rule, CascadeOrder cascadeOrder, unsigned styleSheetIndex, const CSSStyleSheet* parentStyleSheet) { if (!m_matchedRules) m_matchedRules = adoptPtr(new Vector<MatchedRule, 32>); m_matchedRules->append(MatchedRule(rule, cascadeOrder, styleSheetIndex, parentStyleSheet)); }
inline void ElementRuleCollector::addMatchedRule(const RuleData* rule, unsigned specificity, CascadeScope cascadeScope, 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)); }