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

Side by Side Diff: content/browser/web_contents/render_view_host_manager.cc

Issue 10952035: Don't let swappedout:// page be visible when updating frame tree. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add test Created 8 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/web_contents/render_view_host_manager.h" 5 #include "content/browser/web_contents/render_view_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 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 250
251 RenderViewHostImpl* render_view_host_impl = static_cast<RenderViewHostImpl*>( 251 RenderViewHostImpl* render_view_host_impl = static_cast<RenderViewHostImpl*>(
252 render_view_host); 252 render_view_host);
253 253
254 for (RenderViewHostMap::iterator iter = swapped_out_hosts_.begin(); 254 for (RenderViewHostMap::iterator iter = swapped_out_hosts_.begin();
255 iter != swapped_out_hosts_.end(); 255 iter != swapped_out_hosts_.end();
256 ++iter) { 256 ++iter) {
257 DCHECK_NE(iter->second->GetSiteInstance(), 257 DCHECK_NE(iter->second->GetSiteInstance(),
258 current_host()->GetSiteInstance()); 258 current_host()->GetSiteInstance());
259 259
260 iter->second->UpdateFrameTree( 260 // Send updates to the other swapped out RVHs, unless it's the pending RVH
261 render_view_host_impl->GetProcess()->GetID(), 261 // (which is in the process of navigating).
262 render_view_host_impl->GetRoutingID(), 262 // TODO(creis): Remove the pending RVH from swapped_out_hosts_.
263 render_view_host_impl->frame_tree()); 263 // TODO(nasko): Don't send updates across BrowsingInstances.
nasko 2012/09/20 22:18:04 nit: You can put in crbug.com/150855 for my TODO.
Charlie Reis 2012/09/20 23:25:38 Done.
264 if (iter->second != pending_render_view_host_) {
265 iter->second->UpdateFrameTree(
266 render_view_host_impl->GetProcess()->GetID(),
267 render_view_host_impl->GetRoutingID(),
268 render_view_host_impl->frame_tree());
269 }
264 } 270 }
265 } 271 }
266 272
267 void RenderViewHostManager::SetWebUIPostCommit(WebUIImpl* web_ui) { 273 void RenderViewHostManager::SetWebUIPostCommit(WebUIImpl* web_ui) {
268 DCHECK(!web_ui_.get()); 274 DCHECK(!web_ui_.get());
269 web_ui_.reset(web_ui); 275 web_ui_.reset(web_ui);
270 } 276 }
271 277
272 void RenderViewHostManager::RendererAbortedProvisionalLoad( 278 void RenderViewHostManager::RendererAbortedProvisionalLoad(
273 RenderViewHost* render_view_host) { 279 RenderViewHost* render_view_host) {
(...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after
964 } 970 }
965 971
966 RenderViewHostImpl* RenderViewHostManager::GetSwappedOutRenderViewHost( 972 RenderViewHostImpl* RenderViewHostManager::GetSwappedOutRenderViewHost(
967 SiteInstance* instance) { 973 SiteInstance* instance) {
968 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId()); 974 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId());
969 if (iter != swapped_out_hosts_.end()) 975 if (iter != swapped_out_hosts_.end())
970 return iter->second; 976 return iter->second;
971 977
972 return NULL; 978 return NULL;
973 } 979 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698