diff options
Diffstat (limited to 'chrome/browser/sync/profile_sync_factory_impl.cc')
-rw-r--r-- | chrome/browser/sync/profile_sync_factory_impl.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/chrome/browser/sync/profile_sync_factory_impl.cc b/chrome/browser/sync/profile_sync_factory_impl.cc index ede961c..c219624 100644 --- a/chrome/browser/sync/profile_sync_factory_impl.cc +++ b/chrome/browser/sync/profile_sync_factory_impl.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/command_line.h" +#include "chrome/browser/extensions/app_notification_manager.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_settings_backend.h" #include "chrome/browser/prefs/pref_model_associator.h" @@ -11,6 +12,7 @@ #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/sync/api/syncable_service.h" #include "chrome/browser/sync/glue/app_data_type_controller.h" +#include "chrome/browser/sync/glue/app_notification_data_type_controller.h" #include "chrome/browser/sync/glue/autofill_change_processor.h" #include "chrome/browser/sync/glue/autofill_data_type_controller.h" #include "chrome/browser/sync/glue/autofill_model_associator.h" @@ -49,6 +51,7 @@ #include "content/browser/browser_thread.h" using browser_sync::AppDataTypeController; +using browser_sync::AppNotificationDataTypeController; using browser_sync::AutofillChangeProcessor; using browser_sync::AutofillDataTypeController; using browser_sync::AutofillProfileDataTypeController; @@ -177,6 +180,13 @@ void ProfileSyncFactoryImpl::RegisterDataTypes(ProfileSyncService* pss) { pss->RegisterDataTypeController( new SearchEngineDataTypeController(this, profile_, pss)); } + + // App notifications sync is disabled by default. Register only if + // explicitly enabled. + if (command_line_->HasSwitch(switches::kEnableSyncAppNotifications)) { + pss->RegisterDataTypeController( + new AppNotificationDataTypeController(this, profile_, pss)); + } } DataTypeManager* ProfileSyncFactoryImpl::CreateDataTypeManager( @@ -383,3 +393,22 @@ ProfileSyncFactoryImpl::CreateSearchEngineSyncComponents( change_processor); return SyncComponents(sync_service_adapter, change_processor); } + +ProfileSyncFactory::SyncComponents +ProfileSyncFactoryImpl::CreateAppNotificationSyncComponents( + ProfileSyncService* profile_sync_service, + browser_sync::UnrecoverableErrorHandler* error_handler) { + base::WeakPtr<SyncableService> notif_sync_service = + profile_->GetExtensionService()->app_notification_manager()->AsWeakPtr(); + DCHECK(notif_sync_service); + sync_api::UserShare* user_share = profile_sync_service->GetUserShare(); + GenericChangeProcessor* change_processor = + new GenericChangeProcessor(error_handler, + notif_sync_service, + user_share); + SyncableServiceAdapter* sync_service_adapter = + new SyncableServiceAdapter(syncable::APP_NOTIFICATIONS, + notif_sync_service, + change_processor); + return SyncComponents(sync_service_adapter, change_processor); +} |