| Index: components/autofill/core/browser/autofill_profile.cc
|
| diff --git a/components/autofill/core/browser/autofill_profile.cc b/components/autofill/core/browser/autofill_profile.cc
|
| index f1577ed84ee11cd32c31fd861c8357a9e7071f40..6e18011e5c439f5a43bd53c1bf9154879f183fa4 100644
|
| --- a/components/autofill/core/browser/autofill_profile.cc
|
| +++ b/components/autofill/core/browser/autofill_profile.cc
|
| @@ -30,14 +30,14 @@
|
| namespace autofill {
|
| namespace {
|
|
|
| -// Like |AutofillType::GetEquivalentFieldType()|, but also returns |NAME_FULL|
|
| -// for first, middle, and last name field types.
|
| -ServerFieldType GetEquivalentFieldTypeCollapsingNames(ServerFieldType type) {
|
| - if (type == NAME_FIRST || type == NAME_MIDDLE || type == NAME_LAST ||
|
| - type == NAME_MIDDLE_INITIAL)
|
| +// Like |AutofillType::GetStorableType()|, but also returns |NAME_FULL| for
|
| +// first, middle, and last name field types.
|
| +ServerFieldType GetStorableTypeCollapsingNames(ServerFieldType type) {
|
| + ServerFieldType storable_type = AutofillType(type).GetStorableType();
|
| + if (AutofillType(storable_type).group() == NAME)
|
| return NAME_FULL;
|
|
|
| - return AutofillType::GetEquivalentFieldType(type);
|
| + return storable_type;
|
| }
|
|
|
| // Fills |distinguishing_fields| with a list of fields to use when creating
|
| @@ -76,13 +76,13 @@ void GetFieldsForDistinguishingProfiles(
|
| // Always ignore fields of unknown type and the excluded field.
|
| std::set<ServerFieldType> seen_fields;
|
| seen_fields.insert(UNKNOWN_TYPE);
|
| - seen_fields.insert(GetEquivalentFieldTypeCollapsingNames(excluded_field));
|
| + seen_fields.insert(GetStorableTypeCollapsingNames(excluded_field));
|
|
|
| distinguishing_fields->clear();
|
| for (std::vector<ServerFieldType>::const_iterator it =
|
| suggested_fields->begin();
|
| it != suggested_fields->end(); ++it) {
|
| - ServerFieldType suggested_type = GetEquivalentFieldTypeCollapsingNames(*it);
|
| + ServerFieldType suggested_type = GetStorableTypeCollapsingNames(*it);
|
| if (seen_fields.insert(suggested_type).second)
|
| distinguishing_fields->push_back(suggested_type);
|
| }
|
| @@ -92,12 +92,12 @@ void GetFieldsForDistinguishingProfiles(
|
| // list of distinguishing fields as a last-ditch fallback. This allows us to
|
| // distinguish between profiles that are identical except for the name.
|
| if (excluded_field != NAME_FULL &&
|
| - GetEquivalentFieldTypeCollapsingNames(excluded_field) == NAME_FULL) {
|
| + GetStorableTypeCollapsingNames(excluded_field) == NAME_FULL) {
|
| for (std::vector<ServerFieldType>::const_iterator it =
|
| suggested_fields->begin();
|
| it != suggested_fields->end(); ++it) {
|
| if (*it != excluded_field &&
|
| - GetEquivalentFieldTypeCollapsingNames(*it) == NAME_FULL) {
|
| + GetStorableTypeCollapsingNames(*it) == NAME_FULL) {
|
| distinguishing_fields->push_back(NAME_FULL);
|
| break;
|
| }
|
| @@ -124,7 +124,7 @@ base::string16 GetFormGroupInfo(const FormGroup& form_group,
|
| const AutofillType& type,
|
| const std::string& app_locale) {
|
| return app_locale.empty() ?
|
| - form_group.GetRawInfo(type.server_type()) :
|
| + form_group.GetRawInfo(type.GetStorableType()) :
|
| form_group.GetInfo(type, app_locale);
|
| }
|
|
|
| @@ -275,12 +275,11 @@ void AutofillProfile::GetMatchingTypes(
|
| }
|
|
|
| base::string16 AutofillProfile::GetRawInfo(ServerFieldType type) const {
|
| - ServerFieldType return_type = AutofillType::GetEquivalentFieldType(type);
|
| - const FormGroup* form_group = FormGroupForType(AutofillType(return_type));
|
| + const FormGroup* form_group = FormGroupForType(AutofillType(type));
|
| if (!form_group)
|
| return base::string16();
|
|
|
| - return form_group->GetRawInfo(return_type);
|
| + return form_group->GetRawInfo(type);
|
| }
|
|
|
| void AutofillProfile::SetRawInfo(ServerFieldType type,
|
| @@ -292,13 +291,11 @@ void AutofillProfile::SetRawInfo(ServerFieldType type,
|
|
|
| base::string16 AutofillProfile::GetInfo(const AutofillType& type,
|
| const std::string& app_locale) const {
|
| - ServerFieldType return_type =
|
| - AutofillType::GetEquivalentFieldType(type.server_type());
|
| - const FormGroup* form_group = FormGroupForType(AutofillType(return_type));
|
| + const FormGroup* form_group = FormGroupForType(type);
|
| if (!form_group)
|
| return base::string16();
|
|
|
| - return form_group->GetInfo(AutofillType(return_type), app_locale);
|
| + return form_group->GetInfo(type, app_locale);
|
| }
|
|
|
| bool AutofillProfile::SetInfo(const AutofillType& type,
|
| @@ -363,8 +360,7 @@ void AutofillProfile::FillFormField(const AutofillField& field,
|
| DCHECK_NE(CREDIT_CARD, type.group());
|
| DCHECK(field_data);
|
|
|
| - if (type.server_type() == PHONE_HOME_NUMBER ||
|
| - type.server_type() == PHONE_BILLING_NUMBER) {
|
| + if (type.GetStorableType() == PHONE_HOME_NUMBER) {
|
| FillPhoneNumberField(field, variant, app_locale, field_data);
|
| } else if (field_data->form_control_type == "select-one") {
|
| FillSelectControl(type, app_locale, field_data);
|
|
|