| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "android_webview/native/aw_contents_client_bridge.h" | 5 #include "android_webview/native/aw_contents_client_bridge.h" |
| 6 | 6 |
| 7 #include "android_webview/common/devtools_instrumentation.h" | 7 #include "android_webview/common/devtools_instrumentation.h" |
| 8 #include "android_webview/native/aw_contents.h" | 8 #include "android_webview/native/aw_contents.h" |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 void AwContentsClientBridge::RunJavaScriptDialog( | 255 void AwContentsClientBridge::RunJavaScriptDialog( |
| 256 content::JavaScriptMessageType message_type, | 256 content::JavaScriptMessageType message_type, |
| 257 const GURL& origin_url, | 257 const GURL& origin_url, |
| 258 const base::string16& message_text, | 258 const base::string16& message_text, |
| 259 const base::string16& default_prompt_text, | 259 const base::string16& default_prompt_text, |
| 260 const content::JavaScriptDialogManager::DialogClosedCallback& callback) { | 260 const content::JavaScriptDialogManager::DialogClosedCallback& callback) { |
| 261 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 261 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 262 JNIEnv* env = AttachCurrentThread(); | 262 JNIEnv* env = AttachCurrentThread(); |
| 263 | 263 |
| 264 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 264 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
| 265 if (obj.is_null()) | 265 if (obj.is_null()) { |
| 266 callback.Run(false, base::string16()); |
| 266 return; | 267 return; |
| 268 } |
| 267 | 269 |
| 268 int callback_id = pending_js_dialog_callbacks_.Add( | 270 int callback_id = pending_js_dialog_callbacks_.Add( |
| 269 new content::JavaScriptDialogManager::DialogClosedCallback(callback)); | 271 new content::JavaScriptDialogManager::DialogClosedCallback(callback)); |
| 270 ScopedJavaLocalRef<jstring> jurl( | 272 ScopedJavaLocalRef<jstring> jurl( |
| 271 ConvertUTF8ToJavaString(env, origin_url.spec())); | 273 ConvertUTF8ToJavaString(env, origin_url.spec())); |
| 272 ScopedJavaLocalRef<jstring> jmessage( | 274 ScopedJavaLocalRef<jstring> jmessage( |
| 273 ConvertUTF16ToJavaString(env, message_text)); | 275 ConvertUTF16ToJavaString(env, message_text)); |
| 274 | 276 |
| 275 switch (message_type) { | 277 switch (message_type) { |
| 276 case content::JAVASCRIPT_MESSAGE_TYPE_ALERT: { | 278 case content::JAVASCRIPT_MESSAGE_TYPE_ALERT: { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 303 } | 305 } |
| 304 | 306 |
| 305 void AwContentsClientBridge::RunBeforeUnloadDialog( | 307 void AwContentsClientBridge::RunBeforeUnloadDialog( |
| 306 const GURL& origin_url, | 308 const GURL& origin_url, |
| 307 const base::string16& message_text, | 309 const base::string16& message_text, |
| 308 const content::JavaScriptDialogManager::DialogClosedCallback& callback) { | 310 const content::JavaScriptDialogManager::DialogClosedCallback& callback) { |
| 309 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 311 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 310 JNIEnv* env = AttachCurrentThread(); | 312 JNIEnv* env = AttachCurrentThread(); |
| 311 | 313 |
| 312 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 314 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
| 313 if (obj.is_null()) | 315 if (obj.is_null()) { |
| 316 callback.Run(false, base::string16()); |
| 314 return; | 317 return; |
| 318 } |
| 315 | 319 |
| 316 int callback_id = pending_js_dialog_callbacks_.Add( | 320 int callback_id = pending_js_dialog_callbacks_.Add( |
| 317 new content::JavaScriptDialogManager::DialogClosedCallback(callback)); | 321 new content::JavaScriptDialogManager::DialogClosedCallback(callback)); |
| 318 ScopedJavaLocalRef<jstring> jurl( | 322 ScopedJavaLocalRef<jstring> jurl( |
| 319 ConvertUTF8ToJavaString(env, origin_url.spec())); | 323 ConvertUTF8ToJavaString(env, origin_url.spec())); |
| 320 ScopedJavaLocalRef<jstring> jmessage( | 324 ScopedJavaLocalRef<jstring> jmessage( |
| 321 ConvertUTF16ToJavaString(env, message_text)); | 325 ConvertUTF16ToJavaString(env, message_text)); |
| 322 | 326 |
| 323 devtools_instrumentation::ScopedEmbedderCallbackTask("onJsBeforeUnload"); | 327 devtools_instrumentation::ScopedEmbedderCallbackTask("onJsBeforeUnload"); |
| 324 Java_AwContentsClientBridge_handleJsBeforeUnload( | 328 Java_AwContentsClientBridge_handleJsBeforeUnload( |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 pending_client_cert_request_callbacks_.Lookup(request_id); | 381 pending_client_cert_request_callbacks_.Lookup(request_id); |
| 378 callback->Run(scoped_refptr<net::X509Certificate>()); | 382 callback->Run(scoped_refptr<net::X509Certificate>()); |
| 379 pending_client_cert_request_callbacks_.Remove(request_id); | 383 pending_client_cert_request_callbacks_.Remove(request_id); |
| 380 } | 384 } |
| 381 | 385 |
| 382 bool RegisterAwContentsClientBridge(JNIEnv* env) { | 386 bool RegisterAwContentsClientBridge(JNIEnv* env) { |
| 383 return RegisterNativesImpl(env); | 387 return RegisterNativesImpl(env); |
| 384 } | 388 } |
| 385 | 389 |
| 386 } // namespace android_webview | 390 } // namespace android_webview |
| OLD | NEW |