| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 30d405fe6e5f4ff5944f0ff7a2dbf80b3ee3ba32..27276bdc75a917dfa3b710e81192ac32ae88e4a9 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -740,6 +740,7 @@ bool RenderFrameImpl::OnMessageReceived(const IPC::Message& msg) {
|
| IPC_MESSAGE_HANDLER(FrameMsg_Navigate, OnNavigate)
|
| IPC_MESSAGE_HANDLER(FrameMsg_BeforeUnload, OnBeforeUnload)
|
| IPC_MESSAGE_HANDLER(FrameMsg_SwapOut, OnSwapOut)
|
| + IPC_MESSAGE_HANDLER(FrameMsg_Stop, OnStop)
|
| IPC_MESSAGE_HANDLER(FrameMsg_ContextMenuClosed, OnContextMenuClosed)
|
| IPC_MESSAGE_HANDLER(FrameMsg_CustomContextMenuAction,
|
| OnCustomContextMenuAction)
|
| @@ -1028,10 +1029,7 @@ void RenderFrameImpl::OnSwapOut(int proxy_routing_id) {
|
| // TODO(creis): Should we be stopping all frames here and using
|
| // StopAltErrorPageFetcher with RenderView::OnStop, or just stopping this
|
| // frame?
|
| - if (!frame_->parent())
|
| - render_view_->OnStop();
|
| - else
|
| - frame_->stopLoading();
|
| + OnStop();
|
|
|
| // Let subframes know that the frame is now rendered remotely, for the
|
| // purposes of compositing and input events.
|
| @@ -3056,6 +3054,11 @@ void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
|
| }
|
|
|
| void RenderFrameImpl::OnStop() {
|
| + DCHECK(frame_);
|
| + frame_->stopLoading();
|
| + if (!frame_->parent())
|
| + FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers_, OnStop());
|
| +
|
| FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnStop());
|
| }
|
|
|
|
|