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 4c0f34f279843ddffc0d94a3d87704128e68c6cc..8a75a3bbbcb152a65735ca681a692a5f85df6a65 100644 |
--- a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc |
+++ b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc |
@@ -9,6 +9,7 @@ |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" |
#include "chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/web_contents.h" |
@@ -18,6 +19,7 @@ |
using base::android::AttachCurrentThread; |
using base::android::ConvertUTF16ToJavaString; |
+using base::android::ScopedJavaGlobalRef; |
using base::android::ScopedJavaLocalRef; |
using content::BrowserThread; |
@@ -57,8 +59,7 @@ void JavascriptAppModalDialogAndroid::ShowAppModalDialog() { |
JNIEnv* env = AttachCurrentThread(); |
// Keep a strong ref to the parent window while we make the call to java to |
// display the dialog. |
- ScopedJavaLocalRef<jobject> parent_jobj = parent_jobject_weak_ref_.get( |
- env); |
+ ScopedJavaLocalRef<jobject> parent_jobj = parent_jobject_weak_ref_.get(env); |
if (parent_jobj.is_null()) { |
CancelAppModalDialog(); |
return; |
@@ -141,6 +142,22 @@ void JavascriptAppModalDialogAndroid::DidCancelAppModalDialog( |
delete this; |
} |
+const ScopedJavaGlobalRef<jobject>& |
+ JavascriptAppModalDialogAndroid::GetDialogObject() const { |
+ return dialog_jobject_; |
+} |
+ |
+// static |
+jobject GetCurrentModalDialog(JNIEnv* env, jclass clazz) { |
+ AppModalDialog* dialog = AppModalDialogQueue::GetInstance()->active_dialog(); |
+ if (!dialog || !dialog->native_dialog()) |
+ return NULL; |
+ |
+ JavascriptAppModalDialogAndroid* js_dialog = |
+ static_cast<JavascriptAppModalDialogAndroid*>(dialog->native_dialog()); |
+ return js_dialog->GetDialogObject().obj(); |
+} |
+ |
// static |
bool JavascriptAppModalDialogAndroid::RegisterJavascriptAppModalDialog( |
JNIEnv* env) { |