diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-11 08:38:41 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-11 08:38:41 +0000 |
commit | a15b4c39a9093e03f42fe3e8efa8db4ff8ad430b (patch) | |
tree | 4b7b3dc83182319e9aba0c6c4eb00d8794baa1b4 /chrome/browser/autofill/autofill_manager.cc | |
parent | 7f272b4bd2ca8b153c14c1d4bca0f869a62b2256 (diff) | |
download | chromium_src-a15b4c39a9093e03f42fe3e8efa8db4ff8ad430b.zip chromium_src-a15b4c39a9093e03f42fe3e8efa8db4ff8ad430b.tar.gz chromium_src-a15b4c39a9093e03f42fe3e8efa8db4ff8ad430b.tar.bz2 |
requestAutocomplete: mark textfields as invalid when user tries to submit with blank fields
screenshot: http://imgur.com/OvXxG
BUG=163516
Review URL: https://chromiumcodereview.appspot.com/11843002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176283 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill/autofill_manager.cc')
-rw-r--r-- | chrome/browser/autofill/autofill_manager.cc | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc index b6c37cd..fe54ada 100644 --- a/chrome/browser/autofill/autofill_manager.cc +++ b/chrome/browser/autofill/autofill_manager.cc @@ -84,8 +84,6 @@ const size_t kMaxRecentFormSignaturesToRemember = 3; // cache, simply to prevent unbounded memory consumption. const size_t kMaxFormCacheSize = 100; -const string16::value_type kCreditCardPrefix[] = {'*', 0}; - // Removes duplicate suggestions whilst preserving their original order. void RemoveDuplicateSuggestions(std::vector<string16>* values, std::vector<string16>* labels, @@ -1171,34 +1169,12 @@ void AutofillManager::GetCreditCardSuggestions( std::vector<string16>* labels, std::vector<string16>* icons, std::vector<int>* unique_ids) const { - const std::string app_locale = AutofillCountry::ApplicationLocale(); - for (std::vector<CreditCard*>::const_iterator iter = - personal_data_->credit_cards().begin(); - iter != personal_data_->credit_cards().end(); ++iter) { - CreditCard* credit_card = *iter; - - // The value of the stored data for this field type in the |credit_card|. - string16 creditcard_field_value = credit_card->GetInfo(type, app_locale); - if (!creditcard_field_value.empty() && - StartsWith(creditcard_field_value, field.value, false)) { - if (type == CREDIT_CARD_NUMBER) - creditcard_field_value = credit_card->ObfuscatedNumber(); - - string16 label; - if (credit_card->number().empty()) { - // If there is no CC number, return name to show something. - label = credit_card->GetInfo(CREDIT_CARD_NAME, app_locale); - } else { - label = kCreditCardPrefix; - label.append(credit_card->LastFourDigits()); - } + std::vector<GUIDPair> guid_pairs; + personal_data_->GetCreditCardSuggestions( + type, field.value, values, labels, icons, &guid_pairs); - values->push_back(creditcard_field_value); - labels->push_back(label); - icons->push_back(UTF8ToUTF16(credit_card->type())); - unique_ids->push_back(PackGUIDs(GUIDPair(credit_card->guid(), 0), - GUIDPair(std::string(), 0))); - } + for (size_t i = 0; i < guid_pairs.size(); ++i) { + unique_ids->push_back(PackGUIDs(guid_pairs[i], GUIDPair(std::string(), 0))); } } |