| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 437e8c98be937398ffd4b3ca46cdfb4c5b964f16..aed52c0bf82d40c895af739605c6d24d8eaea474 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -2080,18 +2080,16 @@ void RenderFrameImpl::frameDetached(blink::WebFrame* frame) {
|
|
|
| bool is_subframe = !!frame->parent();
|
|
|
| + FOR_EACH_OBSERVER(RenderFrameObserver, observers_, FrameDetached());
|
| + FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
|
| + FrameDetached(frame));
|
| +
|
| Send(new FrameHostMsg_Detach(routing_id_));
|
|
|
| // The |is_detaching_| flag disables Send(). FrameHostMsg_Detach must be
|
| - // sent before setting |is_detaching_| to true. In contrast, Observers
|
| - // should only be notified afterwards so they cannot call back into here and
|
| - // have IPCs fired off.
|
| + // sent before setting |is_detaching_| to true.
|
| is_detaching_ = true;
|
|
|
| - FOR_EACH_OBSERVER(RenderFrameObserver, observers_, FrameDetached());
|
| - FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
|
| - FrameDetached(frame));
|
| -
|
| // We need to clean up subframes by removing them from the map and deleting
|
| // the RenderFrameImpl. In contrast, the main frame is owned by its
|
| // containing RenderViewHost (so that they have the same lifetime), so only
|
|
|