OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" | 5 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" |
6 | 6 |
7 #include "base/guid.h" | 7 #include "base/guid.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 diff = UpdateMultivaluedField(NAME_LAST, | 337 diff = UpdateMultivaluedField(NAME_LAST, |
338 specifics.name_last(), profile) || diff; | 338 specifics.name_last(), profile) || diff; |
339 diff = UpdateMultivaluedField(EMAIL_ADDRESS, | 339 diff = UpdateMultivaluedField(EMAIL_ADDRESS, |
340 specifics.email_address(), profile) || diff; | 340 specifics.email_address(), profile) || diff; |
341 diff = UpdateMultivaluedField(PHONE_HOME_WHOLE_NUMBER, | 341 diff = UpdateMultivaluedField(PHONE_HOME_WHOLE_NUMBER, |
342 specifics.phone_home_whole_number(), | 342 specifics.phone_home_whole_number(), |
343 profile) || diff; | 343 profile) || diff; |
344 | 344 |
345 // Update all simple single-valued address fields. | 345 // Update all simple single-valued address fields. |
346 diff = UpdateField(COMPANY_NAME, specifics.company_name(), profile) || diff; | 346 diff = UpdateField(COMPANY_NAME, specifics.company_name(), profile) || diff; |
347 diff = UpdateField(ADDRESS_HOME_LINE1, | |
348 specifics.address_home_line1(), profile) || diff; | |
349 diff = UpdateField(ADDRESS_HOME_LINE2, | |
350 specifics.address_home_line2(), profile) || diff; | |
351 diff = UpdateField(ADDRESS_HOME_CITY, | 347 diff = UpdateField(ADDRESS_HOME_CITY, |
352 specifics.address_home_city(), profile) || diff; | 348 specifics.address_home_city(), profile) || diff; |
353 diff = UpdateField(ADDRESS_HOME_STATE, | 349 diff = UpdateField(ADDRESS_HOME_STATE, |
354 specifics.address_home_state(), profile) || diff; | 350 specifics.address_home_state(), profile) || diff; |
355 diff = UpdateField(ADDRESS_HOME_ZIP, | 351 diff = UpdateField(ADDRESS_HOME_ZIP, |
356 specifics.address_home_zip(), profile) || diff; | 352 specifics.address_home_zip(), profile) || diff; |
| 353 diff = UpdateField(ADDRESS_HOME_SORTING_CODE, |
| 354 specifics.address_home_sorting_code(), profile) || diff; |
| 355 diff = UpdateField(ADDRESS_HOME_DEPENDENT_LOCALITY, |
| 356 specifics.address_home_dependent_locality(), |
| 357 profile) || diff; |
357 | 358 |
358 // Update the country field, which can contain either a country code (if set | 359 // Update the country field, which can contain either a country code (if set |
359 // by a newer version of Chrome), or a country name (if set by an older | 360 // by a newer version of Chrome), or a country name (if set by an older |
360 // version of Chrome). | 361 // version of Chrome). |
361 base::string16 country_name_or_code = | 362 base::string16 country_name_or_code = |
362 ASCIIToUTF16(specifics.address_home_country()); | 363 ASCIIToUTF16(specifics.address_home_country()); |
363 std::string country_code = | 364 std::string country_code = |
364 AutofillCountry::GetCountryCode(country_name_or_code, app_locale); | 365 AutofillCountry::GetCountryCode(country_name_or_code, app_locale); |
365 diff = UpdateField(ADDRESS_HOME_COUNTRY, country_code, profile) || diff; | 366 diff = UpdateField(ADDRESS_HOME_COUNTRY, country_code, profile) || diff; |
366 | 367 |
| 368 // Update the street address. In newer versions of Chrome (M34+), this data |
| 369 // is stored in the |address_home_street_address| field. In older versions, |
| 370 // this data is stored separated out by address line. |
| 371 if (specifics.has_address_home_street_address()) { |
| 372 diff = UpdateField(ADDRESS_HOME_STREET_ADDRESS, |
| 373 specifics.address_home_street_address(), |
| 374 profile) || diff; |
| 375 } else { |
| 376 diff = UpdateField(ADDRESS_HOME_LINE1, |
| 377 specifics.address_home_line1(), profile) || diff; |
| 378 diff = UpdateField(ADDRESS_HOME_LINE2, |
| 379 specifics.address_home_line2(), profile) || diff; |
| 380 } |
367 return diff; | 381 return diff; |
368 } | 382 } |
369 | 383 |
370 // static | 384 // static |
371 void AutofillProfileSyncableService::WriteAutofillProfile( | 385 void AutofillProfileSyncableService::WriteAutofillProfile( |
372 const AutofillProfile& profile, | 386 const AutofillProfile& profile, |
373 sync_pb::EntitySpecifics* profile_specifics) { | 387 sync_pb::EntitySpecifics* profile_specifics) { |
374 sync_pb::AutofillProfileSpecifics* specifics = | 388 sync_pb::AutofillProfileSpecifics* specifics = |
375 profile_specifics->mutable_autofill_profile(); | 389 profile_specifics->mutable_autofill_profile(); |
376 | 390 |
(...skipping 30 matching lines...) Expand all Loading... |
407 specifics->set_address_home_line2( | 421 specifics->set_address_home_line2( |
408 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_LINE2)))); | 422 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_LINE2)))); |
409 specifics->set_address_home_city( | 423 specifics->set_address_home_city( |
410 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_CITY)))); | 424 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_CITY)))); |
411 specifics->set_address_home_state( | 425 specifics->set_address_home_state( |
412 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_STATE)))); | 426 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_STATE)))); |
413 specifics->set_address_home_zip( | 427 specifics->set_address_home_zip( |
414 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_ZIP)))); | 428 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_ZIP)))); |
415 specifics->set_address_home_country( | 429 specifics->set_address_home_country( |
416 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_COUNTRY)))); | 430 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_COUNTRY)))); |
| 431 specifics->set_address_home_street_address( |
| 432 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)))); |
| 433 specifics->set_address_home_sorting_code( |
| 434 LimitData(UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_SORTING_CODE)))); |
| 435 specifics->set_address_home_dependent_locality( |
| 436 LimitData( |
| 437 UTF16ToUTF8(profile.GetRawInfo(ADDRESS_HOME_DEPENDENT_LOCALITY)))); |
417 | 438 |
418 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values); | 439 profile.GetRawMultiInfo(EMAIL_ADDRESS, &values); |
419 for (size_t i = 0; i < values.size(); ++i) { | 440 for (size_t i = 0; i < values.size(); ++i) { |
420 specifics->add_email_address(LimitData(UTF16ToUTF8(values[i]))); | 441 specifics->add_email_address(LimitData(UTF16ToUTF8(values[i]))); |
421 } | 442 } |
422 | 443 |
423 specifics->set_company_name( | 444 specifics->set_company_name( |
424 LimitData(UTF16ToUTF8(profile.GetRawInfo(COMPANY_NAME)))); | 445 LimitData(UTF16ToUTF8(profile.GetRawInfo(COMPANY_NAME)))); |
425 | 446 |
426 profile.GetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values); | 447 profile.GetRawMultiInfo(PHONE_HOME_WHOLE_NUMBER, &values); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
620 void AutofillProfileSyncableService::InjectStartSyncFlare( | 641 void AutofillProfileSyncableService::InjectStartSyncFlare( |
621 const syncer::SyncableService::StartSyncFlare& flare) { | 642 const syncer::SyncableService::StartSyncFlare& flare) { |
622 flare_ = flare; | 643 flare_ = flare; |
623 } | 644 } |
624 | 645 |
625 AutofillProfileSyncableService::DataBundle::DataBundle() {} | 646 AutofillProfileSyncableService::DataBundle::DataBundle() {} |
626 | 647 |
627 AutofillProfileSyncableService::DataBundle::~DataBundle() {} | 648 AutofillProfileSyncableService::DataBundle::~DataBundle() {} |
628 | 649 |
629 } // namespace autofill | 650 } // namespace autofill |
OLD | NEW |