Index: Source/core/css/DocumentRuleSets.cpp |
diff --git a/Source/core/css/DocumentRuleSets.cpp b/Source/core/css/DocumentRuleSets.cpp |
index 298d23d7eb41f92ce9b5acc1f5f34f50630638f9..dba9c532210c0299453aeac137b7961d160422d0 100644 |
--- a/Source/core/css/DocumentRuleSets.cpp |
+++ b/Source/core/css/DocumentRuleSets.cpp |
@@ -74,13 +74,14 @@ DocumentRuleSets::~DocumentRuleSets() |
{ |
} |
-void DocumentRuleSets::initUserStyle(StyleEngine* styleSheetCollection, const MediaQueryEvaluator& medium, StyleResolver& resolver) |
+void DocumentRuleSets::initUserStyle(StyleEngine* styleSheetCollection, const Vector<RefPtr<StyleRule> >& watchedSelectors, const MediaQueryEvaluator& medium, StyleResolver& resolver) |
{ |
OwnPtr<RuleSet> tempUserStyle = RuleSet::create(); |
if (CSSStyleSheet* pageUserSheet = styleSheetCollection->pageUserSheet()) |
tempUserStyle->addRulesFromSheet(pageUserSheet->contents(), medium, &resolver); |
collectRulesFromUserStyleSheets(styleSheetCollection->injectedUserStyleSheets(), *tempUserStyle, medium, resolver); |
collectRulesFromUserStyleSheets(styleSheetCollection->documentUserStyleSheets(), *tempUserStyle, medium, resolver); |
+ collectRulesFromWatchedSelectors(watchedSelectors, *tempUserStyle); |
if (tempUserStyle->ruleCount() > 0 || tempUserStyle->pageRules().size() > 0) |
m_userStyle = tempUserStyle.release(); |
} |
@@ -93,6 +94,12 @@ void DocumentRuleSets::collectRulesFromUserStyleSheets(const Vector<RefPtr<CSSSt |
} |
} |
+void DocumentRuleSets::collectRulesFromWatchedSelectors(const Vector<RefPtr<StyleRule> >& watchedSelectors, RuleSet& userStyle) |
+{ |
+ for (unsigned i = 0; i < watchedSelectors.size(); ++i) |
+ userStyle.addStyleRule(watchedSelectors[i].get(), RuleHasNoSpecialState); |
+} |
+ |
void DocumentRuleSets::resetAuthorStyle() |
{ |
m_shadowDistributedRules.clear(); |