bool ElementShadow::containsActiveStyles() const { for (ShadowRoot* root = youngestShadowRoot(); root; root = root->olderShadowRoot()) { if (root->hasScopedHTMLStyleChild()) return true; if (!root->containsShadowElements()) return false; } return false; }
void ScopedStyleTree::collectScopedResolversForHostedShadowTrees(const Element* element, Vector<ScopedStyleResolver*, 8>& resolvers) { ElementShadow* shadow = element->shadow(); if (!shadow) return; // Adding scoped resolver for active shadow roots for shadow host styling. for (ShadowRoot* shadowRoot = shadow->youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot()) { if (shadowRoot->hasScopedHTMLStyleChild()) { if (ScopedStyleResolver* resolver = scopedStyleResolverFor(*shadowRoot)) resolvers.append(resolver); } if (!shadowRoot->containsShadowElements()) break; } }