| Index: chrome/browser/sync/glue/autofill_change_processor.cc
|
| diff --git a/chrome/browser/sync/glue/autofill_change_processor.cc b/chrome/browser/sync/glue/autofill_change_processor.cc
|
| index eed58fcb4798e782f771147eaadec84e00ef70d0..e72c7c3180f2c17663eb31efbf3f5237e35d3136 100644
|
| --- a/chrome/browser/sync/glue/autofill_change_processor.cc
|
| +++ b/chrome/browser/sync/glue/autofill_change_processor.cc
|
| @@ -9,16 +9,20 @@
|
|
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "chrome/browser/autofill/personal_data_manager.h"
|
| #include "chrome/browser/guid.h"
|
| +#include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/autofill/personal_data_manager.h"
|
| #include "chrome/browser/sync/glue/autofill_change_processor2.h"
|
| #include "chrome/browser/sync/glue/autofill_model_associator.h"
|
| +#include "chrome/browser/sync/glue/autofill_profile_model_associator.h"
|
| +#include "chrome/browser/sync/glue/do_optimistic_refresh_task.h"
|
| #include "chrome/browser/sync/profile_sync_service.h"
|
| #include "chrome/browser/webdata/autofill_change.h"
|
| #include "chrome/browser/webdata/web_data_service.h"
|
| #include "chrome/browser/webdata/web_database.h"
|
| #include "chrome/common/notification_service.h"
|
| +#include "chrome/common/pref_names.h"
|
|
|
| namespace browser_sync {
|
|
|
| @@ -83,7 +87,7 @@ void AutofillChangeProcessor::Observe(NotificationType type,
|
|
|
| void AutofillChangeProcessor::PostOptimisticRefreshTask() {
|
| BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
| - new AutofillModelAssociator::DoOptimisticRefreshTask(
|
| + new DoOptimisticRefreshForAutofill(
|
| personal_data_));
|
| }
|
|
|
| @@ -195,6 +199,8 @@ void AutofillChangeProcessor::ApplyChangesFromSyncModel(
|
| return;
|
| StopObserving();
|
|
|
| + bool autofill_profile_not_migrated = HasNotMigratedYet(trans);
|
| +
|
| sync_api::ReadNode autofill_root(trans);
|
| if (!autofill_root.InitByTagLookup(kAutofillTag)) {
|
| error_handler()->OnUnrecoverableError(FROM_HERE,
|
| @@ -210,7 +216,7 @@ void AutofillChangeProcessor::ApplyChangesFromSyncModel(
|
| const sync_pb::AutofillSpecifics& autofill =
|
| changes[i].specifics.GetExtension(sync_pb::autofill);
|
| if (autofill.has_value() ||
|
| - (HasNotMigratedYet() && autofill.has_profile())) {
|
| + (autofill_profile_not_migrated && autofill.has_profile())) {
|
| autofill_changes_.push_back(AutofillChangeRecord(changes[i].action,
|
| changes[i].id,
|
| autofill));
|
| @@ -236,7 +242,7 @@ void AutofillChangeProcessor::ApplyChangesFromSyncModel(
|
| sync_node.GetAutofillSpecifics());
|
| int64 sync_id = sync_node.GetId();
|
| if (autofill.has_value() ||
|
| - (HasNotMigratedYet() && autofill.has_profile())) {
|
| + (autofill_profile_not_migrated && autofill.has_profile())) {
|
| autofill_changes_.push_back(AutofillChangeRecord(changes[i].action,
|
| sync_id, autofill));
|
| } else {
|
| @@ -261,7 +267,6 @@ void AutofillChangeProcessor::CommitChangesFromSyncModel() {
|
| if (autofill_changes_[i].autofill_.has_value()) {
|
| ApplySyncAutofillEntryDelete(autofill_changes_[i].autofill_);
|
| } else if (autofill_changes_[i].autofill_.has_profile()) {
|
| - DCHECK(HasNotMigratedYet());
|
| ApplySyncAutofillProfileDelete(autofill_changes_[i].id_);
|
| } else {
|
| NOTREACHED() << "Autofill's CommitChanges received change with no"
|
| @@ -276,7 +281,6 @@ void AutofillChangeProcessor::CommitChangesFromSyncModel() {
|
| autofill_changes_[i].autofill_, &new_entries,
|
| autofill_changes_[i].id_);
|
| } else if (autofill_changes_[i].autofill_.has_profile()) {
|
| - DCHECK(HasNotMigratedYet());
|
| ApplySyncAutofillProfileChange(autofill_changes_[i].action_,
|
| autofill_changes_[i].autofill_.profile(),
|
| autofill_changes_[i].id_);
|
| @@ -433,40 +437,9 @@ void AutofillChangeProcessor::WriteAutofillEntry(
|
| node->SetAutofillSpecifics(autofill);
|
| }
|
|
|
| -// static
|
| -void AutofillChangeProcessor::WriteAutofillProfile(
|
| - const AutoFillProfile& profile, sync_api::WriteNode* node) {
|
| - sync_pb::AutofillSpecifics autofill;
|
| - sync_pb::AutofillProfileSpecifics* s(autofill.mutable_profile());
|
| - s->set_name_first(UTF16ToUTF8(
|
| - profile.GetFieldText(AutoFillType(NAME_FIRST))));
|
| - s->set_name_middle(UTF16ToUTF8(
|
| - profile.GetFieldText(AutoFillType(NAME_MIDDLE))));
|
| - s->set_name_last(UTF16ToUTF8(profile.GetFieldText(AutoFillType(NAME_LAST))));
|
| - s->set_address_home_line1(
|
| - UTF16ToUTF8(profile.GetFieldText(AutoFillType(ADDRESS_HOME_LINE1))));
|
| - s->set_address_home_line2(
|
| - UTF16ToUTF8(profile.GetFieldText(AutoFillType(ADDRESS_HOME_LINE2))));
|
| - s->set_address_home_city(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(ADDRESS_HOME_CITY))));
|
| - s->set_address_home_state(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(ADDRESS_HOME_STATE))));
|
| - s->set_address_home_country(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(ADDRESS_HOME_COUNTRY))));
|
| - s->set_address_home_zip(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(ADDRESS_HOME_ZIP))));
|
| - s->set_email_address(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(EMAIL_ADDRESS))));
|
| - s->set_company_name(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(COMPANY_NAME))));
|
| - s->set_phone_fax_whole_number(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(PHONE_FAX_WHOLE_NUMBER))));
|
| - s->set_phone_home_whole_number(UTF16ToUTF8(profile.GetFieldText(
|
| - AutoFillType(PHONE_HOME_WHOLE_NUMBER))));
|
| - node->SetAutofillSpecifics(autofill);
|
| -}
|
| -bool AutofillChangeProcessor::HasNotMigratedYet() {
|
| - return true;
|
| +bool AutofillChangeProcessor::HasNotMigratedYet(
|
| + const sync_api::BaseTransaction* trans) {
|
| + return model_associator_->HasNotMigratedYet(trans);
|
| }
|
|
|
| } // namespace browser_sync
|
|
|