Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_manager.cc |
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc |
| index e4c7fd7f0eb44e0417a87ccb26a498e45084f89e..9d2aaff31a7f0891fc11e004ac629219c9bdad12 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager.cc |
| @@ -218,7 +218,6 @@ RenderFrameHostManager::RenderFrameHostManager( |
| render_widget_delegate_(render_widget_delegate), |
| proxy_hosts_(new RenderFrameProxyHostMap(this)), |
| interstitial_page_(nullptr), |
| - current_web_ui_is_navigating_(false), |
| weak_factory_(this) { |
| DCHECK(frame_tree_node_); |
| } |
| @@ -283,21 +282,6 @@ RenderViewHostImpl* RenderFrameHostManager::pending_render_view_host() const { |
| return pending_render_frame_host_->render_view_host(); |
| } |
| -WebUIImpl* RenderFrameHostManager::GetNavigatingWebUI() const { |
| - if (current_web_ui_is_navigating_) |
| - return render_frame_host_->web_ui(); |
| - |
| - if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kEnableBrowserSideNavigation)) { |
| - if (speculative_render_frame_host_) |
| - return speculative_render_frame_host_->web_ui(); |
| - } else { |
| - if (pending_render_frame_host_) |
| - return pending_render_frame_host_->web_ui(); |
| - } |
| - return nullptr; |
| -} |
| - |
| RenderWidgetHostView* RenderFrameHostManager::GetRenderWidgetHostView() const { |
| if (interstitial_page_) |
| return interstitial_page_->GetView(); |
| @@ -414,8 +398,8 @@ RenderFrameHostImpl* RenderFrameHostManager::Navigate( |
| if (!InitRenderView(dest_render_frame_host->render_view_host(), nullptr)) |
| return nullptr; |
| - if (GetNavigatingWebUI()) { |
| - GetNavigatingWebUI()->RenderViewCreated( |
| + if (dest_render_frame_host->web_ui()) { |
| + dest_render_frame_host->web_ui()->RenderViewCreated( |
| dest_render_frame_host->render_view_host()); |
| } |
| @@ -669,14 +653,15 @@ void RenderFrameHostManager::CommitPendingIfNecessary( |
| RenderFrameHostImpl* render_frame_host, |
| bool was_caused_by_user_gesture) { |
| if (!pending_render_frame_host_ && !speculative_render_frame_host_) { |
| - DCHECK(!current_web_ui_is_navigating_ || render_frame_host_->web_ui()); |
| // We should only hear this from our current renderer. |
| DCHECK_EQ(render_frame_host_, render_frame_host); |
| - // A commit is required if there is a navigating WebUI, even without a |
| - // pending or speculative RenderFrameHost. |
| - if (GetNavigatingWebUI()) |
| + // If the current RenderFrameHost has a WebUI it must be committed |
|
Charlie Reis
2015/11/09 07:02:02
nit: End sentence with period.
carlosk
2015/11/10 10:28:55
Done.
|
| + // Note: for when one tries to move same-site commit logic into |
|
Charlie Reis
2015/11/09 07:02:02
nit: s/for when/If/
carlosk
2015/11/10 10:28:55
Done.
|
| + // RenderFrameHost itself mind that the focus setting logic inside |
|
Charlie Reis
2015/11/09 07:02:02
nit: comma after "itself"
carlosk
2015/11/10 10:28:55
Done.
|
| + // CommitPending also needs to be moved there. |
| + if (render_frame_host_->web_ui()) |
| CommitPending(); |
| return; |
| } |
| @@ -1055,7 +1040,6 @@ RenderFrameHostImpl* RenderFrameHostManager::GetFrameHostForNavigation( |
| speculative_render_frame_host_->render_view_host()); |
| } |
| DCHECK(speculative_render_frame_host_); |
| - DCHECK_EQ(GetNavigatingWebUI(), speculative_render_frame_host_->web_ui()); |
| navigation_rfh = speculative_render_frame_host_.get(); |
| @@ -1068,7 +1052,6 @@ RenderFrameHostImpl* RenderFrameHostManager::GetFrameHostForNavigation( |
| // RFH isn't live.) |
| CommitPending(); |
| } |
| - DCHECK(!current_web_ui_is_navigating_); |
| } |
| DCHECK(navigation_rfh && |
| (navigation_rfh == render_frame_host_.get() || |
| @@ -1082,8 +1065,8 @@ RenderFrameHostImpl* RenderFrameHostManager::GetFrameHostForNavigation( |
| if (!InitRenderView(navigation_rfh->render_view_host(), nullptr)) |
| return nullptr; |
| - if (GetNavigatingWebUI()) { |
| - GetNavigatingWebUI()->RenderViewCreated( |
| + if (navigation_rfh->web_ui()) { |
| + navigation_rfh->web_ui()->RenderViewCreated( |
| navigation_rfh->render_view_host()); |
| } |
| @@ -1106,9 +1089,6 @@ RenderFrameHostImpl* RenderFrameHostManager::GetFrameHostForNavigation( |
| void RenderFrameHostManager::CleanUpNavigation() { |
| CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
| switches::kEnableBrowserSideNavigation)); |
| - // TODO(carlosk): the discarding of the current RFH WebUI and the cleanup of |
| - // the speculative RFH should not always happen together. |
| - current_web_ui_is_navigating_ = false; |
| if (speculative_render_frame_host_) |
| DiscardUnusedFrame(UnsetSpeculativeRenderFrameHost()); |
| } |
| @@ -1734,7 +1714,6 @@ bool RenderFrameHostManager::CreateSpeculativeRenderFrameHost( |
| SiteInstance* new_instance) { |
| CHECK(new_instance); |
| CHECK_NE(old_instance, new_instance); |
| - CHECK(!current_web_ui_is_navigating_); |
| // The process for the new SiteInstance may (if we're sharing a process with |
| // another host that already initialized it) or may not (we have our own |
| @@ -2089,8 +2068,6 @@ void RenderFrameHostManager::CommitPending() { |
| bool will_focus_location_bar = delegate_->FocusLocationBarByDefault(); |
| if (!pending_render_frame_host_ && !speculative_render_frame_host_) { |
| - DCHECK_EQ(current_web_ui_is_navigating_, !!render_frame_host_->web_ui()); |
| - current_web_ui_is_navigating_ = false; |
| // If there's no pending/speculative RenderFrameHost then the current |
| // RenderFrameHost is committing. |
| if (will_focus_location_bar) |
| @@ -2292,7 +2269,6 @@ RenderFrameHostImpl* RenderFrameHostManager::UpdateStateForNavigate( |
| // New SiteInstance: create a pending RFH to navigate. |
| - current_web_ui_is_navigating_ = false; |
| CreatePendingRenderFrameHost(current_instance, new_instance.get()); |
| DCHECK(pending_render_frame_host_); |
| if (!pending_render_frame_host_) |
| @@ -2304,9 +2280,6 @@ RenderFrameHostImpl* RenderFrameHostManager::UpdateStateForNavigate( |
| pending_render_frame_host_->render_view_host()); |
| } |
| - // We now have a pending RFH and possibly an associated pending WebUI. |
| - DCHECK_EQ(GetNavigatingWebUI(), pending_render_frame_host_->web_ui()); |
| - |
| // Check if our current RFH is live before we set up a transition. |
| if (!render_frame_host_->IsRenderFrameLive()) { |
| // The current RFH is not live. There's no reason to sit around with a |
| @@ -2382,19 +2355,15 @@ void RenderFrameHostManager::UpdateWebUIOnCurrentFrameHost(const GURL& dest_url, |
| if (changed_web_ui) |
| CheckWebUITransition(previous_web_ui_type, dest_url, dest_is_restore); |
| - // If there is a WebUI in the current RenderFrameHost, it will navigate. |
| - current_web_ui_is_navigating_ = !!render_frame_host_->web_ui(); |
| - DCHECK_EQ(GetNavigatingWebUI(), render_frame_host_->web_ui()); |
| - |
| // If the current RenderFrameHost has a WebUI and the associated RenderFrame |
| // is alive, notify to the WebUI that the RenderView is being created or |
| // reused depending on whether the WebUI was changed or not. |
| - if (GetNavigatingWebUI() && render_frame_host_->IsRenderFrameLive()) { |
| + if (render_frame_host_->web_ui() && render_frame_host_->IsRenderFrameLive()) { |
| if (changed_web_ui) { |
| - GetNavigatingWebUI()->RenderViewCreated( |
| + render_frame_host_->web_ui()->RenderViewCreated( |
| render_frame_host_->render_view_host()); |
| } else { |
| - GetNavigatingWebUI()->RenderViewReused( |
| + render_frame_host_->web_ui()->RenderViewReused( |
| render_frame_host_->render_view_host(), |
| frame_tree_node_->IsMainFrame()); |
| } |
| @@ -2404,7 +2373,6 @@ void RenderFrameHostManager::UpdateWebUIOnCurrentFrameHost(const GURL& dest_url, |
| void RenderFrameHostManager::CancelPending() { |
| TRACE_EVENT1("navigation", "RenderFrameHostManager::CancelPending", |
| "FrameTreeNode id", frame_tree_node_->frame_tree_node_id()); |
| - current_web_ui_is_navigating_ = false; |
| DiscardUnusedFrame(UnsetPendingRenderFrameHost()); |
| } |
| @@ -2417,8 +2385,6 @@ RenderFrameHostManager::UnsetPendingRenderFrameHost() { |
| pending_render_frame_host.get(), |
| render_frame_host_.get()); |
| - current_web_ui_is_navigating_ = false; |
| - |
| // We no longer need to prevent the process from exiting. |
| pending_render_frame_host->GetProcess()->RemovePendingView(); |