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

Side by Side 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: Fixed issue with swapped-out RFHs 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/render_frame_host_manager.h" 5 #include "content/browser/frame_host/render_frame_host_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
(...skipping 898 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 if (notify_webui_of_rv_creation && GetNavigatingWebUI()) 909 if (notify_webui_of_rv_creation && GetNavigatingWebUI())
910 GetNavigatingWebUI()->RenderViewCreated(navigation_rfh->render_view_host()); 910 GetNavigatingWebUI()->RenderViewCreated(navigation_rfh->render_view_host());
911 911
912 return navigation_rfh; 912 return navigation_rfh;
913 } 913 }
914 914
915 // PlzNavigate 915 // PlzNavigate
916 void RenderFrameHostManager::CleanUpNavigation() { 916 void RenderFrameHostManager::CleanUpNavigation() {
917 CHECK(IsBrowserSideNavigationEnabled()); 917 CHECK(IsBrowserSideNavigationEnabled());
918 render_frame_host_->ClearPendingWebUI(); 918 render_frame_host_->ClearPendingWebUI();
919 if (speculative_render_frame_host_) 919 if (speculative_render_frame_host_) {
920 bool was_loading = speculative_render_frame_host_->is_loading();
920 DiscardUnusedFrame(UnsetSpeculativeRenderFrameHost()); 921 DiscardUnusedFrame(UnsetSpeculativeRenderFrameHost());
922 if (was_loading)
923 frame_tree_node_->DidStopLoading();
nasko 2016/01/20 20:58:34 Shouldn't loading state be independent of speculat
clamy 2016/01/22 13:08:15 It has to be dependent of it during the short time
nasko 2016/01/22 17:52:59 Looking at the callers of CleanUpNavigation, it se
924 }
921 } 925 }
922 926
923 // PlzNavigate 927 // PlzNavigate
924 scoped_ptr<RenderFrameHostImpl> 928 scoped_ptr<RenderFrameHostImpl>
925 RenderFrameHostManager::UnsetSpeculativeRenderFrameHost() { 929 RenderFrameHostManager::UnsetSpeculativeRenderFrameHost() {
926 CHECK(IsBrowserSideNavigationEnabled()); 930 CHECK(IsBrowserSideNavigationEnabled());
927 speculative_render_frame_host_->GetProcess()->RemovePendingView(); 931 speculative_render_frame_host_->GetProcess()->RemovePendingView();
928 return std::move(speculative_render_frame_host_); 932 return std::move(speculative_render_frame_host_);
929 } 933 }
930 934
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after
1973 if (!delegate_->IsHidden() && new_rfh_has_view) { 1977 if (!delegate_->IsHidden() && new_rfh_has_view) {
1974 // In most cases, we need to show the new view. 1978 // In most cases, we need to show the new view.
1975 render_frame_host_->GetView()->Show(); 1979 render_frame_host_->GetView()->Show();
1976 } 1980 }
1977 if (!new_rfh_has_view) { 1981 if (!new_rfh_has_view) {
1978 // If the view is gone, then this RenderViewHost died while it was hidden. 1982 // If the view is gone, then this RenderViewHost died while it was hidden.
1979 // We ignored the RenderProcessGone call at the time, so we should send it 1983 // We ignored the RenderProcessGone call at the time, so we should send it
1980 // now to make sure the sad tab shows up, etc. 1984 // now to make sure the sad tab shows up, etc.
1981 DCHECK(!render_frame_host_->IsRenderFrameLive()); 1985 DCHECK(!render_frame_host_->IsRenderFrameLive());
1982 DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive()); 1986 DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive());
1987 render_frame_host_->ResetLoadingState();
1983 delegate_->RenderProcessGoneFromRenderManager( 1988 delegate_->RenderProcessGoneFromRenderManager(
1984 render_frame_host_->render_view_host()); 1989 render_frame_host_->render_view_host());
1985 } 1990 }
1986 1991
1987 // For top-level frames, also hide the old RenderViewHost's view. 1992 // For top-level frames, also hide the old RenderViewHost's view.
1988 // TODO(creis): As long as show/hide are on RVH, we don't want to hide on 1993 // TODO(creis): As long as show/hide are on RVH, we don't want to hide on
1989 // subframe navigations or we will interfere with the top-level frame. 1994 // subframe navigations or we will interfere with the top-level frame.
1990 if (is_main_frame && 1995 if (is_main_frame &&
1991 old_render_frame_host->render_view_host()->GetWidget()->GetView()) { 1996 old_render_frame_host->render_view_host()->GetWidget()->GetView()) {
1992 old_render_frame_host->render_view_host()->GetWidget()->GetView()->Hide(); 1997 old_render_frame_host->render_view_host()->GetWidget()->GetView()->Hide();
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
2224 render_frame_host_->pending_web_ui()->RenderViewCreated( 2229 render_frame_host_->pending_web_ui()->RenderViewCreated(
2225 render_frame_host_->render_view_host()); 2230 render_frame_host_->render_view_host());
2226 } 2231 }
2227 } 2232 }
2228 } 2233 }
2229 2234
2230 void RenderFrameHostManager::CancelPending() { 2235 void RenderFrameHostManager::CancelPending() {
2231 TRACE_EVENT1("navigation", "RenderFrameHostManager::CancelPending", 2236 TRACE_EVENT1("navigation", "RenderFrameHostManager::CancelPending",
2232 "FrameTreeNode id", frame_tree_node_->frame_tree_node_id()); 2237 "FrameTreeNode id", frame_tree_node_->frame_tree_node_id());
2233 render_frame_host_->ClearPendingWebUI(); 2238 render_frame_host_->ClearPendingWebUI();
2239
2240 bool pending_was_loading = pending_render_frame_host_->is_loading();
2234 DiscardUnusedFrame(UnsetPendingRenderFrameHost()); 2241 DiscardUnusedFrame(UnsetPendingRenderFrameHost());
2242 if (pending_was_loading)
2243 frame_tree_node_->DidStopLoading();
2235 } 2244 }
2236 2245
2237 scoped_ptr<RenderFrameHostImpl> 2246 scoped_ptr<RenderFrameHostImpl>
2238 RenderFrameHostManager::UnsetPendingRenderFrameHost() { 2247 RenderFrameHostManager::UnsetPendingRenderFrameHost() {
2239 scoped_ptr<RenderFrameHostImpl> pending_render_frame_host = 2248 scoped_ptr<RenderFrameHostImpl> pending_render_frame_host =
2240 std::move(pending_render_frame_host_); 2249 std::move(pending_render_frame_host_);
2241 2250
2242 RenderFrameDevToolsAgentHost::OnCancelPendingNavigation( 2251 RenderFrameDevToolsAgentHost::OnCancelPendingNavigation(
2243 pending_render_frame_host.get(), 2252 pending_render_frame_host.get(),
2244 render_frame_host_.get()); 2253 render_frame_host_.get());
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
2458 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { 2467 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) {
2459 if (!frame_tree_node_->opener()) 2468 if (!frame_tree_node_->opener())
2460 return MSG_ROUTING_NONE; 2469 return MSG_ROUTING_NONE;
2461 2470
2462 return frame_tree_node_->opener() 2471 return frame_tree_node_->opener()
2463 ->render_manager() 2472 ->render_manager()
2464 ->GetRoutingIdForSiteInstance(instance); 2473 ->GetRoutingIdForSiteInstance(instance);
2465 } 2474 }
2466 2475
2467 } // namespace content 2476 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698