| Index: chrome/browser/autofill/android/personal_data_manager_android.cc
|
| diff --git a/chrome/browser/autofill/android/personal_data_manager_android.cc b/chrome/browser/autofill/android/personal_data_manager_android.cc
|
| index 9639a4d8d9223249e3cf9772a07abdd030ef139e..008a475e863171be6830436757d1c05e8e73a41f 100644
|
| --- a/chrome/browser/autofill/android/personal_data_manager_android.cc
|
| +++ b/chrome/browser/autofill/android/personal_data_manager_android.cc
|
| @@ -26,7 +26,6 @@
|
| #include "components/autofill/content/browser/content_autofill_driver.h"
|
| #include "components/autofill/content/browser/content_autofill_driver_factory.h"
|
| #include "components/autofill/core/browser/autofill_country.h"
|
| -#include "components/autofill/core/browser/autofill_data_util.h"
|
| #include "components/autofill/core/browser/autofill_type.h"
|
| #include "components/autofill/core/browser/country_names.h"
|
| #include "components/autofill/core/browser/field_types.h"
|
| @@ -132,11 +131,41 @@
|
| Java_AutofillProfile_getLanguageCode(env, jprofile)));
|
| }
|
|
|
| +// Mapping from Chrome card types to PaymentRequest basic card payment spec and
|
| +// icons. Note that "generic" is not in the spec.
|
| +// https://w3c.github.io/webpayments-methods-card/#method-id
|
| +const struct PaymentRequestData {
|
| + const char* card_type;
|
| + const char* basic_card_payment_type;
|
| + const int icon_resource_id;
|
| +} kPaymentRequestData[] {
|
| + {"genericCC", "generic", IDR_AUTOFILL_PR_GENERIC},
|
| +
|
| + {"americanExpressCC", "amex", IDR_AUTOFILL_PR_AMEX},
|
| + {"dinersCC", "diners", IDR_AUTOFILL_PR_DINERS},
|
| + {"discoverCC", "discover", IDR_AUTOFILL_PR_DISCOVER},
|
| + {"jcbCC", "jcb", IDR_AUTOFILL_PR_JCB},
|
| + {"masterCardCC", "mastercard", IDR_AUTOFILL_PR_MASTERCARD},
|
| + {"unionPayCC", "unionpay", IDR_AUTOFILL_PR_UNIONPAY},
|
| + {"visaCC", "visa", IDR_AUTOFILL_PR_VISA},
|
| +};
|
| +
|
| +// Converts the card type into PaymentRequest type according to the basic card
|
| +// payment spec and an icon. Will set the type and the icon to "generic" for
|
| +// unrecognized card type.
|
| +const PaymentRequestData& GetPaymentRequestData(const std::string& type) {
|
| + for (size_t i = 0; i < arraysize(kPaymentRequestData); ++i) {
|
| + if (type == kPaymentRequestData[i].card_type)
|
| + return kPaymentRequestData[i];
|
| + }
|
| + return kPaymentRequestData[0];
|
| +}
|
| +
|
| ScopedJavaLocalRef<jobject> CreateJavaCreditCardFromNative(
|
| JNIEnv* env,
|
| const CreditCard& card) {
|
| - const data_util::PaymentRequestData& payment_request_data =
|
| - data_util::GetPaymentRequestData(card.type());
|
| + const PaymentRequestData& payment_request_data =
|
| + GetPaymentRequestData(card.type());
|
| return Java_CreditCard_create(
|
| env, ConvertUTF8ToJavaString(env, card.guid()),
|
| ConvertUTF8ToJavaString(env, card.origin()),
|
| @@ -153,6 +182,16 @@
|
| ResourceMapper::MapFromChromiumId(payment_request_data.icon_resource_id),
|
| ConvertUTF8ToJavaString(env, card.billing_address_id()),
|
| ConvertUTF8ToJavaString(env, card.server_id()));
|
| +}
|
| +
|
| +const char* GetCardTypeForBasicCardPaymentType(
|
| + const std::string& basic_card_payment_type) {
|
| + for (size_t i = 0; i < arraysize(kPaymentRequestData); ++i) {
|
| + if (basic_card_payment_type ==
|
| + kPaymentRequestData[i].basic_card_payment_type)
|
| + return kPaymentRequestData[i].card_type;
|
| + }
|
| + return kPaymentRequestData[0].card_type;
|
| }
|
|
|
| void PopulateNativeCreditCardFromJava(
|
| @@ -186,8 +225,9 @@
|
| } else {
|
| card->set_record_type(CreditCard::MASKED_SERVER_CARD);
|
| card->SetTypeForMaskedCard(
|
| - data_util::GetCardTypeForBasicCardPaymentType(ConvertJavaStringToUTF8(
|
| - env, Java_CreditCard_getBasicCardPaymentType(env, jcard))));
|
| + GetCardTypeForBasicCardPaymentType(
|
| + ConvertJavaStringToUTF8(
|
| + env, Java_CreditCard_getBasicCardPaymentType(env, jcard))));
|
| }
|
| }
|
| }
|
| @@ -442,11 +482,11 @@
|
| const JavaParamRef<jstring>& jcard_number) {
|
| base::string16 card_number = ConvertJavaStringToUTF16(env, jcard_number);
|
| return ConvertUTF8ToJavaString(
|
| - env, IsValidCreditCardNumber(card_number)
|
| - ? data_util::GetPaymentRequestData(
|
| - CreditCard::GetCreditCardType(card_number))
|
| - .basic_card_payment_type
|
| - : "");
|
| + env,
|
| + IsValidCreditCardNumber(card_number)
|
| + ? GetPaymentRequestData(CreditCard::GetCreditCardType(card_number))
|
| + .basic_card_payment_type
|
| + : "");
|
| }
|
|
|
| void PersonalDataManagerAndroid::AddServerCreditCardForTest(
|
|
|