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

Unified Diff: chrome/browser/webdata/autofill_profile_syncable_service.cc

Issue 13697002: Make autofill's Address store country using the country code so that app locale isn't needed for th… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix remaining tests Created 7 years, 8 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: chrome/browser/webdata/autofill_profile_syncable_service.cc
===================================================================
--- chrome/browser/webdata/autofill_profile_syncable_service.cc (revision 192389)
+++ chrome/browser/webdata/autofill_profile_syncable_service.cc (working copy)
@@ -8,6 +8,7 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/utf_string_conversions.h"
+#include "components/autofill/browser/autofill_country.h"
#include "components/autofill/browser/autofill_profile.h"
#include "components/autofill/browser/form_group.h"
#include "components/webdata/autofill/autofill_table.h"
@@ -41,8 +42,10 @@
const char kAutofillProfileTag[] = "google_chrome_autofill_profiles";
AutofillProfileSyncableService::AutofillProfileSyncableService(
- AutofillWebDataService* web_data_service)
+ AutofillWebDataService* web_data_service,
+ const std::string& app_locale)
: web_data_service_(web_data_service),
+ app_locale_(app_locale),
ALLOW_THIS_IN_INITIALIZER_LIST(scoped_observer_(this)) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
DCHECK(web_data_service_);
@@ -56,9 +59,11 @@
// static
void AutofillProfileSyncableService::CreateForWebDataService(
- AutofillWebDataService* web_data_service) {
+ AutofillWebDataService* web_data_service,
+ const std::string& app_locale) {
web_data_service->GetDBUserData()->SetUserData(
- UserDataKey(), new AutofillProfileSyncableService(web_data_service));
+ UserDataKey(),
+ new AutofillProfileSyncableService(web_data_service, app_locale));
}
// static
@@ -299,7 +304,8 @@
// static
bool AutofillProfileSyncableService::OverwriteProfileWithServerData(
const sync_pb::AutofillProfileSpecifics& specifics,
- AutofillProfile* profile) {
+ AutofillProfile* profile,
+ const std::string& app_locale) {
bool diff = false;
diff = UpdateMultivaluedField(NAME_FIRST,
specifics.name_first(), profile) || diff;
@@ -315,8 +321,11 @@
specifics.address_home_city(), profile) || diff;
diff = UpdateField(ADDRESS_HOME_STATE,
specifics.address_home_state(), profile) || diff;
- diff = UpdateField(ADDRESS_HOME_COUNTRY,
- specifics.address_home_country(), profile) || diff;
+ string16 country_name_or_code =
+ ASCIIToUTF16(specifics.address_home_country());
+ std::string country_code = AutofillCountry::GetCountryCode(
+ country_name_or_code, app_locale);
+ diff = UpdateField(ADDRESS_HOME_COUNTRY, country_code, profile) || diff;
diff = UpdateField(ADDRESS_HOME_ZIP,
specifics.address_home_zip(), profile) || diff;
diff = UpdateMultivaluedField(EMAIL_ADDRESS,
@@ -415,13 +424,16 @@
autofill_specifics.guid());
if (it != profile_map->end()) {
// Some profile that already present is synced.
- if (OverwriteProfileWithServerData(autofill_specifics, it->second))
+ if (OverwriteProfileWithServerData(
+ autofill_specifics, it->second, app_locale_)) {
bundle->profiles_to_update.push_back(it->second);
+ }
} else {
// New profile synced.
AutofillProfile* new_profile(
new AutofillProfile(autofill_specifics.guid()));
- OverwriteProfileWithServerData(autofill_specifics, new_profile);
+ OverwriteProfileWithServerData(
+ autofill_specifics, new_profile, app_locale_);
// Check if profile appears under a different guid.
for (GUIDToProfileMap::iterator i = profile_map->begin();
« no previous file with comments | « chrome/browser/webdata/autofill_profile_syncable_service.h ('k') | chrome/browser/webdata/web_data_service_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698