OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/sync/chrome_sync_client.h" | 5 #include "chrome/browser/sync/chrome_sync_client.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 #include "components/sync_sessions/favicon_cache.h" | 71 #include "components/sync_sessions/favicon_cache.h" |
72 #include "components/sync_sessions/sync_sessions_client.h" | 72 #include "components/sync_sessions/sync_sessions_client.h" |
73 #include "content/public/browser/browser_thread.h" | 73 #include "content/public/browser/browser_thread.h" |
74 #include "extensions/features/features.h" | 74 #include "extensions/features/features.h" |
75 #include "ui/base/device_form_factor.h" | 75 #include "ui/base/device_form_factor.h" |
76 | 76 |
77 #if BUILDFLAG(ENABLE_APP_LIST) | 77 #if BUILDFLAG(ENABLE_APP_LIST) |
78 #include "chrome/browser/ui/app_list/app_list_syncable_service.h" | 78 #include "chrome/browser/ui/app_list/app_list_syncable_service.h" |
79 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" | 79 #include "chrome/browser/ui/app_list/app_list_syncable_service_factory.h" |
80 #include "ui/app_list/app_list_switches.h" | 80 #include "ui/app_list/app_list_switches.h" |
81 #endif | 81 #endif // BUILDFLAG(ENABLE_APP_LIST) |
82 | 82 |
83 #if BUILDFLAG(ENABLE_EXTENSIONS) | 83 #if BUILDFLAG(ENABLE_EXTENSIONS) |
84 #include "chrome/browser/extensions/api/storage/settings_sync_util.h" | 84 #include "chrome/browser/extensions/api/storage/settings_sync_util.h" |
85 #include "chrome/browser/extensions/extension_sync_service.h" | 85 #include "chrome/browser/extensions/extension_sync_service.h" |
86 #include "chrome/browser/sync/glue/extension_data_type_controller.h" | 86 #include "chrome/browser/sync/glue/extension_data_type_controller.h" |
87 #include "chrome/browser/sync/glue/extension_setting_data_type_controller.h" | 87 #include "chrome/browser/sync/glue/extension_setting_data_type_controller.h" |
88 #endif | 88 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
89 | 89 |
90 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 90 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
91 #include "chrome/browser/supervised_user/legacy/supervised_user_shared_settings_
service.h" | 91 #include "chrome/browser/supervised_user/legacy/supervised_user_shared_settings_
service.h" |
92 #include "chrome/browser/supervised_user/legacy/supervised_user_shared_settings_
service_factory.h" | 92 #include "chrome/browser/supervised_user/legacy/supervised_user_shared_settings_
service_factory.h" |
93 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service.h" | 93 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service.h" |
94 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_fac
tory.h" | 94 #include "chrome/browser/supervised_user/legacy/supervised_user_sync_service_fac
tory.h" |
95 #include "chrome/browser/supervised_user/supervised_user_service.h" | 95 #include "chrome/browser/supervised_user/supervised_user_service.h" |
96 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" | 96 #include "chrome/browser/supervised_user/supervised_user_service_factory.h" |
97 #include "chrome/browser/supervised_user/supervised_user_settings_service.h" | 97 #include "chrome/browser/supervised_user/supervised_user_settings_service.h" |
98 #include "chrome/browser/supervised_user/supervised_user_settings_service_factor
y.h" | 98 #include "chrome/browser/supervised_user/supervised_user_settings_service_factor
y.h" |
99 #include "chrome/browser/supervised_user/supervised_user_sync_data_type_controll
er.h" | 99 #include "chrome/browser/supervised_user/supervised_user_sync_data_type_controll
er.h" |
100 #include "chrome/browser/supervised_user/supervised_user_whitelist_service.h" | 100 #include "chrome/browser/supervised_user/supervised_user_whitelist_service.h" |
101 #endif | 101 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) |
102 | 102 |
103 #if BUILDFLAG(ENABLE_SPELLCHECK) | 103 #if BUILDFLAG(ENABLE_SPELLCHECK) |
104 #include "chrome/browser/spellchecker/spellcheck_factory.h" | 104 #include "chrome/browser/spellchecker/spellcheck_factory.h" |
105 #include "chrome/browser/spellchecker/spellcheck_service.h" | 105 #include "chrome/browser/spellchecker/spellcheck_service.h" |
106 #endif | 106 #endif // BUILDFLAG(ENABLE_SPELLCHECK) |
107 | 107 |
108 #if defined(OS_ANDROID) | 108 #if defined(OS_ANDROID) |
109 #include "chrome/browser/sync/glue/synced_window_delegates_getter_android.h" | 109 #include "chrome/browser/sync/glue/synced_window_delegates_getter_android.h" |
110 #endif | 110 #endif // defined(OS_ANDROID) |
111 | 111 |
112 #if defined(OS_CHROMEOS) | 112 #if defined(OS_CHROMEOS) |
113 #include "chrome/browser/chromeos/arc/arc_util.h" | 113 #include "chrome/browser/chromeos/arc/arc_util.h" |
114 #include "chrome/browser/chromeos/printing/printers_manager.h" | 114 #include "chrome/browser/chromeos/printing/printers_manager.h" |
115 #include "chrome/browser/chromeos/printing/printers_manager_factory.h" | 115 #include "chrome/browser/chromeos/printing/printers_manager_factory.h" |
116 #include "chrome/browser/chromeos/printing/printers_sync_bridge.h" | 116 #include "chrome/browser/chromeos/printing/printers_sync_bridge.h" |
117 #include "chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
" | 117 #include "chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
" |
118 #include "chrome/browser/ui/app_list/arc/arc_package_syncable_service.h" | 118 #include "chrome/browser/ui/app_list/arc/arc_package_syncable_service.h" |
119 #include "components/sync_wifi/wifi_credential_syncable_service.h" | 119 #include "components/sync_wifi/wifi_credential_syncable_service.h" |
120 #include "components/sync_wifi/wifi_credential_syncable_service_factory.h" | 120 #include "components/sync_wifi/wifi_credential_syncable_service_factory.h" |
121 #endif | 121 #endif // defined(OS_CHROMEOS) |
122 | 122 |
123 using content::BrowserThread; | 123 using content::BrowserThread; |
124 #if BUILDFLAG(ENABLE_EXTENSIONS) | 124 #if BUILDFLAG(ENABLE_EXTENSIONS) |
125 using browser_sync::ExtensionDataTypeController; | 125 using browser_sync::ExtensionDataTypeController; |
126 using browser_sync::ExtensionSettingDataTypeController; | 126 using browser_sync::ExtensionSettingDataTypeController; |
127 #endif | 127 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
128 using browser_sync::SearchEngineDataTypeController; | 128 using browser_sync::SearchEngineDataTypeController; |
129 using syncer::AsyncDirectoryTypeController; | 129 using syncer::AsyncDirectoryTypeController; |
130 | 130 |
131 namespace browser_sync { | 131 namespace browser_sync { |
132 | 132 |
133 namespace { | 133 namespace { |
134 #if defined(OS_WIN) | 134 #if defined(OS_WIN) |
135 const base::FilePath::CharType kLoopbackServerBackendFilename[] = | 135 const base::FilePath::CharType kLoopbackServerBackendFilename[] = |
136 FILE_PATH_LITERAL("profile.pb"); | 136 FILE_PATH_LITERAL("profile.pb"); |
137 #endif | 137 #endif // defined(OS_WIN) |
138 } // namespace | 138 } // namespace |
139 | 139 |
140 // Chrome implementation of SyncSessionsClient. Needs to be in a separate class | 140 // Chrome implementation of SyncSessionsClient. Needs to be in a separate class |
141 // due to possible multiple inheritance issues, wherein ChromeSyncClient might | 141 // due to possible multiple inheritance issues, wherein ChromeSyncClient might |
142 // inherit from other interfaces with same methods. | 142 // inherit from other interfaces with same methods. |
143 class SyncSessionsClientImpl : public sync_sessions::SyncSessionsClient { | 143 class SyncSessionsClientImpl : public sync_sessions::SyncSessionsClient { |
144 public: | 144 public: |
145 explicit SyncSessionsClientImpl(Profile* profile) : profile_(profile) { | 145 explicit SyncSessionsClientImpl(Profile* profile) : profile_(profile) { |
146 window_delegates_getter_.reset( | 146 window_delegates_getter_.reset( |
147 #if defined(OS_ANDROID) | 147 #if defined(OS_ANDROID) |
148 // Android doesn't have multi-profile support, so no need to pass the | 148 // Android doesn't have multi-profile support, so no need to pass the |
149 // profile in. | 149 // profile in. |
150 new SyncedWindowDelegatesGetterAndroid()); | 150 new SyncedWindowDelegatesGetterAndroid()); |
151 #else | 151 #else // defined(OS_ANDROID) |
152 new browser_sync::BrowserSyncedWindowDelegatesGetter(profile)); | 152 new browser_sync::BrowserSyncedWindowDelegatesGetter(profile)); |
153 #endif | 153 #endif // defined(OS_ANDROID) |
154 } | 154 } |
155 ~SyncSessionsClientImpl() override {} | 155 ~SyncSessionsClientImpl() override {} |
156 | 156 |
157 // SyncSessionsClient implementation. | 157 // SyncSessionsClient implementation. |
158 bookmarks::BookmarkModel* GetBookmarkModel() override { | 158 bookmarks::BookmarkModel* GetBookmarkModel() override { |
159 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 159 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
160 return BookmarkModelFactory::GetForBrowserContext(profile_); | 160 return BookmarkModelFactory::GetForBrowserContext(profile_); |
161 } | 161 } |
162 favicon::FaviconService* GetFaviconService() override { | 162 favicon::FaviconService* GetFaviconService() override { |
163 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 163 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 case syncer::SEARCH_ENGINES: | 389 case syncer::SEARCH_ENGINES: |
390 return TemplateURLServiceFactory::GetForProfile(profile_)->AsWeakPtr(); | 390 return TemplateURLServiceFactory::GetForProfile(profile_)->AsWeakPtr(); |
391 #if BUILDFLAG(ENABLE_EXTENSIONS) | 391 #if BUILDFLAG(ENABLE_EXTENSIONS) |
392 case syncer::APPS: | 392 case syncer::APPS: |
393 case syncer::EXTENSIONS: | 393 case syncer::EXTENSIONS: |
394 return ExtensionSyncService::Get(profile_)->AsWeakPtr(); | 394 return ExtensionSyncService::Get(profile_)->AsWeakPtr(); |
395 case syncer::APP_SETTINGS: | 395 case syncer::APP_SETTINGS: |
396 case syncer::EXTENSION_SETTINGS: | 396 case syncer::EXTENSION_SETTINGS: |
397 return extensions::settings_sync_util::GetSyncableService(profile_, type) | 397 return extensions::settings_sync_util::GetSyncableService(profile_, type) |
398 ->AsWeakPtr(); | 398 ->AsWeakPtr(); |
399 #endif | 399 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
400 #if BUILDFLAG(ENABLE_APP_LIST) | 400 #if BUILDFLAG(ENABLE_APP_LIST) |
401 case syncer::APP_LIST: | 401 case syncer::APP_LIST: |
402 return app_list::AppListSyncableServiceFactory::GetForProfile(profile_)-> | 402 return app_list::AppListSyncableServiceFactory::GetForProfile(profile_)-> |
403 AsWeakPtr(); | 403 AsWeakPtr(); |
404 #endif | 404 #endif // BUILDFLAG(ENABLE_APP_LIST) |
405 #if !defined(OS_ANDROID) | 405 #if !defined(OS_ANDROID) |
406 case syncer::THEMES: | 406 case syncer::THEMES: |
407 return ThemeServiceFactory::GetForProfile(profile_)-> | 407 return ThemeServiceFactory::GetForProfile(profile_)-> |
408 GetThemeSyncableService()->AsWeakPtr(); | 408 GetThemeSyncableService()->AsWeakPtr(); |
409 #endif | 409 #endif // !defined(OS_ANDROID) |
410 case syncer::HISTORY_DELETE_DIRECTIVES: { | 410 case syncer::HISTORY_DELETE_DIRECTIVES: { |
411 history::HistoryService* history = GetHistoryService(); | 411 history::HistoryService* history = GetHistoryService(); |
412 return history ? history->AsWeakPtr() | 412 return history ? history->AsWeakPtr() |
413 : base::WeakPtr<history::HistoryService>(); | 413 : base::WeakPtr<history::HistoryService>(); |
414 } | 414 } |
415 case syncer::TYPED_URLS: { | 415 case syncer::TYPED_URLS: { |
416 // We request history service with explicit access here because this | 416 // We request history service with explicit access here because this |
417 // codepath is executed on backend thread while HistoryServiceFactory | 417 // codepath is executed on backend thread while HistoryServiceFactory |
418 // checks preference value in implicit mode and PrefService expectes calls | 418 // checks preference value in implicit mode and PrefService expectes calls |
419 // only from UI thread. | 419 // only from UI thread. |
420 history::HistoryService* history = HistoryServiceFactory::GetForProfile( | 420 history::HistoryService* history = HistoryServiceFactory::GetForProfile( |
421 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 421 profile_, ServiceAccessType::EXPLICIT_ACCESS); |
422 if (!history) | 422 if (!history) |
423 return base::WeakPtr<history::TypedUrlSyncableService>(); | 423 return base::WeakPtr<history::TypedUrlSyncableService>(); |
424 return history->GetTypedUrlSyncableService()->AsWeakPtr(); | 424 return history->GetTypedUrlSyncableService()->AsWeakPtr(); |
425 } | 425 } |
426 #if BUILDFLAG(ENABLE_SPELLCHECK) | 426 #if BUILDFLAG(ENABLE_SPELLCHECK) |
427 case syncer::DICTIONARY: | 427 case syncer::DICTIONARY: |
428 return SpellcheckServiceFactory::GetForContext(profile_)-> | 428 return SpellcheckServiceFactory::GetForContext(profile_)-> |
429 GetCustomDictionary()->AsWeakPtr(); | 429 GetCustomDictionary()->AsWeakPtr(); |
430 #endif | 430 #endif // BUILDFLAG(ENABLE_SPELLCHECK) |
431 case syncer::FAVICON_IMAGES: | 431 case syncer::FAVICON_IMAGES: |
432 case syncer::FAVICON_TRACKING: { | 432 case syncer::FAVICON_TRACKING: { |
433 sync_sessions::FaviconCache* favicons = | 433 sync_sessions::FaviconCache* favicons = |
434 ProfileSyncServiceFactory::GetForProfile(profile_)->GetFaviconCache(); | 434 ProfileSyncServiceFactory::GetForProfile(profile_)->GetFaviconCache(); |
435 return favicons ? favicons->AsWeakPtr() | 435 return favicons ? favicons->AsWeakPtr() |
436 : base::WeakPtr<syncer::SyncableService>(); | 436 : base::WeakPtr<syncer::SyncableService>(); |
437 } | 437 } |
438 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 438 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
439 case syncer::SUPERVISED_USER_SETTINGS: | 439 case syncer::SUPERVISED_USER_SETTINGS: |
440 return SupervisedUserSettingsServiceFactory::GetForProfile(profile_)-> | 440 return SupervisedUserSettingsServiceFactory::GetForProfile(profile_)-> |
441 AsWeakPtr(); | 441 AsWeakPtr(); |
442 #if !defined(OS_ANDROID) | 442 #if !defined(OS_ANDROID) |
443 case syncer::SUPERVISED_USERS: | 443 case syncer::SUPERVISED_USERS: |
444 return SupervisedUserSyncServiceFactory::GetForProfile(profile_)-> | 444 return SupervisedUserSyncServiceFactory::GetForProfile(profile_)-> |
445 AsWeakPtr(); | 445 AsWeakPtr(); |
446 case syncer::SUPERVISED_USER_SHARED_SETTINGS: | 446 case syncer::SUPERVISED_USER_SHARED_SETTINGS: |
447 return SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( | 447 return SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( |
448 profile_)->AsWeakPtr(); | 448 profile_)->AsWeakPtr(); |
449 #endif | 449 #endif // !defined(OS_ANDROID) |
450 case syncer::SUPERVISED_USER_WHITELISTS: | 450 case syncer::SUPERVISED_USER_WHITELISTS: |
451 return SupervisedUserServiceFactory::GetForProfile(profile_) | 451 return SupervisedUserServiceFactory::GetForProfile(profile_) |
452 ->GetWhitelistService() | 452 ->GetWhitelistService() |
453 ->AsWeakPtr(); | 453 ->AsWeakPtr(); |
454 #endif | 454 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) |
455 case syncer::ARTICLES: { | 455 case syncer::ARTICLES: { |
456 dom_distiller::DomDistillerService* service = | 456 dom_distiller::DomDistillerService* service = |
457 dom_distiller::DomDistillerServiceFactory::GetForBrowserContext( | 457 dom_distiller::DomDistillerServiceFactory::GetForBrowserContext( |
458 profile_); | 458 profile_); |
459 if (service) | 459 if (service) |
460 return service->GetSyncableService()->AsWeakPtr(); | 460 return service->GetSyncableService()->AsWeakPtr(); |
461 return base::WeakPtr<syncer::SyncableService>(); | 461 return base::WeakPtr<syncer::SyncableService>(); |
462 } | 462 } |
463 case syncer::SESSIONS: { | 463 case syncer::SESSIONS: { |
464 return ProfileSyncServiceFactory::GetForProfile(profile_)-> | 464 return ProfileSyncServiceFactory::GetForProfile(profile_)-> |
465 GetSessionsSyncableService()->AsWeakPtr(); | 465 GetSessionsSyncableService()->AsWeakPtr(); |
466 } | 466 } |
467 case syncer::PASSWORDS: { | 467 case syncer::PASSWORDS: { |
468 return password_store_.get() | 468 return password_store_.get() |
469 ? password_store_->GetPasswordSyncableService() | 469 ? password_store_->GetPasswordSyncableService() |
470 : base::WeakPtr<syncer::SyncableService>(); | 470 : base::WeakPtr<syncer::SyncableService>(); |
471 } | 471 } |
472 #if defined(OS_CHROMEOS) | 472 #if defined(OS_CHROMEOS) |
473 case syncer::WIFI_CREDENTIALS: | 473 case syncer::WIFI_CREDENTIALS: |
474 return sync_wifi::WifiCredentialSyncableServiceFactory:: | 474 return sync_wifi::WifiCredentialSyncableServiceFactory:: |
475 GetForBrowserContext(profile_) | 475 GetForBrowserContext(profile_) |
476 ->AsWeakPtr(); | 476 ->AsWeakPtr(); |
477 case syncer::ARC_PACKAGE: | 477 case syncer::ARC_PACKAGE: |
478 return arc::ArcPackageSyncableService::Get(profile_)->AsWeakPtr(); | 478 return arc::ArcPackageSyncableService::Get(profile_)->AsWeakPtr(); |
479 #endif | 479 #endif // defined(OS_CHROMEOS) |
480 default: | 480 default: |
481 // The following datatypes still need to be transitioned to the | 481 // The following datatypes still need to be transitioned to the |
482 // syncer::SyncableService API: | 482 // syncer::SyncableService API: |
483 // Bookmarks | 483 // Bookmarks |
484 NOTREACHED(); | 484 NOTREACHED(); |
485 return base::WeakPtr<syncer::SyncableService>(); | 485 return base::WeakPtr<syncer::SyncableService>(); |
486 } | 486 } |
487 } | 487 } |
488 | 488 |
489 base::WeakPtr<syncer::ModelTypeSyncBridge> | 489 base::WeakPtr<syncer::ModelTypeSyncBridge> |
490 ChromeSyncClient::GetSyncBridgeForModelType(syncer::ModelType type) { | 490 ChromeSyncClient::GetSyncBridgeForModelType(syncer::ModelType type) { |
491 switch (type) { | 491 switch (type) { |
492 case syncer::DEVICE_INFO: | 492 case syncer::DEVICE_INFO: |
493 return ProfileSyncServiceFactory::GetForProfile(profile_) | 493 return ProfileSyncServiceFactory::GetForProfile(profile_) |
494 ->GetDeviceInfoSyncBridge() | 494 ->GetDeviceInfoSyncBridge() |
495 ->AsWeakPtr(); | 495 ->AsWeakPtr(); |
496 case syncer::READING_LIST: | 496 case syncer::READING_LIST: |
497 // Reading List is only supported on iOS at the moment. | 497 // Reading List is only supported on iOS at the moment. |
498 NOTREACHED(); | 498 NOTREACHED(); |
499 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); | 499 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); |
500 case syncer::AUTOFILL: | 500 case syncer::AUTOFILL: |
501 return autofill::AutocompleteSyncBridge::FromWebDataService( | 501 return autofill::AutocompleteSyncBridge::FromWebDataService( |
502 web_data_service_.get()); | 502 web_data_service_.get()); |
503 #if defined(OS_CHROMEOS) | 503 #if defined(OS_CHROMEOS) |
504 case syncer::PRINTERS: | 504 case syncer::PRINTERS: |
505 return chromeos::PrintersManagerFactory::GetForBrowserContext(profile_) | 505 return chromeos::PrintersManagerFactory::GetForBrowserContext(profile_) |
506 ->GetSyncBridge() | 506 ->GetSyncBridge() |
507 ->AsWeakPtr(); | 507 ->AsWeakPtr(); |
508 #endif | 508 #endif // defined(OS_CHROMEOS) |
509 default: | 509 default: |
510 NOTREACHED(); | 510 NOTREACHED(); |
511 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); | 511 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); |
512 } | 512 } |
513 } | 513 } |
514 | 514 |
515 scoped_refptr<syncer::ModelSafeWorker> | 515 scoped_refptr<syncer::ModelSafeWorker> |
516 ChromeSyncClient::CreateModelWorkerForGroup(syncer::ModelSafeGroup group) { | 516 ChromeSyncClient::CreateModelWorkerForGroup(syncer::ModelSafeGroup group) { |
517 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 517 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
518 switch (group) { | 518 switch (group) { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
595 syncer::APPS, error_callback, this, profile_)); | 595 syncer::APPS, error_callback, this, profile_)); |
596 } | 596 } |
597 | 597 |
598 // Extension sync is enabled by default. Register unless explicitly | 598 // Extension sync is enabled by default. Register unless explicitly |
599 // disabled. | 599 // disabled. |
600 if (!disabled_types.Has(syncer::EXTENSIONS)) { | 600 if (!disabled_types.Has(syncer::EXTENSIONS)) { |
601 sync_service->RegisterDataTypeController( | 601 sync_service->RegisterDataTypeController( |
602 base::MakeUnique<ExtensionDataTypeController>( | 602 base::MakeUnique<ExtensionDataTypeController>( |
603 syncer::EXTENSIONS, error_callback, this, profile_)); | 603 syncer::EXTENSIONS, error_callback, this, profile_)); |
604 } | 604 } |
605 #endif | 605 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
606 | 606 |
607 #if !defined(OS_ANDROID) | 607 #if !defined(OS_ANDROID) |
608 // Theme sync is enabled by default. Register unless explicitly disabled. | 608 // Theme sync is enabled by default. Register unless explicitly disabled. |
609 if (!disabled_types.Has(syncer::THEMES)) { | 609 if (!disabled_types.Has(syncer::THEMES)) { |
610 sync_service->RegisterDataTypeController( | 610 sync_service->RegisterDataTypeController( |
611 base::MakeUnique<ThemeDataTypeController>(error_callback, this, | 611 base::MakeUnique<ThemeDataTypeController>(error_callback, this, |
612 profile_)); | 612 profile_)); |
613 } | 613 } |
614 #endif | 614 #endif // !defined(OS_ANDROID) |
615 | 615 |
616 // Search Engine sync is enabled by default. Register unless explicitly | 616 // Search Engine sync is enabled by default. Register unless explicitly |
617 // disabled. | 617 // disabled. |
618 if (!disabled_types.Has(syncer::SEARCH_ENGINES)) { | 618 if (!disabled_types.Has(syncer::SEARCH_ENGINES)) { |
619 sync_service->RegisterDataTypeController( | 619 sync_service->RegisterDataTypeController( |
620 base::MakeUnique<SearchEngineDataTypeController>( | 620 base::MakeUnique<SearchEngineDataTypeController>( |
621 error_callback, this, | 621 error_callback, this, |
622 TemplateURLServiceFactory::GetForProfile(profile_))); | 622 TemplateURLServiceFactory::GetForProfile(profile_))); |
623 } | 623 } |
624 | 624 |
625 #if BUILDFLAG(ENABLE_EXTENSIONS) | 625 #if BUILDFLAG(ENABLE_EXTENSIONS) |
626 // Extension setting sync is enabled by default. Register unless explicitly | 626 // Extension setting sync is enabled by default. Register unless explicitly |
627 // disabled. | 627 // disabled. |
628 if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { | 628 if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { |
629 sync_service->RegisterDataTypeController( | 629 sync_service->RegisterDataTypeController( |
630 base::MakeUnique<ExtensionSettingDataTypeController>( | 630 base::MakeUnique<ExtensionSettingDataTypeController>( |
631 syncer::EXTENSION_SETTINGS, error_callback, this, profile_)); | 631 syncer::EXTENSION_SETTINGS, error_callback, this, profile_)); |
632 } | 632 } |
633 | 633 |
634 // App setting sync is enabled by default. Register unless explicitly | 634 // App setting sync is enabled by default. Register unless explicitly |
635 // disabled. | 635 // disabled. |
636 if (!disabled_types.Has(syncer::APP_SETTINGS)) { | 636 if (!disabled_types.Has(syncer::APP_SETTINGS)) { |
637 sync_service->RegisterDataTypeController( | 637 sync_service->RegisterDataTypeController( |
638 base::MakeUnique<ExtensionSettingDataTypeController>( | 638 base::MakeUnique<ExtensionSettingDataTypeController>( |
639 syncer::APP_SETTINGS, error_callback, this, profile_)); | 639 syncer::APP_SETTINGS, error_callback, this, profile_)); |
640 } | 640 } |
641 #endif | 641 #endif // BUILDFLAG(ENABLE_EXTENSIONS) |
642 | 642 |
643 #if BUILDFLAG(ENABLE_APP_LIST) | 643 #if BUILDFLAG(ENABLE_APP_LIST) |
644 if (app_list::switches::IsAppListSyncEnabled()) { | 644 if (app_list::switches::IsAppListSyncEnabled()) { |
645 sync_service->RegisterDataTypeController( | 645 sync_service->RegisterDataTypeController( |
646 base::MakeUnique<AsyncDirectoryTypeController>( | 646 base::MakeUnique<AsyncDirectoryTypeController>( |
647 syncer::APP_LIST, error_callback, this, syncer::GROUP_UI, | 647 syncer::APP_LIST, error_callback, this, syncer::GROUP_UI, |
648 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); | 648 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); |
649 } | 649 } |
650 #endif | 650 #endif // BUILDFLAG(ENABLE_APP_LIST) |
651 | 651 |
652 #if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) | 652 #if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) |
653 // Dictionary sync is enabled by default. | 653 // Dictionary sync is enabled by default. |
654 if (!disabled_types.Has(syncer::DICTIONARY)) { | 654 if (!disabled_types.Has(syncer::DICTIONARY)) { |
655 sync_service->RegisterDataTypeController( | 655 sync_service->RegisterDataTypeController( |
656 base::MakeUnique<AsyncDirectoryTypeController>( | 656 base::MakeUnique<AsyncDirectoryTypeController>( |
657 syncer::DICTIONARY, error_callback, this, syncer::GROUP_UI, | 657 syncer::DICTIONARY, error_callback, this, syncer::GROUP_UI, |
658 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); | 658 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); |
659 } | 659 } |
660 #endif | 660 #endif // defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) |
661 | 661 |
662 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 662 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
663 sync_service->RegisterDataTypeController( | 663 sync_service->RegisterDataTypeController( |
664 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 664 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
665 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); | 665 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); |
666 sync_service->RegisterDataTypeController( | 666 sync_service->RegisterDataTypeController( |
667 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 667 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
668 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); | 668 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); |
669 sync_service->RegisterDataTypeController( | 669 sync_service->RegisterDataTypeController( |
670 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 670 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
671 syncer::SUPERVISED_USERS, error_callback, this, profile_)); | 671 syncer::SUPERVISED_USERS, error_callback, this, profile_)); |
672 sync_service->RegisterDataTypeController( | 672 sync_service->RegisterDataTypeController( |
673 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 673 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
674 syncer::SUPERVISED_USER_SHARED_SETTINGS, error_callback, this, | 674 syncer::SUPERVISED_USER_SHARED_SETTINGS, error_callback, this, |
675 profile_)); | 675 profile_)); |
676 #endif | 676 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) |
677 | 677 |
678 #if defined(OS_CHROMEOS) | 678 #if defined(OS_CHROMEOS) |
679 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 679 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
680 switches::kEnableWifiCredentialSync) && | 680 switches::kEnableWifiCredentialSync) && |
681 !disabled_types.Has(syncer::WIFI_CREDENTIALS)) { | 681 !disabled_types.Has(syncer::WIFI_CREDENTIALS)) { |
682 sync_service->RegisterDataTypeController( | 682 sync_service->RegisterDataTypeController( |
683 base::MakeUnique<AsyncDirectoryTypeController>( | 683 base::MakeUnique<AsyncDirectoryTypeController>( |
684 syncer::WIFI_CREDENTIALS, error_callback, this, syncer::GROUP_UI, | 684 syncer::WIFI_CREDENTIALS, error_callback, this, syncer::GROUP_UI, |
685 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); | 685 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); |
686 } | 686 } |
687 if (arc::IsArcAllowedForProfile(profile_)) { | 687 if (arc::IsArcAllowedForProfile(profile_)) { |
688 sync_service->RegisterDataTypeController( | 688 sync_service->RegisterDataTypeController( |
689 base::MakeUnique<ArcPackageSyncDataTypeController>( | 689 base::MakeUnique<ArcPackageSyncDataTypeController>( |
690 syncer::ARC_PACKAGE, error_callback, this, profile_)); | 690 syncer::ARC_PACKAGE, error_callback, this, profile_)); |
691 } | 691 } |
692 #endif | 692 #endif // defined(OS_CHROMEOS) |
693 } | 693 } |
694 | 694 |
695 void ChromeSyncClient::RegisterAndroidDataTypes( | 695 void ChromeSyncClient::RegisterAndroidDataTypes( |
696 syncer::SyncService* sync_service, | 696 syncer::SyncService* sync_service, |
697 syncer::ModelTypeSet disabled_types, | 697 syncer::ModelTypeSet disabled_types, |
698 syncer::ModelTypeSet enabled_types) { | 698 syncer::ModelTypeSet enabled_types) { |
699 base::Closure error_callback = | 699 base::Closure error_callback = |
700 base::Bind(&syncer::ReportUnrecoverableError, chrome::GetChannel()); | 700 base::Bind(&syncer::ReportUnrecoverableError, chrome::GetChannel()); |
701 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) | 701 #if BUILDFLAG(ENABLE_SUPERVISED_USERS) |
702 sync_service->RegisterDataTypeController( | 702 sync_service->RegisterDataTypeController( |
703 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 703 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
704 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); | 704 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); |
705 sync_service->RegisterDataTypeController( | 705 sync_service->RegisterDataTypeController( |
706 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 706 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
707 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); | 707 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); |
708 #endif | 708 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) |
709 } | 709 } |
710 | 710 |
711 } // namespace browser_sync | 711 } // namespace browser_sync |
OLD | NEW |