OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/chromeos/login/users/user_manager.h" | 5 #include "components/user_manager/user_manager.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/logging.h" |
8 #include "base/prefs/pref_registry_simple.h" | |
9 #include "chrome/browser/browser_process_platform_part_chromeos.h" | |
10 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | |
11 #include "chrome/browser/chromeos/profiles/profile_helper.h" | |
12 #include "chrome/common/chrome_switches.h" | |
13 | 8 |
14 namespace chromeos { | 9 namespace user_manager { |
15 | 10 |
16 static UserManager* g_user_manager = NULL; | 11 UserManager* UserManager::instance = NULL; |
17 | 12 |
18 UserManager::Observer::~Observer() { | 13 UserManager::Observer::~Observer() { |
19 } | 14 } |
20 | 15 |
21 void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { | 16 void UserManager::Observer::LocalStateChanged(UserManager* user_manager) { |
22 } | 17 } |
23 | 18 |
24 void UserManager::UserSessionStateObserver::ActiveUserChanged( | 19 void UserManager::UserSessionStateObserver::ActiveUserChanged( |
25 const user_manager::User* active_user) { | 20 const User* active_user) { |
26 } | 21 } |
27 | 22 |
28 void UserManager::UserSessionStateObserver::UserAddedToSession( | 23 void UserManager::UserSessionStateObserver::UserAddedToSession( |
29 const user_manager::User* active_user) { | 24 const User* active_user) { |
30 } | 25 } |
31 | 26 |
32 void UserManager::UserSessionStateObserver::ActiveUserHashChanged( | 27 void UserManager::UserSessionStateObserver::ActiveUserHashChanged( |
33 const std::string& hash) { | 28 const std::string& hash) { |
34 } | 29 } |
35 | 30 |
36 UserManager::UserSessionStateObserver::~UserSessionStateObserver() { | 31 UserManager::UserSessionStateObserver::~UserSessionStateObserver() { |
37 } | 32 } |
38 | 33 |
39 UserManager::UserAccountData::UserAccountData( | 34 UserManager::UserAccountData::UserAccountData( |
40 const base::string16& display_name, | 35 const base::string16& display_name, |
41 const base::string16& given_name, | 36 const base::string16& given_name, |
42 const std::string& locale) | 37 const std::string& locale) |
43 : display_name_(display_name), | 38 : display_name_(display_name), given_name_(given_name), locale_(locale) { |
44 given_name_(given_name), | |
45 locale_(locale) { | |
46 } | 39 } |
47 | 40 |
48 UserManager::UserAccountData::~UserAccountData() {} | 41 UserManager::UserAccountData::~UserAccountData() { |
| 42 } |
49 | 43 |
50 // static | |
51 void UserManager::Initialize() { | 44 void UserManager::Initialize() { |
52 CHECK(!g_user_manager); | 45 DCHECK(!UserManager::instance); |
53 g_user_manager = new ChromeUserManager(); | 46 UserManager::SetInstance(this); |
54 } | 47 } |
55 | 48 |
56 // static | 49 // static |
57 bool UserManager::IsInitialized() { | 50 bool UserManager::IsInitialized() { |
58 return g_user_manager; | 51 return UserManager::instance; |
59 } | 52 } |
60 | 53 |
61 void UserManager::Destroy() { | 54 void UserManager::Destroy() { |
62 DCHECK(g_user_manager); | 55 DCHECK(UserManager::instance == this); |
63 delete g_user_manager; | 56 UserManager::SetInstance(NULL); |
64 g_user_manager = NULL; | |
65 } | 57 } |
66 | 58 |
67 // static | 59 // static |
68 UserManager* UserManager::Get() { | 60 UserManager* user_manager::UserManager::Get() { |
69 CHECK(g_user_manager); | 61 CHECK(UserManager::instance); |
70 return g_user_manager; | 62 return UserManager::instance; |
71 } | 63 } |
72 | 64 |
73 UserManager::~UserManager() { | 65 UserManager::~UserManager() { |
74 } | 66 } |
75 | 67 |
76 // static | 68 // static |
77 UserManager* UserManager::SetForTesting(UserManager* user_manager) { | 69 void UserManager::SetInstance(UserManager* user_manager) { |
78 UserManager* previous_user_manager = g_user_manager; | 70 UserManager::instance = user_manager; |
79 if (previous_user_manager) | |
80 previous_user_manager->Shutdown(); | |
81 | |
82 g_user_manager = user_manager; | |
83 return previous_user_manager; | |
84 } | 71 } |
85 | 72 |
86 ScopedUserManagerEnabler::ScopedUserManagerEnabler(UserManager* user_manager) | 73 // static |
87 : previous_user_manager_(UserManager::SetForTesting(user_manager)) { | 74 UserManager* user_manager::UserManager::GetForTesting() { |
| 75 return UserManager::instance; |
88 } | 76 } |
89 | 77 |
90 ScopedUserManagerEnabler::~ScopedUserManagerEnabler() { | 78 // static |
91 UserManager::Get()->Shutdown(); | 79 UserManager* UserManager::SetForTesting(UserManager* user_manager) { |
92 UserManager::Destroy(); | 80 UserManager* previous_instance = UserManager::instance; |
93 UserManager::SetForTesting(previous_user_manager_); | 81 UserManager::instance = user_manager; |
| 82 return previous_instance; |
94 } | 83 } |
95 | 84 |
96 ScopedTestUserManager::ScopedTestUserManager() { | 85 } // namespace user_manager |
97 UserManager::Initialize(); | |
98 | |
99 // ProfileHelper has to be initialized after UserManager instance is created. | |
100 ProfileHelper::Get()->Initialize(); | |
101 } | |
102 | |
103 ScopedTestUserManager::~ScopedTestUserManager() { | |
104 UserManager::Get()->Shutdown(); | |
105 UserManager::Destroy(); | |
106 } | |
107 | |
108 } // namespace chromeos | |
OLD | NEW |