summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/render_widget_helper.cc
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-21 18:52:00 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-21 18:52:00 +0000
commit420e5740babf87df0630964c42ca3c0d34a318c0 (patch)
treea1f744c51c545dcc1c2e15f610775c1b17e97bb1 /chrome/browser/renderer_host/render_widget_helper.cc
parentad74a59d383e658187ae48d084c7a65145d84449 (diff)
downloadchromium_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.cc33
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>(&params));
+ }
+ }
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,