signin_manager_factory.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
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 "chrome/browser/prefs/pref_service.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/common/pref_names.h"
12
13SigninManagerFactory::SigninManagerFactory()
14    : ProfileKeyedServiceFactory("SigninManager",
15                                 ProfileDependencyManager::GetInstance()) {
16  DependsOn(TokenServiceFactory::GetInstance());
17}
18
19SigninManagerFactory::~SigninManagerFactory() {}
20
21// static
22SigninManager* SigninManagerFactory::GetForProfile(Profile* profile) {
23  return static_cast<SigninManager*>(
24      GetInstance()->GetServiceForProfile(profile, true));
25}
26
27// static
28SigninManagerFactory* SigninManagerFactory::GetInstance() {
29  return Singleton<SigninManagerFactory>::get();
30}
31
32void SigninManagerFactory::RegisterUserPrefs(PrefService* user_prefs) {
33  user_prefs->RegisterStringPref(prefs::kGoogleServicesLastUsername, "",
34                                 PrefService::UNSYNCABLE_PREF);
35  user_prefs->RegisterStringPref(prefs::kGoogleServicesUsername, "",
36                                 PrefService::UNSYNCABLE_PREF);
37  user_prefs->RegisterBooleanPref(prefs::kAutologinEnabled, true,
38                                  PrefService::UNSYNCABLE_PREF);
39  user_prefs->RegisterBooleanPref(prefs::kReverseAutologinEnabled, true,
40                                  PrefService::UNSYNCABLE_PREF);
41  user_prefs->RegisterListPref(prefs::kReverseAutologinRejectedEmailList,
42                               new ListValue, PrefService::UNSYNCABLE_PREF);
43  user_prefs->RegisterBooleanPref(prefs::kIsGooglePlusUser, false,
44                                 PrefService::UNSYNCABLE_PREF);
45}
46
47// static
48void SigninManagerFactory::RegisterPrefs(PrefService* local_state) {
49  local_state->RegisterStringPref(prefs::kGoogleServicesUsernamePattern, "",
50                                  PrefService::UNSYNCABLE_PREF);
51}
52
53ProfileKeyedService* SigninManagerFactory::BuildServiceInstanceFor(
54    Profile* profile) const {
55  SigninManager* service = new SigninManager();
56  service->Initialize(profile);
57  return service;
58}
59