Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: components/autofill/core/browser/personal_data_manager.cc

Issue 622773002: [Autofill] Autofill fails to show suggestions for credit card split across fields. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporated nits. Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/autofill/core/browser/autofill_manager_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "components/autofill/core/browser/personal_data_manager.h" 5 #include "components/autofill/core/browser/personal_data_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <iterator> 9 #include <iterator>
10 10
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 666
667 const std::vector<CreditCard*>& credit_cards = GetCreditCards(); 667 const std::vector<CreditCard*>& credit_cards = GetCreditCards();
668 for (std::vector<CreditCard*>::const_iterator iter = credit_cards.begin(); 668 for (std::vector<CreditCard*>::const_iterator iter = credit_cards.begin();
669 iter != credit_cards.end(); ++iter) { 669 iter != credit_cards.end(); ++iter) {
670 CreditCard* credit_card = *iter; 670 CreditCard* credit_card = *iter;
671 671
672 // The value of the stored data for this field type in the |credit_card|. 672 // The value of the stored data for this field type in the |credit_card|.
673 base::string16 creditcard_field_value = 673 base::string16 creditcard_field_value =
674 credit_card->GetInfo(type, app_locale_); 674 credit_card->GetInfo(type, app_locale_);
675 if (!creditcard_field_value.empty() && 675 if (!creditcard_field_value.empty() &&
676 StartsWith(creditcard_field_value, field_contents, false)) { 676 (StartsWith(creditcard_field_value, field_contents, false) ||
677 if (type.GetStorableType() == CREDIT_CARD_NUMBER) 677 (type.GetStorableType() == CREDIT_CARD_NUMBER &&
678 creditcard_field_value = credit_card->ObfuscatedNumber(); 678 base::string16::npos !=
679 679 creditcard_field_value.find(field_contents)))) {
680 // If the value is the card number, the label is the expiration date. 680 // If the value is the card number, the label is the expiration date.
681 // Otherwise the label is the card number, or if that is empty the 681 // Otherwise the label is the card number, or if that is empty the
682 // cardholder name. The label should never repeat the value. 682 // cardholder name. The label should never repeat the value.
683 base::string16 label; 683 base::string16 label;
684 if (type.GetStorableType() == CREDIT_CARD_NUMBER) { 684 if (type.GetStorableType() == CREDIT_CARD_NUMBER) {
685 creditcard_field_value = credit_card->ObfuscatedNumber();
685 label = credit_card->GetInfo( 686 label = credit_card->GetInfo(
686 AutofillType(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR), app_locale_); 687 AutofillType(CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR), app_locale_);
687 } else if (credit_card->number().empty()) { 688 } else if (credit_card->number().empty()) {
688 if (type.GetStorableType() != CREDIT_CARD_NAME) { 689 if (type.GetStorableType() != CREDIT_CARD_NAME) {
689 label = 690 label =
690 credit_card->GetInfo(AutofillType(CREDIT_CARD_NAME), app_locale_); 691 credit_card->GetInfo(AutofillType(CREDIT_CARD_NAME), app_locale_);
691 } 692 }
692 } else { 693 } else {
693 label = kCreditCardPrefix; 694 label = kCreditCardPrefix;
694 label.append(credit_card->LastFourDigits()); 695 label.append(credit_card->LastFourDigits());
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
1116 // Populates |auxiliary_profiles_|. 1117 // Populates |auxiliary_profiles_|.
1117 LoadAuxiliaryProfiles(record_metrics); 1118 LoadAuxiliaryProfiles(record_metrics);
1118 1119
1119 profiles_.insert(profiles_.end(), web_profiles_.begin(), web_profiles_.end()); 1120 profiles_.insert(profiles_.end(), web_profiles_.begin(), web_profiles_.end());
1120 profiles_.insert( 1121 profiles_.insert(
1121 profiles_.end(), auxiliary_profiles_.begin(), auxiliary_profiles_.end()); 1122 profiles_.end(), auxiliary_profiles_.begin(), auxiliary_profiles_.end());
1122 return profiles_; 1123 return profiles_;
1123 } 1124 }
1124 1125
1125 } // namespace autofill 1126 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/autofill_manager_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698