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 bfb32d7a2f361a1a0e90cebeb605de3feac90539..2764743c505998e0c455acfded638bbbf52854ea 100644 |
--- a/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc |
+++ b/components/autofill/core/browser/webdata/autofill_profile_syncable_service.cc |
@@ -332,6 +332,12 @@ bool AutofillProfileSyncableService::OverwriteProfileWithServerData( |
specifics.name_middle(), profile) || diff; |
diff = UpdateMultivaluedField(NAME_LAST, |
specifics.name_last(), 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; |
+ } |
diff = UpdateMultivaluedField(EMAIL_ADDRESS, |
specifics.email_address(), profile) || diff; |
diff = UpdateMultivaluedField(PHONE_HOME_WHOLE_NUMBER, |
@@ -399,6 +405,7 @@ void AutofillProfileSyncableService::WriteAutofillProfile( |
specifics->clear_name_first(); |
specifics->clear_name_middle(); |
specifics->clear_name_last(); |
+ specifics->clear_name_full(); |
specifics->clear_email_address(); |
specifics->clear_phone_home_whole_number(); |
@@ -421,6 +428,11 @@ void AutofillProfileSyncableService::WriteAutofillProfile( |
specifics->add_name_last(LimitData(UTF16ToUTF8(values[i]))); |
} |
+ profile.GetRawMultiInfo(NAME_FULL, &values); |
+ for (size_t i = 0; i < values.size(); ++i) { |
+ specifics->add_name_full(LimitData(UTF16ToUTF8(values[i]))); |
+ } |
+ |
specifics->set_address_home_line1( |
LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_LINE1)))); |
specifics->set_address_home_line2( |