diff options
author | clamy <clamy@chromium.org> | 2016-03-25 07:42:05 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-25 14:43:04 +0000 |
commit | 52a9d446e1e6d8883ff1052bae2cd0f02b1f44d9 (patch) | |
tree | b62fc98d26feb005ef8c7d49faf57b718774efe4 /content | |
parent | 0e04f751520635f9af9f0bee203d93149d131466 (diff) | |
download | chromium_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.cc | 9 |
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); |