Chromium Code Reviews| 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 f7505af877b67c2644609a9ff6920d39dfba84a0..f89d7b49a75b003b533bd7de47b2d5cac107a706 100644 |
| --- a/content/browser/web_contents/web_contents_impl.cc |
| +++ b/content/browser/web_contents/web_contents_impl.cc |
| @@ -4171,9 +4171,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; |
| @@ -4345,28 +4343,18 @@ NavigationEntry* |
| return controller_.GetLastCommittedEntry(); |
| } |
| -bool WebContentsImpl::CreateRenderViewForRenderManager( |
| +bool WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( |
| 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. |
| + int proxy_routing_id) { |
|
Charlie Reis
2015/08/28 18:58:26
I'm confused. proxy_routing_id isn't used in this
lfg
2015/08/28 21:18:40
Changed it to pass a bool.
|
| + 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; |
| - } else { |
| + } else if (proxy_routing_id == MSG_ROUTING_NONE) { |
|
Charlie Reis
2015/08/28 18:58:26
If it's not MSG_ROUTING_NONE (and we're not in a g
lfg
2015/08/28 21:18:40
The guest case is an unfortunate exception, where
|
| rwh_view = view_->CreateViewForWidget(render_view_host, false); |
| } |
| @@ -4374,6 +4362,20 @@ bool WebContentsImpl::CreateRenderViewForRenderManager( |
| if (rwh_view) |
| rwh_view->SetSize(GetSizeForNewRenderView()); |
| + return !!rwh_view; |
| +} |
| + |
| +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"); |
| + |
| + CreateRenderWidgetHostViewForRenderManager(render_view_host, |
| + proxy_routing_id); |
| + |
| // Make sure we use the correct starting page_id in the new RenderView. |
| UpdateMaxPageIDIfNecessary(render_view_host); |
| int32 max_page_id = |
| @@ -4393,6 +4395,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(); |
| @@ -4444,7 +4447,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) |