Chromium Code Reviews| Index: content/renderer/render_frame_proxy.cc |
| diff --git a/content/renderer/render_frame_proxy.cc b/content/renderer/render_frame_proxy.cc |
| index 558c3911a83077f87349b80b7a123b8dc9357a1d..e7eb665428acf107964431e04938d99c2abed971 100644 |
| --- a/content/renderer/render_frame_proxy.cc |
| +++ b/content/renderer/render_frame_proxy.cc |
| @@ -131,11 +131,6 @@ RenderFrameProxy::~RenderFrameProxy() { |
| render_view()->UnregisterRenderFrameProxy(this); |
|
ncarter (slow)
2015/05/07 21:35:52
Is it worth adding a CHECK here to ensure sure tha
nasko
2015/05/07 21:40:52
Yeah, I thought of doing that and forgot to add it
|
| - FrameMap::iterator it = g_frame_map.Get().find(web_frame_); |
| - CHECK(it != g_frame_map.Get().end()); |
| - CHECK_EQ(it->second, this); |
| - g_frame_map.Get().erase(it); |
| - |
| RenderThread::Get()->RemoveRoute(routing_id_); |
| g_routing_id_proxy_map.Get().erase(routing_id_); |
| } |
| @@ -319,6 +314,16 @@ void RenderFrameProxy::frameDetached() { |
| } |
| web_frame_->close(); |
| + |
| + // Remove the entry in the WebFrame->RenderFrameProxy map, as the |web_frame_| |
| + // is no longer valid. |
| + FrameMap::iterator it = g_frame_map.Get().find(web_frame_); |
| + CHECK(it != g_frame_map.Get().end()); |
| + CHECK_EQ(it->second, this); |
| + g_frame_map.Get().erase(it); |
| + |
| + web_frame_ = nullptr; |
| + |
| delete this; |
| } |