diff options
author | johnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 17:40:58 +0000 |
---|---|---|
committer | johnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 17:40:58 +0000 |
commit | d56127cc3bf41ae4df9a5586f132d02cc6917cfd (patch) | |
tree | fae61c2d62f4ef4aa438d6dd472263d74eb6b640 | |
parent | 232a04056fd9f62a3fab1b7e1b9d38f8aca5cd1b (diff) | |
download | chromium_src-d56127cc3bf41ae4df9a5586f132d02cc6917cfd.zip chromium_src-d56127cc3bf41ae4df9a5586f132d02cc6917cfd.tar.gz chromium_src-d56127cc3bf41ae4df9a5586f132d02cc6917cfd.tar.bz2 |
Allow script in notifications to close the notification by calling window.close().
BUG=26277
TEST=none
Review URL: http://codereview.chromium.org/385056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31791 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/views/notifications/balloon_view_host.cc | 10 | ||||
-rw-r--r-- | chrome/browser/views/notifications/balloon_view_host.h | 3 |
2 files changed, 12 insertions, 1 deletions
diff --git a/chrome/browser/views/notifications/balloon_view_host.cc b/chrome/browser/views/notifications/balloon_view_host.cc index cccb5f2..fa8e842 100644 --- a/chrome/browser/views/notifications/balloon_view_host.cc +++ b/chrome/browser/views/notifications/balloon_view_host.cc @@ -37,6 +37,12 @@ void BalloonViewHost::Shutdown() { } } +WebPreferences BalloonViewHost::GetWebkitPrefs() { + WebPreferences prefs; + prefs.allow_scripts_to_close_windows = true; + return prefs; +} + RendererPreferences BalloonViewHost::GetRendererPrefs() const { // We want links (a.k.a. top_level_requests) to be forwarded to the browser so // that we can open them in a new tab rather than in the balloon. @@ -53,6 +59,10 @@ void BalloonViewHost::RequestOpenURL(const GURL& url, PageTransition::LINK, true, 0, 0, GetSiteInstance()); } +void BalloonViewHost::Close(RenderViewHost* render_view_host) { + balloon_->CloseByScript(); +} + void BalloonViewHost::RendererReady(RenderViewHost* /* render_view_host */) { should_notify_on_disconnect_ = true; NotificationService::current()->Notify( diff --git a/chrome/browser/views/notifications/balloon_view_host.h b/chrome/browser/views/notifications/balloon_view_host.h index 5ef8294..491ba2b 100644 --- a/chrome/browser/views/notifications/balloon_view_host.h +++ b/chrome/browser/views/notifications/balloon_view_host.h @@ -31,7 +31,7 @@ class BalloonViewHost : public views::NativeViewHost, void Shutdown(); // RenderViewHostDelegate overrides. - virtual WebPreferences GetWebkitPrefs() { return WebPreferences(); } + virtual WebPreferences GetWebkitPrefs(); virtual RendererPreferences GetRendererPrefs() const; virtual SiteInstance* GetSiteInstance() const { return site_instance_.get(); @@ -42,6 +42,7 @@ class BalloonViewHost : public views::NativeViewHost, } virtual void RequestOpenURL(const GURL& url, const GURL& referrer, WindowOpenDisposition disposition); + virtual void Close(RenderViewHost* render_view_host); virtual void RendererReady(RenderViewHost* render_view_host); virtual void RendererGone(RenderViewHost* render_view_host); virtual void UpdateTitle(RenderViewHost* /* render_view_host */, |