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