Chromium Code Reviews| 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 <algorithm> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 485 | 485 |
| 486 Java_PersonalDataManager_personalDataChanged(env, | 486 Java_PersonalDataManager_personalDataChanged(env, |
| 487 weak_java_obj_.get(env).obj()); | 487 weak_java_obj_.get(env).obj()); |
| 488 } | 488 } |
| 489 | 489 |
| 490 // static | 490 // static |
| 491 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { | 491 bool PersonalDataManagerAndroid::Register(JNIEnv* env) { |
| 492 return RegisterNativesImpl(env); | 492 return RegisterNativesImpl(env); |
| 493 } | 493 } |
| 494 | 494 |
| 495 void PersonalDataManagerAndroid::RecordAndLogProfileUse( | |
| 496 JNIEnv* env, | |
| 497 const JavaParamRef<jobject>& unused_obj, | |
| 498 const JavaParamRef<jstring>& jguid) { | |
| 499 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | |
| 500 ConvertJavaStringToUTF8(env, jguid)); | |
| 501 if (profile) | |
|
Bernhard Bauer
2016/07/14 10:14:19
You have a lot of null checks in here. I didn't lo
sebsg
2016/07/20 14:56:47
We never expect not to get a profile/card with the
| |
| 502 profile->RecordAndLogUse(); | |
| 503 } | |
| 504 | |
| 495 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( | 505 void PersonalDataManagerAndroid::SetProfileUseStatsForTesting( |
| 496 JNIEnv* env, | 506 JNIEnv* env, |
| 497 const JavaParamRef<jobject>& unused_obj, | 507 const JavaParamRef<jobject>& unused_obj, |
| 498 const JavaParamRef<jstring>& jguid, | 508 const JavaParamRef<jstring>& jguid, |
| 499 jint count, | 509 jint count, |
| 500 jint date) { | 510 jint date) { |
| 501 DCHECK(count >= 0 && date >= 0); | 511 DCHECK(count >= 0 && date >= 0); |
| 502 | 512 |
| 503 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | 513 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
| 504 ConvertJavaStringToUTF8(env, jguid)); | 514 ConvertJavaStringToUTF8(env, jguid)); |
| 505 if (!profile) | 515 if (!profile) |
| 506 return; | 516 return; |
| 507 | 517 |
| 508 profile->set_use_count(static_cast<size_t>(count)); | 518 profile->set_use_count(static_cast<size_t>(count)); |
| 509 profile->set_use_date(base::Time::FromTimeT(date)); | 519 profile->set_use_date(base::Time::FromTimeT(date)); |
| 510 } | 520 } |
| 511 | 521 |
| 522 jint PersonalDataManagerAndroid::GetProfileUseCountForTesting( | |
| 523 JNIEnv* env, | |
| 524 const base::android::JavaParamRef<jobject>& unused_obj, | |
| 525 const base::android::JavaParamRef<jstring>& jguid) { | |
| 526 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | |
| 527 ConvertJavaStringToUTF8(env, jguid)); | |
| 528 return profile ? profile->use_count() : -1; | |
| 529 } | |
| 530 | |
| 531 jlong PersonalDataManagerAndroid::GetProfileUseDateForTesting( | |
| 532 JNIEnv* env, | |
| 533 const base::android::JavaParamRef<jobject>& unused_obj, | |
| 534 const base::android::JavaParamRef<jstring>& jguid) { | |
| 535 AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( | |
| 536 ConvertJavaStringToUTF8(env, jguid)); | |
| 537 return profile ? profile->use_date().ToTimeT() : -1; | |
| 538 } | |
| 539 | |
| 540 void PersonalDataManagerAndroid::RecordAndLogCreditCardUse( | |
| 541 JNIEnv* env, | |
| 542 const JavaParamRef<jobject>& unused_obj, | |
| 543 const JavaParamRef<jstring>& jguid) { | |
| 544 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
| 545 ConvertJavaStringToUTF8(env, jguid)); | |
| 546 if (card) | |
| 547 card->RecordAndLogUse(); | |
| 548 } | |
| 549 | |
| 512 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( | 550 void PersonalDataManagerAndroid::SetCreditCardUseStatsForTesting( |
| 513 JNIEnv* env, | 551 JNIEnv* env, |
| 514 const JavaParamRef<jobject>& unused_obj, | 552 const JavaParamRef<jobject>& unused_obj, |
| 515 const JavaParamRef<jstring>& jguid, | 553 const JavaParamRef<jstring>& jguid, |
| 516 jint count, | 554 jint count, |
| 517 jint date) { | 555 jint date) { |
| 518 DCHECK(count >= 0 && date >= 0); | 556 DCHECK(count >= 0 && date >= 0); |
| 519 | 557 |
| 520 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | 558 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
| 521 ConvertJavaStringToUTF8(env, jguid)); | 559 ConvertJavaStringToUTF8(env, jguid)); |
| 522 if (!card) | 560 if (!card) |
| 523 return; | 561 return; |
| 524 | 562 |
| 525 card->set_use_count(static_cast<size_t>(count)); | 563 card->set_use_count(static_cast<size_t>(count)); |
| 526 card->set_use_date(base::Time::FromTimeT(date)); | 564 card->set_use_date(base::Time::FromTimeT(date)); |
| 527 } | 565 } |
| 528 | 566 |
| 567 jint PersonalDataManagerAndroid::GetCreditCardUseCountForTesting( | |
| 568 JNIEnv* env, | |
| 569 const base::android::JavaParamRef<jobject>& unused_obj, | |
| 570 const base::android::JavaParamRef<jstring>& jguid) { | |
| 571 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
| 572 ConvertJavaStringToUTF8(env, jguid)); | |
| 573 return card ? card->use_count() : -1; | |
| 574 } | |
| 575 | |
| 576 jlong PersonalDataManagerAndroid::GetCreditCardUseDateForTesting( | |
| 577 JNIEnv* env, | |
| 578 const base::android::JavaParamRef<jobject>& unused_obj, | |
| 579 const base::android::JavaParamRef<jstring>& jguid){ | |
| 580 CreditCard* card = personal_data_manager_->GetCreditCardByGUID( | |
| 581 ConvertJavaStringToUTF8(env, jguid)); | |
| 582 return card ? card->use_date().ToTimeT() : -1; | |
| 583 } | |
| 584 | |
| 585 jlong PersonalDataManagerAndroid::GetCurrentDateForTesting( | |
| 586 JNIEnv* env, | |
| 587 const base::android::JavaParamRef<jobject>& unused_obj) { | |
| 588 return base::Time::Now().ToTimeT(); | |
|
Bernhard Bauer
2016/07/14 10:14:19
Using actual wall clock time here is a recipe for
sebsg
2016/07/20 14:56:47
Good point and I agree. My investigation led me do
Bernhard Bauer
2016/07/20 15:09:44
Ok, you added a TODO. Thanks :)
| |
| 589 } | |
| 590 | |
| 529 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( | 591 ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileGUIDs( |
| 530 JNIEnv* env, | 592 JNIEnv* env, |
| 531 const std::vector<AutofillProfile*>& profiles) { | 593 const std::vector<AutofillProfile*>& profiles) { |
| 532 std::vector<base::string16> guids; | 594 std::vector<base::string16> guids; |
| 533 for (AutofillProfile* profile : profiles) | 595 for (AutofillProfile* profile : profiles) |
| 534 guids.push_back(base::UTF8ToUTF16(profile->guid())); | 596 guids.push_back(base::UTF8ToUTF16(profile->guid())); |
| 535 | 597 |
| 536 return base::android::ToJavaArrayOfStrings(env, guids); | 598 return base::android::ToJavaArrayOfStrings(env, guids); |
| 537 } | 599 } |
| 538 | 600 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 619 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); | 681 base::android::ConvertJavaStringToUTF16(env, jcountry_name))); |
| 620 } | 682 } |
| 621 | 683 |
| 622 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 684 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
| 623 PersonalDataManagerAndroid* personal_data_manager_android = | 685 PersonalDataManagerAndroid* personal_data_manager_android = |
| 624 new PersonalDataManagerAndroid(env, obj); | 686 new PersonalDataManagerAndroid(env, obj); |
| 625 return reinterpret_cast<intptr_t>(personal_data_manager_android); | 687 return reinterpret_cast<intptr_t>(personal_data_manager_android); |
| 626 } | 688 } |
| 627 | 689 |
| 628 } // namespace autofill | 690 } // namespace autofill |
| OLD | NEW |