| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chrome/browser/autofill/android/personal_data_manager_android.h" | 5 #include "chrome/browser/autofill/android/personal_data_manager_android.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <algorithm> |
| 8 #include <memory> | 9 #include <memory> |
| 9 #include <utility> | 10 #include <utility> |
| 10 | 11 |
| 11 #include "base/android/jni_array.h" | 12 #include "base/android/jni_array.h" |
| 12 #include "base/android/jni_string.h" | 13 #include "base/android/jni_string.h" |
| 13 #include "base/command_line.h" | 14 #include "base/command_line.h" |
| 14 #include "base/format_macros.h" | 15 #include "base/format_macros.h" |
| 15 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" |
| 16 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
| 17 #include "base/strings/utf_string_conversions.h" | 18 #include "base/strings/utf_string_conversions.h" |
| 19 #include "base/time/time.h" |
| 18 #include "chrome/browser/android/resource_mapper.h" | 20 #include "chrome/browser/android/resource_mapper.h" |
| 19 #include "chrome/browser/autofill/personal_data_manager_factory.h" | 21 #include "chrome/browser/autofill/personal_data_manager_factory.h" |
| 20 #include "chrome/browser/browser_process.h" | 22 #include "chrome/browser/browser_process.h" |
| 21 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
| 22 #include "chrome/browser/profiles/profile_manager.h" | 24 #include "chrome/browser/profiles/profile_manager.h" |
| 23 #include "chrome/common/pref_names.h" | 25 #include "chrome/common/pref_names.h" |
| 24 #include "components/autofill/content/browser/content_autofill_driver.h" | 26 #include "components/autofill/content/browser/content_autofill_driver.h" |
| 25 #include "components/autofill/content/browser/content_autofill_driver_factory.h" | 27 #include "components/autofill/content/browser/content_autofill_driver_factory.h" |
| 26 #include "components/autofill/core/browser/autofill_country.h" | 28 #include "components/autofill/core/browser/autofill_country.h" |
| 27 #include "components/autofill/core/browser/autofill_type.h" | 29 #include "components/autofill/core/browser/autofill_type.h" |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 : weak_java_obj_(env, obj), | 283 : weak_java_obj_(env, obj), |
| 282 personal_data_manager_(PersonalDataManagerFactory::GetForProfile( | 284 personal_data_manager_(PersonalDataManagerFactory::GetForProfile( |
| 283 ProfileManager::GetActiveUserProfile())) { | 285 ProfileManager::GetActiveUserProfile())) { |
| 284 personal_data_manager_->AddObserver(this); | 286 personal_data_manager_->AddObserver(this); |
| 285 } | 287 } |
| 286 | 288 |
| 287 PersonalDataManagerAndroid::~PersonalDataManagerAndroid() { | 289 PersonalDataManagerAndroid::~PersonalDataManagerAndroid() { |
| 288 personal_data_manager_->RemoveObserver(this); | 290 personal_data_manager_->RemoveObserver(this); |
| 289 } | 291 } |
| 290 | 292 |
| 291 jint PersonalDataManagerAndroid::GetProfileCount( | 293 ScopedJavaLocalRef<jobjectArray> |
| 292 JNIEnv* unused_env, | 294 PersonalDataManagerAndroid::GetProfileGUIDsForSettings( |
| 295 JNIEnv* env, |
| 293 const JavaParamRef<jobject>& unused_obj) { | 296 const JavaParamRef<jobject>& unused_obj) { |
| 294 return personal_data_manager_->GetProfiles().size(); | 297 return GetProfileGUIDs(env, personal_data_manager_->GetProfiles()); |
| 295 } | 298 } |
| 296 | 299 |
| 297 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByIndex( | 300 ScopedJavaLocalRef<jobjectArray> |
| 301 PersonalDataManagerAndroid::GetProfileGUIDsToSuggest( |
| 298 JNIEnv* env, | 302 JNIEnv* env, |
| 299 const JavaParamRef<jobject>& unused_obj, | 303 const JavaParamRef<jobject>& unused_obj) { |
| 300 jint index) { | 304 return GetProfileGUIDs(env, personal_data_manager_->GetProfilesToSuggest()); |
| 301 const std::vector<AutofillProfile*>& profiles = | |
| 302 personal_data_manager_->GetProfiles(); | |
| 303 size_t index_size_t = static_cast<size_t>(index); | |
| 304 DCHECK_LT(index_size_t, profiles.size()); | |
| 305 return CreateJavaProfileFromNative(env, *profiles[index_size_t]); | |
| 306 } | 305 } |
| 307 | 306 |
| 308 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByGUID( | 307 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByGUID( |
| 309 JNIEnv* env, | 308 JNIEnv* env, |
| 310 const JavaParamRef<jobject>& unused_obj, | 309 const JavaParamRef<jobject>& unused_obj, |
| 311 const JavaParamRef<jstring>& jguid) { | 310 const JavaParamRef<jstring>& jguid) { |
| 312 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | 311 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
| 313 ConvertJavaStringToUTF8(env, jguid)); | 312 ConvertJavaStringToUTF8(env, jguid)); |
| 314 if (!profile) | 313 if (!profile) |
| 315 return ScopedJavaLocalRef<jobject>(); | 314 return ScopedJavaLocalRef<jobject>(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 331 if (guid.empty()) { | 330 if (guid.empty()) { |
| 332 personal_data_manager_->AddProfile(profile); | 331 personal_data_manager_->AddProfile(profile); |
| 333 } else { | 332 } else { |
| 334 profile.set_guid(guid); | 333 profile.set_guid(guid); |
| 335 personal_data_manager_->UpdateProfile(profile); | 334 personal_data_manager_->UpdateProfile(profile); |
| 336 } | 335 } |
| 337 | 336 |
| 338 return ConvertUTF8ToJavaString(env, profile.guid()); | 337 return ConvertUTF8ToJavaString(env, profile.guid()); |
| 339 } | 338 } |
| 340 | 339 |
| 340 ScopedJavaLocalRef<jobjectArray> |
| 341 PersonalDataManagerAndroid::GetProfileLabelsForSettings( |
| 342 JNIEnv* env, |
| 343 const JavaParamRef<jobject>& unused_obj) { |
| 344 return GetProfileLabels(env, false, personal_data_manager_->GetProfiles()); |
| 345 } |
| 346 |
| 347 ScopedJavaLocalRef<jobjectArray> |
| 348 PersonalDataManagerAndroid::GetProfileLabelsToSuggest( |
| 349 JNIEnv* env, |
| 350 const JavaParamRef<jobject>& unused_obj) { |
| 351 return GetProfileLabels(env, true, |
| 352 personal_data_manager_->GetProfilesToSuggest()); |
| 353 } |
| 354 |
| 355 base::android::ScopedJavaLocalRef<jobjectArray> |
| 356 PersonalDataManagerAndroid::GetCreditCardGUIDsForSettings( |
| 357 JNIEnv* env, |
| 358 const base::android::JavaParamRef<jobject>& unused_obj) { |
| 359 return GetCreditCardGUIDs(env, personal_data_manager_->GetCreditCards()); |
| 360 } |
| 361 |
| 362 base::android::ScopedJavaLocalRef<jobjectArray> |
| 363 PersonalDataManagerAndroid::GetCreditCardGUIDsToSuggest( |
| 364 JNIEnv* env, |
| 365 const base::android::JavaParamRef<jobject>& unused_obj) { |
| 366 return GetCreditCardGUIDs(env, |
| 367 personal_data_manager_->GetCreditCardsToSuggest()); |
| 368 } |
| 369 |
| 370 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByGUID( |
| 371 JNIEnv* env, |
| 372 const JavaParamRef<jobject>& unused_obj, |
| 373 const JavaParamRef<jstring>& jguid) { |
| 374 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
| 375 ConvertJavaStringToUTF8(env, jguid)); |
| 376 if (!card) |
| 377 return ScopedJavaLocalRef<jobject>(); |
| 378 |
| 379 return CreateJavaCreditCardFromNative(env, *card); |
| 380 } |
| 381 |
| 382 ScopedJavaLocalRef<jstring> PersonalDataManagerAndroid::SetCreditCard( |
| 383 JNIEnv* env, |
| 384 const JavaParamRef<jobject>& unused_obj, |
| 385 const JavaParamRef<jobject>& jcard) { |
| 386 std::string guid = ConvertJavaStringToUTF8( |
| 387 env, |
| 388 Java_CreditCard_getGUID(env, jcard).obj()); |
| 389 |
| 390 CreditCard card; |
| 391 PopulateNativeCreditCardFromJava(jcard, env, &card); |
| 392 |
| 393 if (guid.empty()) { |
| 394 personal_data_manager_->AddCreditCard(card); |
| 395 } else { |
| 396 card.set_guid(guid); |
| 397 personal_data_manager_->UpdateCreditCard(card); |
| 398 } |
| 399 return ConvertUTF8ToJavaString(env, card.guid()); |
| 400 } |
| 401 |
| 402 void PersonalDataManagerAndroid::AddServerCreditCardForTest( |
| 403 JNIEnv* env, |
| 404 const base::android::JavaParamRef<jobject>& unused_obj, |
| 405 const base::android::JavaParamRef<jobject>& jcard) { |
| 406 std::unique_ptr<CreditCard> card(new CreditCard); |
| 407 PopulateNativeCreditCardFromJava(jcard, env, card.get()); |
| 408 card->set_record_type(CreditCard::MASKED_SERVER_CARD); |
| 409 personal_data_manager_->AddServerCreditCardForTest(std::move(card)); |
| 410 } |
| 411 |
| 412 void PersonalDataManagerAndroid::RemoveByGUID( |
| 413 JNIEnv* env, |
| 414 const JavaParamRef<jobject>& unused_obj, |
| 415 const JavaParamRef<jstring>& jguid) { |
| 416 personal_data_manager_->RemoveByGUID(ConvertJavaStringToUTF8(env, jguid)); |
| 417 } |
| 418 |
| 419 void PersonalDataManagerAndroid::ClearUnmaskedCache( |
| 420 JNIEnv* env, |
| 421 const JavaParamRef<jobject>& unused_obj, |
| 422 const JavaParamRef<jstring>& guid) { |
| 423 personal_data_manager_->ResetFullServerCard( |
| 424 ConvertJavaStringToUTF8(env, guid)); |
| 425 } |
| 426 |
| 427 void PersonalDataManagerAndroid::GetFullCardForPaymentRequest( |
| 428 JNIEnv* env, |
| 429 const JavaParamRef<jobject>& unused_obj, |
| 430 const JavaParamRef<jobject>& jweb_contents, |
| 431 const JavaParamRef<jstring>& jguid, |
| 432 const JavaParamRef<jobject>& jdelegate) { |
| 433 // Self-deleting object. |
| 434 (new FullCardRequester()) |
| 435 ->GetFullCard(env, jweb_contents, jdelegate, |
| 436 personal_data_manager_->GetCreditCardByGUID( |
| 437 ConvertJavaStringToUTF8(env, jguid))); |
| 438 } |
| 439 |
| 440 void PersonalDataManagerAndroid::OnPersonalDataChanged() { |
| 441 JNIEnv* env = base::android::AttachCurrentThread(); |
| 442 if (weak_java_obj_.get(env).is_null()) |
| 443 return; |
| 444 |
| 445 Java_PersonalDataManager_personalDataChanged(env, |
| 446 weak_java_obj_.get(env).obj()); |
| 447 } |
| 448 |
| 449 // static |
| 450 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { |
| 451 return RegisterNativesImpl(env); |
| 452 } |
| 453 |
| 454 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( |
| 455 JNIEnv* env, |
| 456 const JavaParamRef<jobject>& unused_obj, |
| 457 const JavaParamRef<jstring>& jguid, |
| 458 jint count, |
| 459 jint date) { |
| 460 DCHECK(count >= 0 && date >= 0); |
| 461 |
| 462 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
| 463 ConvertJavaStringToUTF8(env, jguid)); |
| 464 if (!profile) |
| 465 return; |
| 466 |
| 467 profile->set_use_count(static_cast<size_t>(count)); |
| 468 profile->set_use_date(base::Time::FromTimeT(date)); |
| 469 } |
| 470 |
| 471 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( |
| 472 JNIEnv* env, |
| 473 const JavaParamRef<jobject>& unused_obj, |
| 474 const JavaParamRef<jstring>& jguid, |
| 475 jint count, |
| 476 jint date) { |
| 477 DCHECK(count >= 0 && date >= 0); |
| 478 |
| 479 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
| 480 ConvertJavaStringToUTF8(env, jguid)); |
| 481 if (!card) |
| 482 return; |
| 483 |
| 484 card->set_use_count(static_cast<size_t>(count)); |
| 485 card->set_use_date(base::Time::FromTimeT(date)); |
| 486 } |
| 487 |
| 488 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( |
| 489 JNIEnv* env, |
| 490 const std::vector<AutofillProfile*>& profiles) { |
| 491 std::vector<base::string16> guids; |
| 492 for (AutofillProfile* profile : profiles) |
| 493 guids.push_back(base::UTF8ToUTF16(profile->guid())); |
| 494 |
| 495 return base::android::ToJavaArrayOfStrings(env, guids); |
| 496 } |
| 497 |
| 498 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetCreditCardGUIDs( |
| 499 JNIEnv* env, |
| 500 const std::vector<CreditCard*>& credit_cards) { |
| 501 std::vector<base::string16> guids; |
| 502 for (CreditCard* credit_card : credit_cards) |
| 503 guids.push_back(base::UTF8ToUTF16(credit_card->guid())); |
| 504 |
| 505 return base::android::ToJavaArrayOfStrings(env, guids); |
| 506 } |
| 507 |
| 341 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( | 508 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( |
| 342 JNIEnv* env, | 509 JNIEnv* env, |
| 343 const JavaParamRef<jobject>& unused_obj, | 510 bool address_only, |
| 344 bool address_only) { | 511 std::vector<AutofillProfile*> profiles) { |
| 345 std::unique_ptr<std::vector<ServerFieldType>> suggested_fields; | 512 std::unique_ptr<std::vector<ServerFieldType>> suggested_fields; |
| 346 size_t minimal_fields_shown = 2; | 513 size_t minimal_fields_shown = 2; |
| 347 if (address_only) { | 514 if (address_only) { |
| 348 suggested_fields.reset(new std::vector<ServerFieldType>); | 515 suggested_fields.reset(new std::vector<ServerFieldType>); |
| 349 suggested_fields->push_back(COMPANY_NAME); | 516 suggested_fields->push_back(COMPANY_NAME); |
| 350 suggested_fields->push_back(ADDRESS_HOME_LINE1); | 517 suggested_fields->push_back(ADDRESS_HOME_LINE1); |
| 351 suggested_fields->push_back(ADDRESS_HOME_LINE2); | 518 suggested_fields->push_back(ADDRESS_HOME_LINE2); |
| 352 suggested_fields->push_back(ADDRESS_HOME_DEPENDENT_LOCALITY); | 519 suggested_fields->push_back(ADDRESS_HOME_DEPENDENT_LOCALITY); |
| 353 suggested_fields->push_back(ADDRESS_HOME_CITY); | 520 suggested_fields->push_back(ADDRESS_HOME_CITY); |
| 354 suggested_fields->push_back(ADDRESS_HOME_STATE); | 521 suggested_fields->push_back(ADDRESS_HOME_STATE); |
| 355 suggested_fields->push_back(ADDRESS_HOME_ZIP); | 522 suggested_fields->push_back(ADDRESS_HOME_ZIP); |
| 356 suggested_fields->push_back(ADDRESS_HOME_SORTING_CODE); | 523 suggested_fields->push_back(ADDRESS_HOME_SORTING_CODE); |
| 357 suggested_fields->push_back(ADDRESS_HOME_COUNTRY); | 524 suggested_fields->push_back(ADDRESS_HOME_COUNTRY); |
| 358 minimal_fields_shown = suggested_fields->size(); | 525 minimal_fields_shown = suggested_fields->size(); |
| 359 } | 526 } |
| 360 | 527 |
| 361 std::vector<base::string16> labels; | 528 std::vector<base::string16> labels; |
| 362 AutofillProfile::CreateInferredLabels( | 529 AutofillProfile::CreateInferredLabels( |
| 363 personal_data_manager_->GetProfiles(), suggested_fields.get(), NAME_FULL, | 530 profiles, suggested_fields.get(), NAME_FULL, minimal_fields_shown, |
| 364 minimal_fields_shown, g_browser_process->GetApplicationLocale(), &labels); | 531 g_browser_process->GetApplicationLocale(), &labels); |
| 365 | 532 |
| 366 return base::android::ToJavaArrayOfStrings(env, labels); | 533 return base::android::ToJavaArrayOfStrings(env, labels); |
| 367 } | 534 } |
| 368 | 535 |
| 369 jint PersonalDataManagerAndroid::GetCreditCardCount( | |
| 370 JNIEnv* unused_env, | |
| 371 const JavaParamRef<jobject>& unused_obj) { | |
| 372 return personal_data_manager_->GetCreditCards().size(); | |
| 373 } | |
| 374 | |
| 375 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByIndex( | |
| 376 JNIEnv* env, | |
| 377 const JavaParamRef<jobject>& unused_obj, | |
| 378 jint index) { | |
| 379 const std::vector<CreditCard*>& credit_cards = | |
| 380 personal_data_manager_->GetCreditCards(); | |
| 381 size_t index_size_t = static_cast<size_t>(index); | |
| 382 DCHECK_LT(index_size_t, credit_cards.size()); | |
| 383 return CreateJavaCreditCardFromNative(env, *credit_cards[index_size_t]); | |
| 384 } | |
| 385 | |
| 386 ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByGUID( | |
| 387 JNIEnv* env, | |
| 388 const JavaParamRef<jobject>& unused_obj, | |
| 389 const JavaParamRef<jstring>& jguid) { | |
| 390 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
| 391 ConvertJavaStringToUTF8(env, jguid)); | |
| 392 if (!card) | |
| 393 return ScopedJavaLocalRef<jobject>(); | |
| 394 | |
| 395 return CreateJavaCreditCardFromNative(env, *card); | |
| 396 } | |
| 397 | |
| 398 ScopedJavaLocalRef<jstring> PersonalDataManagerAndroid::SetCreditCard( | |
| 399 JNIEnv* env, | |
| 400 const JavaParamRef<jobject>& unused_obj, | |
| 401 const JavaParamRef<jobject>& jcard) { | |
| 402 std::string guid = ConvertJavaStringToUTF8( | |
| 403 env, | |
| 404 Java_CreditCard_getGUID(env, jcard).obj()); | |
| 405 | |
| 406 CreditCard card; | |
| 407 PopulateNativeCreditCardFromJava(jcard, env, &card); | |
| 408 | |
| 409 if (guid.empty()) { | |
| 410 personal_data_manager_->AddCreditCard(card); | |
| 411 } else { | |
| 412 card.set_guid(guid); | |
| 413 personal_data_manager_->UpdateCreditCard(card); | |
| 414 } | |
| 415 return ConvertUTF8ToJavaString(env, card.guid()); | |
| 416 } | |
| 417 | |
| 418 void PersonalDataManagerAndroid::AddServerCreditCardForTest( | |
| 419 JNIEnv* env, | |
| 420 const base::android::JavaParamRef<jobject>& unused_obj, | |
| 421 const base::android::JavaParamRef<jobject>& jcard) { | |
| 422 std::unique_ptr<CreditCard> card(new CreditCard); | |
| 423 PopulateNativeCreditCardFromJava(jcard, env, card.get()); | |
| 424 card->set_record_type(CreditCard::MASKED_SERVER_CARD); | |
| 425 personal_data_manager_->AddServerCreditCardForTest(std::move(card)); | |
| 426 } | |
| 427 | |
| 428 void PersonalDataManagerAndroid::RemoveByGUID( | |
| 429 JNIEnv* env, | |
| 430 const JavaParamRef<jobject>& unused_obj, | |
| 431 const JavaParamRef<jstring>& jguid) { | |
| 432 personal_data_manager_->RemoveByGUID(ConvertJavaStringToUTF8(env, jguid)); | |
| 433 } | |
| 434 | |
| 435 void PersonalDataManagerAndroid::ClearUnmaskedCache( | |
| 436 JNIEnv* env, | |
| 437 const JavaParamRef<jobject>& unused_obj, | |
| 438 const JavaParamRef<jstring>& guid) { | |
| 439 personal_data_manager_->ResetFullServerCard( | |
| 440 ConvertJavaStringToUTF8(env, guid)); | |
| 441 } | |
| 442 | |
| 443 void PersonalDataManagerAndroid::GetFullCardForPaymentRequest( | |
| 444 JNIEnv* env, | |
| 445 const JavaParamRef<jobject>& unused_obj, | |
| 446 const JavaParamRef<jobject>& jweb_contents, | |
| 447 const JavaParamRef<jstring>& jguid, | |
| 448 const JavaParamRef<jobject>& jdelegate) { | |
| 449 // Self-deleting object. | |
| 450 (new FullCardRequester()) | |
| 451 ->GetFullCard(env, jweb_contents, jdelegate, | |
| 452 personal_data_manager_->GetCreditCardByGUID( | |
| 453 ConvertJavaStringToUTF8(env, jguid))); | |
| 454 } | |
| 455 | |
| 456 void PersonalDataManagerAndroid::OnPersonalDataChanged() { | |
| 457 JNIEnv* env = base::android::AttachCurrentThread(); | |
| 458 if (weak_java_obj_.get(env).is_null()) | |
| 459 return; | |
| 460 | |
| 461 Java_PersonalDataManager_personalDataChanged(env, | |
| 462 weak_java_obj_.get(env).obj()); | |
| 463 } | |
| 464 | |
| 465 // static | |
| 466 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { | |
| 467 return RegisterNativesImpl(env); | |
| 468 } | |
| 469 | |
| 470 // Returns whether the Autofill feature is enabled. | 536 // Returns whether the Autofill feature is enabled. |
| 471 static jboolean IsAutofillEnabled(JNIEnv* env, | 537 static jboolean IsAutofillEnabled(JNIEnv* env, |
| 472 const JavaParamRef<jclass>& clazz) { | 538 const JavaParamRef<jclass>& clazz) { |
| 473 return GetPrefs()->GetBoolean(autofill::prefs::kAutofillEnabled); | 539 return GetPrefs()->GetBoolean(autofill::prefs::kAutofillEnabled); |
| 474 } | 540 } |
| 475 | 541 |
| 476 // Enables or disables the Autofill feature. | 542 // Enables or disables the Autofill feature. |
| 477 static void SetAutofillEnabled(JNIEnv* env, | 543 static void SetAutofillEnabled(JNIEnv* env, |
| 478 const JavaParamRef<jclass>& clazz, | 544 const JavaParamRef<jclass>& clazz, |
| 479 jboolean enable) { | 545 jboolean enable) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 511 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); | 577 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); |
| 512 } | 578 } |
| 513 | 579 |
| 514 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 580 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
| 515 PersonalDataManagerAndroid* personal_data_manager_android = | 581 PersonalDataManagerAndroid* personal_data_manager_android = |
| 516 new PersonalDataManagerAndroid(env, obj); | 582 new PersonalDataManagerAndroid(env, obj); |
| 517 return reinterpret_cast<intptr_t>(personal_data_manager_android); | 583 return reinterpret_cast<intptr_t>(personal_data_manager_android); |
| 518 } | 584 } |
| 519 | 585 |
| 520 } // namespace autofill | 586 } // namespace autofill |
| OLD | NEW |