Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_impl.cc |
| diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
| index 0f5b5ce80f5c5d90e1363b53e76ea2395815b71d..477b3248b09a2a5c83760b74fd168fe7e31f8bc1 100644 |
| --- a/content/browser/frame_host/render_frame_host_impl.cc |
| +++ b/content/browser/frame_host/render_frame_host_impl.cc |
| @@ -1678,16 +1678,14 @@ void RenderFrameHostImpl::Stop() { |
| void RenderFrameHostImpl::DispatchBeforeUnload(bool for_navigation) { |
| // TODO(creis): Support beforeunload on subframes. For now just pretend that |
| // the handler ran and allowed the navigation to proceed. |
| - if (GetParent() || !IsRenderFrameLive()) { |
| - // We don't have a live renderer, so just skip running beforeunload. |
| - if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kEnableBrowserSideNavigation)) { |
| - frame_tree_node_->navigator()->OnBeforeUnloadACK( |
| - frame_tree_node_, true); |
| - } else { |
| - frame_tree_node_->render_manager()->OnBeforeUnloadACK( |
| - for_navigation, true, base::TimeTicks::Now()); |
| - } |
| + if (!ShouldDispatchBeforeUnload()) { |
| + // There's no live renderer or this is a subframe, so just skip running |
|
nasko
2015/06/12 17:22:22
ShouldDispatchBeforeUnload should be clear enough
carlosk
2015/06/15 19:11:54
Done.
|
| + // BeforeUnload. |
|
nasko
2015/06/12 17:22:22
nit: Keep the capitalization intact (aka no capita
carlosk
2015/06/15 19:11:54
Done.
|
| + DCHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kEnableBrowserSideNavigation) || |
| + !for_navigation); |
|
nasko
2015/06/12 17:22:22
!A || !B is the same as !(A && B), but is a bit mo
carlosk
2015/06/15 19:11:54
Done.
|
| + frame_tree_node_->render_manager()->OnBeforeUnloadACK( |
| + for_navigation, true, base::TimeTicks::Now()); |
| return; |
| } |
| TRACE_EVENT_ASYNC_BEGIN0( |
| @@ -1720,6 +1718,11 @@ void RenderFrameHostImpl::DispatchBeforeUnload(bool for_navigation) { |
| } |
| } |
| +bool RenderFrameHostImpl::ShouldDispatchBeforeUnload() { |
| + // TODO(creis): Support beforeunload on subframes. |
| + return !GetParent() && IsRenderFrameLive(); |
| +} |
| + |
| void RenderFrameHostImpl::DisownOpener() { |
| Send(new FrameMsg_DisownOpener(GetRoutingID())); |
| } |