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 <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 CommitPendingIfNecessary(render_frame_host, was_caused_by_user_gesture); | 448 CommitPendingIfNecessary(render_frame_host, was_caused_by_user_gesture); |
449 | 449 |
450 // Make sure any dynamic changes to this frame's sandbox flags that were made | 450 // Make sure any dynamic changes to this frame's sandbox flags that were made |
451 // prior to navigation take effect. | 451 // prior to navigation take effect. |
452 CommitPendingSandboxFlags(); | 452 CommitPendingSandboxFlags(); |
453 } | 453 } |
454 | 454 |
455 void RenderFrameHostManager::CommitPendingIfNecessary( | 455 void RenderFrameHostManager::CommitPendingIfNecessary( |
456 RenderFrameHostImpl* render_frame_host, | 456 RenderFrameHostImpl* render_frame_host, |
457 bool was_caused_by_user_gesture) { | 457 bool was_caused_by_user_gesture) { |
458 // Note: In PlzNavigate |cross_navigation_pending_| being false means there is | 458 if (!cross_navigation_pending_ && !speculative_render_frame_host_) { |
459 // *no* speculative RenderFrameHost set. | |
460 if (!cross_navigation_pending_) { | |
461 DCHECK(!speculative_render_frame_host_); | |
462 DCHECK(!pending_render_frame_host_); | 459 DCHECK(!pending_render_frame_host_); |
463 DCHECK_IMPLIES(should_reuse_web_ui_, web_ui_); | 460 DCHECK_IMPLIES(should_reuse_web_ui_, web_ui_); |
464 | 461 |
465 // We should only hear this from our current renderer. | 462 // We should only hear this from our current renderer. |
466 DCHECK_EQ(render_frame_host_, render_frame_host); | 463 DCHECK_EQ(render_frame_host_, render_frame_host); |
467 | 464 |
468 // Even when there is no pending RVH, there may be a pending Web UI. | 465 // Even when there is no pending RVH, there may be a pending Web UI. |
469 if (pending_web_ui() || speculative_web_ui_) | 466 if (pending_web_ui() || speculative_web_ui_) |
470 CommitPending(); | 467 CommitPending(); |
471 return; | 468 return; |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 if (!navigation_rfh->IsRenderFrameLive()) { | 818 if (!navigation_rfh->IsRenderFrameLive()) { |
822 // Recreate the opener chain. | 819 // Recreate the opener chain. |
823 int opener_route_id = delegate_->CreateOpenerRenderViewsForRenderManager( | 820 int opener_route_id = delegate_->CreateOpenerRenderViewsForRenderManager( |
824 navigation_rfh->GetSiteInstance()); | 821 navigation_rfh->GetSiteInstance()); |
825 if (!InitRenderView(navigation_rfh->render_view_host(), opener_route_id, | 822 if (!InitRenderView(navigation_rfh->render_view_host(), opener_route_id, |
826 MSG_ROUTING_NONE, frame_tree_node_->IsMainFrame())) { | 823 MSG_ROUTING_NONE, frame_tree_node_->IsMainFrame())) { |
827 return nullptr; | 824 return nullptr; |
828 } | 825 } |
829 } | 826 } |
830 | 827 |
831 cross_navigation_pending_ = navigation_rfh != render_frame_host_.get(); | |
832 return navigation_rfh; | 828 return navigation_rfh; |
833 } | 829 } |
834 | 830 |
835 // PlzNavigate | 831 // PlzNavigate |
836 void RenderFrameHostManager::CleanUpNavigation() { | 832 void RenderFrameHostManager::CleanUpNavigation() { |
837 CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( | 833 CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
838 switches::kEnableBrowserSideNavigation)); | 834 switches::kEnableBrowserSideNavigation)); |
839 speculative_web_ui_.reset(); | 835 speculative_web_ui_.reset(); |
840 should_reuse_web_ui_ = false; | 836 should_reuse_web_ui_ = false; |
841 if (speculative_render_frame_host_) | 837 if (speculative_render_frame_host_) |
(...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2085 void RenderFrameHostManager::DeleteRenderFrameProxyHost( | 2081 void RenderFrameHostManager::DeleteRenderFrameProxyHost( |
2086 SiteInstance* instance) { | 2082 SiteInstance* instance) { |
2087 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); | 2083 RenderFrameProxyHostMap::iterator iter = proxy_hosts_.find(instance->GetId()); |
2088 if (iter != proxy_hosts_.end()) { | 2084 if (iter != proxy_hosts_.end()) { |
2089 delete iter->second; | 2085 delete iter->second; |
2090 proxy_hosts_.erase(iter); | 2086 proxy_hosts_.erase(iter); |
2091 } | 2087 } |
2092 } | 2088 } |
2093 | 2089 |
2094 } // namespace content | 2090 } // namespace content |
OLD | NEW |