summaryrefslogtreecommitdiffstats
path: root/chrome/browser/search_engines
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/search_engines')
-rw-r--r--chrome/browser/search_engines/template_url_service.cc13
-rw-r--r--chrome/browser/search_engines/template_url_service.h2
-rw-r--r--chrome/browser/search_engines/template_url_service_sync_unittest.cc38
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.