StyleSheetList* ShadowRoot::styleSheets() { if (!ensureShadowRootRareData()->styleSheets()) m_shadowRootRareData->setStyleSheets(StyleSheetList::create(this)); return m_shadowRootRareData->styleSheets(); }
const Vector<RefPtr<InsertionPoint> >& ShadowRoot::descendantInsertionPoints() { DEFINE_STATIC_LOCAL(const Vector<RefPtr<InsertionPoint> >, emptyList, ()); if (m_shadowRootRareData && m_descendantInsertionPointsIsValid) return m_shadowRootRareData->descendantInsertionPoints(); m_descendantInsertionPointsIsValid = true; if (!containsInsertionPoints()) return emptyList; Vector<RefPtr<InsertionPoint> > insertionPoints; for (Element* element = ElementTraversal::firstWithin(*this); element; element = ElementTraversal::next(*element, this)) { if (element->isInsertionPoint()) insertionPoints.append(toInsertionPoint(element)); } ensureShadowRootRareData()->setDescendantInsertionPoints(insertionPoints); return m_shadowRootRareData->descendantInsertionPoints(); }
void ShadowRoot::addChildShadowRoot() { ensureShadowRootRareData()->didAddChildShadowRoot(); }
void ShadowRoot::didAddInsertionPoint(InsertionPoint* insertionPoint) { ensureShadowRootRareData()->didAddInsertionPoint(insertionPoint); invalidateDescendantInsertionPoints(); }
void ShadowRoot::setShadowInsertionPointOfYoungerShadowRoot(PassRefPtrWillBeRawPtr<HTMLShadowElement> shadowInsertionPoint) { if (!m_shadowRootRareData && !shadowInsertionPoint) return; ensureShadowRootRareData()->setShadowInsertionPointOfYoungerShadowRoot(shadowInsertionPoint); }