| Index: content/browser/renderer_host/render_view_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
|
| index 4ab78219b05b96357fe8c08fc88f7de644de0d31..d880294ada6cd5b4fe4bd24e193e735c6bc916ea 100644
|
| --- a/content/browser/renderer_host/render_view_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_view_host_impl.cc
|
| @@ -159,6 +159,7 @@ RenderViewHostImpl::RenderViewHostImpl(
|
| RenderViewHostDelegate* delegate,
|
| RenderWidgetHostDelegate* widget_delegate,
|
| int routing_id,
|
| + int main_frame_routing_id,
|
| bool swapped_out,
|
| SessionStorageNamespace* session_storage)
|
| : RenderWidgetHostImpl(widget_delegate, instance->GetProcess(), routing_id),
|
| @@ -172,6 +173,7 @@ RenderViewHostImpl::RenderViewHostImpl(
|
| is_swapped_out_(swapped_out),
|
| is_subframe_(false),
|
| main_frame_id_(-1),
|
| + main_frame_routing_id_(main_frame_routing_id),
|
| run_modal_reply_msg_(NULL),
|
| run_modal_opener_id_(MSG_ROUTING_NONE),
|
| is_waiting_for_beforeunload_ack_(false),
|
| @@ -191,6 +193,12 @@ RenderViewHostImpl::RenderViewHostImpl(
|
| DCHECK(instance_);
|
| CHECK(delegate_); // http://crbug.com/82827
|
|
|
| + if (main_frame_routing_id_ == MSG_ROUTING_NONE) {
|
| + main_frame_routing_id_ = GetProcess()->GetNextRoutingID();
|
| + }
|
| + main_render_frame_host_.reset(
|
| + new RenderFrameHostImpl(this, main_frame_routing_id_, is_swapped_out_));
|
| +
|
| GetProcess()->EnableSendQueue();
|
|
|
| for (size_t i = 0; i < g_created_callbacks.Get().size(); i++)
|
| @@ -253,6 +261,7 @@ bool RenderViewHostImpl::CreateRenderView(
|
| delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext());
|
| params.web_preferences = delegate_->GetWebkitPrefs();
|
| params.view_id = GetRoutingID();
|
| + params.main_frame_routing_id = main_frame_routing_id_;
|
| params.surface_id = surface_id();
|
| params.session_storage_namespace_id = session_storage_namespace_->id();
|
| params.frame_name = frame_name;
|
| @@ -1035,6 +1044,7 @@ bool RenderViewHostImpl::IsRenderView() const {
|
|
|
| void RenderViewHostImpl::CreateNewWindow(
|
| int route_id,
|
| + int main_frame_route_id,
|
| const ViewHostMsg_CreateWindow_Params& params,
|
| SessionStorageNamespace* session_storage_namespace) {
|
| ViewHostMsg_CreateWindow_Params validated_params(params);
|
| @@ -1045,8 +1055,8 @@ void RenderViewHostImpl::CreateNewWindow(
|
| FilterURL(policy, GetProcess(), true,
|
| &validated_params.opener_security_origin);
|
|
|
| - delegate_->CreateNewWindow(route_id, validated_params,
|
| - session_storage_namespace);
|
| + delegate_->CreateNewWindow(route_id, main_frame_route_id,
|
| + validated_params, session_storage_namespace);
|
| }
|
|
|
| void RenderViewHostImpl::CreateNewWidget(int route_id,
|
|
|