| Index: Source/core/css/RuleSet.cpp
|
| diff --git a/Source/core/css/RuleSet.cpp b/Source/core/css/RuleSet.cpp
|
| index 8d42b39848e321cf91ddc8d738677436852e956a..090710dd32511127d90d939991dbff949385181c 100644
|
| --- a/Source/core/css/RuleSet.cpp
|
| +++ b/Source/core/css/RuleSet.cpp
|
| @@ -365,7 +365,7 @@ void RuleSet::addRegionRule(StyleRuleRegion* regionRule, bool hasDocumentSecurit
|
| m_regionSelectorsAndRuleSets.append(RuleSetSelectorPair(regionRule->selectorList().first(), regionRuleSet.release()));
|
| }
|
|
|
| -void RuleSet::addChildRules(const Vector<RefPtr<StyleRuleBase> >& rules, const MediaQueryEvaluator& medium, bool hasDocumentSecurityOrigin, AddRuleFlags addRuleFlags)
|
| +void RuleSet::addChildRules(const Vector<RefPtr<StyleRuleBase> >& rules, const MediaQueryEvaluator& medium, AddRuleFlags addRuleFlags)
|
| {
|
| for (unsigned i = 0; i < rules.size(); ++i) {
|
| StyleRuleBase* rule = rules[i].get();
|
| @@ -388,24 +388,24 @@ void RuleSet::addChildRules(const Vector<RefPtr<StyleRuleBase> >& rules, const M
|
| } else if (rule->isMediaRule()) {
|
| StyleRuleMedia* mediaRule = static_cast<StyleRuleMedia*>(rule);
|
| if ((!mediaRule->mediaQueries() || medium.eval(mediaRule->mediaQueries(), &m_viewportDependentMediaQueryResults)))
|
| - addChildRules(mediaRule->childRules(), medium, hasDocumentSecurityOrigin, addRuleFlags);
|
| + addChildRules(mediaRule->childRules(), medium, addRuleFlags);
|
| } else if (rule->isFontFaceRule()) {
|
| addFontFaceRule(static_cast<StyleRuleFontFace*>(rule));
|
| } else if (rule->isKeyframesRule()) {
|
| addKeyframesRule(static_cast<StyleRuleKeyframes*>(rule));
|
| } else if (rule->isRegionRule()) {
|
| - addRegionRule(static_cast<StyleRuleRegion*>(rule), hasDocumentSecurityOrigin);
|
| + addRegionRule(static_cast<StyleRuleRegion*>(rule), addRuleFlags & RuleHasDocumentSecurityOrigin);
|
| } else if (rule->isHostRule()) {
|
| addHostRule(static_cast<StyleRuleHost*>(rule));
|
| - } else if (rule->isViewportRule()) {
|
| + } else if (rule->isViewportRule() && !(addRuleFlags & ViewportRuleIsProcessed)) {
|
| addViewportRule(static_cast<StyleRuleViewport*>(rule));
|
| } else if (rule->isSupportsRule() && static_cast<StyleRuleSupports*>(rule)->conditionIsSupported()) {
|
| - addChildRules(static_cast<StyleRuleSupports*>(rule)->childRules(), medium, hasDocumentSecurityOrigin, addRuleFlags);
|
| + addChildRules(static_cast<StyleRuleSupports*>(rule)->childRules(), medium, addRuleFlags);
|
| }
|
| }
|
| }
|
|
|
| -void RuleSet::addRulesFromSheet(StyleSheetContents* sheet, const MediaQueryEvaluator& medium, bool hasDocumentSecurityOrigin)
|
| +void RuleSet::addRulesFromSheet(StyleSheetContents* sheet, const MediaQueryEvaluator& medium, AddRuleFlags addRuleFlags)
|
| {
|
| ASSERT(sheet);
|
|
|
| @@ -413,11 +413,10 @@ void RuleSet::addRulesFromSheet(StyleSheetContents* sheet, const MediaQueryEvalu
|
| for (unsigned i = 0; i < importRules.size(); ++i) {
|
| StyleRuleImport* importRule = importRules[i].get();
|
| if (importRule->styleSheet() && (!importRule->mediaQueries() || medium.eval(importRule->mediaQueries(), &m_viewportDependentMediaQueryResults)))
|
| - addRulesFromSheet(importRule->styleSheet(), medium);
|
| + addRulesFromSheet(importRule->styleSheet(), medium, addRuleFlags);
|
| }
|
|
|
| - AddRuleFlags addRuleFlags = static_cast<AddRuleFlags>((hasDocumentSecurityOrigin ? RuleHasDocumentSecurityOrigin : 0) | RuleCanUseFastCheckSelector);
|
| - addChildRules(sheet->childRules(), medium, hasDocumentSecurityOrigin, addRuleFlags);
|
| + addChildRules(sheet->childRules(), medium, static_cast<AddRuleFlags>(addRuleFlags | RuleCanUseFastCheckSelector));
|
| }
|
|
|
| void RuleSet::addStyleRule(StyleRule* rule, AddRuleFlags addRuleFlags)
|
|
|