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

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

Issue 1421003007: [Sync] Componentize ProfileSyncComponentsFactoryImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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/chrome_sync_client.cc
diff --git a/chrome/browser/sync/chrome_sync_client.cc b/chrome/browser/sync/chrome_sync_client.cc
index 78e18831eb04a3d7f4b555fe9685e4bd165a3bd4..a8fc342399f04817a2f17f2087208e1ceb56bcd6 100644
--- a/chrome/browser/sync/chrome_sync_client.cc
+++ b/chrome/browser/sync/chrome_sync_client.cc
@@ -17,6 +17,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/sync/glue/sync_start_util.h"
+#include "chrome/browser/sync/glue/theme_data_type_controller.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/browser/sync/sessions/notification_service_sessions_router.h"
#include "chrome/browser/themes/theme_service.h"
@@ -25,6 +26,7 @@
#include "chrome/browser/ui/sync/browser_synced_window_delegates_getter.h"
#include "chrome/browser/undo/bookmark_undo_service_factory.h"
#include "chrome/browser/web_data_service_factory.h"
+#include "chrome/common/channel_info.h"
#include "chrome/common/url_constants.h"
#include "components/autofill/core/browser/webdata/autocomplete_syncable_service.h"
#include "components/autofill/core/browser/webdata/autofill_profile_syncable_service.h"
@@ -38,9 +40,12 @@
#include "components/invalidation/impl/profile_invalidation_provider.h"
#include "components/password_manager/core/browser/password_store.h"
#include "components/password_manager/sync/browser/password_model_worker.h"
+#include "components/search_engines/search_engine_data_type_controller.h"
#include "components/sync_driver/glue/browser_thread_model_worker.h"
+#include "components/sync_driver/glue/chrome_report_unrecoverable_error.h"
#include "components/sync_driver/glue/ui_model_worker.h"
#include "components/sync_driver/sync_api_component_factory.h"
+#include "components/sync_driver/ui_data_type_controller.h"
#include "components/sync_sessions/sync_sessions_client.h"
#include "components/syncable_prefs/pref_service_syncable.h"
#include "content/public/browser/browser_thread.h"
@@ -87,6 +92,12 @@
#endif
using content::BrowserThread;
+#if defined(ENABLE_EXTENSIONS)
+using browser_sync::ExtensionDataTypeController;
+using browser_sync::ExtensionSettingDataTypeController;
+#endif
+using browser_sync::SearchEngineDataTypeController;
+using sync_driver::UIDataTypeController;
namespace browser_sync {
@@ -441,4 +452,136 @@ void ChromeSyncClient::SetBrowsingDataRemoverObserverForTesting(
browsing_data_remover_observer_ = observer;
}
+// Static.
+void ChromeSyncClient::RegisterDesktopDataTypes(
blundell 2015/11/10 15:24:24 Why not just have this be an instance method and t
Nicolas Zea 2015/11/11 00:06:20 Originally, the SyncAPIComponentFactory itself was
+ Profile* profile,
+ syncer::ModelTypeSet disabled_types,
+ syncer::ModelTypeSet enabled_types,
+ sync_driver::SyncClient* sync_client) {
+ sync_driver::SyncService* sync_service = sync_client->GetSyncService();
+ base::Closure error_callback =
+ base::Bind(&ChromeReportUnrecoverableError, chrome::GetChannel());
+ const scoped_refptr<base::SingleThreadTaskRunner> ui_thread =
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI);
+
+#if defined(ENABLE_EXTENSIONS)
+ // App sync is enabled by default. Register unless explicitly
+ // disabled.
+ if (!disabled_types.Has(syncer::APPS)) {
+ sync_service->RegisterDataTypeController(new ExtensionDataTypeController(
+ syncer::APPS, error_callback, sync_client, profile));
+ }
+
+ // Extension sync is enabled by default. Register unless explicitly
+ // disabled.
+ if (!disabled_types.Has(syncer::EXTENSIONS)) {
+ sync_service->RegisterDataTypeController(new ExtensionDataTypeController(
+ syncer::EXTENSIONS, error_callback, sync_client, profile));
+ }
+#endif
+
+ // Preference sync is enabled by default. Register unless explicitly
+ // disabled.
+ if (!disabled_types.Has(syncer::PREFERENCES)) {
+ sync_service->RegisterDataTypeController(new UIDataTypeController(
+ ui_thread, error_callback, syncer::PREFERENCES, sync_client));
+ }
+
+#if defined(ENABLE_THEMES)
+ // Theme sync is enabled by default. Register unless explicitly disabled.
+ if (!disabled_types.Has(syncer::THEMES)) {
+ sync_service->RegisterDataTypeController(
+ new ThemeDataTypeController(error_callback, sync_client, profile));
+ }
+#endif
+
+ // Search Engine sync is enabled by default. Register unless explicitly
+ // disabled.
+ if (!disabled_types.Has(syncer::SEARCH_ENGINES)) {
+ sync_service->RegisterDataTypeController(new SearchEngineDataTypeController(
+ ui_thread, error_callback, sync_client,
+ TemplateURLServiceFactory::GetForProfile(profile)));
+ }
+
+#if defined(ENABLE_EXTENSIONS)
+ // Extension setting sync is enabled by default. Register unless explicitly
+ // disabled.
+ if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) {
+ sync_service->RegisterDataTypeController(
+ new ExtensionSettingDataTypeController(
+ syncer::EXTENSION_SETTINGS, error_callback, sync_client, profile));
+ }
+
+ // App setting sync is enabled by default. Register unless explicitly
+ // disabled.
+ if (!disabled_types.Has(syncer::APP_SETTINGS)) {
+ sync_service->RegisterDataTypeController(
+ new ExtensionSettingDataTypeController(
+ syncer::APP_SETTINGS, error_callback, sync_client, profile));
+ }
+#endif
+
+#if defined(ENABLE_APP_LIST)
+ if (app_list::switches::IsAppListSyncEnabled()) {
+ sync_service->RegisterDataTypeController(new UIDataTypeController(
+ ui_thread, error_callback, syncer::APP_LIST, sync_client));
+ }
+#endif
+
+#if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS)
+ // Dictionary sync is enabled by default.
+ if (!disabled_types.Has(syncer::DICTIONARY)) {
+ sync_service->RegisterDataTypeController(new UIDataTypeController(
+ ui_thread, error_callback, syncer::DICTIONARY, sync_client));
+ }
+#endif
+
+#if defined(ENABLE_SUPERVISED_USERS)
+ sync_service->RegisterDataTypeController(
+ new SupervisedUserSyncDataTypeController(syncer::SUPERVISED_USER_SETTINGS,
+ error_callback, sync_client,
+ profile));
+ sync_service->RegisterDataTypeController(
+ new SupervisedUserSyncDataTypeController(
+ syncer::SUPERVISED_USER_WHITELISTS, error_callback, sync_client,
+ profile));
+ sync_service->RegisterDataTypeController(
+ new SupervisedUserSyncDataTypeController(
+ syncer::SUPERVISED_USERS, error_callback, sync_client, profile));
+ sync_service->RegisterDataTypeController(
+ new SupervisedUserSyncDataTypeController(
+ syncer::SUPERVISED_USER_SHARED_SETTINGS, error_callback, sync_client,
+ profile));
+#endif
+
+#if defined(OS_CHROMEOS)
+ if (command_line_->HasSwitch(switches::kEnableWifiCredentialSync) &&
+ !disabled_types.Has(syncer::WIFI_CREDENTIALS)) {
+ sync_service->RegisterDataTypeController(new UIDataTypeController(
+ ui_thread, error_callback, syncer::WIFI_CREDENTIALS, sync_client));
+ }
+#endif
+}
+
+// Static.
+void ChromeSyncClient::RegisterAndroidDataTypes(
+ Profile* profile,
+ syncer::ModelTypeSet disabled_types,
+ syncer::ModelTypeSet enabled_types,
+ sync_driver::SyncClient* sync_client) {
+ sync_driver::SyncService* sync_service = sync_client->GetSyncService();
+ base::Closure error_callback =
+ base::Bind(&ChromeReportUnrecoverableError, chrome::GetChannel());
+#if defined(ENABLE_SUPERVISED_USERS)
+ sync_service->RegisterDataTypeController(
+ new SupervisedUserSyncDataTypeController(syncer::SUPERVISED_USER_SETTINGS,
+ error_callback, sync_client,
+ profile));
+ sync_service->RegisterDataTypeController(
+ new SupervisedUserSyncDataTypeController(
+ syncer::SUPERVISED_USER_WHITELISTS, error_callback, sync_client,
+ profile));
+#endif
+}
+
} // namespace browser_sync

Powered by Google App Engine
This is Rietveld 408576698