void RemoteFrame::detach() { detachChildren(); if (!client()) return; Frame::detach(); }
void detachRenderTree(Element* current, const AttachContext& context) { WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates; if (current->hasCustomStyleResolveCallbacks()) current->willDetachRenderers(); current->clearStyleDerivedDataBeforeDetachingRenderer(); // Do not remove the element's hovered and active status // if performing a reattach. if (!context.performingReattach) current->clearHoverAndActiveStatusBeforeDetachingRenderer(); if (ShadowRoot* shadowRoot = current->shadowRoot()) detachShadowRoot(shadowRoot, context); detachChildren(current, context); if (current->renderer()) current->renderer()->destroyAndCleanupAnonymousWrappers(); current->setRenderer(0); current->setAttached(false); if (current->hasCustomStyleResolveCallbacks()) current->didDetachRenderers(); }
static void detachRenderTree(Element& current, DetachType detachType) { WidgetHierarchyUpdatesSuspensionScope suspendWidgetHierarchyUpdates; if (current.hasCustomStyleResolveCallbacks()) current.willDetachRenderers(); current.clearStyleDerivedDataBeforeDetachingRenderer(); // Do not remove the element's hovered and active status // if performing a reattach. if (detachType != ReattachDetach) current.clearHoverAndActiveStatusBeforeDetachingRenderer(); if (ShadowRoot* shadowRoot = current.shadowRoot()) detachShadowRoot(*shadowRoot, detachType); detachChildren(current, detachType); if (current.renderer()) current.renderer()->destroyAndCleanupAnonymousWrappers(); current.setRenderer(0); current.setAttached(false); if (current.hasCustomStyleResolveCallbacks()) current.didDetachRenderers(); }
static void detachShadowRoot(ShadowRoot& shadowRoot, DetachType detachType) { if (!shadowRoot.attached()) return; detachChildren(shadowRoot, detachType); shadowRoot.setAttached(false); }
SceneNode::~SceneNode() { Count--; SceneNodeSPtr parent = getParent(); if ( parent ) { parent->detachChild( shared_from_this() ); } detachChildren(); }
void RemoteFrame::detach(FrameDetachType type) { PluginScriptForbiddenScope forbidPluginDestructorScripting; // Frame::detach() requires the caller to keep a reference to this, since // otherwise it may clear the last reference to this, causing it to be // deleted, which can cause a use-after-free. RefPtrWillBeRawPtr<RemoteFrame> protect(this); detachChildren(); if (!client()) return; client()->willBeDetached(); m_windowProxyManager->clearForClose(); setView(nullptr); Frame::detach(type); }
void LocalFrame::detach() { // A lot of the following steps can result in the current frame being // detached, so protect a reference to it. RefPtr<LocalFrame> protect(this); m_deprecatedLoader.stopAllLoaders(); m_deprecatedLoader.closeURL(); detachChildren(); // stopAllLoaders() needs to be called after detachChildren(), because detachChildren() // will trigger the unload event handlers of any child frames, and those event // handlers might start a new subresource load in this frame. m_deprecatedLoader.stopAllLoaders(); setView(nullptr); willDetachFrameHost(); // After this, we must no longer talk to the client since this clears // its owning reference back to our owning LocalFrame. loaderClient()->detachedFromParent(); clearClient(); detachFromFrameHost(); }
void ContainerNode::detach() { detachChildren(); clearChildNeedsStyleRecalc(); Node::detach(); }
void Transform::onDestroy() { detachChildren(); setParent(NULL); }
bool RemoteFrame::prepareForCommit() { detachChildren(); return !!host(); }
Entity::~Entity() { detachChildren(); FLOG_DEBUG("Entity destroyed"); }