Index: chrome/browser/renderer_host/render_widget_helper.cc |
diff --git a/chrome/browser/renderer_host/render_widget_helper.cc b/chrome/browser/renderer_host/render_widget_helper.cc |
index 0ea4f8ca17fe90965e98da3a7be4dc4dfbc0fe05..ff5112ad65790f29e96808acedae697e2909faf7 100644 |
--- a/chrome/browser/renderer_host/render_widget_helper.cc |
+++ b/chrome/browser/renderer_host/render_widget_helper.cc |
@@ -9,7 +9,9 @@ |
#include "chrome/browser/browser_thread.h" |
#include "chrome/browser/renderer_host/render_process_host.h" |
#include "chrome/browser/renderer_host/render_view_host.h" |
+#include "chrome/browser/renderer_host/render_view_host_delegate.h" |
#include "chrome/browser/renderer_host/resource_dispatcher_host.h" |
+#include "chrome/common/notification_service.h" |
#include "chrome/common/render_messages_params.h" |
// A Task used with InvokeLater that we hold a pointer to in pending_paints_. |
@@ -200,10 +202,7 @@ void RenderWidgetHelper::OnCrossSiteClosePageACK( |
} |
void RenderWidgetHelper::CreateNewWindow( |
- int opener_id, |
- bool user_gesture, |
- WindowContainerType window_container_type, |
- const string16& frame_name, |
+ const ViewHostMsg_CreateWindow_Params& params, |
base::ProcessHandle render_process, |
int* route_id) { |
*route_id = GetNextRoutingID(); |
@@ -215,18 +214,26 @@ void RenderWidgetHelper::CreateNewWindow( |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
NewRunnableMethod( |
- this, &RenderWidgetHelper::OnCreateWindowOnUI, opener_id, *route_id, |
- window_container_type, frame_name)); |
+ this, &RenderWidgetHelper::OnCreateWindowOnUI, params, *route_id)); |
} |
void RenderWidgetHelper::OnCreateWindowOnUI( |
- int opener_id, |
- int route_id, |
- WindowContainerType window_container_type, |
- string16 frame_name) { |
- RenderViewHost* host = RenderViewHost::FromID(render_process_id_, opener_id); |
- if (host) |
- host->CreateNewWindow(route_id, window_container_type, frame_name); |
+ const ViewHostMsg_CreateWindow_Params& params, |
+ int route_id) { |
+ RenderViewHost* host = |
+ RenderViewHost::FromID(render_process_id_, params.opener_id); |
+ if (host) { |
+ host->CreateNewWindow(route_id, |
+ params.window_container_type, |
+ params.frame_name); |
+ TabContents* tab_contents = host->delegate()->GetAsTabContents(); |
+ if (tab_contents) { |
+ NotificationService::current()->Notify( |
+ NotificationType::CREATING_NEW_WINDOW, |
+ Source<TabContents>(tab_contents), |
+ Details<const ViewHostMsg_CreateWindow_Params>(¶ms)); |
+ } |
+ } |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |