OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |