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 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 // !defined(OS_ANDROID) | 449 #endif // !defined(OS_ANDROID) |
450 case syncer::SUPERVISED_USER_WHITELISTS: | 450 case syncer::SUPERVISED_USER_WHITELISTS: { |
451 return SupervisedUserServiceFactory::GetForProfile(profile_) | 451 // Unlike other types here, ProfileSyncServiceFactory does not declare a |
452 ->GetWhitelistService() | 452 // DependsOn the SupervisedUserServiceFactory (in order to avoid circular |
453 ->AsWeakPtr(); | 453 // dependency), which means we cannot assume it is still alive. |
| 454 SupervisedUserService* supervised_user_service = |
| 455 SupervisedUserServiceFactory::GetForProfileIfExists(profile_); |
| 456 if (supervised_user_service) |
| 457 return supervised_user_service->GetWhitelistService()->AsWeakPtr(); |
| 458 return base::WeakPtr<syncer::SyncableService>(); |
| 459 } |
454 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) | 460 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) |
455 case syncer::ARTICLES: { | 461 case syncer::ARTICLES: { |
456 dom_distiller::DomDistillerService* service = | 462 dom_distiller::DomDistillerService* service = |
457 dom_distiller::DomDistillerServiceFactory::GetForBrowserContext( | 463 dom_distiller::DomDistillerServiceFactory::GetForBrowserContext( |
458 profile_); | 464 profile_); |
459 if (service) | 465 if (service) |
460 return service->GetSyncableService()->AsWeakPtr(); | 466 return service->GetSyncableService()->AsWeakPtr(); |
461 return base::WeakPtr<syncer::SyncableService>(); | 467 return base::WeakPtr<syncer::SyncableService>(); |
462 } | 468 } |
463 case syncer::SESSIONS: { | 469 case syncer::SESSIONS: { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 case syncer::AUTOFILL: | 506 case syncer::AUTOFILL: |
501 return autofill::AutocompleteSyncBridge::FromWebDataService( | 507 return autofill::AutocompleteSyncBridge::FromWebDataService( |
502 web_data_service_.get()); | 508 web_data_service_.get()); |
503 #if defined(OS_CHROMEOS) | 509 #if defined(OS_CHROMEOS) |
504 case syncer::PRINTERS: | 510 case syncer::PRINTERS: |
505 return chromeos::PrintersManagerFactory::GetForBrowserContext(profile_) | 511 return chromeos::PrintersManagerFactory::GetForBrowserContext(profile_) |
506 ->GetSyncBridge() | 512 ->GetSyncBridge() |
507 ->AsWeakPtr(); | 513 ->AsWeakPtr(); |
508 #endif // defined(OS_CHROMEOS) | 514 #endif // defined(OS_CHROMEOS) |
509 case syncer::TYPED_URLS: | 515 case syncer::TYPED_URLS: |
510 // TODO(gangwu):implement TypedURLSyncBridge and return real | 516 // TODO(gangwu): Implement TypedURLSyncBridge and return real |
511 // TypedURLSyncBridge here. | 517 // TypedURLSyncBridge here. |
512 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); | 518 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); |
513 default: | 519 default: |
514 NOTREACHED(); | 520 NOTREACHED(); |
515 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); | 521 return base::WeakPtr<syncer::ModelTypeSyncBridge>(); |
516 } | 522 } |
517 } | 523 } |
518 | 524 |
519 scoped_refptr<syncer::ModelSafeWorker> | 525 scoped_refptr<syncer::ModelSafeWorker> |
520 ChromeSyncClient::CreateModelWorkerForGroup(syncer::ModelSafeGroup group) { | 526 ChromeSyncClient::CreateModelWorkerForGroup(syncer::ModelSafeGroup group) { |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 sync_service->RegisterDataTypeController( | 712 sync_service->RegisterDataTypeController( |
707 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 713 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
708 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); | 714 syncer::SUPERVISED_USER_SETTINGS, error_callback, this, profile_)); |
709 sync_service->RegisterDataTypeController( | 715 sync_service->RegisterDataTypeController( |
710 base::MakeUnique<SupervisedUserSyncDataTypeController>( | 716 base::MakeUnique<SupervisedUserSyncDataTypeController>( |
711 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); | 717 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); |
712 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) | 718 #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS) |
713 } | 719 } |
714 | 720 |
715 } // namespace browser_sync | 721 } // namespace browser_sync |
OLD | NEW |