Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: android_webview/native/aw_contents_client_bridge.cc

Issue 1180223004: Check user gesture before firing an intent in WebView (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed failing test, added another Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 ConvertUTF8ToJavaString(env, origin_url.spec())); 334 ConvertUTF8ToJavaString(env, origin_url.spec()));
335 ScopedJavaLocalRef<jstring> jmessage( 335 ScopedJavaLocalRef<jstring> jmessage(
336 ConvertUTF16ToJavaString(env, message_text)); 336 ConvertUTF16ToJavaString(env, message_text));
337 337
338 devtools_instrumentation::ScopedEmbedderCallbackTask("onJsBeforeUnload"); 338 devtools_instrumentation::ScopedEmbedderCallbackTask("onJsBeforeUnload");
339 Java_AwContentsClientBridge_handleJsBeforeUnload( 339 Java_AwContentsClientBridge_handleJsBeforeUnload(
340 env, obj.obj(), jurl.obj(), jmessage.obj(), callback_id); 340 env, obj.obj(), jurl.obj(), jmessage.obj(), callback_id);
341 } 341 }
342 342
343 bool AwContentsClientBridge::ShouldOverrideUrlLoading( 343 bool AwContentsClientBridge::ShouldOverrideUrlLoading(
344 const base::string16& url) { 344 const base::string16& url, bool has_user_gesture, bool is_redirect) {
345 JNIEnv* env = AttachCurrentThread(); 345 JNIEnv* env = AttachCurrentThread();
346 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 346 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
347 if (obj.is_null()) 347 if (obj.is_null())
348 return false; 348 return false;
349 ScopedJavaLocalRef<jstring> jurl = ConvertUTF16ToJavaString(env, url); 349 ScopedJavaLocalRef<jstring> jurl = ConvertUTF16ToJavaString(env, url);
350 devtools_instrumentation::ScopedEmbedderCallbackTask( 350 devtools_instrumentation::ScopedEmbedderCallbackTask(
351 "shouldOverrideUrlLoading"); 351 "shouldOverrideUrlLoading");
352 return Java_AwContentsClientBridge_shouldOverrideUrlLoading( 352 return Java_AwContentsClientBridge_shouldOverrideUrlLoading(
353 env, obj.obj(), 353 env, obj.obj(),
354 jurl.obj()); 354 jurl.obj(), has_user_gesture, is_redirect);
355 } 355 }
356 356
357 void AwContentsClientBridge::ConfirmJsResult(JNIEnv* env, 357 void AwContentsClientBridge::ConfirmJsResult(JNIEnv* env,
358 jobject, 358 jobject,
359 int id, 359 int id,
360 jstring prompt) { 360 jstring prompt) {
361 DCHECK_CURRENTLY_ON(BrowserThread::UI); 361 DCHECK_CURRENTLY_ON(BrowserThread::UI);
362 content::JavaScriptDialogManager::DialogClosedCallback* callback = 362 content::JavaScriptDialogManager::DialogClosedCallback* callback =
363 pending_js_dialog_callbacks_.Lookup(id); 363 pending_js_dialog_callbacks_.Lookup(id);
364 if (!callback) { 364 if (!callback) {
(...skipping 28 matching lines...) Expand all
393 pending_client_cert_request_delegates_.Remove(request_id); 393 pending_client_cert_request_delegates_.Remove(request_id);
394 394
395 delete delegate; 395 delete delegate;
396 } 396 }
397 397
398 bool RegisterAwContentsClientBridge(JNIEnv* env) { 398 bool RegisterAwContentsClientBridge(JNIEnv* env) {
399 return RegisterNativesImpl(env); 399 return RegisterNativesImpl(env);
400 } 400 }
401 401
402 } // namespace android_webview 402 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698