Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(674)

Unified Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 1545973002: Remove the is_loading_ field from WebContentsImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Nasko's comments Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 093dd4a5fa85ed7230706417ef6207286ebcef31..0d058d11194a1d573b23ea3455e3e1f5f5073e25 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -958,8 +958,12 @@ RenderFrameHostImpl* RenderFrameHostManager::GetFrameHostForNavigation(
void RenderFrameHostManager::CleanUpNavigation() {
CHECK(IsBrowserSideNavigationEnabled());
render_frame_host_->ClearPendingWebUI();
- if (speculative_render_frame_host_)
+ if (speculative_render_frame_host_) {
+ bool was_loading = speculative_render_frame_host_->is_loading();
DiscardUnusedFrame(UnsetSpeculativeRenderFrameHost());
+ if (was_loading)
+ frame_tree_node_->DidStopLoading();
+ }
}
// PlzNavigate
@@ -1029,6 +1033,19 @@ RenderFrameHostManager::SiteInstanceDescriptor::SiteInstanceDescriptor(
}
void RenderFrameHostManager::RenderProcessGone(SiteInstanceImpl* instance) {
+ // Reset the loading state of any RenderFrameHost with SiteInstance
+ // |instance|.
+ if (render_frame_host_->GetSiteInstance() == instance)
+ render_frame_host_->ResetLoadingState();
+ if (pending_render_frame_host_ &&
+ pending_render_frame_host_->GetSiteInstance() == instance) {
+ pending_render_frame_host_->ResetLoadingState();
+ }
+ if (IsBrowserSideNavigationEnabled() && speculative_render_frame_host_ &&
carlosk 2016/01/15 17:24:04 nit: why not do an if-else on the IsBrowserSideNav
nasko 2016/01/16 00:13:51 Agreed. Having a clear switch with exclusive use o
clamy 2016/01/19 13:31:18 Done.
+ speculative_render_frame_host_->GetSiteInstance() == instance) {
+ speculative_render_frame_host_->ResetLoadingState();
+ }
+
GetRenderFrameProxyHost(instance)->set_render_frame_proxy_created(false);
}
@@ -2022,6 +2039,7 @@ void RenderFrameHostManager::CommitPending() {
// now to make sure the sad tab shows up, etc.
DCHECK(!render_frame_host_->IsRenderFrameLive());
DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive());
+ render_frame_host_->ResetLoadingState();
delegate_->RenderProcessGoneFromRenderManager(
render_frame_host_->render_view_host());
}
@@ -2273,7 +2291,11 @@ void RenderFrameHostManager::CancelPending() {
TRACE_EVENT1("navigation", "RenderFrameHostManager::CancelPending",
"FrameTreeNode id", frame_tree_node_->frame_tree_node_id());
render_frame_host_->ClearPendingWebUI();
+
+ bool pending_was_loading = pending_render_frame_host_->is_loading();
DiscardUnusedFrame(UnsetPendingRenderFrameHost());
+ if (pending_was_loading)
+ frame_tree_node_->DidStopLoading();
}
scoped_ptr<RenderFrameHostImpl>

Powered by Google App Engine
This is Rietveld 408576698