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