diff options
author | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-30 05:07:24 +0000 |
---|---|---|
committer | mukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-30 05:07:24 +0000 |
commit | 35dafd7f1aa1733d6ccb15f02327c075577f6302 (patch) | |
tree | 975915d14d7c8bb592721307bb234eb666b8c1dc /chromeos/login | |
parent | f3bb0e00bf1e3c9f4c605a6b4711ab5d5e5313d6 (diff) | |
download | chromium_src-35dafd7f1aa1733d6ccb15f02327c075577f6302.zip chromium_src-35dafd7f1aa1733d6ccb15f02327c075577f6302.tar.gz chromium_src-35dafd7f1aa1733d6ccb15f02327c075577f6302.tar.bz2 |
Uses a flag for always-logged-in status of login_state instead of command-line
BUG=None
R=nkostylev@chromium.org, stevenjb@chromium.org
TEST=no breaks
Review URL: https://codereview.chromium.org/37553004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231759 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/login')
-rw-r--r-- | chromeos/login/login_state.cc | 9 | ||||
-rw-r--r-- | chromeos/login/login_state.h | 9 | ||||
-rw-r--r-- | chromeos/login/login_state_unittest.cc | 2 |
3 files changed, 15 insertions, 5 deletions
diff --git a/chromeos/login/login_state.cc b/chromeos/login/login_state.cc index a1f1fbb..db26d15 100644 --- a/chromeos/login/login_state.cc +++ b/chromeos/login/login_state.cc @@ -16,7 +16,7 @@ namespace { // When running a Chrome OS build outside of a device (i.e. on a developer's // workstation) and not running as login-manager, pretend like we're always // logged in. -bool AlwaysLoggedIn() { +bool AlwaysLoggedInByDefault() { return !base::SysInfo::IsRunningOnChromeOS() && !CommandLine::ForCurrentProcess()->HasSwitch(switches::kLoginManager); } @@ -72,13 +72,13 @@ LoginState::LoggedInUserType LoginState::GetLoggedInUserType() const { } bool LoginState::IsUserLoggedIn() const { - if (AlwaysLoggedIn()) + if (always_logged_in_) return true; return logged_in_state_ == LOGGED_IN_ACTIVE; } bool LoginState::IsInSafeMode() const { - DCHECK(!AlwaysLoggedIn() || logged_in_state_ != LOGGED_IN_SAFE_MODE); + DCHECK(!always_logged_in_ || logged_in_state_ != LOGGED_IN_SAFE_MODE); return logged_in_state_ == LOGGED_IN_SAFE_MODE; } @@ -117,7 +117,8 @@ bool LoginState::IsUserGaiaAuthenticated() const { // Private methods LoginState::LoginState() : logged_in_state_(LOGGED_IN_OOBE), - logged_in_user_type_(LOGGED_IN_USER_NONE) { + logged_in_user_type_(LOGGED_IN_USER_NONE), + always_logged_in_(AlwaysLoggedInByDefault()) { } LoginState::~LoginState() { diff --git a/chromeos/login/login_state.h b/chromeos/login/login_state.h index 0ef18a7..9fd03d7 100644 --- a/chromeos/login/login_state.h +++ b/chromeos/login/login_state.h @@ -74,6 +74,10 @@ class CHROMEOS_EXPORT LoginState { // (i.e., non public nor locally managed account). bool IsUserGaiaAuthenticated() const; + void set_always_logged_in(bool always_logged_in) { + always_logged_in_ = always_logged_in; + } + private: LoginState(); virtual ~LoginState(); @@ -84,6 +88,11 @@ class CHROMEOS_EXPORT LoginState { LoggedInUserType logged_in_user_type_; ObserverList<Observer> observer_list_; + // If true, it always thinks the current status as logged in. Set to true by + // default running on a Linux desktop without flags and test cases. To test + // behaviors with a specific login state, call set_always_logged_in(false). + bool always_logged_in_; + DISALLOW_COPY_AND_ASSIGN(LoginState); }; diff --git a/chromeos/login/login_state_unittest.cc b/chromeos/login/login_state_unittest.cc index 4054007..431b419 100644 --- a/chromeos/login/login_state_unittest.cc +++ b/chromeos/login/login_state_unittest.cc @@ -22,8 +22,8 @@ class LoginStateTest : public testing::Test, // testing::Test virtual void SetUp() OVERRIDE { - CommandLine::ForCurrentProcess()->AppendSwitch(switches::kLoginManager); LoginState::Initialize(); + LoginState::Get()->set_always_logged_in(false); LoginState::Get()->AddObserver(this); } |