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

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: 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 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 940 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 if (notify_webui_of_rv_creation && GetNavigatingWebUI()) 951 if (notify_webui_of_rv_creation && GetNavigatingWebUI())
952 GetNavigatingWebUI()->RenderViewCreated(navigation_rfh->render_view_host()); 952 GetNavigatingWebUI()->RenderViewCreated(navigation_rfh->render_view_host());
953 953
954 return navigation_rfh; 954 return navigation_rfh;
955 } 955 }
956 956
957 // PlzNavigate 957 // PlzNavigate
958 void RenderFrameHostManager::CleanUpNavigation() { 958 void RenderFrameHostManager::CleanUpNavigation() {
959 CHECK(IsBrowserSideNavigationEnabled()); 959 CHECK(IsBrowserSideNavigationEnabled());
960 render_frame_host_->ClearPendingWebUI(); 960 render_frame_host_->ClearPendingWebUI();
961 if (speculative_render_frame_host_) 961 if (speculative_render_frame_host_) {
962 bool was_loading = speculative_render_frame_host_->is_loading();
962 DiscardUnusedFrame(UnsetSpeculativeRenderFrameHost()); 963 DiscardUnusedFrame(UnsetSpeculativeRenderFrameHost());
964 if (was_loading)
965 frame_tree_node_->DidStopLoading();
966 }
963 } 967 }
964 968
965 // PlzNavigate 969 // PlzNavigate
966 scoped_ptr<RenderFrameHostImpl> 970 scoped_ptr<RenderFrameHostImpl>
967 RenderFrameHostManager::UnsetSpeculativeRenderFrameHost() { 971 RenderFrameHostManager::UnsetSpeculativeRenderFrameHost() {
968 CHECK(IsBrowserSideNavigationEnabled()); 972 CHECK(IsBrowserSideNavigationEnabled());
969 speculative_render_frame_host_->GetProcess()->RemovePendingView(); 973 speculative_render_frame_host_->GetProcess()->RemovePendingView();
970 return std::move(speculative_render_frame_host_); 974 return std::move(speculative_render_frame_host_);
971 } 975 }
972 976
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 RenderFrameHostManager::SiteInstanceDescriptor::SiteInstanceDescriptor( 1026 RenderFrameHostManager::SiteInstanceDescriptor::SiteInstanceDescriptor(
1023 BrowserContext* browser_context, 1027 BrowserContext* browser_context,
1024 GURL dest_url, 1028 GURL dest_url,
1025 bool related_to_current) 1029 bool related_to_current)
1026 : existing_site_instance(nullptr), 1030 : existing_site_instance(nullptr),
1027 new_is_related_to_current(related_to_current) { 1031 new_is_related_to_current(related_to_current) {
1028 new_site_url = SiteInstance::GetSiteForURL(browser_context, dest_url); 1032 new_site_url = SiteInstance::GetSiteForURL(browser_context, dest_url);
1029 } 1033 }
1030 1034
1031 void RenderFrameHostManager::RenderProcessGone(SiteInstanceImpl* instance) { 1035 void RenderFrameHostManager::RenderProcessGone(SiteInstanceImpl* instance) {
1036 // Reset the loading state of any RenderFrameHost with SiteInstance
1037 // |instance|.
1038 if (render_frame_host_->GetSiteInstance() == instance)
1039 render_frame_host_->ResetLoadingState();
1040 if (pending_render_frame_host_ &&
1041 pending_render_frame_host_->GetSiteInstance() == instance) {
1042 pending_render_frame_host_->ResetLoadingState();
1043 }
1044 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.
1045 speculative_render_frame_host_->GetSiteInstance() == instance) {
1046 speculative_render_frame_host_->ResetLoadingState();
1047 }
1048
1032 GetRenderFrameProxyHost(instance)->set_render_frame_proxy_created(false); 1049 GetRenderFrameProxyHost(instance)->set_render_frame_proxy_created(false);
1033 } 1050 }
1034 1051
1035 void RenderFrameHostManager::ActiveFrameCountIsZero( 1052 void RenderFrameHostManager::ActiveFrameCountIsZero(
1036 SiteInstanceImpl* site_instance) { 1053 SiteInstanceImpl* site_instance) {
1037 // |site_instance| no longer contains any active RenderFrameHosts, so we don't 1054 // |site_instance| no longer contains any active RenderFrameHosts, so we don't
1038 // need to maintain a proxy there anymore. 1055 // need to maintain a proxy there anymore.
1039 RenderFrameProxyHost* proxy = GetRenderFrameProxyHost(site_instance); 1056 RenderFrameProxyHost* proxy = GetRenderFrameProxyHost(site_instance);
1040 CHECK(proxy); 1057 CHECK(proxy);
1041 1058
(...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after
2015 if (!delegate_->IsHidden() && new_rfh_has_view) { 2032 if (!delegate_->IsHidden() && new_rfh_has_view) {
2016 // In most cases, we need to show the new view. 2033 // In most cases, we need to show the new view.
2017 render_frame_host_->GetView()->Show(); 2034 render_frame_host_->GetView()->Show();
2018 } 2035 }
2019 if (!new_rfh_has_view) { 2036 if (!new_rfh_has_view) {
2020 // If the view is gone, then this RenderViewHost died while it was hidden. 2037 // If the view is gone, then this RenderViewHost died while it was hidden.
2021 // We ignored the RenderProcessGone call at the time, so we should send it 2038 // We ignored the RenderProcessGone call at the time, so we should send it
2022 // now to make sure the sad tab shows up, etc. 2039 // now to make sure the sad tab shows up, etc.
2023 DCHECK(!render_frame_host_->IsRenderFrameLive()); 2040 DCHECK(!render_frame_host_->IsRenderFrameLive());
2024 DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive()); 2041 DCHECK(!render_frame_host_->render_view_host()->IsRenderViewLive());
2042 render_frame_host_->ResetLoadingState();
2025 delegate_->RenderProcessGoneFromRenderManager( 2043 delegate_->RenderProcessGoneFromRenderManager(
2026 render_frame_host_->render_view_host()); 2044 render_frame_host_->render_view_host());
2027 } 2045 }
2028 2046
2029 // For top-level frames, also hide the old RenderViewHost's view. 2047 // For top-level frames, also hide the old RenderViewHost's view.
2030 // TODO(creis): As long as show/hide are on RVH, we don't want to hide on 2048 // TODO(creis): As long as show/hide are on RVH, we don't want to hide on
2031 // subframe navigations or we will interfere with the top-level frame. 2049 // subframe navigations or we will interfere with the top-level frame.
2032 if (is_main_frame && 2050 if (is_main_frame &&
2033 old_render_frame_host->render_view_host()->GetWidget()->GetView()) { 2051 old_render_frame_host->render_view_host()->GetWidget()->GetView()) {
2034 old_render_frame_host->render_view_host()->GetWidget()->GetView()->Hide(); 2052 old_render_frame_host->render_view_host()->GetWidget()->GetView()->Hide();
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
2266 render_frame_host_->pending_web_ui()->RenderViewCreated( 2284 render_frame_host_->pending_web_ui()->RenderViewCreated(
2267 render_frame_host_->render_view_host()); 2285 render_frame_host_->render_view_host());
2268 } 2286 }
2269 } 2287 }
2270 } 2288 }
2271 2289
2272 void RenderFrameHostManager::CancelPending() { 2290 void RenderFrameHostManager::CancelPending() {
2273 TRACE_EVENT1("navigation", "RenderFrameHostManager::CancelPending", 2291 TRACE_EVENT1("navigation", "RenderFrameHostManager::CancelPending",
2274 "FrameTreeNode id", frame_tree_node_->frame_tree_node_id()); 2292 "FrameTreeNode id", frame_tree_node_->frame_tree_node_id());
2275 render_frame_host_->ClearPendingWebUI(); 2293 render_frame_host_->ClearPendingWebUI();
2294
2295 bool pending_was_loading = pending_render_frame_host_->is_loading();
2276 DiscardUnusedFrame(UnsetPendingRenderFrameHost()); 2296 DiscardUnusedFrame(UnsetPendingRenderFrameHost());
2297 if (pending_was_loading)
2298 frame_tree_node_->DidStopLoading();
2277 } 2299 }
2278 2300
2279 scoped_ptr<RenderFrameHostImpl> 2301 scoped_ptr<RenderFrameHostImpl>
2280 RenderFrameHostManager::UnsetPendingRenderFrameHost() { 2302 RenderFrameHostManager::UnsetPendingRenderFrameHost() {
2281 scoped_ptr<RenderFrameHostImpl> pending_render_frame_host = 2303 scoped_ptr<RenderFrameHostImpl> pending_render_frame_host =
2282 std::move(pending_render_frame_host_); 2304 std::move(pending_render_frame_host_);
2283 2305
2284 RenderFrameDevToolsAgentHost::OnCancelPendingNavigation( 2306 RenderFrameDevToolsAgentHost::OnCancelPendingNavigation(
2285 pending_render_frame_host.get(), 2307 pending_render_frame_host.get(),
2286 render_frame_host_.get()); 2308 render_frame_host_.get());
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
2473 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { 2495 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) {
2474 if (!frame_tree_node_->opener()) 2496 if (!frame_tree_node_->opener())
2475 return MSG_ROUTING_NONE; 2497 return MSG_ROUTING_NONE;
2476 2498
2477 return frame_tree_node_->opener() 2499 return frame_tree_node_->opener()
2478 ->render_manager() 2500 ->render_manager()
2479 ->GetRoutingIdForSiteInstance(instance); 2501 ->GetRoutingIdForSiteInstance(instance);
2480 } 2502 }
2481 2503
2482 } // namespace content 2504 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698