Chromium Code Reviews| 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); |
| +} |