| Index: chrome/browser/chromeos/login/users/user_manager_base.h
|
| diff --git a/chrome/browser/chromeos/login/users/user_manager_base.h b/chrome/browser/chromeos/login/users/user_manager_base.h
|
| deleted file mode 100644
|
| index 5fcea54048263fe2898bad61bd801f0834de10d1..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/login/users/user_manager_base.h
|
| +++ /dev/null
|
| @@ -1,369 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_BASE_H_
|
| -#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_BASE_H_
|
| -
|
| -#include <set>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "base/time/time.h"
|
| -#include "chrome/browser/chromeos/login/users/user_manager.h"
|
| -#include "components/user_manager/user.h"
|
| -
|
| -class PrefService;
|
| -class PrefRegistrySimple;
|
| -
|
| -namespace chromeos {
|
| -
|
| -class RemoveUserDelegate;
|
| -
|
| -// Base implementation of the UserManager interface.
|
| -class UserManagerBase : public UserManager {
|
| - public:
|
| - virtual ~UserManagerBase();
|
| -
|
| - // Registers UserManagerBase preferences.
|
| - static void RegisterPrefs(PrefRegistrySimple* registry);
|
| -
|
| - // UserManager implementation:
|
| - virtual void Shutdown() OVERRIDE;
|
| - virtual const user_manager::UserList& GetUsers() const OVERRIDE;
|
| - virtual const user_manager::UserList& GetLoggedInUsers() const OVERRIDE;
|
| - virtual const user_manager::UserList& GetLRULoggedInUsers() const OVERRIDE;
|
| - virtual const std::string& GetOwnerEmail() const OVERRIDE;
|
| - virtual void UserLoggedIn(const std::string& user_id,
|
| - const std::string& user_id_hash,
|
| - bool browser_restart) OVERRIDE;
|
| - virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE;
|
| - virtual void SessionStarted() OVERRIDE;
|
| - virtual void RemoveUser(const std::string& user_id,
|
| - RemoveUserDelegate* delegate) OVERRIDE;
|
| - virtual void RemoveUserFromList(const std::string& user_id) OVERRIDE;
|
| - virtual bool IsKnownUser(const std::string& user_id) const OVERRIDE;
|
| - virtual const user_manager::User* FindUser(
|
| - const std::string& user_id) const OVERRIDE;
|
| - virtual user_manager::User* FindUserAndModify(
|
| - const std::string& user_id) OVERRIDE;
|
| - virtual const user_manager::User* GetLoggedInUser() const OVERRIDE;
|
| - virtual user_manager::User* GetLoggedInUser() OVERRIDE;
|
| - virtual const user_manager::User* GetActiveUser() const OVERRIDE;
|
| - virtual user_manager::User* GetActiveUser() OVERRIDE;
|
| - virtual const user_manager::User* GetPrimaryUser() const OVERRIDE;
|
| - virtual void SaveUserOAuthStatus(
|
| - const std::string& user_id,
|
| - user_manager::User::OAuthTokenStatus oauth_token_status) OVERRIDE;
|
| - virtual void SaveForceOnlineSignin(const std::string& user_id,
|
| - bool force_online_signin) OVERRIDE;
|
| - virtual void SaveUserDisplayName(const std::string& user_id,
|
| - const base::string16& display_name) OVERRIDE;
|
| - virtual base::string16 GetUserDisplayName(
|
| - const std::string& user_id) const OVERRIDE;
|
| - virtual void SaveUserDisplayEmail(const std::string& user_id,
|
| - const std::string& display_email) OVERRIDE;
|
| - virtual std::string GetUserDisplayEmail(
|
| - const std::string& user_id) const OVERRIDE;
|
| - virtual void UpdateUserAccountData(
|
| - const std::string& user_id,
|
| - const UserAccountData& account_data) OVERRIDE;
|
| - virtual bool IsCurrentUserOwner() const OVERRIDE;
|
| - virtual bool IsCurrentUserNew() const OVERRIDE;
|
| - virtual bool IsCurrentUserNonCryptohomeDataEphemeral() const OVERRIDE;
|
| - virtual bool CanCurrentUserLock() const OVERRIDE;
|
| - virtual bool IsUserLoggedIn() const OVERRIDE;
|
| - virtual bool IsLoggedInAsRegularUser() const OVERRIDE;
|
| - virtual bool IsLoggedInAsDemoUser() const OVERRIDE;
|
| - virtual bool IsLoggedInAsPublicAccount() const OVERRIDE;
|
| - virtual bool IsLoggedInAsGuest() const OVERRIDE;
|
| - virtual bool IsLoggedInAsSupervisedUser() const OVERRIDE;
|
| - virtual bool IsLoggedInAsKioskApp() const OVERRIDE;
|
| - virtual bool IsLoggedInAsStub() const OVERRIDE;
|
| - virtual bool IsSessionStarted() const OVERRIDE;
|
| - virtual bool IsUserNonCryptohomeDataEphemeral(
|
| - const std::string& user_id) const OVERRIDE;
|
| - virtual void AddObserver(UserManager::Observer* obs) OVERRIDE;
|
| - virtual void RemoveObserver(UserManager::Observer* obs) OVERRIDE;
|
| - virtual void AddSessionStateObserver(
|
| - UserManager::UserSessionStateObserver* obs) OVERRIDE;
|
| - virtual void RemoveSessionStateObserver(
|
| - UserManager::UserSessionStateObserver* obs) OVERRIDE;
|
| - virtual void NotifyLocalStateChanged() OVERRIDE;
|
| -
|
| - // Helper function that copies users from |users_list| to |users_vector| and
|
| - // |users_set|. Duplicates and users already present in |existing_users| are
|
| - // skipped.
|
| - static void ParseUserList(const base::ListValue& users_list,
|
| - const std::set<std::string>& existing_users,
|
| - std::vector<std::string>* users_vector,
|
| - std::set<std::string>* users_set);
|
| -
|
| - protected:
|
| - UserManagerBase();
|
| -
|
| - // Adds |user| to users list, and adds it to front of LRU list. It is assumed
|
| - // that there is no user with same id.
|
| - virtual void AddUserRecord(user_manager::User* user);
|
| -
|
| - // Returns true if trusted device policies have successfully been retrieved
|
| - // and ephemeral users are enabled.
|
| - virtual bool AreEphemeralUsersEnabled() const = 0;
|
| -
|
| - // Returns true if user may be removed.
|
| - virtual bool CanUserBeRemoved(const user_manager::User* user) const;
|
| -
|
| - // A wrapper around C++ delete operator. Deletes |user|, and when |user|
|
| - // equals to active_user_, active_user_ is reset to NULL.
|
| - virtual void DeleteUser(user_manager::User* user);
|
| -
|
| - // Returns the locale used by the application.
|
| - virtual const std::string& GetApplicationLocale() const = 0;
|
| -
|
| - // Returns "Local State" PrefService instance.
|
| - virtual PrefService* GetLocalState() const = 0;
|
| -
|
| - // Loads |users_| from Local State if the list has not been loaded yet.
|
| - // Subsequent calls have no effect. Must be called on the UI thread.
|
| - void EnsureUsersLoaded();
|
| -
|
| - // Returns true if device is enterprise managed.
|
| - virtual bool IsEnterpriseManaged() const = 0;
|
| -
|
| - // Helper function that copies users from |users_list| to |users_vector| and
|
| - // |users_set|. Duplicates and users already present in |existing_users| are
|
| - // skipped.
|
| - // Loads public accounts from the Local state and fills in
|
| - // |public_sessions_set|.
|
| - virtual void LoadPublicAccounts(
|
| - std::set<std::string>* public_sessions_set) = 0;
|
| -
|
| - // Notifies that user has logged in.
|
| - virtual void NotifyOnLogin();
|
| -
|
| - // Notifies observers that another user was added to the session.
|
| - // If |user_switch_pending| is true this means that user has not been fully
|
| - // initialized yet like waiting for profile to be loaded.
|
| - virtual void NotifyUserAddedToSession(const user_manager::User* added_user,
|
| - bool user_switch_pending);
|
| -
|
| - // Performs any additional actions before user list is loaded.
|
| - virtual void PerformPreUserListLoadingActions() = 0;
|
| -
|
| - // Performs any additional actions after user list is loaded.
|
| - virtual void PerformPostUserListLoadingActions() = 0;
|
| -
|
| - // Performs any additional actions after UserLoggedIn() execution has been
|
| - // completed.
|
| - // |browser_restart| is true when reloading Chrome after crash to distinguish
|
| - // from normal sign in flow.
|
| - virtual void PerformPostUserLoggedInActions(bool browser_restart) = 0;
|
| -
|
| - // Implementation for RemoveUser method. It is synchronous. It is called from
|
| - // RemoveUserInternal after owner check.
|
| - virtual void RemoveNonOwnerUserInternal(const std::string& user_email,
|
| - RemoveUserDelegate* delegate);
|
| -
|
| - // Removes a regular or supervised user from the user list.
|
| - // Returns the user if found or NULL otherwise.
|
| - // Also removes the user from the persistent user list.
|
| - user_manager::User* RemoveRegularOrSupervisedUserFromList(
|
| - const std::string& user_id);
|
| -
|
| - // Implementation for RemoveUser method. This is an asynchronous part of the
|
| - // method, that verifies that owner will not get deleted, and calls
|
| - // |RemoveNonOwnerUserInternal|.
|
| - virtual void RemoveUserInternal(const std::string& user_email,
|
| - RemoveUserDelegate* delegate);
|
| -
|
| - // Removes data stored or cached outside the user's cryptohome (wallpaper,
|
| - // avatar, OAuth token status, display name, display email).
|
| - virtual void RemoveNonCryptohomeData(const std::string& user_id);
|
| -
|
| - // Check for a particular user type.
|
| -
|
| - // Returns true if |user_id| represents demo app.
|
| - virtual bool IsDemoApp(const std::string& user_id) const = 0;
|
| -
|
| - // Returns true if |user_id| represents kiosk app.
|
| - virtual bool IsKioskApp(const std::string& user_id) const = 0;
|
| -
|
| - // Returns true if |user_id| represents public account that has been marked
|
| - // for deletion.
|
| - virtual bool IsPublicAccountMarkedForRemoval(
|
| - const std::string& user_id) const = 0;
|
| -
|
| - // These methods are called when corresponding user type has signed in.
|
| -
|
| - // Indicates that the demo account has just logged in.
|
| - virtual void DemoAccountLoggedIn() = 0;
|
| -
|
| - // Indicates that a user just logged in as guest.
|
| - virtual void GuestUserLoggedIn();
|
| -
|
| - // Indicates that a kiosk app robot just logged in.
|
| - virtual void KioskAppLoggedIn(const std::string& app_id) = 0;
|
| -
|
| - // Indicates that a user just logged into a public session.
|
| - virtual void PublicAccountUserLoggedIn(user_manager::User* user) = 0;
|
| -
|
| - // Indicates that a regular user just logged in.
|
| - virtual void RegularUserLoggedIn(const std::string& user_id);
|
| -
|
| - // Indicates that a regular user just logged in as ephemeral.
|
| - virtual void RegularUserLoggedInAsEphemeral(const std::string& user_id);
|
| -
|
| - // Indicates that a user just logged into a retail mode session.
|
| - virtual void RetailModeUserLoggedIn() = 0;
|
| -
|
| - // Indicates that a supervised user just logged in.
|
| - virtual void SupervisedUserLoggedIn(const std::string& user_id) = 0;
|
| -
|
| - // Getters/setters for private members.
|
| -
|
| - virtual void SetCurrentUserIsOwner(bool is_current_user_owner);
|
| -
|
| - virtual bool GetEphemeralUsersEnabled() const;
|
| - virtual void SetEphemeralUsersEnabled(bool enabled);
|
| -
|
| - virtual void SetIsCurrentUserNew(bool is_new);
|
| -
|
| - virtual void SetOwnerEmail(std::string owner_user_id);
|
| -
|
| - virtual const std::string& GetPendingUserSwitchID() const;
|
| - virtual void SetPendingUserSwitchID(std::string user_id);
|
| -
|
| - // The logged-in user that is currently active in current session.
|
| - // NULL until a user has logged in, then points to one
|
| - // of the User instances in |users_|, the |guest_user_| instance or an
|
| - // ephemeral user instance.
|
| - user_manager::User* active_user_;
|
| -
|
| - // The primary user of the current session. It is recorded for the first
|
| - // signed-in user and does not change thereafter.
|
| - user_manager::User* primary_user_;
|
| -
|
| - // List of all known users. User instances are owned by |this|. Regular users
|
| - // are removed by |RemoveUserFromList|, public accounts by
|
| - // |UpdateAndCleanUpPublicAccounts|.
|
| - user_manager::UserList users_;
|
| -
|
| - private:
|
| - // Stages of loading user list from preferences. Some methods can have
|
| - // different behavior depending on stage.
|
| - enum UserLoadStage { STAGE_NOT_LOADED = 0, STAGE_LOADING, STAGE_LOADED };
|
| -
|
| - // Returns a list of users who have logged into this device previously.
|
| - // Same as GetUsers but used if you need to modify User from that list.
|
| - user_manager::UserList& GetUsersAndModify();
|
| -
|
| - // Returns the user with the given email address if found in the persistent
|
| - // list. Returns |NULL| otherwise.
|
| - const user_manager::User* FindUserInList(const std::string& user_id) const;
|
| -
|
| - // Returns |true| if user with the given id is found in the persistent list.
|
| - // Returns |false| otherwise. Does not trigger user loading.
|
| - const bool UserExistsInList(const std::string& user_id) const;
|
| -
|
| - // Same as FindUserInList but returns non-const pointer to User object.
|
| - user_manager::User* FindUserInListAndModify(const std::string& user_id);
|
| -
|
| - // Reads user's oauth token status from local state preferences.
|
| - user_manager::User::OAuthTokenStatus LoadUserOAuthStatus(
|
| - const std::string& user_id) const;
|
| -
|
| - // Read a flag indicating whether online authentication against GAIA should
|
| - // be enforced during the user's next sign-in from local state preferences.
|
| - bool LoadForceOnlineSignin(const std::string& user_id) const;
|
| -
|
| - // Notifies observers that merge session state had changed.
|
| - void NotifyMergeSessionStateChanged();
|
| -
|
| - // Notifies observers that active user has changed.
|
| - void NotifyActiveUserChanged(const user_manager::User* active_user);
|
| -
|
| - // Notifies observers that active user_id hash has changed.
|
| - void NotifyActiveUserHashChanged(const std::string& hash);
|
| -
|
| - // Update the global LoginState.
|
| - void UpdateLoginState();
|
| -
|
| - // Insert |user| at the front of the LRU user list.
|
| - void SetLRUUser(user_manager::User* user);
|
| -
|
| - // Sends metrics in response to a regular user logging in.
|
| - void SendRegularUserLoginMetrics(const std::string& user_id);
|
| -
|
| - // Sets account locale for user with id |user_id|.
|
| - virtual void UpdateUserAccountLocale(const std::string& user_id,
|
| - const std::string& locale);
|
| -
|
| - // Updates user account after locale was resolved.
|
| - void DoUpdateAccountLocale(const std::string& user_id,
|
| - const std::string& resolved_locale);
|
| -
|
| - // Indicates stage of loading user from prefs.
|
| - UserLoadStage user_loading_stage_;
|
| -
|
| - // List of all users that are logged in current session. These point to User
|
| - // instances in |users_|. Only one of them could be marked as active.
|
| - user_manager::UserList logged_in_users_;
|
| -
|
| - // A list of all users that are logged in the current session. In contrast to
|
| - // |logged_in_users|, the order of this list is least recently used so that
|
| - // the active user should always be the first one in the list.
|
| - user_manager::UserList lru_logged_in_users_;
|
| -
|
| - // True if SessionStarted() has been called.
|
| - bool session_started_;
|
| -
|
| - // Cached flag of whether currently logged-in user is owner or not.
|
| - // May be accessed on different threads, requires locking.
|
| - bool is_current_user_owner_;
|
| - mutable base::Lock is_current_user_owner_lock_;
|
| -
|
| - // Cached flag of whether the currently logged-in user existed before this
|
| - // login.
|
| - bool is_current_user_new_;
|
| -
|
| - // Cached flag of whether the currently logged-in user is a regular user who
|
| - // logged in as ephemeral. Storage of persistent information is avoided for
|
| - // such users by not adding them to the persistent user list, not downloading
|
| - // their custom avatars and mounting their cryptohomes using tmpfs. Defaults
|
| - // to |false|.
|
| - bool is_current_user_ephemeral_regular_user_;
|
| -
|
| - // Cached flag indicating whether the ephemeral user policy is enabled.
|
| - // Defaults to |false| if the value has not been read from trusted device
|
| - // policy yet.
|
| - bool ephemeral_users_enabled_;
|
| -
|
| - // Cached name of device owner. Defaults to empty string if the value has not
|
| - // been read from trusted device policy yet.
|
| - std::string owner_email_;
|
| -
|
| - ObserverList<UserManager::Observer> observer_list_;
|
| -
|
| - // TODO(nkostylev): Merge with session state refactoring CL.
|
| - ObserverList<UserManager::UserSessionStateObserver>
|
| - session_state_observer_list_;
|
| -
|
| - // Time at which this object was created.
|
| - base::TimeTicks manager_creation_time_;
|
| -
|
| - // ID of the user just added to the session that needs to be activated
|
| - // as soon as user's profile is loaded.
|
| - std::string pending_user_switch_;
|
| -
|
| - base::WeakPtrFactory<UserManagerBase> weak_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(UserManagerBase);
|
| -};
|
| -
|
| -} // namespace chromeos
|
| -
|
| -#endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_USER_MANAGER_BASE_H_
|
|
|