summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/autofill_manager.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-11 08:38:41 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-11 08:38:41 +0000
commita15b4c39a9093e03f42fe3e8efa8db4ff8ad430b (patch)
tree4b7b3dc83182319e9aba0c6c4eb00d8794baa1b4 /chrome/browser/autofill/autofill_manager.cc
parent7f272b4bd2ca8b153c14c1d4bca0f869a62b2256 (diff)
downloadchromium_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.cc34
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)));
}
}