Index: chrome/browser/ui/android/javascript_app_modal_dialog_android.cc |
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 3c7331fa92174fa8076aee21c3abd7d19fef67f1..caa23f07aa4ebad3ae4fa4b0ec65a325d18ca5f2 100644 |
--- a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc |
+++ b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc |
@@ -6,13 +6,12 @@ |
#include "base/android/jni_android.h" |
#include "base/android/jni_string.h" |
-#include "base/strings/utf_string_conversions.h" |
- |
-#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/ui/app_modal_dialogs/chrome_javascript_native_dialog_factory.h" |
#include "components/app_modal_dialogs/app_modal_dialog_queue.h" |
#include "components/app_modal_dialogs/javascript_app_modal_dialog.h" |
+#include "components/app_modal_dialogs/javascript_dialog_manager.h" |
+#include "components/app_modal_dialogs/javascript_native_dialog_factory.h" |
#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/web_contents.h" |
#include "content/public/common/javascript_message_type.h" |
#include "jni/JavascriptAppModalDialog_jni.h" |
#include "ui/base/android/window_android.h" |
@@ -21,15 +20,6 @@ using base::android::AttachCurrentThread; |
using base::android::ConvertUTF16ToJavaString; |
using base::android::ScopedJavaGlobalRef; |
using base::android::ScopedJavaLocalRef; |
-using content::BrowserThread; |
- |
-// static |
-NativeAppModalDialog* NativeAppModalDialog::CreateNativeJavaScriptPrompt( |
- JavaScriptAppModalDialog* dialog, |
- gfx::NativeWindow parent_window) { |
- return new JavascriptAppModalDialogAndroid(AttachCurrentThread(), |
- dialog, parent_window); |
-} |
JavascriptAppModalDialogAndroid::JavascriptAppModalDialogAndroid( |
JNIEnv* env, |
@@ -45,7 +35,7 @@ int JavascriptAppModalDialogAndroid::GetAppModalDialogButtons() const { |
} |
void JavascriptAppModalDialogAndroid::ShowAppModalDialog() { |
- DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
JNIEnv* env = AttachCurrentThread(); |
// Keep a strong ref to the parent window while we make the call to java to |
@@ -165,3 +155,31 @@ JavascriptAppModalDialogAndroid::~JavascriptAppModalDialogAndroid() { |
Java_JavascriptAppModalDialog_dismiss(env, dialog_jobject_.obj()); |
} |
} |
+ |
+namespace { |
+ |
+class ChromeJavaScriptNativeDialogAndroidFactory |
+ : public JavaScriptNativeDialogFactory { |
+ public: |
+ ChromeJavaScriptNativeDialogAndroidFactory() {} |
+ ~ChromeJavaScriptNativeDialogAndroidFactory() override {} |
+ |
+ private: |
+ NativeAppModalDialog* CreateNativeJavaScriptDialog( |
+ JavaScriptAppModalDialog* dialog, |
+ gfx::NativeWindow parent_window) override { |
+ return new JavascriptAppModalDialogAndroid( |
+ base::android::AttachCurrentThread(), |
+ dialog, parent_window); |
+ } |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ChromeJavaScriptNativeDialogAndroidFactory); |
+}; |
+ |
+} // namespace |
+ |
+void InstallChromeJavaScriptNativeDialogFactory() { |
+ SetJavaScriptNativeDialogFactory( |
+ make_scoped_ptr(new ChromeJavaScriptNativeDialogAndroidFactory)); |
+} |
+ |