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

Unified Diff: components/autofill/core/browser/credit_card.cc

Issue 22009003: [Autofill] Distinguish between native field types and potentially HTML field types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 4 months 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 side-by-side diff with in-line comments
Download patch
Index: components/autofill/core/browser/credit_card.cc
diff --git a/components/autofill/core/browser/credit_card.cc b/components/autofill/core/browser/credit_card.cc
index 8fc67ee3b59e4c19e378e7bd52309035da50736d..e627207388811a22725b0eae45a3f1a05bf48466 100644
--- a/components/autofill/core/browser/credit_card.cc
+++ b/components/autofill/core/browser/credit_card.cc
@@ -21,7 +21,6 @@
#include "components/autofill/core/browser/autofill_field.h"
#include "components/autofill/core/browser/autofill_regexes.h"
#include "components/autofill/core/browser/autofill_type.h"
-#include "components/autofill/core/browser/field_types.h"
#include "components/autofill/core/browser/validation.h"
#include "components/autofill/core/common/form_field_data.h"
#include "grit/component_strings.h"
@@ -276,7 +275,7 @@ std::string CreditCard::GetCreditCardType(const base::string16& number) {
return kGenericCard;
}
-base::string16 CreditCard::GetRawInfo(AutofillFieldType type) const {
+base::string16 CreditCard::GetRawInfo(ServerFieldType type) const {
switch (type) {
case CREDIT_CARD_NAME:
return name_on_card_;
@@ -322,7 +321,7 @@ base::string16 CreditCard::GetRawInfo(AutofillFieldType type) const {
}
}
-void CreditCard::SetRawInfo(AutofillFieldType type,
+void CreditCard::SetRawInfo(ServerFieldType type,
const base::string16& value) {
switch (type) {
case CREDIT_CARD_NAME:
@@ -370,33 +369,35 @@ void CreditCard::SetRawInfo(AutofillFieldType type,
}
}
-base::string16 CreditCard::GetInfo(AutofillFieldType type,
+base::string16 CreditCard::GetInfo(const AutofillType& type,
const std::string& app_locale) const {
- if (type == CREDIT_CARD_NUMBER)
+ if (type.server_type() == CREDIT_CARD_NUMBER)
return StripSeparators(number_);
- return GetRawInfo(type);
+ return GetRawInfo(type.server_type());
}
-bool CreditCard::SetInfo(AutofillFieldType type,
+bool CreditCard::SetInfo(const AutofillType& type,
const base::string16& value,
const std::string& app_locale) {
- if (type == CREDIT_CARD_NUMBER)
- SetRawInfo(type, StripSeparators(value));
- else if (type == CREDIT_CARD_EXP_MONTH)
+ ServerFieldType server_type = type.server_type();
+ if (server_type == CREDIT_CARD_NUMBER)
+ SetRawInfo(server_type, StripSeparators(value));
+ else if (server_type == CREDIT_CARD_EXP_MONTH)
SetExpirationMonthFromString(value, app_locale);
else
- SetRawInfo(type, value);
+ SetRawInfo(server_type, value);
return true;
}
void CreditCard::GetMatchingTypes(const base::string16& text,
const std::string& app_locale,
- FieldTypeSet* matching_types) const {
+ ServerFieldTypeSet* matching_types) const {
FormGroup::GetMatchingTypes(text, app_locale, matching_types);
- base::string16 card_number = GetInfo(CREDIT_CARD_NUMBER, app_locale);
+ base::string16 card_number =
+ GetInfo(AutofillType(CREDIT_CARD_NUMBER), app_locale);
if (!card_number.empty() && StripSeparators(text) == card_number)
matching_types->insert(CREDIT_CARD_NUMBER);
@@ -501,8 +502,8 @@ void CreditCard::operator=(const CreditCard& credit_card) {
bool CreditCard::UpdateFromImportedCard(const CreditCard& imported_card,
const std::string& app_locale) {
- if (this->GetInfo(CREDIT_CARD_NUMBER, app_locale) !=
- imported_card.GetInfo(CREDIT_CARD_NUMBER, app_locale)) {
+ if (this->GetInfo(AutofillType(CREDIT_CARD_NUMBER), app_locale) !=
+ imported_card.GetInfo(AutofillType(CREDIT_CARD_NUMBER), app_locale)) {
return false;
}
@@ -533,22 +534,24 @@ void CreditCard::FillFormField(const AutofillField& field,
size_t /*variant*/,
const std::string& app_locale,
FormFieldData* field_data) const {
- DCHECK_EQ(CREDIT_CARD, AutofillType(field.type()).group());
+ DCHECK_EQ(CREDIT_CARD, field.Type().group());
DCHECK(field_data);
if (field_data->form_control_type == "select-one") {
- FillSelectControl(field.type(), app_locale, field_data);
+ FillSelectControl(field.Type(), app_locale, field_data);
} else if (field_data->form_control_type == "month") {
// HTML5 input="month" consists of year-month.
- base::string16 year = GetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, app_locale);
- base::string16 month = GetInfo(CREDIT_CARD_EXP_MONTH, app_locale);
+ base::string16 year =
+ GetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), app_locale);
+ base::string16 month =
+ GetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), app_locale);
if (!year.empty() && !month.empty()) {
// Fill the value only if |this| includes both year and month
// information.
field_data->value = year + ASCIIToUTF16("-") + month;
}
} else {
- field_data->value = GetInfo(field.type(), app_locale);
+ field_data->value = GetInfo(field.Type(), app_locale);
}
}
@@ -556,13 +559,13 @@ int CreditCard::Compare(const CreditCard& credit_card) const {
// The following CreditCard field types are the only types we store in the
// WebDB so far, so we're only concerned with matching these types in the
// credit card.
- const AutofillFieldType types[] = { CREDIT_CARD_NAME,
- CREDIT_CARD_NUMBER,
- CREDIT_CARD_EXP_MONTH,
- CREDIT_CARD_EXP_4_DIGIT_YEAR };
- for (size_t index = 0; index < arraysize(types); ++index) {
- int comparison = GetRawInfo(types[index]).compare(
- credit_card.GetRawInfo(types[index]));
+ const ServerFieldType types[] = { CREDIT_CARD_NAME,
+ CREDIT_CARD_NUMBER,
+ CREDIT_CARD_EXP_MONTH,
+ CREDIT_CARD_EXP_4_DIGIT_YEAR };
+ for (size_t i = 0; i < arraysize(types); ++i) {
+ int comparison =
+ GetRawInfo(types[i]).compare(credit_card.GetRawInfo(types[i]));
if (comparison != 0)
return comparison;
}
@@ -581,7 +584,7 @@ bool CreditCard::operator!=(const CreditCard& credit_card) const {
}
bool CreditCard::IsEmpty(const std::string& app_locale) const {
- FieldTypeSet types;
+ ServerFieldTypeSet types;
GetNonEmptyTypes(app_locale, &types);
return types.empty();
}
@@ -599,7 +602,7 @@ bool CreditCard::IsValid() const {
expiration_year_, expiration_month_, base::Time::Now());
}
-void CreditCard::GetSupportedTypes(FieldTypeSet* supported_types) const {
+void CreditCard::GetSupportedTypes(ServerFieldTypeSet* supported_types) const {
supported_types->insert(CREDIT_CARD_NAME);
supported_types->insert(CREDIT_CARD_NUMBER);
supported_types->insert(CREDIT_CARD_TYPE);
« no previous file with comments | « components/autofill/core/browser/credit_card.h ('k') | components/autofill/core/browser/credit_card_field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698