summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorclamy <clamy@chromium.org>2016-03-25 07:42:05 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-25 14:43:04 +0000
commit52a9d446e1e6d8883ff1052bae2cd0f02b1f44d9 (patch)
treeb62fc98d26feb005ef8c7d49faf57b718774efe4 /content
parent0e04f751520635f9af9f0bee203d93149d131466 (diff)
downloadchromium_src-52a9d446e1e6d8883ff1052bae2cd0f02b1f44d9.zip
chromium_src-52a9d446e1e6d8883ff1052bae2cd0f02b1f44d9.tar.gz
chromium_src-52a9d446e1e6d8883ff1052bae2cd0f02b1f44d9.tar.bz2
PlzNavigate: fix WebContentsImplTest.FindOpenerRVHWhenPending
This CL fixes WebContentsImplTest.FindOpenerRVHWhenPending when run with PlzNavigate enabled by ensuring that a RenderFrameProxy will be created if there's a speculative RenderFrameHost with the appropriate SiteInstance. BUG=439423 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Review URL: https://codereview.chromium.org/1829043002 Cr-Commit-Position: refs/heads/master@{#383275}
Diffstat (limited to 'content')
-rw-r--r--content/browser/frame_host/render_frame_host_manager.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
index cf373fd..9d071d5 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -2403,10 +2403,17 @@ void RenderFrameHostManager::CreateOpenerProxiesForFrameTree(
// we should still create a proxy, which will allow communicating with the
// opener until the pending RenderView commits, or if the pending navigation
// is canceled.
+ // PlzNavigate: similarly, if a speculative RenderViewHost is present, a
+ // proxy should be created.
RenderViewHostImpl* rvh = frame_tree->GetRenderViewHost(instance);
bool need_proxy_for_pending_rvh = (rvh == pending_render_view_host());
- if (rvh && rvh->IsRenderViewLive() && !need_proxy_for_pending_rvh)
+ bool need_proxy_for_speculative_rvh =
+ IsBrowserSideNavigationEnabled() && speculative_render_frame_host_ &&
+ speculative_render_frame_host_->GetRenderViewHost() == rvh;
+ if (rvh && rvh->IsRenderViewLive() && !need_proxy_for_pending_rvh &&
+ !need_proxy_for_speculative_rvh) {
return;
+ }
if (rvh && !rvh->IsRenderViewLive()) {
EnsureRenderViewInitialized(rvh, instance);