diff options
Diffstat (limited to 'content/browser/frame_host/render_frame_host_impl.cc')
-rw-r--r-- | content/browser/frame_host/render_frame_host_impl.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index 53b1b5a..135bfd6 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc @@ -54,6 +54,7 @@ RenderFrameHostImpl::RenderFrameHostImpl( frame_tree_node_(frame_tree_node), routing_id_(routing_id), is_swapped_out_(is_swapped_out) { + frame_tree_->RegisterRenderFrameHost(this); GetProcess()->AddRoute(routing_id_, this); g_routing_id_frame_map.Get().insert(std::make_pair( RenderFrameHostID(GetProcess()->GetID(), routing_id_), @@ -66,6 +67,10 @@ RenderFrameHostImpl::~RenderFrameHostImpl() { RenderFrameHostID(GetProcess()->GetID(), routing_id_)); if (delegate_) delegate_->RenderFrameDeleted(this); + + // Notify the FrameTree that this RFH is going away, allowing it to shut down + // the corresponding RenderViewHost if it is no longer needed. + frame_tree_->UnregisterRenderFrameHost(this); } RenderProcessHost* RenderFrameHostImpl::GetProcess() { |