Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 3cf9e9b856fb9c83a4485e4129e9acf60d8d37c9..900574c7e80a174ea90ff6b06a875ae642d6d050 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -2233,8 +2233,13 @@ void RenderFrameImpl::frameDetached(blink::WebFrame* frame) { |
CHECK_EQ(it->second, this); |
g_frame_map.Get().erase(it); |
- if (is_subframe) |
+ if (is_subframe) { |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kSitePerProcess) && render_widget_) { |
+ render_widget_->UnregisterRenderFrame(this); |
+ } |
frame->parent()->removeChild(frame); |
+ } |
// |frame| is invalid after here. Be sure to clear frame_ as well, since this |
// object may not be deleted immediately and other methods may try to access |