void ScopedStyleResolver::addHostRule(StyleRuleHost* hostRule, bool hasDocumentSecurityOrigin, const ContainerNode* scopingNode) { if (!scopingNode) return; ShadowRoot* shadowRoot = scopingNode->containingShadowRoot(); if (!shadowRoot || !shadowRoot->host()) return; RuleSet* rule = ensureAtHostRuleSetFor(shadowRoot); const Vector<RefPtr<StyleRuleBase> >& childRules = hostRule->childRules(); AddRuleFlags addRuleFlags = static_cast<AddRuleFlags>(hasDocumentSecurityOrigin ? RuleHasDocumentSecurityOrigin : RuleHasNoSpecialState); for (unsigned i = 0; i < childRules.size(); ++i) { StyleRuleBase* hostStylingRule = childRules[i].get(); if (hostStylingRule->isStyleRule()) rule->addStyleRule(static_cast<StyleRule*>(hostStylingRule), addRuleFlags); } }