summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_frame_proxy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/render_frame_proxy.cc')
-rw-r--r--content/renderer/render_frame_proxy.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc
index 5af5f57..cb42b40 100644
--- a/content/renderer/render_frame_proxy.cc
+++ b/content/renderer/render_frame_proxy.cc
@@ -117,6 +117,15 @@ RenderFrameProxy::RenderFrameProxy(int routing_id, int frame_routing_id)
}
RenderFrameProxy::~RenderFrameProxy() {
+ // TODO(nasko): Set the render_frame_proxy to null to avoid a double deletion
+ // when detaching the main frame. This can be removed once RenderFrameImpl and
+ // RenderFrameProxy have been completely decoupled. See
+ // https://crbug.com/357747.
+ RenderFrameImpl* render_frame =
+ RenderFrameImpl::FromRoutingID(frame_routing_id_);
+ if (render_frame)
+ render_frame->set_render_frame_proxy(nullptr);
+
render_view()->UnregisterRenderFrameProxy(this);
FrameMap::iterator it = g_frame_map.Get().find(web_frame_);