| Index: chrome/browser/webdata/autofill_profile_syncable_service.cc
|
| diff --git a/chrome/browser/webdata/autofill_profile_syncable_service.cc b/chrome/browser/webdata/autofill_profile_syncable_service.cc
|
| index 75db0fdda67f7b358c0728b8290bbd32833add39..7eb68fb8188354088816f120a0b9f53ca75641ee 100644
|
| --- a/chrome/browser/webdata/autofill_profile_syncable_service.cc
|
| +++ b/chrome/browser/webdata/autofill_profile_syncable_service.cc
|
| @@ -38,8 +38,7 @@ const char kAutofillProfileTag[] = "google_chrome_autofill_profiles";
|
|
|
| AutofillProfileSyncableService::AutofillProfileSyncableService(
|
| WebDataService* web_data_service)
|
| - : web_data_service_(web_data_service),
|
| - sync_processor_(NULL) {
|
| + : web_data_service_(web_data_service) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
|
| DCHECK(web_data_service_);
|
| notification_registrar_.Add(this,
|
| @@ -52,8 +51,7 @@ AutofillProfileSyncableService::~AutofillProfileSyncableService() {
|
| }
|
|
|
| AutofillProfileSyncableService::AutofillProfileSyncableService()
|
| - : web_data_service_(NULL),
|
| - sync_processor_(NULL) {
|
| + : web_data_service_(NULL) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
|
| }
|
|
|
| @@ -62,7 +60,7 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing(
|
| const SyncDataList& initial_sync_data,
|
| SyncChangeProcessor* sync_processor) {
|
| DCHECK(CalledOnValidThread());
|
| - DCHECK(sync_processor_ == NULL);
|
| + DCHECK(!sync_processor_.get());
|
| VLOG(1) << "Associating Autofill: MergeDataAndStartSyncing";
|
|
|
| if (!LoadAutofillData(&profiles_.get())) {
|
| @@ -85,7 +83,7 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing(
|
| }
|
| }
|
|
|
| - sync_processor_ = sync_processor;
|
| + sync_processor_.reset(sync_processor);
|
|
|
| GUIDToProfileMap remaining_profiles;
|
| CreateGUIDToProfileMap(profiles_.get(), &remaining_profiles);
|
| @@ -112,7 +110,9 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing(
|
| profiles_map_[i->first] = i->second;
|
| }
|
|
|
| - SyncError error = sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes);
|
| + SyncError error;
|
| + if (!new_changes.empty())
|
| + error = sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes);
|
|
|
| WebDataService::NotifyOfMultipleAutofillChanges(web_data_service_);
|
|
|
| @@ -121,10 +121,9 @@ SyncError AutofillProfileSyncableService::MergeDataAndStartSyncing(
|
|
|
| void AutofillProfileSyncableService::StopSyncing(syncable::ModelType type) {
|
| DCHECK(CalledOnValidThread());
|
| - DCHECK(sync_processor_ != NULL);
|
| DCHECK_EQ(type, syncable::AUTOFILL_PROFILE);
|
|
|
| - sync_processor_ = NULL;
|
| + sync_processor_.reset();
|
| profiles_.reset();
|
| profiles_map_.clear();
|
| }
|
| @@ -132,7 +131,7 @@ void AutofillProfileSyncableService::StopSyncing(syncable::ModelType type) {
|
| SyncDataList AutofillProfileSyncableService::GetAllSyncData(
|
| syncable::ModelType type) const {
|
| DCHECK(CalledOnValidThread());
|
| - DCHECK(sync_processor_ != NULL);
|
| + DCHECK(sync_processor_.get());
|
| DCHECK_EQ(type, syncable::AUTOFILL_PROFILE);
|
|
|
| SyncDataList current_data;
|
| @@ -148,8 +147,7 @@ SyncError AutofillProfileSyncableService::ProcessSyncChanges(
|
| const tracked_objects::Location& from_here,
|
| const SyncChangeList& change_list) {
|
| DCHECK(CalledOnValidThread());
|
| - DCHECK(sync_processor_ != NULL);
|
| - if (sync_processor_ == NULL) {
|
| + if (!sync_processor_.get()) {
|
| SyncError error(FROM_HERE, "Models not yet associated.",
|
| syncable::AUTOFILL_PROFILE);
|
| return error;
|
| @@ -196,7 +194,7 @@ void AutofillProfileSyncableService::Observe(int type,
|
| // up we are going to process all when MergeData..() is called. If we receive
|
| // notification after the sync exited, it will be sinced next time Chrome
|
| // starts.
|
| - if (!sync_processor_)
|
| + if (!sync_processor_.get())
|
| return;
|
|
|
| AutofillProfileChange* change = Details<AutofillProfileChange>(details).ptr();
|
| @@ -351,7 +349,7 @@ void AutofillProfileSyncableService::ActOnChange(
|
| DCHECK((change.type() == AutofillProfileChange::REMOVE &&
|
| !change.profile()) ||
|
| (change.type() != AutofillProfileChange::REMOVE && change.profile()));
|
| - DCHECK(sync_processor_);
|
| + DCHECK(sync_processor_.get());
|
| SyncChangeList new_changes;
|
| DataBundle bundle;
|
| switch (change.type()) {
|
|
|