summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webkit/glue/webframeloaderclient_impl.cc5
-rw-r--r--webkit/glue/webview_delegate.h4
2 files changed, 9 insertions, 0 deletions
diff --git a/webkit/glue/webframeloaderclient_impl.cc b/webkit/glue/webframeloaderclient_impl.cc
index b2cdae9..c5b341c 100644
--- a/webkit/glue/webframeloaderclient_impl.cc
+++ b/webkit/glue/webframeloaderclient_impl.cc
@@ -90,6 +90,11 @@ WebFrameLoaderClient::~WebFrameLoaderClient() {
}
void WebFrameLoaderClient::frameLoaderDestroyed() {
+ WebViewImpl* webview = webframe_->webview_impl();
+ WebViewDelegate* d = webview->delegate();
+ if (d)
+ d->WillDestroyFrame(webframe_);
+
// When the WebFrame was created, it had an extra reference given to it on
// behalf of the Frame. Since the WebFrame owns us, this extra ref also
// serves to keep us alive until the FrameLoader is done with us. The
diff --git a/webkit/glue/webview_delegate.h b/webkit/glue/webview_delegate.h
index 27036db..c6e164c 100644
--- a/webkit/glue/webview_delegate.h
+++ b/webkit/glue/webview_delegate.h
@@ -188,6 +188,10 @@ class WebViewDelegate : virtual public WebWidgetDelegate {
virtual void DocumentElementAvailable(WebFrame* webframe) {
}
+ // Notifies the delegate that the webframe is about to be destroyed.
+ virtual void WillDestroyFrame(WebFrame* webframe) {
+ }
+
// PolicyDelegate ----------------------------------------------------------
// This method is called to notify the delegate, and let it modify a