void InsertionPoint::detach() { if (ShadowRoot* root = toShadowRoot(shadowTreeRootNode())) { ShadowTree* tree = root->tree(); if (doesSelectFromHostChildren()) clearDistribution(tree); else if (ShadowRoot* assignedShadowRoot = assignedFrom()) clearAssignment(assignedShadowRoot); // When shadow element is detached, shadow tree should be recreated to re-calculate selector for // other insertion points. tree->setNeedsReattachHostChildrenAndShadow(); } ASSERT(m_selections.isEmpty()); HTMLElement::detach(); }
void InsertionPoint::detach() { ShadowRoot* root = shadowRoot(); if (root && isActive()) { ElementShadow* shadow = root->owner(); if (doesSelectFromHostChildren()) clearDistribution(shadow); else if (ShadowRoot* assignedShadowRoot = assignedFrom()) clearAssignment(assignedShadowRoot); // When shadow element is detached, shadow tree should be recreated to re-calculate selector for // other insertion points. shadow->setNeedsRedistributing(); } ASSERT(m_distribution.isEmpty()); HTMLElement::detach(); }