void ElementShadow::collectSelectFeatureSetFrom(ShadowRoot& root) { if (!root.containsShadowRoots() && !root.containsContentElements()) return; for (Element& element : ElementTraversal::descendantsOf(root)) { if (ElementShadow* shadow = element.shadow()) m_selectFeatures.add(shadow->ensureSelectFeatureSet()); if (!isHTMLContentElement(element)) continue; const CSSSelectorList& list = toHTMLContentElement(element).selectorList(); m_selectFeatures.collectFeaturesFromSelectorList(list); } }
void ElementShadow::collectSelectFeatureSetFrom(ShadowRoot& root) { if (!root.containsShadowRoots() && !root.containsContentElements()) return; for (Element* element = ElementTraversal::firstWithin(root); element; element = ElementTraversal::next(*element, &root)) { if (ElementShadow* shadow = element->shadow()) m_selectFeatures.add(shadow->ensureSelectFeatureSet()); if (!isHTMLContentElement(*element)) continue; const CSSSelectorList& list = toHTMLContentElement(*element).selectorList(); for (const CSSSelector* selector = list.first(); selector; selector = CSSSelectorList::next(*selector)) { for (const CSSSelector* component = selector; component; component = component->tagHistory()) m_selectFeatures.collectFeaturesFromSelector(*component); } } }