Exemplo n.º 1
0
void RemoteFrame::detach()
{
    detachChildren();
    if (!client())
        return;
    Frame::detach();
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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();
}
Exemplo n.º 4
0
static void detachShadowRoot(ShadowRoot& shadowRoot, DetachType detachType)
{
    if (!shadowRoot.attached())
        return;
    detachChildren(shadowRoot, detachType);

    shadowRoot.setAttached(false);
}
Exemplo n.º 5
0
	SceneNode::~SceneNode()
	{
		Count--;
		SceneNodeSPtr parent = getParent();

		if ( parent )
		{
			parent->detachChild( shared_from_this() );
		}

		detachChildren();
	}
Exemplo n.º 6
0
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);
}
Exemplo n.º 7
0
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();
}
Exemplo n.º 8
0
void ContainerNode::detach()
{
    detachChildren();
    clearChildNeedsStyleRecalc();
    Node::detach();
}
Exemplo n.º 9
0
void Transform::onDestroy()
{
  detachChildren();
  setParent(NULL);
}
Exemplo n.º 10
0
bool RemoteFrame::prepareForCommit()
{
    detachChildren();
    return !!host();
}
Exemplo n.º 11
0
Entity::~Entity() {
	detachChildren();
	FLOG_DEBUG("Entity destroyed");
}