| 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 <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 #include "components/wifi_sync/wifi_credential_syncable_service.h" | 108 #include "components/wifi_sync/wifi_credential_syncable_service.h" |
| 109 #include "components/wifi_sync/wifi_credential_syncable_service_factory.h" | 109 #include "components/wifi_sync/wifi_credential_syncable_service_factory.h" |
| 110 #endif | 110 #endif |
| 111 | 111 |
| 112 using content::BrowserThread; | 112 using content::BrowserThread; |
| 113 #if defined(ENABLE_EXTENSIONS) | 113 #if defined(ENABLE_EXTENSIONS) |
| 114 using browser_sync::ExtensionDataTypeController; | 114 using browser_sync::ExtensionDataTypeController; |
| 115 using browser_sync::ExtensionSettingDataTypeController; | 115 using browser_sync::ExtensionSettingDataTypeController; |
| 116 #endif | 116 #endif |
| 117 using browser_sync::SearchEngineDataTypeController; | 117 using browser_sync::SearchEngineDataTypeController; |
| 118 using sync_driver::UIDataTypeController; | 118 using syncer::UIDataTypeController; |
| 119 | 119 |
| 120 namespace browser_sync { | 120 namespace browser_sync { |
| 121 | 121 |
| 122 // Chrome implementation of SyncSessionsClient. Needs to be in a separate class | 122 // Chrome implementation of SyncSessionsClient. Needs to be in a separate class |
| 123 // due to possible multiple inheritance issues, wherein ChromeSyncClient might | 123 // due to possible multiple inheritance issues, wherein ChromeSyncClient might |
| 124 // inherit from other interfaces with same methods. | 124 // inherit from other interfaces with same methods. |
| 125 class SyncSessionsClientImpl : public sync_sessions::SyncSessionsClient { | 125 class SyncSessionsClientImpl : public sync_sessions::SyncSessionsClient { |
| 126 public: | 126 public: |
| 127 explicit SyncSessionsClientImpl(Profile* profile) : profile_(profile) { | 127 explicit SyncSessionsClientImpl(Profile* profile) : profile_(profile) { |
| 128 window_delegates_getter_.reset( | 128 window_delegates_getter_.reset( |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 void ChromeSyncClient::Initialize() { | 193 void ChromeSyncClient::Initialize() { |
| 194 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 194 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 195 | 195 |
| 196 web_data_service_ = WebDataServiceFactory::GetAutofillWebDataForProfile( | 196 web_data_service_ = WebDataServiceFactory::GetAutofillWebDataForProfile( |
| 197 profile_, ServiceAccessType::IMPLICIT_ACCESS); | 197 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 198 password_store_ = PasswordStoreFactory::GetForProfile( | 198 password_store_ = PasswordStoreFactory::GetForProfile( |
| 199 profile_, ServiceAccessType::IMPLICIT_ACCESS); | 199 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 200 | 200 |
| 201 // Component factory may already be set in tests. | 201 // Component factory may already be set in tests. |
| 202 if (!GetSyncApiComponentFactory()) { | 202 if (!GetSyncApiComponentFactory()) { |
| 203 const GURL sync_service_url = GetSyncServiceURL( | 203 const GURL sync_service_url = syncer::GetSyncServiceURL( |
| 204 *base::CommandLine::ForCurrentProcess(), chrome::GetChannel()); | 204 *base::CommandLine::ForCurrentProcess(), chrome::GetChannel()); |
| 205 ProfileOAuth2TokenService* token_service = | 205 ProfileOAuth2TokenService* token_service = |
| 206 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); | 206 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); |
| 207 net::URLRequestContextGetter* url_request_context_getter = | 207 net::URLRequestContextGetter* url_request_context_getter = |
| 208 profile_->GetRequestContext(); | 208 profile_->GetRequestContext(); |
| 209 | 209 |
| 210 component_factory_.reset(new ProfileSyncComponentsFactoryImpl( | 210 component_factory_.reset(new ProfileSyncComponentsFactoryImpl( |
| 211 this, chrome::GetChannel(), chrome::GetVersionString(), | 211 this, chrome::GetChannel(), chrome::GetVersionString(), |
| 212 ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET, | 212 ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET, |
| 213 *base::CommandLine::ForCurrentProcess(), | 213 *base::CommandLine::ForCurrentProcess(), |
| 214 prefs::kSavingBrowserHistoryDisabled, sync_service_url, | 214 prefs::kSavingBrowserHistoryDisabled, sync_service_url, |
| 215 content::BrowserThread::GetTaskRunnerForThread( | 215 content::BrowserThread::GetTaskRunnerForThread( |
| 216 content::BrowserThread::UI), | 216 content::BrowserThread::UI), |
| 217 content::BrowserThread::GetTaskRunnerForThread( | 217 content::BrowserThread::GetTaskRunnerForThread( |
| 218 content::BrowserThread::DB), | 218 content::BrowserThread::DB), |
| 219 token_service, url_request_context_getter, web_data_service_, | 219 token_service, url_request_context_getter, web_data_service_, |
| 220 password_store_)); | 220 password_store_)); |
| 221 } | 221 } |
| 222 } | 222 } |
| 223 | 223 |
| 224 sync_driver::SyncService* ChromeSyncClient::GetSyncService() { | 224 syncer::SyncService* ChromeSyncClient::GetSyncService() { |
| 225 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 225 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 226 return ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile_); | 226 return ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile_); |
| 227 } | 227 } |
| 228 | 228 |
| 229 PrefService* ChromeSyncClient::GetPrefService() { | 229 PrefService* ChromeSyncClient::GetPrefService() { |
| 230 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 230 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 231 return profile_->GetPrefs(); | 231 return profile_->GetPrefs(); |
| 232 } | 232 } |
| 233 | 233 |
| 234 bookmarks::BookmarkModel* ChromeSyncClient::GetBookmarkModel() { | 234 bookmarks::BookmarkModel* ChromeSyncClient::GetBookmarkModel() { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 252 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 252 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 253 return autofill::PersonalDataManagerFactory::GetForProfile(profile_); | 253 return autofill::PersonalDataManagerFactory::GetForProfile(profile_); |
| 254 } | 254 } |
| 255 | 255 |
| 256 base::Closure ChromeSyncClient::GetPasswordStateChangedCallback() { | 256 base::Closure ChromeSyncClient::GetPasswordStateChangedCallback() { |
| 257 return base::Bind( | 257 return base::Bind( |
| 258 &PasswordStoreFactory::OnPasswordsSyncedStatePotentiallyChanged, | 258 &PasswordStoreFactory::OnPasswordsSyncedStatePotentiallyChanged, |
| 259 base::Unretained(profile_)); | 259 base::Unretained(profile_)); |
| 260 } | 260 } |
| 261 | 261 |
| 262 sync_driver::SyncApiComponentFactory::RegisterDataTypesMethod | 262 syncer::SyncApiComponentFactory::RegisterDataTypesMethod |
| 263 ChromeSyncClient::GetRegisterPlatformTypesCallback() { | 263 ChromeSyncClient::GetRegisterPlatformTypesCallback() { |
| 264 return base::Bind( | 264 return base::Bind( |
| 265 #if BUILDFLAG(ANDROID_JAVA_UI) | 265 #if BUILDFLAG(ANDROID_JAVA_UI) |
| 266 &ChromeSyncClient::RegisterAndroidDataTypes, | 266 &ChromeSyncClient::RegisterAndroidDataTypes, |
| 267 #else | 267 #else |
| 268 &ChromeSyncClient::RegisterDesktopDataTypes, | 268 &ChromeSyncClient::RegisterDesktopDataTypes, |
| 269 #endif // BUILDFLAG(ANDROID_JAVA_UI) | 269 #endif // BUILDFLAG(ANDROID_JAVA_UI) |
| 270 weak_ptr_factory_.GetWeakPtr()); | 270 weak_ptr_factory_.GetWeakPtr()); |
| 271 } | 271 } |
| 272 | 272 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 #endif | 420 #endif |
| 421 default: | 421 default: |
| 422 // The following datatypes still need to be transitioned to the | 422 // The following datatypes still need to be transitioned to the |
| 423 // syncer::SyncableService API: | 423 // syncer::SyncableService API: |
| 424 // Bookmarks | 424 // Bookmarks |
| 425 NOTREACHED(); | 425 NOTREACHED(); |
| 426 return base::WeakPtr<syncer::SyncableService>(); | 426 return base::WeakPtr<syncer::SyncableService>(); |
| 427 } | 427 } |
| 428 } | 428 } |
| 429 | 429 |
| 430 base::WeakPtr<syncer_v2::ModelTypeService> | 430 base::WeakPtr<syncer::ModelTypeService> |
| 431 ChromeSyncClient::GetModelTypeServiceForType(syncer::ModelType type) { | 431 ChromeSyncClient::GetModelTypeServiceForType(syncer::ModelType type) { |
| 432 switch (type) { | 432 switch (type) { |
| 433 case syncer::DEVICE_INFO: | 433 case syncer::DEVICE_INFO: |
| 434 return ProfileSyncServiceFactory::GetForProfile(profile_) | 434 return ProfileSyncServiceFactory::GetForProfile(profile_) |
| 435 ->GetDeviceInfoService() | 435 ->GetDeviceInfoService() |
| 436 ->AsWeakPtr(); | 436 ->AsWeakPtr(); |
| 437 default: | 437 default: |
| 438 NOTREACHED(); | 438 NOTREACHED(); |
| 439 return base::WeakPtr<syncer_v2::ModelTypeService>(); | 439 return base::WeakPtr<syncer::ModelTypeService>(); |
| 440 } | 440 } |
| 441 } | 441 } |
| 442 | 442 |
| 443 scoped_refptr<syncer::ModelSafeWorker> | 443 scoped_refptr<syncer::ModelSafeWorker> |
| 444 ChromeSyncClient::CreateModelWorkerForGroup( | 444 ChromeSyncClient::CreateModelWorkerForGroup( |
| 445 syncer::ModelSafeGroup group, | 445 syncer::ModelSafeGroup group, |
| 446 syncer::WorkerLoopDestructionObserver* observer) { | 446 syncer::WorkerLoopDestructionObserver* observer) { |
| 447 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 447 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 448 switch (group) { | 448 switch (group) { |
| 449 case syncer::GROUP_DB: | 449 case syncer::GROUP_DB: |
| 450 return new BrowserThreadModelWorker( | 450 return new syncer::BrowserThreadModelWorker( |
| 451 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB), | 451 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB), |
| 452 syncer::GROUP_DB, observer); | 452 syncer::GROUP_DB, observer); |
| 453 case syncer::GROUP_FILE: | 453 case syncer::GROUP_FILE: |
| 454 return new BrowserThreadModelWorker( | 454 return new syncer::BrowserThreadModelWorker( |
| 455 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), | 455 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
| 456 syncer::GROUP_FILE, observer); | 456 syncer::GROUP_FILE, observer); |
| 457 case syncer::GROUP_UI: | 457 case syncer::GROUP_UI: |
| 458 return new UIModelWorker( | 458 return new syncer::UIModelWorker( |
| 459 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), observer); | 459 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), observer); |
| 460 case syncer::GROUP_PASSIVE: | 460 case syncer::GROUP_PASSIVE: |
| 461 return new syncer::PassiveModelWorker(observer); | 461 return new syncer::PassiveModelWorker(observer); |
| 462 case syncer::GROUP_HISTORY: { | 462 case syncer::GROUP_HISTORY: { |
| 463 history::HistoryService* history_service = GetHistoryService(); | 463 history::HistoryService* history_service = GetHistoryService(); |
| 464 if (!history_service) | 464 if (!history_service) |
| 465 return nullptr; | 465 return nullptr; |
| 466 return new HistoryModelWorker( | 466 return new HistoryModelWorker( |
| 467 history_service->AsWeakPtr(), | 467 history_service->AsWeakPtr(), |
| 468 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), observer); | 468 BrowserThread::GetTaskRunnerForThread(BrowserThread::UI), observer); |
| 469 } | 469 } |
| 470 case syncer::GROUP_PASSWORD: { | 470 case syncer::GROUP_PASSWORD: { |
| 471 if (!password_store_.get()) | 471 if (!password_store_.get()) |
| 472 return nullptr; | 472 return nullptr; |
| 473 return new PasswordModelWorker(password_store_, observer); | 473 return new PasswordModelWorker(password_store_, observer); |
| 474 } | 474 } |
| 475 default: | 475 default: |
| 476 return nullptr; | 476 return nullptr; |
| 477 } | 477 } |
| 478 } | 478 } |
| 479 | 479 |
| 480 sync_driver::SyncApiComponentFactory* | 480 syncer::SyncApiComponentFactory* |
| 481 ChromeSyncClient::GetSyncApiComponentFactory() { | 481 ChromeSyncClient::GetSyncApiComponentFactory() { |
| 482 return component_factory_.get(); | 482 return component_factory_.get(); |
| 483 } | 483 } |
| 484 | 484 |
| 485 void ChromeSyncClient::SetSyncApiComponentFactoryForTesting( | 485 void ChromeSyncClient::SetSyncApiComponentFactoryForTesting( |
| 486 std::unique_ptr<sync_driver::SyncApiComponentFactory> component_factory) { | 486 std::unique_ptr<syncer::SyncApiComponentFactory> component_factory) { |
| 487 component_factory_ = std::move(component_factory); | 487 component_factory_ = std::move(component_factory); |
| 488 } | 488 } |
| 489 | 489 |
| 490 // static | 490 // static |
| 491 void ChromeSyncClient::GetDeviceInfoTrackers( | 491 void ChromeSyncClient::GetDeviceInfoTrackers( |
| 492 std::vector<const sync_driver::DeviceInfoTracker*>* trackers) { | 492 std::vector<const syncer::DeviceInfoTracker*>* trackers) { |
| 493 DCHECK(trackers); | 493 DCHECK(trackers); |
| 494 ProfileManager* profile_manager = g_browser_process->profile_manager(); | 494 ProfileManager* profile_manager = g_browser_process->profile_manager(); |
| 495 std::vector<Profile*> profile_list = profile_manager->GetLoadedProfiles(); | 495 std::vector<Profile*> profile_list = profile_manager->GetLoadedProfiles(); |
| 496 for (Profile* profile : profile_list) { | 496 for (Profile* profile : profile_list) { |
| 497 const browser_sync::ProfileSyncService* profile_sync_service = | 497 const browser_sync::ProfileSyncService* profile_sync_service = |
| 498 ProfileSyncServiceFactory::GetForProfile(profile); | 498 ProfileSyncServiceFactory::GetForProfile(profile); |
| 499 if (profile_sync_service != nullptr) { | 499 if (profile_sync_service != nullptr) { |
| 500 const sync_driver::DeviceInfoTracker* tracker = | 500 const syncer::DeviceInfoTracker* tracker = |
| 501 profile_sync_service->GetDeviceInfoTracker(); | 501 profile_sync_service->GetDeviceInfoTracker(); |
| 502 if (tracker != nullptr) { | 502 if (tracker != nullptr) { |
| 503 // Even when sync is disabled and/or user is signed out, a tracker will | 503 // Even when sync is disabled and/or user is signed out, a tracker will |
| 504 // still be present. It will only be missing when the ProfileSyncService | 504 // still be present. It will only be missing when the ProfileSyncService |
| 505 // has not sufficiently initialized yet. | 505 // has not sufficiently initialized yet. |
| 506 trackers->push_back(tracker); | 506 trackers->push_back(tracker); |
| 507 } | 507 } |
| 508 } | 508 } |
| 509 } | 509 } |
| 510 } | 510 } |
| 511 | 511 |
| 512 void ChromeSyncClient::RegisterDesktopDataTypes( | 512 void ChromeSyncClient::RegisterDesktopDataTypes( |
| 513 sync_driver::SyncService* sync_service, | 513 syncer::SyncService* sync_service, |
| 514 syncer::ModelTypeSet disabled_types, | 514 syncer::ModelTypeSet disabled_types, |
| 515 syncer::ModelTypeSet enabled_types) { | 515 syncer::ModelTypeSet enabled_types) { |
| 516 base::Closure error_callback = | 516 base::Closure error_callback = |
| 517 base::Bind(&ChromeReportUnrecoverableError, chrome::GetChannel()); | 517 base::Bind(&syncer::ChromeReportUnrecoverableError, chrome::GetChannel()); |
| 518 | 518 |
| 519 #if defined(ENABLE_EXTENSIONS) | 519 #if defined(ENABLE_EXTENSIONS) |
| 520 // App sync is enabled by default. Register unless explicitly | 520 // App sync is enabled by default. Register unless explicitly |
| 521 // disabled. | 521 // disabled. |
| 522 if (!disabled_types.Has(syncer::APPS)) { | 522 if (!disabled_types.Has(syncer::APPS)) { |
| 523 sync_service->RegisterDataTypeController( | 523 sync_service->RegisterDataTypeController( |
| 524 base::MakeUnique<ExtensionDataTypeController>( | 524 base::MakeUnique<ExtensionDataTypeController>( |
| 525 syncer::APPS, error_callback, this, profile_)); | 525 syncer::APPS, error_callback, this, profile_)); |
| 526 } | 526 } |
| 527 | 527 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 612 error_callback, this)); | 612 error_callback, this)); |
| 613 } | 613 } |
| 614 // TODO(lgcheng): Add switch for this. | 614 // TODO(lgcheng): Add switch for this. |
| 615 sync_service->RegisterDataTypeController( | 615 sync_service->RegisterDataTypeController( |
| 616 base::MakeUnique<ArcPackageSyncDataTypeController>( | 616 base::MakeUnique<ArcPackageSyncDataTypeController>( |
| 617 syncer::ARC_PACKAGE, error_callback, this, profile_)); | 617 syncer::ARC_PACKAGE, error_callback, this, profile_)); |
| 618 #endif | 618 #endif |
| 619 } | 619 } |
| 620 | 620 |
| 621 void ChromeSyncClient::RegisterAndroidDataTypes( | 621 void ChromeSyncClient::RegisterAndroidDataTypes( |
| 622 sync_driver::SyncService* sync_service, | 622 syncer::SyncService* sync_service, |
| 623 syncer::ModelTypeSet disabled_types, | 623 syncer::ModelTypeSet disabled_types, |
| 624 syncer::ModelTypeSet enabled_types) { | 624 syncer::ModelTypeSet enabled_types) { |
| 625 base::Closure error_callback = | 625 base::Closure error_callback = |
| 626 base::Bind(&ChromeReportUnrecoverableError, chrome::GetChannel()); | 626 base::Bind(&syncer::ChromeReportUnrecoverableError, chrome::GetChannel()); |
| 627 #if defined(ENABLE_SUPERVISED_USERS) | 627 #if defined(ENABLE_SUPERVISED_USERS) |
| 628 sync_service->RegisterDataTypeController( | 628 sync_service->RegisterDataTypeController( |
| 629 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 629 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
| 630 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); | 630 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); |
| 631 sync_service->RegisterDataTypeController( | 631 sync_service->RegisterDataTypeController( |
| 632 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 632 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
| 633 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); | 633 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); |
| 634 #endif | 634 #endif |
| 635 } | 635 } |
| 636 | 636 |
| 637 } // namespace browser_sync | 637 } // namespace browser_sync |
| OLD | NEW |