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

Side by Side Diff: chrome/browser/sync/chrome_sync_client.cc

Issue 2847803008: ProfileSyncService: Handle null SupervisedUserService (Closed)
Patch Set: Merge remote-tracking branch 'refs/remotes/origin/master' into dep Created 3 years, 7 months 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 unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/supervised_user/supervised_user_service_factory.cc ('k') | chrome/browser/sync/profile_sync_service_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698