diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 18:52:00 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 18:52:00 +0000 |
commit | 420e5740babf87df0630964c42ca3c0d34a318c0 (patch) | |
tree | a1f744c51c545dcc1c2e15f610775c1b17e97bb1 /chrome/browser/renderer_host/render_widget_helper.cc | |
parent | ad74a59d383e658187ae48d084c7a65145d84449 (diff) | |
download | chromium_src-420e5740babf87df0630964c42ca3c0d34a318c0.zip chromium_src-420e5740babf87df0630964c42ca3c0d34a318c0.tar.gz chromium_src-420e5740babf87df0630964c42ca3c0d34a318c0.tar.bz2 |
Implement the onBeforeRetarget event of the webNavigation API
TEST=none
BUG=50943
Review URL: http://codereview.chromium.org/6363002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72163 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/render_widget_helper.cc')
-rw-r--r-- | chrome/browser/renderer_host/render_widget_helper.cc | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/chrome/browser/renderer_host/render_widget_helper.cc b/chrome/browser/renderer_host/render_widget_helper.cc index 6d13366..3176027 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, |