Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index a93eea7e70809ddf518856e59d4eeb4eb79a8e96..99e2fa485014efb55f9177557ea8e85e0b925b94 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -4166,9 +4166,7 @@ int WebContentsImpl::CreateSwappedOutRenderView( |
GetRenderManager()->CreateRenderFrameProxy(instance); |
} else { |
GetRenderManager()->CreateRenderFrame( |
- instance, nullptr, |
- CREATE_RF_SWAPPED_OUT | CREATE_RF_FOR_MAIN_FRAME_NAVIGATION | |
- CREATE_RF_HIDDEN, |
+ instance, nullptr, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN, |
&render_view_routing_id); |
} |
return render_view_routing_id; |
@@ -4341,24 +4339,13 @@ NavigationEntry* |
return controller_.GetLastCommittedEntry(); |
} |
-bool WebContentsImpl::CreateRenderViewForRenderManager( |
- RenderViewHost* render_view_host, |
- int opener_frame_routing_id, |
- int proxy_routing_id, |
- const FrameReplicationState& replicated_frame_state, |
- bool for_main_frame_navigation) { |
- TRACE_EVENT0("browser,navigation", |
- "WebContentsImpl::CreateRenderViewForRenderManager"); |
- // Can be NULL during tests. |
- RenderWidgetHostViewBase* rwh_view; |
- // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary |
- // until RenderWidgetHost is attached to RenderFrameHost. We need to special |
- // case this because RWH is still a base class of RenderViewHost, and child |
- // frame RWHVs are unique in that they do not have their own WebContents. |
+void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( |
+ RenderViewHost* render_view_host) { |
+ RenderWidgetHostViewBase* rwh_view = nullptr; |
bool is_guest_in_site_per_process = |
!!browser_plugin_guest_.get() && |
BrowserPluginGuestMode::UseCrossProcessFramesForGuests(); |
- if (!for_main_frame_navigation || is_guest_in_site_per_process) { |
+ if (is_guest_in_site_per_process) { |
RenderWidgetHostViewChildFrame* rwh_view_child = |
new RenderWidgetHostViewChildFrame(render_view_host); |
rwh_view = rwh_view_child; |
@@ -4369,6 +4356,18 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
// Now that the RenderView has been created, we need to tell it its size. |
if (rwh_view) |
rwh_view->SetSize(GetSizeForNewRenderView()); |
+} |
+ |
+bool WebContentsImpl::CreateRenderViewForRenderManager( |
+ RenderViewHost* render_view_host, |
+ int opener_frame_routing_id, |
+ int proxy_routing_id, |
+ const FrameReplicationState& replicated_frame_state) { |
+ TRACE_EVENT0("browser,navigation", |
+ "WebContentsImpl::CreateRenderViewForRenderManager"); |
+ |
+ if (proxy_routing_id == MSG_ROUTING_NONE) |
+ CreateRenderWidgetHostViewForRenderManager(render_view_host); |
// Make sure we use the correct starting page_id in the new RenderView. |
UpdateMaxPageIDIfNecessary(render_view_host); |
@@ -4389,6 +4388,7 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) |
// Force a ViewMsg_Resize to be sent, needed to make plugins show up on |
// linux. See crbug.com/83941. |
+ RenderWidgetHostView* rwh_view = render_view_host->GetView(); |
if (rwh_view) { |
if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) |
render_widget_host->WasResized(); |
@@ -4441,7 +4441,7 @@ WebContentsAndroid* WebContentsImpl::GetWebContentsAndroid() { |
bool WebContentsImpl::CreateRenderViewForInitialEmptyDocument() { |
return CreateRenderViewForRenderManager( |
GetRenderViewHost(), MSG_ROUTING_NONE, MSG_ROUTING_NONE, |
- frame_tree_.root()->current_replication_state(), true); |
+ frame_tree_.root()->current_replication_state()); |
} |
#elif defined(OS_MACOSX) |