blob: 2ec7107b292f5375ad047cfc0eac5639f433780f [file]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SESSION_MANAGER_SESSION_MANAGER_TYPES_H_
#define COMPONENTS_SESSION_MANAGER_SESSION_MANAGER_TYPES_H_
#include "components/account_id/account_id.h"
namespace session_manager {
// TODO(xiyuan): Get rid/consolidate with chromeos::LoggedInState.
enum class SessionState {
// Default value, when session state hasn't been initialized yet.
UNKNOWN = 0,
// Running out of box UI.
OOBE,
// Running login UI (primary user), including the post login steps such as
// selecting avatar, agreeing to terms of service etc.
LOGIN_PRIMARY,
// A transient state between LOGIN_PRIMARY/LOGIN_SECONDARY and ACTIVE to
// prepare user desktop environment (e.g. launching browser windows) while the
// login screen is still visible. Should only be set from OOBE,
// LOGIN_PRIMARY, or LOGIN_SECONDARY.
LOGGED_IN_NOT_ACTIVE,
// A user(s) has logged in *and* login UI is hidden i.e. user session is
// not blocked.
ACTIVE,
// The session screen is locked.
LOCKED,
// Same as LOGIN_PRIMARY but for multi-profiles sign in i.e. when there's at
// least one user already active in the session.
LOGIN_SECONDARY,
// Device is being repaired and the RMA app is active.
RMA,
};
// A type for session id.
using SessionId = int;
// Limits the number of logged in users to 5. User-switcher UI was not designed
// around a large number of users. This also helps on memory-constrained
// devices. See b/64593342 for some additional context.
inline constexpr int kMaximumNumberOfUserSessions = 5;
// Type of unlock method used.
enum class UnlockType {
PASSWORD,
PIN,
FINGERPRINT,
CHALLENGE_RESPONSE,
EASY_UNLOCK,
UNKNOWN
};
} // namespace session_manager
#endif // COMPONENTS_SESSION_MANAGER_SESSION_MANAGER_TYPES_H_