Index: chrome/browser/sync/profile_sync_components_factory_impl.cc |
diff --git a/chrome/browser/sync/profile_sync_components_factory_impl.cc b/chrome/browser/sync/profile_sync_components_factory_impl.cc |
index 6deaa82214edc8a3a43f8fe08e58f7d31ad17c67..b645808f31e20d71c7b68004eab2a1c29647bdb3 100644 |
--- a/chrome/browser/sync/profile_sync_components_factory_impl.cc |
+++ b/chrome/browser/sync/profile_sync_components_factory_impl.cc |
@@ -196,66 +196,71 @@ ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl( |
ProfileSyncComponentsFactoryImpl::~ProfileSyncComponentsFactoryImpl() { |
} |
+void ProfileSyncComponentsFactoryImpl::Initialize( |
+ sync_driver::SyncService* sync_service) { |
+ chrome_sync_client_.Initialize(sync_service); |
+} |
+ |
void ProfileSyncComponentsFactoryImpl::RegisterDataTypes( |
- ProfileSyncService* pss) { |
+ sync_driver::SyncService* sync_service) { |
stanisc
2015/08/27 22:14:04
Why does this have to receive sync_service? Could
Nicolas Zea
2015/08/27 23:37:16
Done.
|
syncer::ModelTypeSet disabled_types = |
GetDisabledTypesFromCommandLine(*command_line_); |
syncer::ModelTypeSet enabled_types = |
GetEnabledTypesFromCommandLine(*command_line_); |
- RegisterCommonDataTypes(disabled_types, enabled_types, pss); |
+ RegisterCommonDataTypes(disabled_types, enabled_types, sync_service); |
#if !defined(OS_ANDROID) |
- RegisterDesktopDataTypes(disabled_types, enabled_types, pss); |
+ RegisterDesktopDataTypes(disabled_types, enabled_types, sync_service); |
#endif |
} |
void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
syncer::ModelTypeSet disabled_types, |
syncer::ModelTypeSet enabled_types, |
- ProfileSyncService* pss) { |
+ sync_driver::SyncService* sync_service) { |
stanisc
2015/08/27 22:14:04
The same comment about sync_service as above.
Nicolas Zea
2015/08/27 23:37:16
Done.
|
// TODO(stanisc): can DEVICE_INFO be one of disabled datatypes? |
- pss->RegisterDataTypeController(new DeviceInfoDataTypeController( |
+ sync_service->RegisterDataTypeController(new DeviceInfoDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
&chrome_sync_client_, |
- pss->GetLocalDeviceInfoProvider())); |
+ sync_service->GetLocalDeviceInfoProvider())); |
// Autofill sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::AUTOFILL)) { |
- pss->RegisterDataTypeController( |
- new AutofillDataTypeController(&chrome_sync_client_, profile_)); |
+ sync_service->RegisterDataTypeController( |
+ new AutofillDataTypeController(&chrome_sync_client_)); |
} |
// Autofill profile sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::AUTOFILL_PROFILE)) { |
- pss->RegisterDataTypeController( |
- new AutofillProfileDataTypeController(&chrome_sync_client_, profile_)); |
+ sync_service->RegisterDataTypeController( |
+ new AutofillProfileDataTypeController(&chrome_sync_client_)); |
} |
// Wallet data sync is enabled by default, but behind a syncer experiment |
// enforced by the datatype controller. Register unless explicitly disabled. |
bool wallet_disabled = disabled_types.Has(syncer::AUTOFILL_WALLET_DATA); |
if (!wallet_disabled) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new browser_sync::AutofillWalletDataTypeController( |
- &chrome_sync_client_, profile_, syncer::AUTOFILL_WALLET_DATA)); |
+ &chrome_sync_client_, syncer::AUTOFILL_WALLET_DATA)); |
} |
// Wallet metadata sync depends on Wallet data sync and is disabled by |
// default. Register if Wallet data is syncing and metadata sync is explicitly |
// enabled. |
if (!wallet_disabled && enabled_types.Has(syncer::AUTOFILL_WALLET_METADATA)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new browser_sync::AutofillWalletDataTypeController( |
- &chrome_sync_client_, profile_, syncer::AUTOFILL_WALLET_METADATA)); |
+ &chrome_sync_client_, syncer::AUTOFILL_WALLET_METADATA)); |
} |
// Bookmark sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::BOOKMARKS)) { |
- pss->RegisterDataTypeController( |
- new BookmarkDataTypeController(&chrome_sync_client_, profile_, pss)); |
+ sync_service->RegisterDataTypeController( |
+ new BookmarkDataTypeController(&chrome_sync_client_)); |
} |
const bool history_disabled = |
@@ -263,31 +268,32 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
// TypedUrl sync is enabled by default. Register unless explicitly disabled, |
// or if saving history is disabled. |
if (!disabled_types.Has(syncer::TYPED_URLS) && !history_disabled) { |
- pss->RegisterDataTypeController( |
- new TypedUrlDataTypeController(&chrome_sync_client_, profile_, pss)); |
+ sync_service->RegisterDataTypeController( |
+ new TypedUrlDataTypeController(&chrome_sync_client_)); |
} |
// Delete directive sync is enabled by default. Register unless full history |
// sync is disabled. |
if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES) && |
!history_disabled) { |
- pss->RegisterDataTypeController( |
- new HistoryDeleteDirectivesDataTypeController(&chrome_sync_client_, |
- pss)); |
+ sync_service->RegisterDataTypeController( |
+ new HistoryDeleteDirectivesDataTypeController(&chrome_sync_client_)); |
} |
// Session sync is enabled by default. Register unless explicitly disabled. |
// This is also disabled if the browser history is disabled, because the |
// tab sync data is added to the web history on the server. |
if (!disabled_types.Has(syncer::PROXY_TABS) && !history_disabled) { |
- pss->RegisterDataTypeController(new ProxyDataTypeController( |
+ sync_service->RegisterDataTypeController(new ProxyDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
syncer::PROXY_TABS)); |
- pss->RegisterDataTypeController( |
- new SessionDataTypeController(&chrome_sync_client_, |
- profile_, |
- pss->GetSyncedWindowDelegatesGetter(), |
- pss->GetLocalDeviceInfoProvider())); |
+ // TODO(zea): remove this once SyncedWindowDelegateGetter is componentized. |
stanisc
2015/08/27 22:14:04
Should this have a crbug reference?
Nicolas Zea
2015/08/27 23:37:16
Good point, done.
|
+ // For now, we know that the implementation of SyncService is always a |
+ // ProfileSyncService at this level. |
+ ProfileSyncService* pss = static_cast<ProfileSyncService*>(sync_service); |
+ sync_service->RegisterDataTypeController(new SessionDataTypeController( |
+ &chrome_sync_client_, profile_, pss->GetSyncedWindowDelegatesGetter(), |
+ sync_service->GetLocalDeviceInfoProvider())); |
} |
// Favicon sync is enabled by default. Register unless explicitly disabled. |
@@ -295,13 +301,13 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
!disabled_types.Has(syncer::FAVICON_TRACKING) && |
!history_disabled) { |
// crbug/384552. We disable error uploading for this data types for now. |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Closure(), |
syncer::FAVICON_IMAGES, |
&chrome_sync_client_)); |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Closure(), |
@@ -312,12 +318,12 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
// Password sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::PASSWORDS)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new PasswordDataTypeController(&chrome_sync_client_, profile_)); |
} |
if (!disabled_types.Has(syncer::PRIORITY_PREFERENCES)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
@@ -327,7 +333,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
// Article sync is disabled by default. Register only if explicitly enabled. |
if (dom_distiller::IsEnableSyncArticlesSet()) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
@@ -336,15 +342,15 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
} |
#if defined(ENABLE_SUPERVISED_USERS) |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new SupervisedUserSyncDataTypeController( |
syncer::SUPERVISED_USER_SETTINGS, |
- this, |
+ &chrome_sync_client_, |
profile_)); |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new SupervisedUserSyncDataTypeController( |
syncer::SUPERVISED_USER_WHITELISTS, |
- this, |
+ &chrome_sync_client_, |
profile_)); |
#endif |
} |
@@ -352,19 +358,19 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
syncer::ModelTypeSet disabled_types, |
syncer::ModelTypeSet enabled_types, |
- ProfileSyncService* pss) { |
+ sync_driver::SyncService* sync_service) { |
#if defined(ENABLE_EXTENSIONS) |
// App sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::APPS)) { |
- pss->RegisterDataTypeController(new ExtensionDataTypeController( |
+ sync_service->RegisterDataTypeController(new ExtensionDataTypeController( |
syncer::APPS, &chrome_sync_client_, profile_)); |
} |
// Extension sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::EXTENSIONS)) { |
- pss->RegisterDataTypeController(new ExtensionDataTypeController( |
+ sync_service->RegisterDataTypeController(new ExtensionDataTypeController( |
syncer::EXTENSIONS, &chrome_sync_client_, profile_)); |
} |
#endif |
@@ -372,7 +378,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
// Preference sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::PREFERENCES)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
@@ -383,7 +389,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
#if defined(ENABLE_THEMES) |
// Theme sync is enabled by default. Register unless explicitly disabled. |
if (!disabled_types.Has(syncer::THEMES)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new ThemeDataTypeController(&chrome_sync_client_, profile_)); |
} |
#endif |
@@ -391,7 +397,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
// Search Engine sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::SEARCH_ENGINES)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new SearchEngineDataTypeController(&chrome_sync_client_, profile_)); |
} |
@@ -399,21 +405,23 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
// Extension setting sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { |
- pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( |
- syncer::EXTENSION_SETTINGS, &chrome_sync_client_, profile_)); |
+ sync_service->RegisterDataTypeController( |
+ new ExtensionSettingDataTypeController(syncer::EXTENSION_SETTINGS, |
+ &chrome_sync_client_, profile_)); |
} |
// App setting sync is enabled by default. Register unless explicitly |
// disabled. |
if (!disabled_types.Has(syncer::APP_SETTINGS)) { |
- pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( |
- syncer::APP_SETTINGS, &chrome_sync_client_, profile_)); |
+ sync_service->RegisterDataTypeController( |
+ new ExtensionSettingDataTypeController(syncer::APP_SETTINGS, |
+ &chrome_sync_client_, profile_)); |
} |
#endif |
#if defined(ENABLE_APP_LIST) |
if (app_list::switches::IsAppListSyncEnabled()) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
@@ -425,7 +433,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) |
// Dictionary sync is enabled by default. |
if (!disabled_types.Has(syncer::DICTIONARY)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
@@ -435,22 +443,22 @@ void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
#endif |
#if defined(ENABLE_SUPERVISED_USERS) |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new SupervisedUserSyncDataTypeController( |
syncer::SUPERVISED_USERS, |
- this, |
+ &chrome_sync_client_, |
profile_)); |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new SupervisedUserSyncDataTypeController( |
syncer::SUPERVISED_USER_SHARED_SETTINGS, |
- this, |
+ &chrome_sync_client_, |
profile_)); |
#endif |
#if defined(OS_CHROMEOS) |
if (command_line_->HasSwitch(switches::kEnableWifiCredentialSync) && |
!disabled_types.Has(syncer::WIFI_CREDENTIALS)) { |
- pss->RegisterDataTypeController( |
+ sync_service->RegisterDataTypeController( |
new UIDataTypeController( |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
base::Bind(&ChromeReportUnrecoverableError), |
@@ -478,11 +486,10 @@ DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager( |
browser_sync::SyncBackendHost* |
ProfileSyncComponentsFactoryImpl::CreateSyncBackendHost( |
const std::string& name, |
- Profile* profile, |
invalidation::InvalidationService* invalidator, |
const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs, |
const base::FilePath& sync_folder) { |
- return new browser_sync::SyncBackendHostImpl(name, profile, invalidator, |
+ return new browser_sync::SyncBackendHostImpl(name, profile_, invalidator, |
sync_prefs, sync_folder); |
} |
@@ -529,12 +536,6 @@ OAuth2TokenService* TokenServiceProvider::GetTokenService() { |
return token_service_; |
} |
-base::WeakPtr<syncer::SyncableService> |
-ProfileSyncComponentsFactoryImpl::GetSyncableServiceForType( |
- syncer::ModelType type) { |
- return chrome_sync_client_.GetSyncableServiceForType(type); |
-} |
- |
scoped_ptr<syncer::AttachmentService> |
ProfileSyncComponentsFactoryImpl::CreateAttachmentService( |
scoped_ptr<syncer::AttachmentStoreForSync> attachment_store, |
@@ -589,13 +590,13 @@ ProfileSyncComponentsFactoryImpl::CreateAttachmentService( |
return attachment_service.Pass(); |
} |
-ProfileSyncComponentsFactory::SyncComponents |
+sync_driver::SyncApiComponentFactory::SyncComponents |
ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( |
- ProfileSyncService* profile_sync_service, |
+ sync_driver::SyncService* sync_service, |
sync_driver::DataTypeErrorHandler* error_handler) { |
BookmarkModel* bookmark_model = |
- BookmarkModelFactory::GetForProfile(profile_sync_service->profile()); |
- syncer::UserShare* user_share = profile_sync_service->GetUserShare(); |
+ BookmarkModelFactory::GetForProfile(profile_); |
+ syncer::UserShare* user_share = sync_service->GetUserShare(); |
// TODO(akalin): We may want to propagate this switch up eventually. |
#if defined(OS_ANDROID) |
const bool kExpectMobileBookmarksFolder = true; |
@@ -604,24 +605,27 @@ ProfileSyncComponentsFactory::SyncComponents |
#endif |
BookmarkModelAssociator* model_associator = |
new BookmarkModelAssociator(bookmark_model, |
- profile_sync_service->profile(), |
+ profile_, |
user_share, |
error_handler, |
kExpectMobileBookmarksFolder); |
BookmarkChangeProcessor* change_processor = |
- new BookmarkChangeProcessor(profile_sync_service->profile(), |
+ new BookmarkChangeProcessor(profile_, |
model_associator, |
error_handler); |
return SyncComponents(model_associator, change_processor); |
} |
-ProfileSyncComponentsFactory::SyncComponents |
+sync_driver::SyncApiComponentFactory::SyncComponents |
ProfileSyncComponentsFactoryImpl::CreateTypedUrlSyncComponents( |
- ProfileSyncService* profile_sync_service, |
+ sync_driver::SyncService* sync_service, |
history::HistoryBackend* history_backend, |
sync_driver::DataTypeErrorHandler* error_handler) { |
+ // TODO(zea): Once TypedURLs are converted to SyncableService, remove |
+ // |sync_service_| member, and make GetSyncService require it be called on |
+ // the UI thread. |
TypedUrlModelAssociator* model_associator = |
- new TypedUrlModelAssociator(profile_sync_service, |
+ new TypedUrlModelAssociator(sync_service, |
history_backend, |
error_handler); |
TypedUrlChangeProcessor* change_processor = |