Chromium Code Reviews| Index: chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| diff --git a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| index efe38a7dcf1b5ec32748a010f11bdabe39a21ef2..85ba60bc4b1bd855c557655f9e2e0ec3f6799565 100644 |
| --- a/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| +++ b/chrome/browser/chromeos/system/ash_system_tray_delegate.cc |
| @@ -89,6 +89,7 @@ |
| #include "chromeos/dbus/session_manager_client.h" |
| #include "chromeos/dbus/system_clock_client.h" |
| #include "chromeos/ime/xkeyboard.h" |
| +#include "chromeos/login/login_state.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/notification_observer.h" |
| #include "content/public/browser/notification_service.h" |
| @@ -364,7 +365,7 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| // Overridden from ash::SystemTrayDelegate: |
| virtual bool GetTrayVisibilityOnStartup() OVERRIDE { |
| // In case of OOBE / sign in screen tray will be shown later. |
| - return UserManager::Get()->IsUserLoggedIn(); |
| + return LoginState::Get()->IsUserLoggedIn(); |
| } |
| virtual const string16 GetUserDisplayName() const OVERRIDE { |
| @@ -380,22 +381,28 @@ class SystemTrayDelegate : public ash::SystemTrayDelegate, |
| } |
| virtual ash::user::LoginStatus GetUserLoginStatus() const OVERRIDE { |
| - UserManager* manager = UserManager::Get(); |
| - // At new user image screen manager->IsUserLoggedIn() would return true |
| - // but there's no browser session available yet so use SessionStarted(). |
| - if (!manager->IsSessionStarted()) |
| - return ash::user::LOGGED_IN_NONE; |
| - if (screen_locked_) |
| - return ash::user::LOGGED_IN_LOCKED; |
| - if (manager->IsCurrentUserOwner()) |
| - return ash::user::LOGGED_IN_OWNER; |
| - if (manager->IsLoggedInAsGuest()) |
| - return ash::user::LOGGED_IN_GUEST; |
| - if (manager->IsLoggedInAsDemoUser()) |
| - return ash::user::LOGGED_IN_RETAIL_MODE; |
| - if (manager->IsLoggedInAsPublicAccount()) |
| - return ash::user::LOGGED_IN_PUBLIC; |
| - return ash::user::LOGGED_IN_USER; |
| + LoginState::State state = LoginState::Get()->GetLoginState(); |
|
bartfab (slow)
2013/04/05 13:16:33
I really dislike this - two almost-identical enums
stevenjb
2013/04/05 18:17:15
One of them is Ash-specific (which may be on Windo
bartfab (slow)
2013/04/08 15:18:36
I don't see much reason to abstract away OOBE when
|
| + switch (state) { |
| + case LoginState::LOGGED_IN_OOBE: |
| + case LoginState::LOGGED_IN_NONE: |
| + return ash::user::LOGGED_IN_NONE; |
| + case LoginState::LOGGED_IN_LOCKED: |
| + return ash::user::LOGGED_IN_LOCKED; |
| + case LoginState::LOGGED_IN_USER: |
| + return ash::user::LOGGED_IN_USER; |
| + case LoginState::LOGGED_IN_OWNER: |
| + return ash::user::LOGGED_IN_OWNER; |
| + case LoginState::LOGGED_IN_GUEST: |
| + return ash::user::LOGGED_IN_GUEST; |
| + case LoginState::LOGGED_IN_RETAIL_MODE: |
| + return ash::user::LOGGED_IN_RETAIL_MODE; |
| + case LoginState::LOGGED_IN_KIOSK_APP: |
| + return ash::user::LOGGED_IN_KIOSK_APP; |
| + case LoginState::LOGGED_IN_PUBLIC: |
| + return ash::user::LOGGED_IN_PUBLIC; |
| + } |
| + NOTREACHED(); |
| + return ash::user::LOGGED_IN_NONE; |
| } |
| virtual bool IsOobeCompleted() const OVERRIDE { |