Chromium Code Reviews| Index: components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc |
| diff --git a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc |
| index 00499142a01b4789ee15ba6353ef6375a26362c5..3bef944d52363d660d5b5a63e69f0f3c3d949f44 100644 |
| --- a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc |
| +++ b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc |
| @@ -325,23 +325,38 @@ bool AutofillProfileSyncableService::OverwriteProfileWithServerData( |
| } |
| // Update all multivalued fields: names, emails, and phones. |
|
vabr (Chromium)
2015/07/08 13:20:04
The comment looks obsolete, please update.
Deepak
2015/07/08 14:53:36
Done.
|
| - diff = UpdateMultivaluedField(NAME_FIRST, |
| - specifics.name_first(), profile) || diff; |
| - diff = UpdateMultivaluedField(NAME_MIDDLE, |
| - specifics.name_middle(), profile) || diff; |
| - diff = UpdateMultivaluedField(NAME_LAST, |
| - specifics.name_last(), profile) || diff; |
| + ::google::protobuf::RepeatedPtrField<std::string> values = |
| + specifics.name_first(); |
| + diff = |
| + UpdateField(NAME_FIRST, values.size() < 1 ? std::string() : values.Get(0), |
| + profile) || diff; |
| + values = specifics.name_middle(); |
| + diff = |
| + UpdateField(NAME_MIDDLE, |
| + values.size() < 1 ? std::string() : values.Get(0), |
| + profile) || diff; |
| + values = specifics.name_last(); |
| + diff = |
| + UpdateField(NAME_LAST, values.size() < 1 ? std::string() : values.Get(0), |
| + profile) || diff; |
| // Older versions don't have a separate full name; don't overwrite full name |
| // in this case. |
| if (specifics.name_full().size() > 0) { |
| - diff = UpdateMultivaluedField(NAME_FULL, |
| - specifics.name_full(), profile) || diff; |
| + values = specifics.name_full(); |
| + diff = UpdateField(NAME_FULL, |
| + values.size() < 1 ? std::string() : values.Get(0), |
| + profile) || diff; |
| } |
| - diff = UpdateMultivaluedField(EMAIL_ADDRESS, |
| - specifics.email_address(), profile) || diff; |
| - diff = UpdateMultivaluedField(PHONE_HOME_WHOLE_NUMBER, |
| - specifics.phone_home_whole_number(), |
| - profile) || diff; |
| + values = specifics.email_address(); |
| + diff = |
| + UpdateField(EMAIL_ADDRESS, |
| + values.size() < 1 ? std::string() : values.Get(0), |
| + profile) || diff; |
| + values = specifics.phone_home_whole_number(); |
| + diff = |
| + UpdateField(PHONE_HOME_WHOLE_NUMBER, |
| + values.size() < 1 ? std::string() : values.Get(0), |
| + profile) || diff; |
| // Update all simple single-valued address fields. |
| diff = UpdateField(COMPANY_NAME, specifics.company_name(), profile) || diff; |
| @@ -456,7 +471,6 @@ void AutofillProfileSyncableService::WriteAutofillProfile( |
| // TODO(estade): this should be set_email_address. |
| specifics->add_email_address( |
| LimitData(UTF16ToUTF8(profile.GetRawInfo(EMAIL_ADDRESS)))); |
| - std::vector<base::string16> values; |
| specifics->set_company_name( |
| LimitData(UTF16ToUTF8(profile.GetRawInfo(COMPANY_NAME)))); |
| @@ -624,16 +638,6 @@ bool AutofillProfileSyncableService::UpdateField( |
| return true; |
| } |
| -// TODO(estade): remove this function. |
| -bool AutofillProfileSyncableService::UpdateMultivaluedField( |
| - ServerFieldType field_type, |
| - const ::google::protobuf::RepeatedPtrField<std::string>& new_values, |
| - AutofillProfile* autofill_profile) { |
| - return UpdateField(field_type, |
| - new_values.size() < 1 ? std::string() : new_values.Get(0), |
| - autofill_profile); |
| -} |
| - |
| bool AutofillProfileSyncableService::MergeProfile( |
| const AutofillProfile& merge_from, |
| AutofillProfile* merge_into, |