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

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

Issue 545963002: Android WebView: clean up the AwContentsClientBridge webcontents userdata. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add another missing callback run Created 6 years, 3 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
« no previous file with comments | « android_webview/native/aw_contents.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW
« no previous file with comments | « android_webview/native/aw_contents.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698