signin_manager_factory.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/signin/signin_manager_factory.h" 6 7#include "base/prefs/pref_registry_simple.h" 8#include "chrome/browser/profiles/profile_dependency_manager.h" 9#include "chrome/browser/signin/signin_manager.h" 10#include "chrome/browser/signin/token_service_factory.h" 11#include "chrome/browser/ui/global_error/global_error_service_factory.h" 12#include "chrome/common/pref_names.h" 13#include "components/user_prefs/pref_registry_syncable.h" 14 15SigninManagerFactory::SigninManagerFactory() 16 : ProfileKeyedServiceFactory("SigninManager", 17 ProfileDependencyManager::GetInstance()) { 18 DependsOn(TokenServiceFactory::GetInstance()); 19 DependsOn(GlobalErrorServiceFactory::GetInstance()); 20} 21 22SigninManagerFactory::~SigninManagerFactory() {} 23 24// static 25SigninManager* SigninManagerFactory::GetForProfile(Profile* profile) { 26 return static_cast<SigninManager*>( 27 GetInstance()->GetServiceForProfile(profile, true)); 28} 29 30// static 31SigninManager* SigninManagerFactory::GetForProfileIfExists(Profile* profile) { 32 return static_cast<SigninManager*>( 33 GetInstance()->GetServiceForProfile(profile, false)); 34} 35 36// static 37SigninManagerFactory* SigninManagerFactory::GetInstance() { 38 return Singleton<SigninManagerFactory>::get(); 39} 40 41void SigninManagerFactory::RegisterUserPrefs(PrefRegistrySyncable* registry) { 42 registry->RegisterStringPref(prefs::kGoogleServicesLastUsername, "", 43 PrefRegistrySyncable::UNSYNCABLE_PREF); 44 registry->RegisterStringPref(prefs::kGoogleServicesUsername, "", 45 PrefRegistrySyncable::UNSYNCABLE_PREF); 46 registry->RegisterBooleanPref(prefs::kAutologinEnabled, true, 47 PrefRegistrySyncable::UNSYNCABLE_PREF); 48 registry->RegisterBooleanPref(prefs::kReverseAutologinEnabled, true, 49 PrefRegistrySyncable::UNSYNCABLE_PREF); 50 registry->RegisterListPref(prefs::kReverseAutologinRejectedEmailList, 51 new ListValue, 52 PrefRegistrySyncable::UNSYNCABLE_PREF); 53} 54 55// static 56void SigninManagerFactory::RegisterPrefs(PrefRegistrySimple* registry) { 57 registry->RegisterStringPref(prefs::kGoogleServicesUsernamePattern, ""); 58} 59 60ProfileKeyedService* SigninManagerFactory::BuildServiceInstanceFor( 61 Profile* profile) const { 62 SigninManager* service = new SigninManager(); 63 service->Initialize(profile); 64 return service; 65} 66