Index: content/browser/web_contents/render_view_host_manager.cc |
diff --git a/content/browser/web_contents/render_view_host_manager.cc b/content/browser/web_contents/render_view_host_manager.cc |
index 9118d43012dfffdc24e4a1377a1cdbd920ce667c..7edc1618ec7c7c46bae84d8decb13c5ad442ea99 100644 |
--- a/content/browser/web_contents/render_view_host_manager.cc |
+++ b/content/browser/web_contents/render_view_host_manager.cc |
@@ -257,10 +257,17 @@ void RenderViewHostManager::DidUpdateFrameTree( |
DCHECK_NE(iter->second->GetSiteInstance(), |
current_host()->GetSiteInstance()); |
- iter->second->UpdateFrameTree( |
- render_view_host_impl->GetProcess()->GetID(), |
- render_view_host_impl->GetRoutingID(), |
- render_view_host_impl->frame_tree()); |
+ // Send updates to the other swapped out RVHs, unless it's the pending RVH |
+ // (which is in the process of navigating). |
+ // TODO(creis): Remove the pending RVH from swapped_out_hosts_. |
+ // TODO(nasko): Don't send updates across BrowsingInstances. |
+ // See http://crbug.com/150855. |
+ if (iter->second != pending_render_view_host_) { |
+ iter->second->UpdateFrameTree( |
+ render_view_host_impl->GetProcess()->GetID(), |
+ render_view_host_impl->GetRoutingID(), |
+ render_view_host_impl->frame_tree()); |
+ } |
} |
} |