Index: content/browser/renderer_host/render_widget_helper.cc |
diff --git a/content/browser/renderer_host/render_widget_helper.cc b/content/browser/renderer_host/render_widget_helper.cc |
index 0aad52a6dcbf2ac466a0d85e8f749e7566b45f14..72b2d55ddc93cb27064f17eaf1f2bf5220054bab 100644 |
--- a/content/browser/renderer_host/render_widget_helper.cc |
+++ b/content/browser/renderer_host/render_widget_helper.cc |
@@ -102,8 +102,9 @@ void RenderWidgetHelper::CreateNewWindow( |
const ViewHostMsg_CreateWindow_Params& params, |
bool no_javascript_access, |
base::ProcessHandle render_process, |
- int* route_id, |
- int* main_frame_route_id, |
+ int32_t* route_id, |
+ int32_t* main_frame_route_id, |
+ int32_t* main_frame_widget_route_id, |
SessionStorageNamespace* session_storage_namespace) { |
if (params.opener_suppressed || no_javascript_access) { |
// If the opener is supppressed or script access is disallowed, we should |
@@ -113,9 +114,14 @@ void RenderWidgetHelper::CreateNewWindow( |
// in OnCreateWindowOnUI, using the params provided here. |
*route_id = MSG_ROUTING_NONE; |
*main_frame_route_id = MSG_ROUTING_NONE; |
+ *main_frame_widget_route_id = MSG_ROUTING_NONE; |
} else { |
*route_id = GetNextRoutingID(); |
*main_frame_route_id = GetNextRoutingID(); |
+ // TODO(avi): When RenderViewHostImpl has-a RenderWidgetHostImpl, this |
+ // should be updated to give the widget a distinct routing ID. |
+ // https://crbug.com/545684 |
+ *main_frame_widget_route_id = *route_id; |
// Block resource requests until the view is created, since the HWND might |
// be needed if a response ends up creating a plugin. |
resource_dispatcher_host_->BlockRequestsForRoute( |
@@ -126,21 +132,23 @@ void RenderWidgetHelper::CreateNewWindow( |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
- base::Bind(&RenderWidgetHelper::OnCreateWindowOnUI, |
- this, params, *route_id, *main_frame_route_id, |
+ base::Bind(&RenderWidgetHelper::OnCreateWindowOnUI, this, params, |
+ *route_id, *main_frame_route_id, *main_frame_widget_route_id, |
make_scoped_refptr(session_storage_namespace))); |
} |
void RenderWidgetHelper::OnCreateWindowOnUI( |
const ViewHostMsg_CreateWindow_Params& params, |
- int route_id, |
- int main_frame_route_id, |
+ int32_t route_id, |
+ int32_t main_frame_route_id, |
+ int32_t main_frame_widget_route_id, |
SessionStorageNamespace* session_storage_namespace) { |
RenderViewHostImpl* host = |
RenderViewHostImpl::FromID(render_process_id_, params.opener_id); |
if (host) |
- host->CreateNewWindow(route_id, main_frame_route_id, params, |
- session_storage_namespace); |
+ host->CreateNewWindow(route_id, main_frame_route_id, |
+ main_frame_widget_route_id, params, |
+ session_storage_namespace); |
} |
void RenderWidgetHelper::OnResumeRequestsForView(int route_id) { |