| 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(); |
| 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 |