Index: Source/web/RemoteFrameClientImpl.cpp |
diff --git a/Source/web/RemoteFrameClientImpl.cpp b/Source/web/RemoteFrameClientImpl.cpp |
index dd1664f42dcb24740ae6c9d26338b77812a243af..dcd5e97711296794a39a7aa1ce1740e968340114 100644 |
--- a/Source/web/RemoteFrameClientImpl.cpp |
+++ b/Source/web/RemoteFrameClientImpl.cpp |
@@ -14,6 +14,7 @@ |
#include "platform/exported/WrappedResourceRequest.h" |
#include "platform/weborigin/SecurityOrigin.h" |
#include "platform/weborigin/SecurityPolicy.h" |
+#include "public/web/WebRemoteFrameClient.h" |
#include "web/WebInputEventConversion.h" |
#include "web/WebLocalFrameImpl.h" |
#include "web/WebRemoteFrameImpl.h" |
@@ -27,7 +28,17 @@ |
void RemoteFrameClientImpl::detached() |
{ |
- // FIXME: Implement. |
+ // Alert the client that the frame is being detached. |
+ RefPtrWillBeRawPtr<WebRemoteFrameImpl> protector(m_webFrame); |
+ |
+ WebRemoteFrameClient* client = m_webFrame->client(); |
+ if (!client) |
+ return; |
+ |
+ client->frameDetached(); |
+ // Clear our reference to RemoteFrame at the very end, in case the client |
+ // refers to it. |
+ m_webFrame->setCoreFrame(nullptr); |
} |
Frame* RemoteFrameClientImpl::opener() const |