diff options
Diffstat (limited to 'chrome/browser/search_engines')
3 files changed, 33 insertions, 20 deletions
diff --git a/chrome/browser/search_engines/template_url_service.cc b/chrome/browser/search_engines/template_url_service.cc index 381811a..e10e5b8 100644 --- a/chrome/browser/search_engines/template_url_service.cc +++ b/chrome/browser/search_engines/template_url_service.cc @@ -1110,7 +1110,7 @@ syncer::SyncError TemplateURLService::ProcessSyncChanges( return error; } -syncer::SyncError TemplateURLService::MergeDataAndStartSyncing( +syncer::SyncMergeResult TemplateURLService::MergeDataAndStartSyncing( syncer::ModelType type, const syncer::SyncDataList& initial_sync_data, scoped_ptr<syncer::SyncChangeProcessor> sync_processor, @@ -1120,6 +1120,7 @@ syncer::SyncError TemplateURLService::MergeDataAndStartSyncing( DCHECK(!sync_processor_.get()); DCHECK(sync_processor.get()); DCHECK(sync_error_factory.get()); + syncer::SyncMergeResult merge_result(type); sync_processor_ = sync_processor.Pass(); sync_error_factory_ = sync_error_factory.Pass(); @@ -1233,17 +1234,17 @@ syncer::SyncError TemplateURLService::MergeDataAndStartSyncing( LogDuplicatesHistogram(GetTemplateURLs()); - syncer::SyncError error = - sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes); - if (error.IsSet()) - return error; + merge_result.set_error( + sync_processor_->ProcessSyncChanges(FROM_HERE, new_changes)); + if (merge_result.error().IsSet()) + return merge_result; // The ACTION_DELETEs from this set are processed. Empty it so we don't try to // reuse them on the next call to MergeDataAndStartSyncing. pre_sync_deletes_.clear(); models_associated_ = true; - return syncer::SyncError(); + return merge_result; } void TemplateURLService::StopSyncing(syncer::ModelType type) { diff --git a/chrome/browser/search_engines/template_url_service.h b/chrome/browser/search_engines/template_url_service.h index 510f11c..eea98e3 100644 --- a/chrome/browser/search_engines/template_url_service.h +++ b/chrome/browser/search_engines/template_url_service.h @@ -286,7 +286,7 @@ class TemplateURLService : public WebDataServiceConsumer, // Merge initial search engine data from Sync and push any local changes up // to Sync. This may send notifications if local search engines are added, // updated or removed. - virtual syncer::SyncError MergeDataAndStartSyncing( + virtual syncer::SyncMergeResult MergeDataAndStartSyncing( syncer::ModelType type, const syncer::SyncDataList& initial_sync_data, scoped_ptr<syncer::SyncChangeProcessor> sync_processor, diff --git a/chrome/browser/search_engines/template_url_service_sync_unittest.cc b/chrome/browser/search_engines/template_url_service_sync_unittest.cc index 5ba4974..223cda6 100644 --- a/chrome/browser/search_engines/template_url_service_sync_unittest.cc +++ b/chrome/browser/search_engines/template_url_service_sync_unittest.cc @@ -1276,9 +1276,11 @@ TEST_F(TemplateURLServiceSyncTest, MergeTwoClientsDupesAndConflicts) { TEST_F(TemplateURLServiceSyncTest, StopSyncing) { syncer::SyncError error = - model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, - CreateInitialSyncData(), PassProcessor(), - CreateAndPassSyncErrorFactory()); + model()->MergeDataAndStartSyncing( + syncer::SEARCH_ENGINES, + CreateInitialSyncData(), + PassProcessor(), + CreateAndPassSyncErrorFactory()).error(); ASSERT_FALSE(error.IsSet()); model()->StopSyncing(syncer::SEARCH_ENGINES); @@ -1297,9 +1299,11 @@ TEST_F(TemplateURLServiceSyncTest, StopSyncing) { TEST_F(TemplateURLServiceSyncTest, SyncErrorOnInitialSync) { processor()->set_erroneous(true); syncer::SyncError error = - model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, - CreateInitialSyncData(), PassProcessor(), - CreateAndPassSyncErrorFactory()); + model()->MergeDataAndStartSyncing( + syncer::SEARCH_ENGINES, + CreateInitialSyncData(), + PassProcessor(), + CreateAndPassSyncErrorFactory()).error(); EXPECT_TRUE(error.IsSet()); // Ensure that if the initial merge was erroneous, then subsequence attempts @@ -1322,9 +1326,11 @@ TEST_F(TemplateURLServiceSyncTest, SyncErrorOnLaterSync) { // Ensure that if the SyncProcessor succeeds in the initial merge, but fails // in future ProcessSyncChanges, we still return an error. syncer::SyncError error = - model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, - CreateInitialSyncData(), PassProcessor(), - CreateAndPassSyncErrorFactory()); + model()->MergeDataAndStartSyncing( + syncer::SEARCH_ENGINES, + CreateInitialSyncData(), + PassProcessor(), + CreateAndPassSyncErrorFactory()).error(); ASSERT_FALSE(error.IsSet()); syncer::SyncChangeList changes; @@ -1346,8 +1352,11 @@ TEST_F(TemplateURLServiceSyncTest, MergeTwiceWithSameSyncData) { "key1", 10)); // earlier syncer::SyncError error = - model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, - initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); + model()->MergeDataAndStartSyncing( + syncer::SEARCH_ENGINES, + initial_data, + PassProcessor(), + CreateAndPassSyncErrorFactory()).error(); ASSERT_FALSE(error.IsSet()); // We should have updated the original TemplateURL with Sync's version. @@ -1373,8 +1382,11 @@ TEST_F(TemplateURLServiceSyncTest, MergeTwiceWithSameSyncData) { model()->StopSyncing(syncer::SEARCH_ENGINES); sync_processor_delegate_.reset(new SyncChangeProcessorDelegate( sync_processor_.get())); - error = model()->MergeDataAndStartSyncing(syncer::SEARCH_ENGINES, - initial_data, PassProcessor(), CreateAndPassSyncErrorFactory()); + error = model()->MergeDataAndStartSyncing( + syncer::SEARCH_ENGINES, + initial_data, + PassProcessor(), + CreateAndPassSyncErrorFactory()).error(); ASSERT_FALSE(error.IsSet()); // Check that the TemplateURL was not modified. |