summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/FrameLoaderClientImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/FrameLoaderClientImpl.cpp')
-rw-r--r--WebKit/chromium/src/FrameLoaderClientImpl.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
index b984308..8fb267d 100644
--- a/WebKit/chromium/src/FrameLoaderClientImpl.cpp
+++ b/WebKit/chromium/src/FrameLoaderClientImpl.cpp
@@ -235,7 +235,7 @@ void FrameLoaderClientImpl::detachedFromParent3()
// Stop communicating with the WebFrameClient at this point since we are no
// longer associated with the Page.
- m_webFrame->dropClient();
+ m_webFrame->setClient(0);
}
// This function is responsible for associating the |identifier| with a given
@@ -1332,6 +1332,19 @@ PassRefPtr<Frame> FrameLoaderClientImpl::createFrame(
return m_webFrame->createChildFrame(frameRequest, ownerElement);
}
+void FrameLoaderClientImpl::didTransferChildFrameToNewDocument()
+{
+ ASSERT(m_webFrame->frame()->ownerElement());
+
+ WebFrameImpl* newParent = static_cast<WebFrameImpl*>(m_webFrame->parent());
+ if (!newParent || !newParent->client())
+ return;
+
+ // Replace the client since the old client may be destroyed when the
+ // previous page is closed.
+ m_webFrame->setClient(newParent->client());
+}
+
PassRefPtr<Widget> FrameLoaderClientImpl::createPlugin(
const IntSize& size, // FIXME: how do we use this?
HTMLPlugInElement* element,