| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/ui/ash/session_state_delegate_chromeos.h" | 5 #include "chrome/browser/ui/ash/session_state_delegate_chromeos.h" |
| 6 | 6 |
| 7 #include "ash/multi_profile_uma.h" | 7 #include "ash/multi_profile_uma.h" |
| 8 #include "ash/session/session_state_observer.h" | 8 #include "ash/session/session_state_observer.h" |
| 9 #include "ash/system/chromeos/multi_user/user_switch_util.h" | 9 #include "ash/system/chromeos/multi_user/user_switch_util.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
| 23 #include "chromeos/chromeos_switches.h" | 23 #include "chromeos/chromeos_switches.h" |
| 24 #include "chromeos/dbus/dbus_thread_manager.h" | 24 #include "chromeos/dbus/dbus_thread_manager.h" |
| 25 #include "chromeos/dbus/session_manager_client.h" | 25 #include "chromeos/dbus/session_manager_client.h" |
| 26 #include "chromeos/login/login_state.h" | 26 #include "chromeos/login/login_state.h" |
| 27 #include "components/user_manager/user.h" | 27 #include "components/user_manager/user.h" |
| 28 #include "components/user_manager/user_manager.h" | 28 #include "components/user_manager/user_manager.h" |
| 29 #include "google_apis/gaia/gaia_auth_util.h" | 29 #include "google_apis/gaia/gaia_auth_util.h" |
| 30 | 30 |
| 31 SessionStateDelegateChromeos::SessionStateDelegateChromeos() | 31 SessionStateDelegateChromeos::SessionStateDelegateChromeos() |
| 32 : session_state_(SESSION_STATE_LOGIN_PRIMARY) { | 32 : session_state_(SESSION_STATE_LOGIN_PRIMARY), |
| 33 is_in_supervised_creation_flow_(false) { |
| 33 user_manager::UserManager::Get()->AddSessionStateObserver(this); | 34 user_manager::UserManager::Get()->AddSessionStateObserver(this); |
| 34 chromeos::UserAddingScreen::Get()->AddObserver(this); | 35 chromeos::UserAddingScreen::Get()->AddObserver(this); |
| 35 | 36 |
| 36 // LoginState is not initialized in unit_tests. | 37 // LoginState is not initialized in unit_tests. |
| 37 if (chromeos::LoginState::IsInitialized()) { | 38 if (chromeos::LoginState::IsInitialized()) { |
| 38 chromeos::LoginState::Get()->AddObserver(this); | 39 chromeos::LoginState::Get()->AddObserver(this); |
| 39 SetSessionState(chromeos::LoginState::Get()->IsUserLoggedIn() ? | 40 SetSessionState(chromeos::LoginState::Get()->IsUserLoggedIn() ? |
| 40 SESSION_STATE_ACTIVE : SESSION_STATE_LOGIN_PRIMARY, true); | 41 SESSION_STATE_ACTIVE : SESSION_STATE_LOGIN_PRIMARY, true); |
| 41 } | 42 } |
| 42 } | 43 } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 } | 141 } |
| 141 | 142 |
| 142 bool SessionStateDelegateChromeos::IsUserSessionBlocked() const { | 143 bool SessionStateDelegateChromeos::IsUserSessionBlocked() const { |
| 143 bool has_login_manager = CommandLine::ForCurrentProcess()->HasSwitch( | 144 bool has_login_manager = CommandLine::ForCurrentProcess()->HasSwitch( |
| 144 chromeos::switches::kLoginManager); | 145 chromeos::switches::kLoginManager); |
| 145 return (has_login_manager && !IsActiveUserSessionStarted()) || | 146 return (has_login_manager && !IsActiveUserSessionStarted()) || |
| 146 IsScreenLocked() || | 147 IsScreenLocked() || |
| 147 chromeos::UserAddingScreen::Get()->IsRunning(); | 148 chromeos::UserAddingScreen::Get()->IsRunning(); |
| 148 } | 149 } |
| 149 | 150 |
| 151 bool SessionStateDelegateChromeos::IsInSupervisedUserCreationFlow() const { |
| 152 return is_in_supervised_creation_flow_; |
| 153 } |
| 154 |
| 155 void SessionStateDelegateChromeos::SetIsInSupervisedUserCreationFlow( |
| 156 bool is_in_flow) { |
| 157 is_in_supervised_creation_flow_ = is_in_flow; |
| 158 } |
| 159 |
| 150 ash::SessionStateDelegate::SessionState | 160 ash::SessionStateDelegate::SessionState |
| 151 SessionStateDelegateChromeos::GetSessionState() const { | 161 SessionStateDelegateChromeos::GetSessionState() const { |
| 152 return session_state_; | 162 return session_state_; |
| 153 } | 163 } |
| 154 | 164 |
| 155 const user_manager::UserInfo* SessionStateDelegateChromeos::GetUserInfo( | 165 const user_manager::UserInfo* SessionStateDelegateChromeos::GetUserInfo( |
| 156 ash::MultiProfileIndex index) const { | 166 ash::MultiProfileIndex index) const { |
| 157 DCHECK_LT(index, NumberOfLoggedInUsers()); | 167 DCHECK_LT(index, NumberOfLoggedInUsers()); |
| 158 return user_manager::UserManager::Get()->GetLRULoggedInUsers()[index]; | 168 return user_manager::UserManager::Get()->GetLRULoggedInUsers()[index]; |
| 159 } | 169 } |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 } | 294 } |
| 285 | 295 |
| 286 void DoSwitchUser(const std::string& user_id) { | 296 void DoSwitchUser(const std::string& user_id) { |
| 287 user_manager::UserManager::Get()->SwitchActiveUser(user_id); | 297 user_manager::UserManager::Get()->SwitchActiveUser(user_id); |
| 288 } | 298 } |
| 289 | 299 |
| 290 void SessionStateDelegateChromeos::TryToSwitchUser( | 300 void SessionStateDelegateChromeos::TryToSwitchUser( |
| 291 const std::string& user_id) { | 301 const std::string& user_id) { |
| 292 ash::TrySwitchingActiveUser(base::Bind(&DoSwitchUser, user_id)); | 302 ash::TrySwitchingActiveUser(base::Bind(&DoSwitchUser, user_id)); |
| 293 } | 303 } |
| OLD | NEW |