Commit 6a84d0e9 authored by Fergal Daly's avatar Fergal Daly Committed by Commit Bot

Remove GetRenderViewHost from CreateRenderFrameHost.

The current behaviour is not consistent with the name and the two
places that call CreateRenderFrameHost already have a call to
GetRenderViewHost in their logic.

This is a pre-factor for https://crrev.com/c/2084038/.

Change-Id: Ib9a16101373f0027cb712c955501360425056a97
Bug: 1059678
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2089569
Commit-Queue: Fergal Daly <fergal@chromium.org>
Reviewed-by: default avatarFergal Daly <fergal@chromium.org>
Reviewed-by: default avatarArthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: default avatarAlex Moshchuk <alexmos@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748727}
parent 515a4e97
......@@ -388,11 +388,6 @@ scoped_refptr<RenderViewHostImpl> FrameTree::CreateRenderViewHost(
int32_t main_frame_routing_id,
int32_t widget_routing_id,
bool swapped_out) {
scoped_refptr<RenderViewHostImpl> existing_rvh =
GetRenderViewHost(site_instance);
if (existing_rvh)
return existing_rvh;
RenderViewHostImpl* rvh =
static_cast<RenderViewHostImpl*>(RenderViewHostFactory::Create(
site_instance, render_view_delegate_, render_widget_delegate_,
......
......@@ -2053,11 +2053,15 @@ RenderFrameHostManager::CreateRenderFrameHost(
// Create a RVH for main frames, or find the existing one for subframes.
FrameTree* frame_tree = frame_tree_node_->frame_tree();
scoped_refptr<RenderViewHostImpl> render_view_host;
scoped_refptr<RenderViewHostImpl> render_view_host =
frame_tree->GetRenderViewHost(site_instance);
if (frame_tree_node_->IsMainFrame()) {
render_view_host = frame_tree->CreateRenderViewHost(
site_instance, view_routing_id, frame_routing_id, widget_routing_id,
false);
if (!render_view_host) {
render_view_host = frame_tree->CreateRenderViewHost(
site_instance, view_routing_id, frame_routing_id, widget_routing_id,
/*swapped_out=*/false);
}
// TODO(avi): It's a bit bizarre that this logic lives here instead of in
// CreateRenderFrame(). It turns out that FrameTree::CreateRenderViewHost
// doesn't /always/ create a new RenderViewHost. It first tries to find an
......@@ -2073,10 +2077,8 @@ RenderFrameHostManager::CreateRenderFrameHost(
DCHECK_NE(view_routing_id, widget_routing_id);
DCHECK_EQ(view_routing_id, render_view_host->GetRoutingID());
}
} else {
render_view_host = frame_tree->GetRenderViewHost(site_instance);
CHECK(render_view_host);
}
CHECK(render_view_host);
return RenderFrameHostFactory::Create(
site_instance, render_view_host, frame_tree->render_frame_delegate(),
......@@ -2227,16 +2229,16 @@ void RenderFrameHostManager::CreateRenderFrameProxy(SiteInstance* instance) {
if (!proxy) {
// The RenderViewHost creates the page level structure in Blink. The first
// object to depend on it is necessarily a main frame one.
CHECK(frame_tree_node_->frame_tree()->GetRenderViewHost(instance) ||
frame_tree_node_->IsMainFrame());
// Before creating a new RenderFrameProxyHost, ensure a RenderViewHost
// exists for |instance|, as it creates the page level structure in Blink.
scoped_refptr<RenderViewHostImpl> render_view_host =
frame_tree_node_->frame_tree()->CreateRenderViewHost(
instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE, MSG_ROUTING_NONE,
/*swapped_out=*/true);
frame_tree_node_->frame_tree()->GetRenderViewHost(instance);
CHECK(render_view_host || frame_tree_node_->IsMainFrame());
if (!render_view_host) {
// Before creating a new RenderFrameProxyHost, ensure a RenderViewHost
// exists for |instance|, as it creates the page level structure in Blink.
render_view_host = frame_tree_node_->frame_tree()->CreateRenderViewHost(
instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE, MSG_ROUTING_NONE,
/*swapped_out=*/true);
}
proxy = CreateRenderFrameProxyHost(instance, std::move(render_view_host));
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment