Index: Source/core/css/TreeBoundaryCrossingRules.h |
diff --git a/Source/core/css/TreeBoundaryCrossingRules.h b/Source/core/css/TreeBoundaryCrossingRules.h |
index d08c68282503e1b9d5494153654a75d4f59aa095..64c2970e4c3b8f1ac73ee67bc342adb9b1384a8f 100644 |
--- a/Source/core/css/TreeBoundaryCrossingRules.h |
+++ b/Source/core/css/TreeBoundaryCrossingRules.h |
@@ -32,28 +32,29 @@ |
namespace WebCore { |
+class CSSStyleSheet; |
class ContainerNode; |
+class ElementRuleCollector; |
class RuleFeatureSet; |
class TreeBoundaryCrossingRules { |
DISALLOW_ALLOCATION(); |
public: |
- void addRule(StyleRule*, size_t selectorIndex, ContainerNode* scopingNode, AddRuleFlags); |
- void clear() { m_treeBoundaryCrossingRuleSetMap.clear(); } |
+ void addTreeBoundaryCrossingRules(const RuleSet&, ContainerNode& scope, CSSStyleSheet*); |
+ |
void reset(const ContainerNode* scopingNode); |
- bool isEmpty() const { return m_treeBoundaryCrossingRuleSetMap.isEmpty(); } |
void collectFeaturesTo(RuleFeatureSet&); |
- |
- DocumentOrderedList::iterator begin() { return m_scopingNodes.begin(); } |
- DocumentOrderedList::iterator end() { return m_scopingNodes.end(); } |
- size_t size() const { return m_scopingNodes.size(); } |
- RuleSet* ruleSetScopedBy(const ContainerNode* scopingNode) { return m_treeBoundaryCrossingRuleSetMap.get(scopingNode); } |
+ void collectTreeBoundaryCrossingRules(Element*, ElementRuleCollector&, bool includeEmptyRules); |
void trace(Visitor* visitor) { visitor->trace(m_treeBoundaryCrossingRuleSetMap); } |
private: |
+ size_t size() const { return m_scopingNodes.size(); } |
+ typedef WillBeHeapVector<std::pair<CSSStyleSheet*, OwnPtrWillBeMember<RuleSet> > > CSSStyleSheetRuleSubSet; |
+ void collectFeaturesFromRuleSubSet(CSSStyleSheetRuleSubSet*, RuleFeatureSet&); |
+ |
DocumentOrderedList m_scopingNodes; |
- typedef WillBeHeapHashMap<const ContainerNode*, OwnPtrWillBeMember<RuleSet> > TreeBoundaryCrossingRuleSetMap; |
+ typedef WillBeHeapHashMap<const ContainerNode*, OwnPtrWillBeMember<CSSStyleSheetRuleSubSet> > TreeBoundaryCrossingRuleSetMap; |
TreeBoundaryCrossingRuleSetMap m_treeBoundaryCrossingRuleSetMap; |
}; |