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

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

Issue 2295693004: Pass JavaRef to Java methods in android_webview. (Closed)
Patch Set: Created 4 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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.h" 5 #include "android_webview/native/aw_contents.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility> 8 #include <utility>
9 9
10 #include "android_webview/browser/aw_browser_context.h" 10 #include "android_webview/browser/aw_browser_context.h"
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 if (ContentAutofillDriverFactory::FromWebContents(web_contents)) 266 if (ContentAutofillDriverFactory::FromWebContents(web_contents))
267 return; 267 return;
268 268
269 AwAutofillClient::CreateForWebContents(web_contents); 269 AwAutofillClient::CreateForWebContents(web_contents);
270 ContentAutofillDriverFactory::CreateForWebContentsAndDelegate( 270 ContentAutofillDriverFactory::CreateForWebContentsAndDelegate(
271 web_contents, AwAutofillClient::FromWebContents(web_contents), 271 web_contents, AwAutofillClient::FromWebContents(web_contents),
272 base::android::GetDefaultLocale(), 272 base::android::GetDefaultLocale(),
273 AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER); 273 AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER);
274 } 274 }
275 275
276 void AwContents::SetAwAutofillClient(jobject client) { 276 void AwContents::SetAwAutofillClient(const JavaRef<jobject>& client) {
277 DCHECK_CURRENTLY_ON(BrowserThread::UI); 277 DCHECK_CURRENTLY_ON(BrowserThread::UI);
278 JNIEnv* env = AttachCurrentThread(); 278 JNIEnv* env = AttachCurrentThread();
279 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 279 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
280 if (obj.is_null()) 280 if (obj.is_null())
281 return; 281 return;
282 Java_AwContents_setAwAutofillClient(env, obj, client); 282 Java_AwContents_setAwAutofillClient(env, obj, client);
283 } 283 }
284 284
285 AwContents::~AwContents() { 285 AwContents::~AwContents() {
286 DCHECK_EQ(this, AwContents::FromWebContents(web_contents_.get())); 286 DCHECK_EQ(this, AwContents::FromWebContents(web_contents_.get()));
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 base::Bind(&DocumentHasImagesCallback, j_message)); 392 base::Bind(&DocumentHasImagesCallback, j_message));
393 } 393 }
394 394
395 namespace { 395 namespace {
396 void GenerateMHTMLCallback(ScopedJavaGlobalRef<jobject>* callback, 396 void GenerateMHTMLCallback(ScopedJavaGlobalRef<jobject>* callback,
397 const base::FilePath& path, 397 const base::FilePath& path,
398 int64_t size) { 398 int64_t size) {
399 JNIEnv* env = AttachCurrentThread(); 399 JNIEnv* env = AttachCurrentThread();
400 // Android files are UTF8, so the path conversion below is safe. 400 // Android files are UTF8, so the path conversion below is safe.
401 Java_AwContents_generateMHTMLCallback( 401 Java_AwContents_generateMHTMLCallback(
402 env, ConvertUTF8ToJavaString(env, path.AsUTF8Unsafe()), size, 402 env, ConvertUTF8ToJavaString(env, path.AsUTF8Unsafe()), size, *callback);
403 callback->obj());
404 } 403 }
405 } // namespace 404 } // namespace
406 405
407 void AwContents::GenerateMHTML(JNIEnv* env, 406 void AwContents::GenerateMHTML(JNIEnv* env,
408 const JavaParamRef<jobject>& obj, 407 const JavaParamRef<jobject>& obj,
409 const JavaParamRef<jstring>& jpath, 408 const JavaParamRef<jstring>& jpath,
410 const JavaParamRef<jobject>& callback) { 409 const JavaParamRef<jobject>& callback) {
411 DCHECK_CURRENTLY_ON(BrowserThread::UI); 410 DCHECK_CURRENTLY_ON(BrowserThread::UI);
412 ScopedJavaGlobalRef<jobject>* j_callback = new ScopedJavaGlobalRef<jobject>(); 411 ScopedJavaGlobalRef<jobject>* j_callback = new ScopedJavaGlobalRef<jobject>();
413 j_callback->Reset(env, callback); 412 j_callback->Reset(env, callback);
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 1139
1141 namespace { 1140 namespace {
1142 void InvokeVisualStateCallback(const JavaObjectWeakGlobalRef& java_ref, 1141 void InvokeVisualStateCallback(const JavaObjectWeakGlobalRef& java_ref,
1143 jlong request_id, 1142 jlong request_id,
1144 ScopedJavaGlobalRef<jobject>* callback, 1143 ScopedJavaGlobalRef<jobject>* callback,
1145 bool result) { 1144 bool result) {
1146 JNIEnv* env = AttachCurrentThread(); 1145 JNIEnv* env = AttachCurrentThread();
1147 ScopedJavaLocalRef<jobject> obj = java_ref.get(env); 1146 ScopedJavaLocalRef<jobject> obj = java_ref.get(env);
1148 if (obj.is_null()) 1147 if (obj.is_null())
1149 return; 1148 return;
1150 Java_AwContents_invokeVisualStateCallback(env, obj, callback->obj(), 1149 Java_AwContents_invokeVisualStateCallback(env, obj, *callback, request_id);
1151 request_id);
1152 } 1150 }
1153 } // namespace 1151 } // namespace
1154 1152
1155 void AwContents::InsertVisualStateCallback( 1153 void AwContents::InsertVisualStateCallback(
1156 JNIEnv* env, 1154 JNIEnv* env,
1157 const JavaParamRef<jobject>& obj, 1155 const JavaParamRef<jobject>& obj,
1158 jlong request_id, 1156 jlong request_id,
1159 const JavaParamRef<jobject>& callback) { 1157 const JavaParamRef<jobject>& callback) {
1160 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1158 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1161 ScopedJavaGlobalRef<jobject>* j_callback = new ScopedJavaGlobalRef<jobject>(); 1159 ScopedJavaGlobalRef<jobject>* j_callback = new ScopedJavaGlobalRef<jobject>();
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 int routing_id = new_host->GetRoutingID(); 1292 int routing_id = new_host->GetRoutingID();
1295 // At this point, the current RVH may or may not contain a compositor. So 1293 // At this point, the current RVH may or may not contain a compositor. So
1296 // compositor_ may be nullptr, in which case 1294 // compositor_ may be nullptr, in which case
1297 // BrowserViewRenderer::DidInitializeCompositor() callback is time when the 1295 // BrowserViewRenderer::DidInitializeCompositor() callback is time when the
1298 // new compositor is constructed. 1296 // new compositor is constructed.
1299 browser_view_renderer_.SetActiveCompositorID( 1297 browser_view_renderer_.SetActiveCompositorID(
1300 CompositorID(process_id, routing_id)); 1298 CompositorID(process_id, routing_id));
1301 } 1299 }
1302 1300
1303 } // namespace android_webview 1301 } // namespace android_webview
OLDNEW
« no previous file with comments | « android_webview/native/aw_contents.h ('k') | android_webview/native/aw_contents_background_thread_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698