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

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

Issue 1310553005: [Sync] Replace ProfileSyncComponentsFactory with SyncClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Self review Created 5 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_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 =

Powered by Google App Engine
This is Rietveld 408576698