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

Side by Side Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 1048463004: PlzNavigate: track pending commits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed other occurences of main_test_rfh Created 5 years, 8 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 <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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698