summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroshima <oshima@chromium.org>2014-11-19 14:21:03 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-19 22:21:32 +0000
commit0929be2a6d3e1880cfb047a7adc1c3e8e6dd5285 (patch)
treecb838d09bb51fca863e1225c1a91f09518fa3653
parent8d4fc306580f056833a10dd6f0b55f8d2d665602 (diff)
downloadchromium_src-0929be2a6d3e1880cfb047a7adc1c3e8e6dd5285.zip
chromium_src-0929be2a6d3e1880cfb047a7adc1c3e8e6dd5285.tar.gz
chromium_src-0929be2a6d3e1880cfb047a7adc1c3e8e6dd5285.tar.bz2
Consolidate javascript_dialog_manager.h and javascript_dialog_manager_impl.h
* Renamed JavaScriptDialgoManagerImpl to JavaScriptDialogManager. * Add namespace app_modal_dialogs * Add namespace javascript_dialog_extensions_client * Shortened InstallJavaScriptDialogExtensionsClient to InstallClient to fit the 80 chars limit. BUG=410499 TBR=sky@chromium.org Review URL: https://codereview.chromium.org/688853005 Cr-Commit-Position: refs/heads/master@{#304903}
-rw-r--r--athena/content/web_activity.cc2
-rw-r--r--athena/extensions/athena_javascript_native_dialog_factory.cc17
-rw-r--r--athena/extensions/extensions_delegate.cc2
-rw-r--r--chrome/browser/android/chrome_web_contents_delegate_android.cc2
-rw-r--r--chrome/browser/chrome_browser_main.cc2
-rw-r--r--chrome/browser/chromeos/login/signin/oauth2_browsertest.cc2
-rw-r--r--chrome/browser/devtools/devtools_sanity_browsertest.cc3
-rw-r--r--chrome/browser/extensions/alert_apitest.cc2
-rw-r--r--chrome/browser/extensions/chrome_extension_host_delegate.cc2
-rw-r--r--chrome/browser/extensions/lazy_background_page_apitest.cc2
-rw-r--r--chrome/browser/lifetime/browser_close_manager_browsertest.cc8
-rw-r--r--chrome/browser/ui/android/javascript_app_modal_dialog_android.cc16
-rw-r--r--chrome/browser/ui/android/javascript_app_modal_dialog_android.h12
-rw-r--r--chrome/browser/ui/browser.cc2
-rw-r--r--chrome/browser/ui/browser_browsertest.cc3
-rw-r--r--chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.h12
-rw-r--r--chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.mm13
-rw-r--r--chrome/browser/ui/views/chrome_javascript_native_dialog_factory_views.cc15
-rw-r--r--chrome/browser/ui/views/frame/browser_view.cc13
-rw-r--r--chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.cc4
-rw-r--r--chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.h6
-rw-r--r--chrome/browser/unload_browsertest.cc6
-rw-r--r--chrome/test/base/ui_test_utils.cc13
-rw-r--r--chrome/test/base/ui_test_utils.h7
-rw-r--r--components/app_modal.gypi2
-rw-r--r--components/app_modal/BUILD.gn2
-rw-r--r--components/app_modal/app_modal_dialog.cc3
-rw-r--r--components/app_modal/app_modal_dialog.h8
-rw-r--r--components/app_modal/app_modal_dialog_queue.cc4
-rw-r--r--components/app_modal/app_modal_dialog_queue.h8
-rw-r--r--components/app_modal/javascript_app_modal_dialog.cc12
-rw-r--r--components/app_modal/javascript_app_modal_dialog.h4
-rw-r--r--components/app_modal/javascript_dialog_extensions_client.h4
-rw-r--r--components/app_modal/javascript_dialog_manager.cc233
-rw-r--r--components/app_modal/javascript_dialog_manager.h90
-rw-r--r--components/app_modal/javascript_dialog_manager_impl.cc233
-rw-r--r--components/app_modal/javascript_dialog_manager_impl.h79
-rw-r--r--components/app_modal/javascript_native_dialog_factory.h4
-rw-r--r--components/app_modal/native_app_modal_dialog.h4
-rw-r--r--components/app_modal/views/javascript_app_modal_dialog_views.cc4
-rw-r--r--components/app_modal/views/javascript_app_modal_dialog_views.h4
-rw-r--r--extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.cc12
-rw-r--r--extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.h6
43 files changed, 453 insertions, 429 deletions
diff --git a/athena/content/web_activity.cc b/athena/content/web_activity.cc
index d302a08..cc4928a 100644
--- a/athena/content/web_activity.cc
+++ b/athena/content/web_activity.cc
@@ -367,7 +367,7 @@ class AthenaWebView : public views::WebView {
content::JavaScriptDialogManager* GetJavaScriptDialogManager(
content::WebContents* contents) override {
- return GetJavaScriptDialogManagerInstance();
+ return app_modal::JavaScriptDialogManager::GetInstance();
}
content::ColorChooser* OpenColorChooser(
diff --git a/athena/extensions/athena_javascript_native_dialog_factory.cc b/athena/extensions/athena_javascript_native_dialog_factory.cc
index b4401a8..39c349b 100644
--- a/athena/extensions/athena_javascript_native_dialog_factory.cc
+++ b/athena/extensions/athena_javascript_native_dialog_factory.cc
@@ -17,18 +17,18 @@ namespace athena {
namespace {
class AthenaJavaScriptNativeDialogFactory
- : public JavaScriptNativeDialogFactory {
+ : public app_modal::JavaScriptNativeDialogFactory {
public:
AthenaJavaScriptNativeDialogFactory() {}
~AthenaJavaScriptNativeDialogFactory() override {}
private:
- // JavScriptNativeDialogFactory:
- NativeAppModalDialog* CreateNativeJavaScriptDialog(
- JavaScriptAppModalDialog* dialog,
+ // app_modal::JavScriptNativeDialogFactory:
+ app_modal::NativeAppModalDialog* CreateNativeJavaScriptDialog(
+ app_modal::JavaScriptAppModalDialog* dialog,
gfx::NativeWindow parent_window) override{
- JavaScriptAppModalDialogViews* d =
- new JavaScriptAppModalDialogViews(dialog);
+ app_modal::JavaScriptAppModalDialogViews* d =
+ new app_modal::JavaScriptAppModalDialogViews(dialog);
constrained_window::CreateBrowserModalDialogViews(d, parent_window);
return d;
}
@@ -39,8 +39,9 @@ class AthenaJavaScriptNativeDialogFactory
} // namespace
void InstallJavaScriptNativeDialogFactory() {
- SetJavaScriptNativeDialogFactory(
- make_scoped_ptr(new AthenaJavaScriptNativeDialogFactory));
+ app_modal::JavaScriptDialogManager::GetInstance()->
+ SetNativeDialogFactory(
+ make_scoped_ptr(new AthenaJavaScriptNativeDialogFactory));
}
} // namespace athena
diff --git a/athena/extensions/extensions_delegate.cc b/athena/extensions/extensions_delegate.cc
index 00a93b9..823a159 100644
--- a/athena/extensions/extensions_delegate.cc
+++ b/athena/extensions/extensions_delegate.cc
@@ -18,7 +18,7 @@ ExtensionsDelegate* instance = nullptr;
ExtensionsDelegate::ExtensionsDelegate() {
InstallConstrainedWindowViewsClient();
- InstallJavaScriptDialogExtensionsClient();
+ javascript_dialog_extensions_client::InstallClient();
InstallJavaScriptNativeDialogFactory();
DCHECK(!instance);
instance = this;
diff --git a/chrome/browser/android/chrome_web_contents_delegate_android.cc b/chrome/browser/android/chrome_web_contents_delegate_android.cc
index 8a0c196..56da4aa 100644
--- a/chrome/browser/android/chrome_web_contents_delegate_android.cc
+++ b/chrome/browser/android/chrome_web_contents_delegate_android.cc
@@ -216,7 +216,7 @@ void ChromeWebContentsDelegateAndroid::FindMatchRectsReply(
content::JavaScriptDialogManager*
ChromeWebContentsDelegateAndroid::GetJavaScriptDialogManager(
WebContents* source) {
- return GetJavaScriptDialogManagerInstance();
+ return app_modal::JavaScriptDialogManager::GetInstance();
}
void ChromeWebContentsDelegateAndroid::RequestMediaAccessPermission(
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 30e35e9..75993b8 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -1070,7 +1070,7 @@ void ChromeBrowserMainParts::PreProfileInit() {
#endif // OS_ANDROID
#if defined(ENABLE_EXTENSIONS)
- InstallJavaScriptDialogExtensionsClient();
+ javascript_dialog_extensions_client::InstallClient();
#endif
#if !defined(OS_IOS)
diff --git a/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc b/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc
index 2709134..30156bf 100644
--- a/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc
+++ b/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc
@@ -46,6 +46,8 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
+using app_modal::AppModalDialog;
+using app_modal::JavaScriptAppModalDialog;
using net::test_server::BasicHttpResponse;
using net::test_server::HttpRequest;
using net::test_server::HttpResponse;
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc
index de34cff..b0c8bf0 100644
--- a/chrome/browser/devtools/devtools_sanity_browsertest.cc
+++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -52,6 +52,9 @@
#include "net/socket/tcp_listen_socket.h"
#include "net/test/spawned_test_server/spawned_test_server.h"
+using app_modal::AppModalDialog;
+using app_modal::JavaScriptAppModalDialog;
+using app_modal::NativeAppModalDialog;
using content::BrowserThread;
using content::DevToolsAgentHost;
using content::NavigationController;
diff --git a/chrome/browser/extensions/alert_apitest.cc b/chrome/browser/extensions/alert_apitest.cc
index 766c158..9aece03 100644
--- a/chrome/browser/extensions/alert_apitest.cc
+++ b/chrome/browser/extensions/alert_apitest.cc
@@ -24,7 +24,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, AlertBasic) {
host->host_contents()->GetMainFrame()->ExecuteJavaScript(
base::ASCIIToUTF16("alert('This should not crash.');"));
- AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
+ app_modal::AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
ASSERT_TRUE(alert);
alert->CloseModalDialog();
}
diff --git a/chrome/browser/extensions/chrome_extension_host_delegate.cc b/chrome/browser/extensions/chrome_extension_host_delegate.cc
index e0adf5a..c8d2b58 100644
--- a/chrome/browser/extensions/chrome_extension_host_delegate.cc
+++ b/chrome/browser/extensions/chrome_extension_host_delegate.cc
@@ -35,7 +35,7 @@ void ChromeExtensionHostDelegate::OnRenderViewCreatedForBackgroundPage(
content::JavaScriptDialogManager*
ChromeExtensionHostDelegate::GetJavaScriptDialogManager() {
- return GetJavaScriptDialogManagerInstance();
+ return app_modal::JavaScriptDialogManager::GetInstance();
}
void ChromeExtensionHostDelegate::CreateTab(content::WebContents* web_contents,
diff --git a/chrome/browser/extensions/lazy_background_page_apitest.cc b/chrome/browser/extensions/lazy_background_page_apitest.cc
index 1353131..d25219f9 100644
--- a/chrome/browser/extensions/lazy_background_page_apitest.cc
+++ b/chrome/browser/extensions/lazy_background_page_apitest.cc
@@ -216,7 +216,7 @@ IN_PROC_BROWSER_TEST_F(LazyBackgroundPageApiTest, WaitForDialog) {
ASSERT_TRUE(extension);
// The test extension opens a dialog on installation.
- AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog();
+ app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog();
ASSERT_TRUE(dialog);
// With the dialog open the background page is still alive.
diff --git a/chrome/browser/lifetime/browser_close_manager_browsertest.cc b/chrome/browser/lifetime/browser_close_manager_browsertest.cc
index a81ce65..4cb1584 100644
--- a/chrome/browser/lifetime/browser_close_manager_browsertest.cc
+++ b/chrome/browser/lifetime/browser_close_manager_browsertest.cc
@@ -49,11 +49,11 @@
namespace {
-NativeAppModalDialog* GetNextDialog() {
- AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog();
+app_modal::NativeAppModalDialog* GetNextDialog() {
+ app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog();
EXPECT_TRUE(dialog->IsJavaScriptModalDialog());
- JavaScriptAppModalDialog* js_dialog =
- static_cast<JavaScriptAppModalDialog*>(dialog);
+ app_modal::JavaScriptAppModalDialog* js_dialog =
+ static_cast<app_modal::JavaScriptAppModalDialog*>(dialog);
CHECK(js_dialog->native_dialog());
return js_dialog->native_dialog();
}
diff --git a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc
index ff09409..34a8b99 100644
--- a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc
+++ b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc
@@ -23,7 +23,7 @@ using base::android::ScopedJavaLocalRef;
JavascriptAppModalDialogAndroid::JavascriptAppModalDialogAndroid(
JNIEnv* env,
- JavaScriptAppModalDialog* dialog,
+ app_modal::JavaScriptAppModalDialog* dialog,
gfx::NativeWindow parent)
: dialog_(dialog),
parent_jobject_weak_ref_(env, parent->GetJavaObject().obj()) {
@@ -131,7 +131,8 @@ const ScopedJavaGlobalRef<jobject>&
// static
jobject GetCurrentModalDialog(JNIEnv* env, jclass clazz) {
- AppModalDialog* dialog = AppModalDialogQueue::GetInstance()->active_dialog();
+ app_modal::AppModalDialog* dialog =
+ app_modal::AppModalDialogQueue::GetInstance()->active_dialog();
if (!dialog || !dialog->native_dialog())
return NULL;
@@ -159,14 +160,14 @@ JavascriptAppModalDialogAndroid::~JavascriptAppModalDialogAndroid() {
namespace {
class ChromeJavaScriptNativeDialogAndroidFactory
- : public JavaScriptNativeDialogFactory {
+ : public app_modal::JavaScriptNativeDialogFactory {
public:
ChromeJavaScriptNativeDialogAndroidFactory() {}
~ChromeJavaScriptNativeDialogAndroidFactory() override {}
private:
- NativeAppModalDialog* CreateNativeJavaScriptDialog(
- JavaScriptAppModalDialog* dialog,
+ app_modal::NativeAppModalDialog* CreateNativeJavaScriptDialog(
+ app_modal::JavaScriptAppModalDialog* dialog,
gfx::NativeWindow parent_window) override {
return new JavascriptAppModalDialogAndroid(
base::android::AttachCurrentThread(),
@@ -179,7 +180,8 @@ class ChromeJavaScriptNativeDialogAndroidFactory
} // namespace
void InstallChromeJavaScriptNativeDialogFactory() {
- SetJavaScriptNativeDialogFactory(
- make_scoped_ptr(new ChromeJavaScriptNativeDialogAndroidFactory));
+ app_modal::JavaScriptDialogManager::GetInstance()->
+ SetNativeDialogFactory(
+ make_scoped_ptr(new ChromeJavaScriptNativeDialogAndroidFactory));
}
diff --git a/chrome/browser/ui/android/javascript_app_modal_dialog_android.h b/chrome/browser/ui/android/javascript_app_modal_dialog_android.h
index bf748e4..3a84734 100644
--- a/chrome/browser/ui/android/javascript_app_modal_dialog_android.h
+++ b/chrome/browser/ui/android/javascript_app_modal_dialog_android.h
@@ -12,11 +12,13 @@
class JavaScriptAppModalDialog;
-class JavascriptAppModalDialogAndroid : public NativeAppModalDialog {
+class JavascriptAppModalDialogAndroid
+ : public app_modal::NativeAppModalDialog {
public:
- JavascriptAppModalDialogAndroid(JNIEnv* env,
- JavaScriptAppModalDialog* dialog,
- gfx::NativeWindow parent);
+ JavascriptAppModalDialogAndroid(
+ JNIEnv* env,
+ app_modal::JavaScriptAppModalDialog* dialog,
+ gfx::NativeWindow parent);
// NativeAppModalDialog:
virtual int GetAppModalDialogButtons() const override;
@@ -41,7 +43,7 @@ class JavascriptAppModalDialogAndroid : public NativeAppModalDialog {
// The object deletes itself.
virtual ~JavascriptAppModalDialogAndroid();
- scoped_ptr<JavaScriptAppModalDialog> dialog_;
+ scoped_ptr<app_modal::JavaScriptAppModalDialog> dialog_;
base::android::ScopedJavaGlobalRef<jobject> dialog_jobject_;
JavaObjectWeakGlobalRef parent_jobject_weak_ref_;
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 0d269e3..f5d4afa 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1624,7 +1624,7 @@ void Browser::DidNavigateToPendingEntry(WebContents* web_contents) {
content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager(
WebContents* source) {
- return GetJavaScriptDialogManagerInstance();
+ return app_modal::JavaScriptDialogManager::GetInstance();
}
content::ColorChooser* Browser::OpenColorChooser(
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index 03a0141..c7e91e18 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -102,6 +102,9 @@
#include "chrome/browser/browser_process.h"
#endif
+using app_modal::AppModalDialog;
+using app_modal::AppModalDialogQueue;
+using app_modal::JavaScriptAppModalDialog;
using base::ASCIIToUTF16;
using content::InterstitialPage;
using content::HostZoomMap;
diff --git a/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.h b/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.h
index 1324def..88230f3 100644
--- a/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.h
+++ b/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.h
@@ -18,9 +18,11 @@ class NSAlert;
class JavaScriptAppModalDialogHelper;
#endif
-class JavaScriptAppModalDialogCocoa : public NativeAppModalDialog {
+class JavaScriptAppModalDialogCocoa
+ : public app_modal::NativeAppModalDialog {
public:
- explicit JavaScriptAppModalDialogCocoa(JavaScriptAppModalDialog* dialog);
+ explicit JavaScriptAppModalDialogCocoa(
+ app_modal::JavaScriptAppModalDialog* dialog);
virtual ~JavaScriptAppModalDialogCocoa();
// Overridden from NativeAppModalDialog:
@@ -31,13 +33,15 @@ class JavaScriptAppModalDialogCocoa : public NativeAppModalDialog {
void AcceptAppModalDialog() override;
void CancelAppModalDialog() override;
- JavaScriptAppModalDialog* dialog() const { return dialog_.get(); }
+ app_modal::JavaScriptAppModalDialog* dialog() const {
+ return dialog_.get();
+ }
private:
// Returns the NSAlert associated with the modal dialog.
NSAlert* GetAlert() const;
- scoped_ptr<JavaScriptAppModalDialog> dialog_;
+ scoped_ptr<app_modal::JavaScriptAppModalDialog> dialog_;
// Created in the constructor and destroyed in the destructor.
base::scoped_nsobject<JavaScriptAppModalDialogHelper> helper_;
diff --git a/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.mm b/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.mm
index b0d27b4..3f7165c 100644
--- a/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.mm
+++ b/chrome/browser/ui/cocoa/javascript_app_modal_dialog_cocoa.mm
@@ -219,7 +219,7 @@ enum AlertAction {
// JavaScriptAppModalDialogCocoa, public:
JavaScriptAppModalDialogCocoa::JavaScriptAppModalDialogCocoa(
- JavaScriptAppModalDialog* dialog)
+ app_modal::JavaScriptAppModalDialog* dialog)
: dialog_(dialog),
helper_(NULL) {
// Determine the names of the dialog buttons based on the flags. "Default"
@@ -440,14 +440,14 @@ void JavaScriptAppModalDialogCocoa::CancelAppModalDialog() {
namespace {
class ChromeJavaScriptNativeDialogCocoaFactory
- : public JavaScriptNativeDialogFactory {
+ : public app_modal::JavaScriptNativeDialogFactory {
public:
ChromeJavaScriptNativeDialogCocoaFactory() {}
~ChromeJavaScriptNativeDialogCocoaFactory() override {}
private:
- NativeAppModalDialog* CreateNativeJavaScriptDialog(
- JavaScriptAppModalDialog* dialog,
+ app_modal::NativeAppModalDialog* CreateNativeJavaScriptDialog(
+ app_modal::JavaScriptAppModalDialog* dialog,
gfx::NativeWindow parent_window) override {
return new JavaScriptAppModalDialogCocoa(dialog);
}
@@ -458,6 +458,7 @@ class ChromeJavaScriptNativeDialogCocoaFactory
} // namespace
void InstallChromeJavaScriptNativeDialogFactory() {
- SetJavaScriptNativeDialogFactory(
- make_scoped_ptr(new ChromeJavaScriptNativeDialogCocoaFactory));
+ app_modal::JavaScriptDialogManager::GetInstance()->
+ SetNativeDialogFactory(
+ make_scoped_ptr(new ChromeJavaScriptNativeDialogCocoaFactory));
}
diff --git a/chrome/browser/ui/views/chrome_javascript_native_dialog_factory_views.cc b/chrome/browser/ui/views/chrome_javascript_native_dialog_factory_views.cc
index 1f7ab42..060c43b 100644
--- a/chrome/browser/ui/views/chrome_javascript_native_dialog_factory_views.cc
+++ b/chrome/browser/ui/views/chrome_javascript_native_dialog_factory_views.cc
@@ -17,20 +17,20 @@
namespace {
class ChromeJavaScriptNativeDialogViewsFactory
- : public JavaScriptNativeDialogFactory {
+ : public app_modal::JavaScriptNativeDialogFactory {
public:
ChromeJavaScriptNativeDialogViewsFactory() {}
~ChromeJavaScriptNativeDialogViewsFactory() override {}
private:
- NativeAppModalDialog* CreateNativeJavaScriptDialog(
- JavaScriptAppModalDialog* dialog,
+ app_modal::NativeAppModalDialog* CreateNativeJavaScriptDialog(
+ app_modal::JavaScriptAppModalDialog* dialog,
gfx::NativeWindow parent_window) override{
- JavaScriptAppModalDialogViews* d = nullptr;
+ app_modal::JavaScriptAppModalDialogViews* d = nullptr;
#if defined(USE_X11) && !defined(OS_CHROMEOS)
d = new JavaScriptAppModalDialogViewsX11(dialog);
#else
- d = new JavaScriptAppModalDialogViews(dialog);
+ d = new app_modal::JavaScriptAppModalDialogViews(dialog);
#endif
constrained_window::CreateBrowserModalDialogViews(d, parent_window);
return d;
@@ -42,6 +42,7 @@ class ChromeJavaScriptNativeDialogViewsFactory
} // namespace
void InstallChromeJavaScriptNativeDialogFactory() {
- SetJavaScriptNativeDialogFactory(
- make_scoped_ptr(new ChromeJavaScriptNativeDialogViewsFactory));
+ app_modal::JavaScriptDialogManager::GetInstance()->
+ SetNativeDialogFactory(
+ make_scoped_ptr(new ChromeJavaScriptNativeDialogViewsFactory));
}
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 7c92fed..caff0f4 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -1514,14 +1514,15 @@ bool BrowserView::CanMinimize() const {
}
bool BrowserView::CanActivate() const {
- if (!AppModalDialogQueue::GetInstance()->active_dialog() ||
- !AppModalDialogQueue::GetInstance()->active_dialog()->native_dialog())
+ app_modal::AppModalDialogQueue* queue =
+ app_modal::AppModalDialogQueue::GetInstance();
+ if (!queue->active_dialog() || !queue->active_dialog()->native_dialog())
return true;
#if defined(USE_AURA) && defined(OS_CHROMEOS)
// On Aura window manager controls all windows so settings focus via PostTask
// will make only worse because posted task will keep trying to steal focus.
- AppModalDialogQueue::GetInstance()->ActivateModalDialog();
+ queue->ActivateModalDialog();
#else
// If another browser is app modal, flash and activate the modal browser. This
// has to be done in a post task, otherwise if the user clicked on a window
@@ -2482,8 +2483,8 @@ bool BrowserView::DoCutCopyPasteForWebContents(
void BrowserView::ActivateAppModalDialog() const {
// If another browser is app modal, flash and activate the modal browser.
- AppModalDialog* active_dialog =
- AppModalDialogQueue::GetInstance()->active_dialog();
+ app_modal::AppModalDialog* active_dialog =
+ app_modal::AppModalDialogQueue::GetInstance()->active_dialog();
if (!active_dialog)
return;
@@ -2494,7 +2495,7 @@ void BrowserView::ActivateAppModalDialog() const {
modal_browser->window()->Activate();
}
- AppModalDialogQueue::GetInstance()->ActivateModalDialog();
+ app_modal::AppModalDialogQueue::GetInstance()->ActivateModalDialog();
}
int BrowserView::GetMaxTopInfoBarArrowHeight() {
diff --git a/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.cc b/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.cc
index d11b2d5..68efee2 100644
--- a/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.cc
+++ b/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.cc
@@ -8,8 +8,8 @@
#include "ui/views/widget/widget.h"
JavaScriptAppModalDialogViewsX11::JavaScriptAppModalDialogViewsX11(
- JavaScriptAppModalDialog* parent)
- : JavaScriptAppModalDialogViews(parent) {}
+ app_modal::JavaScriptAppModalDialog* parent)
+ : app_modal::JavaScriptAppModalDialogViews(parent) {}
JavaScriptAppModalDialogViewsX11::~JavaScriptAppModalDialogViewsX11() {
}
diff --git a/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.h b/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.h
index 7d1171e..1a942c3 100644
--- a/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.h
+++ b/chrome/browser/ui/views/javascript_app_modal_dialog_views_x11.h
@@ -11,9 +11,11 @@
class JavascriptAppModalEventBlockerX11;
// JavaScriptAppModalDialog implmentation for linux desktop.
-class JavaScriptAppModalDialogViewsX11 : public JavaScriptAppModalDialogViews {
+class JavaScriptAppModalDialogViewsX11
+ : public app_modal::JavaScriptAppModalDialogViews {
public:
- explicit JavaScriptAppModalDialogViewsX11(JavaScriptAppModalDialog* parent);
+ explicit JavaScriptAppModalDialogViewsX11(
+ app_modal::JavaScriptAppModalDialog* parent);
virtual ~JavaScriptAppModalDialogViewsX11();
// JavaScriptAppModalDialogViews:
diff --git a/chrome/browser/unload_browsertest.cc b/chrome/browser/unload_browsertest.cc
index befef6d..4276730 100644
--- a/chrome/browser/unload_browsertest.cc
+++ b/chrome/browser/unload_browsertest.cc
@@ -178,10 +178,10 @@ class UnloadTest : public InProcessBrowserTest {
// If |accept| is true, simulates user clicking OK, otherwise simulates
// clicking Cancel.
void ClickModalDialogButton(bool accept) {
- AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog();
+ app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog();
ASSERT_TRUE(dialog->IsJavaScriptModalDialog());
- JavaScriptAppModalDialog* js_dialog =
- static_cast<JavaScriptAppModalDialog*>(dialog);
+ app_modal::JavaScriptAppModalDialog* js_dialog =
+ static_cast<app_modal::JavaScriptAppModalDialog*>(dialog);
if (accept)
js_dialog->native_dialog()->AcceptAppModalDialog();
else
diff --git a/chrome/test/base/ui_test_utils.cc b/chrome/test/base/ui_test_utils.cc
index 10ecf4d..4438ad6 100644
--- a/chrome/test/base/ui_test_utils.cc
+++ b/chrome/test/base/ui_test_utils.cc
@@ -107,7 +107,7 @@ Browser* WaitForBrowserNotInSet(std::set<Browser*> excluded_browsers) {
return new_browser;
}
-class AppModalDialogWaiter : public AppModalDialogObserver {
+class AppModalDialogWaiter : public app_modal::AppModalDialogObserver {
public:
AppModalDialogWaiter()
: dialog_(NULL) {
@@ -115,7 +115,7 @@ class AppModalDialogWaiter : public AppModalDialogObserver {
~AppModalDialogWaiter() override {
}
- AppModalDialog* Wait() {
+ app_modal::AppModalDialog* Wait() {
if (dialog_)
return dialog_;
message_loop_runner_ = new content::MessageLoopRunner;
@@ -125,7 +125,7 @@ class AppModalDialogWaiter : public AppModalDialogObserver {
}
// AppModalDialogWaiter:
- void Notify(AppModalDialog* dialog) override {
+ void Notify(app_modal::AppModalDialog* dialog) override {
DCHECK(!dialog_);
dialog_ = dialog;
if (message_loop_runner_.get() && message_loop_runner_->loop_running())
@@ -133,7 +133,7 @@ class AppModalDialogWaiter : public AppModalDialogObserver {
}
private:
- AppModalDialog* dialog_;
+ app_modal::AppModalDialog* dialog_;
scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
DISALLOW_COPY_AND_ASSIGN(AppModalDialogWaiter);
@@ -324,8 +324,9 @@ bool GetRelativeBuildDirectory(base::FilePath* build_dir) {
return true;
}
-AppModalDialog* WaitForAppModalDialog() {
- AppModalDialogQueue* dialog_queue = AppModalDialogQueue::GetInstance();
+app_modal::AppModalDialog* WaitForAppModalDialog() {
+ app_modal::AppModalDialogQueue* dialog_queue =
+ app_modal::AppModalDialogQueue::GetInstance();
if (dialog_queue->HasActiveDialog())
return dialog_queue->active_dialog();
AppModalDialogWaiter waiter;
diff --git a/chrome/test/base/ui_test_utils.h b/chrome/test/base/ui_test_utils.h
index 81fa904..7f11fb2 100644
--- a/chrome/test/base/ui_test_utils.h
+++ b/chrome/test/base/ui_test_utils.h
@@ -26,13 +26,16 @@
#include "ui/gfx/native_widget_types.h"
#include "url/gurl.h"
-class AppModalDialog;
class Browser;
class LocationBar;
class Profile;
class SkBitmap;
class TemplateURLService;
+namespace app_modal {
+class AppModalDialog;
+}
+
namespace base {
class FilePath;
}
@@ -127,7 +130,7 @@ GURL GetTestUrl(const base::FilePath& dir, const base::FilePath& file);
bool GetRelativeBuildDirectory(base::FilePath* build_dir);
// Blocks until an application modal dialog is showns and returns it.
-AppModalDialog* WaitForAppModalDialog();
+app_modal::AppModalDialog* WaitForAppModalDialog();
// Performs a find in the page of the specified tab. Returns the number of
// matches found. |ordinal| is an optional parameter which is set to the index
diff --git a/components/app_modal.gypi b/components/app_modal.gypi
index c2fe1fa..73fefdc 100644
--- a/components/app_modal.gypi
+++ b/components/app_modal.gypi
@@ -25,8 +25,6 @@
'app_modal/javascript_dialog_extensions_client.h',
'app_modal/javascript_dialog_manager.cc',
'app_modal/javascript_dialog_manager.h',
- 'app_modal/javascript_dialog_manager_impl.cc',
- 'app_modal/javascript_dialog_manager_impl.h',
'app_modal/javascript_native_dialog_factory.h',
'app_modal/native_app_modal_dialog.h'
],
diff --git a/components/app_modal/BUILD.gn b/components/app_modal/BUILD.gn
index 26df1df..a2d373d 100644
--- a/components/app_modal/BUILD.gn
+++ b/components/app_modal/BUILD.gn
@@ -15,8 +15,6 @@ static_library("app_modal") {
"javascript_dialog_extension_client.h",
"javascript_dialog_manager.cc",
"javascript_dialog_manager.h",
- "javascript_dialog_manager_impl.cc",
- "javascript_dialog_manager_impl.h",
"javascript_native_dialog_factory.h",
"native_app_modal_dialog.h"
]
diff --git a/components/app_modal/app_modal_dialog.cc b/components/app_modal/app_modal_dialog.cc
index 66daa5a..2f7fa9b 100644
--- a/components/app_modal/app_modal_dialog.cc
+++ b/components/app_modal/app_modal_dialog.cc
@@ -13,6 +13,7 @@
using content::WebContents;
+namespace app_modal {
namespace {
AppModalDialogObserver* app_modal_dialog_observer = NULL;
@@ -82,3 +83,5 @@ void AppModalDialog::CompleteDialog() {
AppModalDialogQueue::GetInstance()->ShowNextDialog();
}
}
+
+} // namespace app_modal
diff --git a/components/app_modal/app_modal_dialog.h b/components/app_modal/app_modal_dialog.h
index 7180d12..0c2b5dc 100644
--- a/components/app_modal/app_modal_dialog.h
+++ b/components/app_modal/app_modal_dialog.h
@@ -11,12 +11,14 @@
#include "base/strings/string16.h"
#include "build/build_config.h"
-class NativeAppModalDialog;
-
namespace content {
class WebContents;
}
+namespace app_modal {
+
+class NativeAppModalDialog;
+
// A controller+model base class for modal dialogs.
class AppModalDialog {
public:
@@ -102,4 +104,6 @@ class AppModalDialogObserver {
DISALLOW_COPY_AND_ASSIGN(AppModalDialogObserver);
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_APP_MODAL_DIALOG_H_
diff --git a/components/app_modal/app_modal_dialog_queue.cc b/components/app_modal/app_modal_dialog_queue.cc
index b90ceb3..2bb527d 100644
--- a/components/app_modal/app_modal_dialog_queue.cc
+++ b/components/app_modal/app_modal_dialog_queue.cc
@@ -7,6 +7,8 @@
#include "base/memory/singleton.h"
#include "components/app_modal/app_modal_dialog.h"
+namespace app_modal {
+
// static
AppModalDialogQueue* AppModalDialogQueue::GetInstance() {
return Singleton<AppModalDialogQueue>::get();
@@ -74,3 +76,5 @@ AppModalDialog* AppModalDialogQueue::GetNextDialog() {
}
return NULL;
}
+
+} // namespace app_modal
diff --git a/components/app_modal/app_modal_dialog_queue.h b/components/app_modal/app_modal_dialog_queue.h
index d1f0491..9fbf143 100644
--- a/components/app_modal/app_modal_dialog_queue.h
+++ b/components/app_modal/app_modal_dialog_queue.h
@@ -9,10 +9,12 @@
#include "base/basictypes.h"
-class AppModalDialog;
-
template <typename T> struct DefaultSingletonTraits;
+namespace app_modal {
+
+class AppModalDialog;
+
// Keeps a queue of AppModalDialogs, making sure only one app modal
// dialog is shown at a time.
// This class is a singleton.
@@ -86,4 +88,6 @@ class AppModalDialogQueue {
DISALLOW_COPY_AND_ASSIGN(AppModalDialogQueue);
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_APP_MODAL_DIALOG_QUEUE_H_
diff --git a/components/app_modal/javascript_app_modal_dialog.cc b/components/app_modal/javascript_app_modal_dialog.cc
index 8d9ccc3..27ccd3d 100644
--- a/components/app_modal/javascript_app_modal_dialog.cc
+++ b/components/app_modal/javascript_app_modal_dialog.cc
@@ -4,7 +4,7 @@
#include "components/app_modal/javascript_app_modal_dialog.h"
-#include "components/app_modal/javascript_dialog_manager_impl.h"
+#include "components/app_modal/javascript_dialog_manager.h"
#include "components/app_modal/javascript_native_dialog_factory.h"
#include "content/public/browser/web_contents.h"
#include "ui/gfx/text_elider.h"
@@ -14,9 +14,9 @@
#include "ui/aura/window_event_dispatcher.h"
#endif
-using content::JavaScriptDialogManager;
using content::WebContents;
+namespace app_modal {
namespace {
// Control maximum sizes of various texts passed to us from javascript.
@@ -69,7 +69,7 @@ JavaScriptAppModalDialog::JavaScriptAppModalDialog(
bool display_suppress_checkbox,
bool is_before_unload_dialog,
bool is_reload,
- const JavaScriptDialogManager::DialogClosedCallback& callback)
+ const content::JavaScriptDialogManager::DialogClosedCallback& callback)
: AppModalDialog(web_contents, title),
extra_data_map_(extra_data_map),
javascript_message_type_(javascript_message_type),
@@ -95,7 +95,7 @@ NativeAppModalDialog* JavaScriptAppModalDialog::CreateNativeDialog() {
parent_window = NULL;
}
#endif // defined(USE_AURA)
- return JavaScriptDialogManagerImpl::GetInstance()->native_dialog_factory()->
+ return JavaScriptDialogManager::GetInstance()->native_dialog_factory()->
CreateNativeJavaScriptDialog(this, parent_window);
}
@@ -161,7 +161,7 @@ void JavaScriptAppModalDialog::NotifyDelegate(bool success,
}
// The callback_ above may delete web_contents_, thus removing the extra
- // data from the map owned by ChromeJavaScriptDialogManager. Make sure
+ // data from the map owned by ::JavaScriptDialogManager. Make sure
// to only use the data if still present. http://crbug.com/236476
ExtraDataMap::iterator extra_data = extra_data_map_->find(web_contents());
if (extra_data != extra_data_map_->end()) {
@@ -174,3 +174,5 @@ void JavaScriptAppModalDialog::NotifyDelegate(bool success,
// See crbug.com/63732.
AppModalDialog::Invalidate();
}
+
+} // namespace app_modal
diff --git a/components/app_modal/javascript_app_modal_dialog.h b/components/app_modal/javascript_app_modal_dialog.h
index 3ea6bca..64883e0 100644
--- a/components/app_modal/javascript_app_modal_dialog.h
+++ b/components/app_modal/javascript_app_modal_dialog.h
@@ -13,6 +13,8 @@
#include "components/app_modal/app_modal_dialog.h"
#include "content/public/browser/javascript_dialog_manager.h"
+namespace app_modal {
+
// Extra data for JavaScript dialogs to add Chrome-only features.
class ChromeJavaScriptDialogExtraData {
public:
@@ -98,4 +100,6 @@ class JavaScriptAppModalDialog : public AppModalDialog {
DISALLOW_COPY_AND_ASSIGN(JavaScriptAppModalDialog);
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_JAVASCRIPT_APP_MODAL_DIALOG_H_
diff --git a/components/app_modal/javascript_dialog_extensions_client.h b/components/app_modal/javascript_dialog_extensions_client.h
index 466aaeb..f85976e 100644
--- a/components/app_modal/javascript_dialog_extensions_client.h
+++ b/components/app_modal/javascript_dialog_extensions_client.h
@@ -13,6 +13,8 @@ namespace content {
class WebContents;
}
+namespace app_modal {
+
// A client interface to access and control extensions/apps
// that opened a JavaScript dialog.
class JavaScriptDialogExtensionsClient {
@@ -35,4 +37,6 @@ class JavaScriptDialogExtensionsClient {
std::string* name_out) = 0;
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_JAVASCRIPT_DIALOG_EXTENSIONS_CLIENT_H_
diff --git a/components/app_modal/javascript_dialog_manager.cc b/components/app_modal/javascript_dialog_manager.cc
index 4cb5f5f..5bf42fd 100644
--- a/components/app_modal/javascript_dialog_manager.cc
+++ b/components/app_modal/javascript_dialog_manager.cc
@@ -4,22 +4,233 @@
#include "components/app_modal/javascript_dialog_manager.h"
+#include "base/bind.h"
+#include "base/i18n/rtl.h"
+#include "base/strings/utf_string_conversions.h"
+#include "components/app_modal/app_modal_dialog.h"
+#include "components/app_modal/app_modal_dialog_queue.h"
#include "components/app_modal/javascript_dialog_extensions_client.h"
-#include "components/app_modal/javascript_dialog_manager_impl.h"
#include "components/app_modal/javascript_native_dialog_factory.h"
+#include "components/app_modal/native_app_modal_dialog.h"
+#include "content/public/common/javascript_message_type.h"
+#include "grit/components_strings.h"
+#include "net/base/net_util.h"
+#include "ui/base/l10n/l10n_util.h"
-content::JavaScriptDialogManager* GetJavaScriptDialogManagerInstance() {
- return JavaScriptDialogManagerImpl::GetInstance();
+namespace app_modal {
+namespace {
+
+class DefaultExtensionsClient : public JavaScriptDialogExtensionsClient {
+ public:
+ DefaultExtensionsClient() {}
+ ~DefaultExtensionsClient() override {}
+
+ private:
+ // JavaScriptDialogExtensionsClient:
+ void OnDialogOpened(content::WebContents* web_contents) override {}
+ void OnDialogClosed(content::WebContents* web_contents) override {}
+ bool GetExtensionName(content::WebContents* web_contents,
+ const GURL& origin_url,
+ std::string* name_out) override {
+ return false;
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(DefaultExtensionsClient);
+};
+
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////
+// JavaScriptDialogManager, public:
+
+// static
+JavaScriptDialogManager* JavaScriptDialogManager::GetInstance() {
+ return Singleton<JavaScriptDialogManager>::get();
+}
+
+void JavaScriptDialogManager::SetNativeDialogFactory(
+ scoped_ptr<JavaScriptNativeDialogFactory> factory) {
+ native_dialog_factory_ = factory.Pass();
+}
+
+void JavaScriptDialogManager::SetExtensionsClient(
+ scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client) {
+ extensions_client_ = extensions_client.Pass();
}
-void SetJavaScriptNativeDialogFactory(
- scoped_ptr<JavaScriptNativeDialogFactory> new_factory) {
- JavaScriptDialogManagerImpl::GetInstance()->SetNativeDialogFactory(
- new_factory.Pass());
+////////////////////////////////////////////////////////////////////////////////
+// JavaScriptDialogManager, private:
+
+JavaScriptDialogManager::JavaScriptDialogManager()
+ : extensions_client_(new DefaultExtensionsClient) {
+}
+
+JavaScriptDialogManager::~JavaScriptDialogManager() {
}
-void SetJavaScriptDialogExtensionsClient(
- scoped_ptr<JavaScriptDialogExtensionsClient> new_client) {
- JavaScriptDialogManagerImpl::GetInstance()->SetExtensionsClient(
- new_client.Pass());
+void JavaScriptDialogManager::RunJavaScriptDialog(
+ content::WebContents* web_contents,
+ const GURL& origin_url,
+ const std::string& accept_lang,
+ content::JavaScriptMessageType message_type,
+ const base::string16& message_text,
+ const base::string16& default_prompt_text,
+ const DialogClosedCallback& callback,
+ bool* did_suppress_message) {
+ *did_suppress_message = false;
+
+ ChromeJavaScriptDialogExtraData* extra_data =
+ &javascript_dialog_extra_data_[web_contents];
+
+ if (extra_data->suppress_javascript_messages_) {
+ *did_suppress_message = true;
+ return;
+ }
+
+ base::TimeDelta time_since_last_message = base::TimeTicks::Now() -
+ extra_data->last_javascript_message_dismissal_;
+ bool display_suppress_checkbox = false;
+ // If a WebContents is impolite and displays a second JavaScript
+ // alert within kJavaScriptMessageExpectedDelay of a previous
+ // JavaScript alert being dismissed, show a checkbox offering to
+ // suppress future alerts from this WebContents.
+ const int kJavaScriptMessageExpectedDelay = 1000;
+
+ if (time_since_last_message <
+ base::TimeDelta::FromMilliseconds(kJavaScriptMessageExpectedDelay)) {
+ display_suppress_checkbox = true;
+ } else {
+ display_suppress_checkbox = false;
+ }
+
+ bool is_alert = message_type == content::JAVASCRIPT_MESSAGE_TYPE_ALERT;
+ base::string16 dialog_title =
+ GetTitle(web_contents, origin_url, accept_lang, is_alert);
+
+ extensions_client_->OnDialogOpened(web_contents);
+
+ AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
+ web_contents,
+ &javascript_dialog_extra_data_,
+ dialog_title,
+ message_type,
+ message_text,
+ default_prompt_text,
+ display_suppress_checkbox,
+ false, // is_before_unload_dialog
+ false, // is_reload
+ base::Bind(&JavaScriptDialogManager::OnDialogClosed,
+ base::Unretained(this), web_contents, callback)));
}
+
+void JavaScriptDialogManager::RunBeforeUnloadDialog(
+ content::WebContents* web_contents,
+ const base::string16& message_text,
+ bool is_reload,
+ const DialogClosedCallback& callback) {
+ const base::string16 title = l10n_util::GetStringUTF16(is_reload ?
+ IDS_BEFORERELOAD_MESSAGEBOX_TITLE : IDS_BEFOREUNLOAD_MESSAGEBOX_TITLE);
+ const base::string16 footer = l10n_util::GetStringUTF16(is_reload ?
+ IDS_BEFORERELOAD_MESSAGEBOX_FOOTER : IDS_BEFOREUNLOAD_MESSAGEBOX_FOOTER);
+
+ base::string16 full_message =
+ message_text + base::ASCIIToUTF16("\n\n") + footer;
+
+ extensions_client_->OnDialogOpened(web_contents);
+
+ AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
+ web_contents,
+ &javascript_dialog_extra_data_,
+ title,
+ content::JAVASCRIPT_MESSAGE_TYPE_CONFIRM,
+ full_message,
+ base::string16(), // default_prompt_text
+ false, // display_suppress_checkbox
+ true, // is_before_unload_dialog
+ is_reload,
+ base::Bind(&JavaScriptDialogManager::OnDialogClosed,
+ base::Unretained(this), web_contents, callback)));
+}
+
+bool JavaScriptDialogManager::HandleJavaScriptDialog(
+ content::WebContents* web_contents,
+ bool accept,
+ const base::string16* prompt_override) {
+ AppModalDialogQueue* dialog_queue = AppModalDialogQueue::GetInstance();
+ if (!dialog_queue->HasActiveDialog() ||
+ !dialog_queue->active_dialog()->IsJavaScriptModalDialog() ||
+ dialog_queue->active_dialog()->web_contents() != web_contents) {
+ return false;
+ }
+ JavaScriptAppModalDialog* dialog = static_cast<JavaScriptAppModalDialog*>(
+ dialog_queue->active_dialog());
+ if (accept) {
+ if (prompt_override)
+ dialog->SetOverridePromptText(*prompt_override);
+ dialog->native_dialog()->AcceptAppModalDialog();
+ } else {
+ dialog->native_dialog()->CancelAppModalDialog();
+ }
+ return true;
+}
+
+void JavaScriptDialogManager::WebContentsDestroyed(
+ content::WebContents* web_contents) {
+ CancelActiveAndPendingDialogs(web_contents);
+ javascript_dialog_extra_data_.erase(web_contents);
+}
+
+base::string16 JavaScriptDialogManager::GetTitle(
+ content::WebContents* web_contents,
+ const GURL& origin_url,
+ const std::string& accept_lang,
+ bool is_alert) {
+ // If the URL hasn't any host, return the default string.
+ if (!origin_url.has_host()) {
+ return l10n_util::GetStringUTF16(
+ is_alert ? IDS_JAVASCRIPT_ALERT_DEFAULT_TITLE
+ : IDS_JAVASCRIPT_MESSAGEBOX_DEFAULT_TITLE);
+ }
+
+ // For extensions, show the extension name, but only if the origin of
+ // the alert matches the top-level WebContents.
+ std::string name;
+ if (extensions_client_->GetExtensionName(web_contents, origin_url, &name))
+ return base::UTF8ToUTF16(name);
+
+ // Otherwise, return the formatted URL.
+ // In this case, force URL to have LTR directionality.
+ base::string16 url_string = net::FormatUrl(origin_url, accept_lang);
+ return l10n_util::GetStringFUTF16(
+ is_alert ? IDS_JAVASCRIPT_ALERT_TITLE
+ : IDS_JAVASCRIPT_MESSAGEBOX_TITLE,
+ base::i18n::GetDisplayStringInLTRDirectionality(url_string));
+}
+
+void JavaScriptDialogManager::CancelActiveAndPendingDialogs(
+ content::WebContents* web_contents) {
+ AppModalDialogQueue* queue = AppModalDialogQueue::GetInstance();
+ AppModalDialog* active_dialog = queue->active_dialog();
+ if (active_dialog && active_dialog->web_contents() == web_contents)
+ active_dialog->Invalidate();
+ for (AppModalDialogQueue::iterator i = queue->begin();
+ i != queue->end(); ++i) {
+ if ((*i)->web_contents() == web_contents)
+ (*i)->Invalidate();
+ }
+}
+
+void JavaScriptDialogManager::OnDialogClosed(
+ content::WebContents* web_contents,
+ DialogClosedCallback callback,
+ bool success,
+ const base::string16& user_input) {
+ // If an extension opened this dialog then the extension may shut down its
+ // lazy background page after the dialog closes. (Dialogs are closed before
+ // their WebContents is destroyed so |web_contents| is still valid here.)
+ extensions_client_->OnDialogClosed(web_contents);
+
+ callback.Run(success, user_input);
+}
+
+} // namespace app_modal
diff --git a/components/app_modal/javascript_dialog_manager.h b/components/app_modal/javascript_dialog_manager.h
index 88aa78c..8372015 100644
--- a/components/app_modal/javascript_dialog_manager.h
+++ b/components/app_modal/javascript_dialog_manager.h
@@ -6,28 +6,82 @@
#define COMPONENTS_APP_MODAL_JAVASCRIPT_DIALOG_MANAGER_H_
#include "base/memory/scoped_ptr.h"
+#include "base/memory/singleton.h"
+#include "components/app_modal/javascript_app_modal_dialog.h"
+#include "content/public/browser/javascript_dialog_manager.h"
-namespace content {
-class JavaScriptDialogManager;
-}
+namespace app_modal {
class JavaScriptDialogExtensionsClient;
class JavaScriptNativeDialogFactory;
-// Returns a JavaScriptDialogManager that creates real dialogs.
-// It returns a Singleton instance of JavaScriptDialogManager,
-// which should not be deleted.
-content::JavaScriptDialogManager* GetJavaScriptDialogManagerInstance();
-
-// Sets the JavaScriptNativeDialogFactory used to create platform specific
-// dialog window implementation.
-void SetJavaScriptNativeDialogFactory(
- scoped_ptr<JavaScriptNativeDialogFactory> factory);
-
-// JavaScript dialog may be opened by an extensions/app, thus needs
-// access to extensions functionality. This sets a client interface to
-// access //extensions.
-void SetJavaScriptDialogExtensionsClient(
- scoped_ptr<JavaScriptDialogExtensionsClient> client);
+class JavaScriptDialogManager : public content::JavaScriptDialogManager {
+ public:
+ static JavaScriptDialogManager* GetInstance();
+
+ JavaScriptNativeDialogFactory* native_dialog_factory() {
+ return native_dialog_factory_.get();
+ }
+
+ // Sets the JavaScriptNativeDialogFactory used to create platform specific
+ // dialog window instances.
+ void SetNativeDialogFactory(
+ scoped_ptr<JavaScriptNativeDialogFactory> factory);
+
+ // JavaScript dialogs may be opened by an extensions/app, thus they need
+ // access to extensions functionality. This sets a client interface to
+ // access //extensions.
+ void SetExtensionsClient(
+ scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client);
+
+ private:
+ friend struct DefaultSingletonTraits<JavaScriptDialogManager>;
+
+ JavaScriptDialogManager();
+ ~JavaScriptDialogManager() override;
+
+ // JavaScriptDialogManager:
+ void RunJavaScriptDialog(content::WebContents* web_contents,
+ const GURL& origin_url,
+ const std::string& accept_lang,
+ content::JavaScriptMessageType message_type,
+ const base::string16& message_text,
+ const base::string16& default_prompt_text,
+ const DialogClosedCallback& callback,
+ bool* did_suppress_message) override;
+ void RunBeforeUnloadDialog(content::WebContents* web_contents,
+ const base::string16& message_text,
+ bool is_reload,
+ const DialogClosedCallback& callback) override;
+ bool HandleJavaScriptDialog(content::WebContents* web_contents,
+ bool accept,
+ const base::string16* prompt_override) override;
+ void CancelActiveAndPendingDialogs(
+ content::WebContents* web_contents) override;
+ void WebContentsDestroyed(content::WebContents* web_contents) override;
+
+ base::string16 GetTitle(content::WebContents* web_contents,
+ const GURL& origin_url,
+ const std::string& accept_lang,
+ bool is_alert);
+
+ // Wrapper around a DialogClosedCallback so that we can intercept it before
+ // passing it onto the original callback.
+ void OnDialogClosed(content::WebContents* web_contents,
+ DialogClosedCallback callback,
+ bool success,
+ const base::string16& user_input);
+
+ // Mapping between the WebContents and their extra data. The key
+ // is a void* because the pointer is just a cookie and is never dereferenced.
+ JavaScriptAppModalDialog::ExtraDataMap javascript_dialog_extra_data_;
+
+ scoped_ptr<JavaScriptNativeDialogFactory> native_dialog_factory_;
+ scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client_;
+
+ DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogManager);
+};
+
+} // namespace app_modal
#endif // COMPONENTS_APP_MODAL_JAVASCRIPT_DIALOG_MANAGER_H_
diff --git a/components/app_modal/javascript_dialog_manager_impl.cc b/components/app_modal/javascript_dialog_manager_impl.cc
deleted file mode 100644
index 4203062..0000000
--- a/components/app_modal/javascript_dialog_manager_impl.cc
+++ /dev/null
@@ -1,233 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/app_modal/javascript_dialog_manager_impl.h"
-
-#include "base/bind.h"
-#include "base/compiler_specific.h"
-#include "base/i18n/rtl.h"
-#include "base/strings/utf_string_conversions.h"
-#include "components/app_modal/app_modal_dialog.h"
-#include "components/app_modal/app_modal_dialog_queue.h"
-#include "components/app_modal/javascript_dialog_extensions_client.h"
-#include "components/app_modal/javascript_native_dialog_factory.h"
-#include "components/app_modal/native_app_modal_dialog.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/common/content_client.h"
-#include "content/public/common/javascript_message_type.h"
-#include "grit/components_strings.h"
-#include "net/base/net_util.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace {
-
-class DefaultExtensionsClient : public JavaScriptDialogExtensionsClient {
- public:
- DefaultExtensionsClient() {}
- ~DefaultExtensionsClient() override {}
-
- private:
- // JavaScriptDialogExtensionsClient:
- void OnDialogOpened(content::WebContents* web_contents) override {}
- void OnDialogClosed(content::WebContents* web_contents) override {}
- bool GetExtensionName(content::WebContents* web_contents,
- const GURL& origin_url,
- std::string* name_out) override {
- return false;
- }
-
- DISALLOW_COPY_AND_ASSIGN(DefaultExtensionsClient);
-};
-
-} // namespace
-
-////////////////////////////////////////////////////////////////////////////////
-// JavaScriptDialogManagerImpl, public:
-
-// static
-JavaScriptDialogManagerImpl* JavaScriptDialogManagerImpl::GetInstance() {
- return Singleton<JavaScriptDialogManagerImpl>::get();
-}
-
-void JavaScriptDialogManagerImpl::RunJavaScriptDialog(
- content::WebContents* web_contents,
- const GURL& origin_url,
- const std::string& accept_lang,
- content::JavaScriptMessageType message_type,
- const base::string16& message_text,
- const base::string16& default_prompt_text,
- const DialogClosedCallback& callback,
- bool* did_suppress_message) {
- *did_suppress_message = false;
-
- ChromeJavaScriptDialogExtraData* extra_data =
- &javascript_dialog_extra_data_[web_contents];
-
- if (extra_data->suppress_javascript_messages_) {
- *did_suppress_message = true;
- return;
- }
-
- base::TimeDelta time_since_last_message = base::TimeTicks::Now() -
- extra_data->last_javascript_message_dismissal_;
- bool display_suppress_checkbox = false;
- // If a WebContents is impolite and displays a second JavaScript
- // alert within kJavaScriptMessageExpectedDelay of a previous
- // JavaScript alert being dismissed, show a checkbox offering to
- // suppress future alerts from this WebContents.
- const int kJavaScriptMessageExpectedDelay = 1000;
-
- if (time_since_last_message <
- base::TimeDelta::FromMilliseconds(kJavaScriptMessageExpectedDelay)) {
- display_suppress_checkbox = true;
- } else {
- display_suppress_checkbox = false;
- }
-
- bool is_alert = message_type == content::JAVASCRIPT_MESSAGE_TYPE_ALERT;
- base::string16 dialog_title =
- GetTitle(web_contents, origin_url, accept_lang, is_alert);
-
- extensions_client_->OnDialogOpened(web_contents);
-
- AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
- web_contents,
- &javascript_dialog_extra_data_,
- dialog_title,
- message_type,
- message_text,
- default_prompt_text,
- display_suppress_checkbox,
- false, // is_before_unload_dialog
- false, // is_reload
- base::Bind(&JavaScriptDialogManagerImpl::OnDialogClosed,
- base::Unretained(this), web_contents, callback)));
-}
-
-void JavaScriptDialogManagerImpl::RunBeforeUnloadDialog(
- content::WebContents* web_contents,
- const base::string16& message_text,
- bool is_reload,
- const DialogClosedCallback& callback) {
- const base::string16 title = l10n_util::GetStringUTF16(is_reload ?
- IDS_BEFORERELOAD_MESSAGEBOX_TITLE : IDS_BEFOREUNLOAD_MESSAGEBOX_TITLE);
- const base::string16 footer = l10n_util::GetStringUTF16(is_reload ?
- IDS_BEFORERELOAD_MESSAGEBOX_FOOTER : IDS_BEFOREUNLOAD_MESSAGEBOX_FOOTER);
-
- base::string16 full_message =
- message_text + base::ASCIIToUTF16("\n\n") + footer;
-
- extensions_client_->OnDialogOpened(web_contents);
-
- AppModalDialogQueue::GetInstance()->AddDialog(new JavaScriptAppModalDialog(
- web_contents,
- &javascript_dialog_extra_data_,
- title,
- content::JAVASCRIPT_MESSAGE_TYPE_CONFIRM,
- full_message,
- base::string16(), // default_prompt_text
- false, // display_suppress_checkbox
- true, // is_before_unload_dialog
- is_reload,
- base::Bind(&JavaScriptDialogManagerImpl::OnDialogClosed,
- base::Unretained(this), web_contents, callback)));
-}
-
-bool JavaScriptDialogManagerImpl::HandleJavaScriptDialog(
- content::WebContents* web_contents,
- bool accept,
- const base::string16* prompt_override) {
- AppModalDialogQueue* dialog_queue = AppModalDialogQueue::GetInstance();
- if (!dialog_queue->HasActiveDialog() ||
- !dialog_queue->active_dialog()->IsJavaScriptModalDialog() ||
- dialog_queue->active_dialog()->web_contents() != web_contents) {
- return false;
- }
- JavaScriptAppModalDialog* dialog = static_cast<JavaScriptAppModalDialog*>(
- dialog_queue->active_dialog());
- if (accept) {
- if (prompt_override)
- dialog->SetOverridePromptText(*prompt_override);
- dialog->native_dialog()->AcceptAppModalDialog();
- } else {
- dialog->native_dialog()->CancelAppModalDialog();
- }
- return true;
-}
-
-void JavaScriptDialogManagerImpl::WebContentsDestroyed(
- content::WebContents* web_contents) {
- CancelActiveAndPendingDialogs(web_contents);
- javascript_dialog_extra_data_.erase(web_contents);
-}
-
-void JavaScriptDialogManagerImpl::SetNativeDialogFactory(
- scoped_ptr<JavaScriptNativeDialogFactory> factory) {
- native_dialog_factory_ = factory.Pass();
-}
-
-void JavaScriptDialogManagerImpl::SetExtensionsClient(
- scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client) {
- extensions_client_ = extensions_client.Pass();
-}
-
-JavaScriptDialogManagerImpl::JavaScriptDialogManagerImpl()
- : extensions_client_(new DefaultExtensionsClient) {
-}
-
-JavaScriptDialogManagerImpl::~JavaScriptDialogManagerImpl() {
-}
-
-base::string16 JavaScriptDialogManagerImpl::GetTitle(
- content::WebContents* web_contents,
- const GURL& origin_url,
- const std::string& accept_lang,
- bool is_alert) {
- // If the URL hasn't any host, return the default string.
- if (!origin_url.has_host()) {
- return l10n_util::GetStringUTF16(
- is_alert ? IDS_JAVASCRIPT_ALERT_DEFAULT_TITLE
- : IDS_JAVASCRIPT_MESSAGEBOX_DEFAULT_TITLE);
- }
-
- // For extensions, show the extension name, but only if the origin of
- // the alert matches the top-level WebContents.
- std::string name;
- if (extensions_client_->GetExtensionName(web_contents, origin_url, &name))
- return base::UTF8ToUTF16(name);
-
- // Otherwise, return the formatted URL.
- // In this case, force URL to have LTR directionality.
- base::string16 url_string = net::FormatUrl(origin_url, accept_lang);
- return l10n_util::GetStringFUTF16(
- is_alert ? IDS_JAVASCRIPT_ALERT_TITLE
- : IDS_JAVASCRIPT_MESSAGEBOX_TITLE,
- base::i18n::GetDisplayStringInLTRDirectionality(url_string));
-}
-
-void JavaScriptDialogManagerImpl::CancelActiveAndPendingDialogs(
- content::WebContents* web_contents) {
- AppModalDialogQueue* queue = AppModalDialogQueue::GetInstance();
- AppModalDialog* active_dialog = queue->active_dialog();
- if (active_dialog && active_dialog->web_contents() == web_contents)
- active_dialog->Invalidate();
- for (AppModalDialogQueue::iterator i = queue->begin();
- i != queue->end(); ++i) {
- if ((*i)->web_contents() == web_contents)
- (*i)->Invalidate();
- }
-}
-
-void JavaScriptDialogManagerImpl::OnDialogClosed(
- content::WebContents* web_contents,
- DialogClosedCallback callback,
- bool success,
- const base::string16& user_input) {
- // If an extension opened this dialog then the extension may shut down its
- // lazy background page after the dialog closes. (Dialogs are closed before
- // their WebContents is destroyed so |web_contents| is still valid here.)
- extensions_client_->OnDialogClosed(web_contents);
-
- callback.Run(success, user_input);
-}
diff --git a/components/app_modal/javascript_dialog_manager_impl.h b/components/app_modal/javascript_dialog_manager_impl.h
deleted file mode 100644
index 4938936..0000000
--- a/components/app_modal/javascript_dialog_manager_impl.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_APP_MODAL_JAVASCRIPT_DIALOG_MANAGER_IMPL_H_
-#define COMPONENTS_APP_MODAL_JAVASCRIPT_DIALOG_MANAGER_IMPL_H_
-
-#include "content/public/browser/javascript_dialog_manager.h"
-
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/singleton.h"
-#include "components/app_modal/javascript_app_modal_dialog.h"
-
-class JavaScriptDialogExtensionsClient;
-class JavaScriptNativeDialogFactory;
-
-class JavaScriptDialogManagerImpl : public content::JavaScriptDialogManager {
- public:
- static JavaScriptDialogManagerImpl* GetInstance();
-
- // JavaScriptDialogManager:
- void RunJavaScriptDialog(content::WebContents* web_contents,
- const GURL& origin_url,
- const std::string& accept_lang,
- content::JavaScriptMessageType message_type,
- const base::string16& message_text,
- const base::string16& default_prompt_text,
- const DialogClosedCallback& callback,
- bool* did_suppress_message) override;
- void RunBeforeUnloadDialog(content::WebContents* web_contents,
- const base::string16& message_text,
- bool is_reload,
- const DialogClosedCallback& callback) override;
- bool HandleJavaScriptDialog(content::WebContents* web_contents,
- bool accept,
- const base::string16* prompt_override) override;
- void CancelActiveAndPendingDialogs(
- content::WebContents* web_contents) override;
- void WebContentsDestroyed(content::WebContents* web_contents) override;
-
- JavaScriptNativeDialogFactory* native_dialog_factory() {
- return native_dialog_factory_.get();
- }
-
- void SetNativeDialogFactory(
- scoped_ptr<JavaScriptNativeDialogFactory> factory);
-
- void SetExtensionsClient(
- scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client);
-
- private:
- friend struct DefaultSingletonTraits<JavaScriptDialogManagerImpl>;
-
- JavaScriptDialogManagerImpl();
- ~JavaScriptDialogManagerImpl() override;
-
- base::string16 GetTitle(content::WebContents* web_contents,
- const GURL& origin_url,
- const std::string& accept_lang,
- bool is_alert);
-
- // Wrapper around a DialogClosedCallback so that we can intercept it before
- // passing it onto the original callback.
- void OnDialogClosed(content::WebContents* web_contents,
- DialogClosedCallback callback,
- bool success,
- const base::string16& user_input);
-
- // Mapping between the WebContents and their extra data. The key
- // is a void* because the pointer is just a cookie and is never dereferenced.
- JavaScriptAppModalDialog::ExtraDataMap javascript_dialog_extra_data_;
-
- scoped_ptr<JavaScriptDialogExtensionsClient> extensions_client_;
- scoped_ptr<JavaScriptNativeDialogFactory> native_dialog_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogManagerImpl);
-};
-
-#endif // COMPONENTS_APP_MODAL_JAVASCRIPT_DIALOG_MANAGER_IMPL_H_
diff --git a/components/app_modal/javascript_native_dialog_factory.h b/components/app_modal/javascript_native_dialog_factory.h
index 155af63..d8f901c 100644
--- a/components/app_modal/javascript_native_dialog_factory.h
+++ b/components/app_modal/javascript_native_dialog_factory.h
@@ -7,6 +7,8 @@
#include "ui/gfx/native_widget_types.h"
+namespace app_modal {
+
class JavaScriptAppModalDialog;
class NativeAppModalDialog;
@@ -20,4 +22,6 @@ class JavaScriptNativeDialogFactory {
gfx::NativeWindow parent_window) = 0;
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_JAVASCRIPT_NATIVE_DIALOG_FACTORY_H_
diff --git a/components/app_modal/native_app_modal_dialog.h b/components/app_modal/native_app_modal_dialog.h
index 192619a..e41ff48 100644
--- a/components/app_modal/native_app_modal_dialog.h
+++ b/components/app_modal/native_app_modal_dialog.h
@@ -7,6 +7,8 @@
#include "ui/gfx/native_widget_types.h"
+namespace app_modal {
+
class JavaScriptAppModalDialog;
class NativeAppModalDialog {
@@ -29,4 +31,6 @@ class NativeAppModalDialog {
virtual void CancelAppModalDialog() = 0;
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_NATIVE_APP_MODAL_DIALOG_H_
diff --git a/components/app_modal/views/javascript_app_modal_dialog_views.cc b/components/app_modal/views/javascript_app_modal_dialog_views.cc
index 575e66c..7488272 100644
--- a/components/app_modal/views/javascript_app_modal_dialog_views.cc
+++ b/components/app_modal/views/javascript_app_modal_dialog_views.cc
@@ -15,6 +15,8 @@
#include "ui/views/widget/widget.h"
#include "ui/views/window/dialog_client_view.h"
+namespace app_modal {
+
////////////////////////////////////////////////////////////////////////////////
// JavaScriptAppModalDialogViews, public:
@@ -151,3 +153,5 @@ views::View* JavaScriptAppModalDialogViews::GetInitiallyFocusedView() {
return message_box_view_->text_box();
return views::DialogDelegate::GetInitiallyFocusedView();
}
+
+} // namespace app_modal
diff --git a/components/app_modal/views/javascript_app_modal_dialog_views.h b/components/app_modal/views/javascript_app_modal_dialog_views.h
index 8165393..6af35ba 100644
--- a/components/app_modal/views/javascript_app_modal_dialog_views.h
+++ b/components/app_modal/views/javascript_app_modal_dialog_views.h
@@ -15,6 +15,8 @@ namespace views {
class MessageBoxView;
}
+namespace app_modal {
+
class JavaScriptAppModalDialogViews : public NativeAppModalDialog,
public views::DialogDelegate {
public:
@@ -56,4 +58,6 @@ class JavaScriptAppModalDialogViews : public NativeAppModalDialog,
DISALLOW_COPY_AND_ASSIGN(JavaScriptAppModalDialogViews);
};
+} // namespace app_modal
+
#endif // COMPONENTS_APP_MODAL_VIEWS_JAVASCRIPT_APP_MODAL_DIALOG_VIEWS_H_
diff --git a/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.cc b/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.cc
index ddf0272..f50b4e9 100644
--- a/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.cc
+++ b/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.cc
@@ -11,6 +11,7 @@
#include "extensions/common/extension.h"
#include "ui/gfx/native_widget_types.h"
+namespace javascript_dialog_extensions_client {
namespace {
using extensions::Extension;
@@ -30,7 +31,7 @@ const Extension* GetExtensionForWebContents(
}
class JavaScriptDialogExtensionsClientImpl
- : public JavaScriptDialogExtensionsClient {
+ : public app_modal::JavaScriptDialogExtensionsClient {
public:
JavaScriptDialogExtensionsClientImpl() {}
~JavaScriptDialogExtensionsClientImpl() override {}
@@ -74,7 +75,10 @@ class JavaScriptDialogExtensionsClientImpl
} // namespace
-void InstallJavaScriptDialogExtensionsClient() {
- SetJavaScriptDialogExtensionsClient(
- make_scoped_ptr(new JavaScriptDialogExtensionsClientImpl));
+void InstallClient() {
+ app_modal::JavaScriptDialogManager::GetInstance()->
+ SetExtensionsClient(
+ make_scoped_ptr(new JavaScriptDialogExtensionsClientImpl));
}
+
+} // namespace javascript_dialog_extensions_client
diff --git a/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.h b/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.h
index 7aa2d22..b94fff2 100644
--- a/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.h
+++ b/extensions/components/javascript_dialog_extensions_client/javascript_dialog_extension_client_impl.h
@@ -5,7 +5,11 @@
#ifndef EXTENSIONS_COMPONENTS_JAVASCRIPT_DIALOG_EXTENSIONS_CLIENT_JAVASCRIPT_DIALOG_EXTENSION_CLIENT_IMPL_H_
#define EXTENSIONS_COMPONENTS_JAVASCRIPT_DIALOG_EXTENSIONS_CLIENT_JAVASCRIPT_DIALOG_EXTENSION_CLIENT_IMPL_H_
-void InstallJavaScriptDialogExtensionsClient();
+namespace javascript_dialog_extensions_client {
+
+void InstallClient();
+
+} // namespace javascript_dialog_extensions_client
#endif // EXTENSIONS_COMPONENTS_JAVASCRIPT_DIALOG_EXTENSIONS_CLIENT_JAVASCRIPT_DIALOG_EXTENSION_CLIENT_IMPL_H_