| 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
|
|
|