• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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/chromeos/login/users/user_manager.h"
6 
7 #include "base/command_line.h"
8 #include "base/prefs/pref_registry_simple.h"
9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/browser_process_platform_part_chromeos.h"
11 #include "chrome/browser/chromeos/login/users/user_manager_impl.h"
12 #include "chrome/browser/chromeos/profiles/profile_helper.h"
13 #include "chrome/common/chrome_switches.h"
14 
15 namespace chromeos {
16 
17 // static
18 const char UserManager::kStubUser[] = "stub-user@example.com";
19 
20 // static
21 const char UserManager::kSignInUser[] = "sign-in-user-id";
22 
23 // static
24 // Should match cros constant in platform/libchromeos/chromeos/cryptohome.h
25 const char UserManager::kGuestUserName[] = "$guest";
26 
27 // static
28 const char UserManager::kLocallyManagedUserDomain[] =
29     "locally-managed.localhost";
30 
31 
32 // static
33 const char UserManager::kRetailModeUserName[] = "demouser@";
34 static UserManager* g_user_manager = NULL;
35 
~Observer()36 UserManager::Observer::~Observer() {
37 }
38 
LocalStateChanged(UserManager * user_manager)39 void UserManager::Observer::LocalStateChanged(UserManager* user_manager) {
40 }
41 
ActiveUserChanged(const User * active_user)42 void UserManager::UserSessionStateObserver::ActiveUserChanged(
43     const User* active_user) {
44 }
45 
UserAddedToSession(const User * active_user)46 void UserManager::UserSessionStateObserver::UserAddedToSession(
47     const User* active_user) {
48 }
49 
ActiveUserHashChanged(const std::string & hash)50 void UserManager::UserSessionStateObserver::ActiveUserHashChanged(
51     const std::string& hash) {
52 }
53 
54 void UserManager::UserSessionStateObserver::
PendingUserSessionsRestoreFinished()55 PendingUserSessionsRestoreFinished() {
56 }
57 
~UserSessionStateObserver()58 UserManager::UserSessionStateObserver::~UserSessionStateObserver() {
59 }
60 
UserAccountData(const base::string16 & display_name,const base::string16 & given_name,const std::string & locale)61 UserManager::UserAccountData::UserAccountData(
62     const base::string16& display_name,
63     const base::string16& given_name,
64     const std::string& locale)
65     : display_name_(display_name),
66       given_name_(given_name),
67       locale_(locale) {
68 }
69 
~UserAccountData()70 UserManager::UserAccountData::~UserAccountData() {}
71 
72 // static
Initialize()73 void UserManager::Initialize() {
74   CHECK(!g_user_manager);
75   g_user_manager = new UserManagerImpl();
76 }
77 
78 // static
IsInitialized()79 bool UserManager::IsInitialized() {
80   return g_user_manager;
81 }
82 
Destroy()83 void UserManager::Destroy() {
84   DCHECK(g_user_manager);
85   delete g_user_manager;
86   g_user_manager = NULL;
87 }
88 
89 // static
Get()90 UserManager* UserManager::Get() {
91   CHECK(g_user_manager);
92   return g_user_manager;
93 }
94 
~UserManager()95 UserManager::~UserManager() {
96 }
97 
98 // static
SetForTesting(UserManager * user_manager)99 UserManager* UserManager::SetForTesting(UserManager* user_manager) {
100   UserManager* previous_user_manager = g_user_manager;
101   if (previous_user_manager)
102     previous_user_manager->Shutdown();
103 
104   g_user_manager = user_manager;
105   return previous_user_manager;
106 }
107 
ScopedUserManagerEnabler(UserManager * user_manager)108 ScopedUserManagerEnabler::ScopedUserManagerEnabler(UserManager* user_manager)
109     : previous_user_manager_(UserManager::SetForTesting(user_manager)) {
110 }
111 
~ScopedUserManagerEnabler()112 ScopedUserManagerEnabler::~ScopedUserManagerEnabler() {
113   UserManager::Get()->Shutdown();
114   UserManager::Destroy();
115   UserManager::SetForTesting(previous_user_manager_);
116 }
117 
ScopedTestUserManager()118 ScopedTestUserManager::ScopedTestUserManager() {
119   UserManager::Initialize();
120 
121   // ProfileHelper has to be initialized after UserManager instance is created.
122   g_browser_process->platform_part()->profile_helper()->Initialize();
123 }
124 
~ScopedTestUserManager()125 ScopedTestUserManager::~ScopedTestUserManager() {
126   UserManager::Get()->Shutdown();
127   UserManager::Destroy();
128 }
129 
130 }  // namespace chromeos
131