| Index: components/autofill/core/browser/personal_data_manager.cc
|
| diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc
|
| index 8039bc4e6013783e6b65278799583dedbcbec2c9..66d03dd58cd710144693a0be4a0fe1e061898ed8 100644
|
| --- a/components/autofill/core/browser/personal_data_manager.cc
|
| +++ b/components/autofill/core/browser/personal_data_manager.cc
|
| @@ -975,12 +975,13 @@ const std::vector<CreditCard*> PersonalDataManager::GetCreditCardsToSuggest()
|
|
|
| std::vector<Suggestion> PersonalDataManager::GetCreditCardSuggestions(
|
| const AutofillType& type,
|
| - const base::string16& field_contents) {
|
| + const base::string16& field_contents,
|
| + bool& isBankNameAvailable) {
|
| if (IsInAutofillSuggestionsDisabledExperiment())
|
| return std::vector<Suggestion>();
|
|
|
| - return GetSuggestionsForCards(type, field_contents,
|
| - GetCreditCardsToSuggest());
|
| + return GetSuggestionsForCards(type, field_contents, GetCreditCardsToSuggest(),
|
| + isBankNameAvailable);
|
| }
|
|
|
| bool PersonalDataManager::IsAutofillEnabled() const {
|
| @@ -1642,9 +1643,11 @@ const std::vector<AutofillProfile*>& PersonalDataManager::GetProfiles(
|
| std::vector<Suggestion> PersonalDataManager::GetSuggestionsForCards(
|
| const AutofillType& type,
|
| const base::string16& field_contents,
|
| - const std::vector<CreditCard*>& cards_to_suggest) const {
|
| + const std::vector<CreditCard*>& cards_to_suggest,
|
| + bool& isBankNameAvailable) const {
|
| std::vector<Suggestion> suggestions;
|
| base::string16 field_contents_lower = base::i18n::ToLower(field_contents);
|
| + isBankNameAvailable = false;
|
| for (const CreditCard* credit_card : cards_to_suggest) {
|
| // The value of the stored data for this field type in the |credit_card|.
|
| base::string16 creditcard_field_value =
|
| @@ -1674,7 +1677,15 @@ std::vector<Suggestion> PersonalDataManager::GetSuggestionsForCards(
|
| // Otherwise the label is the card number, or if that is empty the
|
| // cardholder name. The label should never repeat the value.
|
| if (type.GetStorableType() == CREDIT_CARD_NUMBER) {
|
| - suggestion->value = credit_card->NetworkAndLastFourDigits();
|
| + if (!credit_card->bank_name().empty()) {
|
| + isBankNameAvailable = true;
|
| + }
|
| + if (IsAutofillCreditCardBankNameDisplayExperimentEnabled() &&
|
| + !credit_card->bank_name().empty()) {
|
| + suggestion->value = credit_card->BankNameAndLastFourDigits();
|
| + } else {
|
| + suggestion->value = credit_card->NetworkAndLastFourDigits();
|
| + }
|
| if (IsAutofillCreditCardLastUsedDateDisplayExperimentEnabled()) {
|
| suggestion->label =
|
| credit_card->GetLastUsedDateForDisplay(app_locale_);
|
|
|