Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7123)

Unified Diff: chrome/browser/sync/profile_sync_factory_impl.cc

Issue 7669052: Added DataTypeController integration and UI surfacing for syncing Search Engines. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Initial upload. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/profile_sync_factory_impl.cc
===================================================================
--- chrome/browser/sync/profile_sync_factory_impl.cc (revision 97454)
+++ chrome/browser/sync/profile_sync_factory_impl.cc (working copy)
@@ -5,6 +5,8 @@
#include "base/command_line.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/search_engines/template_url_service.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/sync/api/syncable_service.h"
#include "chrome/browser/sync/glue/app_change_processor.h"
#include "chrome/browser/sync/glue/app_data_type_controller.h"
@@ -28,6 +30,7 @@
#include "chrome/browser/sync/glue/password_data_type_controller.h"
#include "chrome/browser/sync/glue/password_model_associator.h"
#include "chrome/browser/sync/glue/preference_data_type_controller.h"
+#include "chrome/browser/sync/glue/search_engine_data_type_controller.h"
#include "chrome/browser/sync/glue/session_change_processor.h"
#include "chrome/browser/sync/glue/session_data_type_controller.h"
#include "chrome/browser/sync/glue/session_model_associator.h"
@@ -69,6 +72,7 @@
using browser_sync::PasswordDataTypeController;
using browser_sync::PasswordModelAssociator;
using browser_sync::PreferenceDataTypeController;
+using browser_sync::SearchEngineDataTypeController;
using browser_sync::SessionChangeProcessor;
using browser_sync::SessionDataTypeController;
using browser_sync::SessionModelAssociator;
@@ -163,6 +167,13 @@
pss->RegisterDataTypeController(
new AutofillProfileDataTypeController(this, profile_));
}
+
+ // Search Engine sync is disabled by default. Register only if explicitly
+ // enabled.
+ if (command_line_->HasSwitch(switches::kEnableSyncSearchEngines)) {
+ pss->RegisterDataTypeController(
+ new SearchEngineDataTypeController(this, profile_, pss));
+ }
}
DataTypeManager* ProfileSyncFactoryImpl::CreateDataTypeManager(
@@ -324,3 +335,20 @@
new SessionChangeProcessor(error_handler, model_associator);
return SyncComponents(model_associator, change_processor);
}
+
+ProfileSyncFactory::SyncComponents
+ProfileSyncFactoryImpl::CreateSearchEngineSyncComponents(
+ ProfileSyncService* profile_sync_service,
+ UnrecoverableErrorHandler* error_handler) {
+ SyncableService* se_sync_service =
+ TemplateURLServiceFactory::GetForProfile(profile_);
+ DCHECK(se_sync_service);
+ sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
+ GenericChangeProcessor* change_processor =
+ new GenericChangeProcessor(se_sync_service, error_handler, user_share);
+ browser_sync::SyncableServiceAdapter* sync_service_adapter =
Nicolas Zea 2011/08/19 18:32:39 may as well add SyncableServiceAdapter to the "usi
SteveT 2011/08/22 18:33:42 Done.
+ new browser_sync::SyncableServiceAdapter(syncable::SEARCH_ENGINES,
+ se_sync_service,
+ change_processor);
+ return SyncComponents(sync_service_adapter, change_processor);
+}

Powered by Google App Engine
This is Rietveld 408576698