Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index 508a3d6d3f31978c878b8e842fba63cb30e2eeb7..a345dbe21a99e746b67323c64aeff47bf1c0fa81 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -678,16 +678,6 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params, |
| // Ensure we start with a valid next_page_id_ from the browser. |
| DCHECK_GE(next_page_id_, 0); |
| - if (params.main_frame_routing_id != MSG_ROUTING_NONE) { |
| - main_render_frame_ = RenderFrameImpl::Create( |
| - this, params.main_frame_routing_id); |
| - // The main frame WebLocalFrame object is closed by |
| - // RenderFrameImpl::frameDetached(). |
| - WebLocalFrame* web_frame = WebLocalFrame::create( |
| - blink::WebTreeScopeType::Document, main_render_frame_); |
| - main_render_frame_->SetWebFrame(web_frame); |
| - } |
| - |
| webwidget_ = WebView::create(this); |
| webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_)); |
| @@ -700,6 +690,12 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params, |
| if (command_line.HasSwitch(switches::kStatsCollectionController)) |
| stats_collection_observer_.reset(new StatsCollectionObserver(this)); |
| + if (params.main_frame_routing_id != MSG_ROUTING_NONE) { |
| + main_render_frame_ = RenderFrameImpl::CreateMainFrame( |
| + this, params.main_frame_routing_id, params.main_frame_widget_routing_id, |
| + params.surface_id, params.hidden, screen_info(), compositor_deps_); |
| + } |
| + |
| RenderFrameProxy* proxy = NULL; |
| if (params.proxy_routing_id != MSG_ROUTING_NONE) { |
| CHECK(params.swapped_out); |
| @@ -724,8 +720,6 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params, |
| // Initialize the WebRemoteFrame with information replicated from the |
| // browser process. |
| proxy->SetReplicatedState(params.replicated_frame_state); |
| - } else { |
| - webview()->setMainFrame(main_render_frame_->GetWebFrame()); |
|
dcheng
2015/08/24 18:50:20
I moved this into RenderFrameImpl::CreateMainFrame
|
| } |
| if (main_render_frame_) |
| main_render_frame_->Initialize(); |
| @@ -1610,15 +1604,15 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator, |
| for (size_t i = 0; i < features.additionalFeatures.size(); ++i) |
| params.additional_features.push_back(features.additionalFeatures[i]); |
| - int32 routing_id = MSG_ROUTING_NONE; |
| - int32 main_frame_routing_id = MSG_ROUTING_NONE; |
| - int32 surface_id = 0; |
| - int64 cloned_session_storage_namespace_id = 0; |
| + ViewHostMsg_CreateWindow_Reply reply; |
| + reply.route_id = MSG_ROUTING_NONE; |
| + reply.main_frame_route_id = MSG_ROUTING_NONE; |
| + reply.main_frame_widget_route_id = MSG_ROUTING_NONE; |
| + reply.surface_id = 0; |
| + reply.cloned_session_storage_namespace_id = 0; |
| - RenderThread::Get()->Send(new ViewHostMsg_CreateWindow( |
| - params, &routing_id, &main_frame_routing_id, &surface_id, |
| - &cloned_session_storage_namespace_id)); |
| - if (routing_id == MSG_ROUTING_NONE) |
| + RenderThread::Get()->Send(new ViewHostMsg_CreateWindow(params, &reply)); |
| + if (reply.route_id == MSG_ROUTING_NONE) |
| return NULL; |
| WebUserGestureIndicator::consumeUserGesture(); |
| @@ -1646,11 +1640,12 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator, |
| view_params.window_was_created_with_opener = true; |
| view_params.renderer_preferences = renderer_preferences_; |
| view_params.web_preferences = webkit_preferences_; |
| - view_params.view_id = routing_id; |
| - view_params.main_frame_routing_id = main_frame_routing_id; |
| - view_params.surface_id = surface_id; |
| + view_params.view_id = reply.route_id; |
| + view_params.main_frame_routing_id = reply.main_frame_route_id; |
| + view_params.main_frame_widget_routing_id = reply.main_frame_widget_route_id; |
| + view_params.surface_id = reply.surface_id; |
| view_params.session_storage_namespace_id = |
| - cloned_session_storage_namespace_id; |
| + reply.cloned_session_storage_namespace_id; |
| view_params.swapped_out = false; |
| // WebCore will take care of setting the correct name. |
| view_params.replicated_frame_state = FrameReplicationState(); |