Chromium Code Reviews| Index: components/user_manager/user_manager_base.h |
| diff --git a/components/user_manager/user_manager_base.h b/components/user_manager/user_manager_base.h |
| index a5f5f8fe4f24d7fc0f0ffdf5272c31656f7a033a..156ca25a2e483cd50babe44c1c9f3313006046af 100644 |
| --- a/components/user_manager/user_manager_base.h |
| +++ b/components/user_manager/user_manager_base.h |
| @@ -15,8 +15,8 @@ |
| #include "base/observer_list.h" |
| #include "base/synchronization/lock.h" |
| #include "base/time/time.h" |
| +#include "components/signin/core/account_id/account_id.h" |
| #include "components/user_manager/user.h" |
| -#include "components/user_manager/user_id.h" |
| #include "components/user_manager/user_manager.h" |
| #include "components/user_manager/user_manager_export.h" |
| #include "components/user_manager/user_type.h" |
| @@ -51,37 +51,37 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| const UserList& GetUsers() const override; |
| const UserList& GetLoggedInUsers() const override; |
| const UserList& GetLRULoggedInUsers() const override; |
| - const std::string& GetOwnerEmail() const override; |
| - void UserLoggedIn(const std::string& user_id, |
| + const AccountId& GetOwnerAccountId() const override; |
| + void UserLoggedIn(const AccountId& account_id, |
| const std::string& user_id_hash, |
| bool browser_restart) override; |
| - void SwitchActiveUser(const std::string& user_id) override; |
| + void SwitchActiveUser(const AccountId& account_id) override; |
| void SwitchToLastActiveUser() override; |
| void SessionStarted() override; |
| - void RemoveUser(const std::string& user_id, |
| + void RemoveUser(const AccountId& account_id, |
| RemoveUserDelegate* delegate) override; |
| - void RemoveUserFromList(const std::string& user_id) override; |
| - bool IsKnownUser(const std::string& user_id) const override; |
| - const User* FindUser(const std::string& user_id) const override; |
| - User* FindUserAndModify(const std::string& user_id) override; |
| + void RemoveUserFromList(const AccountId& account_id) override; |
| + bool IsKnownUser(const AccountId& account_id) const override; |
| + const User* FindUser(const AccountId& account_id) const override; |
| + User* FindUserAndModify(const AccountId& account_id) override; |
| const User* GetLoggedInUser() const override; |
| User* GetLoggedInUser() override; |
| const User* GetActiveUser() const override; |
| User* GetActiveUser() override; |
| const User* GetPrimaryUser() const override; |
| - void SaveUserOAuthStatus(const std::string& user_id, |
| + void SaveUserOAuthStatus(const AccountId& account_id, |
| User::OAuthTokenStatus oauth_token_status) override; |
| - void SaveForceOnlineSignin(const std::string& user_id, |
| + void SaveForceOnlineSignin(const AccountId& account_id, |
| bool force_online_signin) override; |
| - void SaveUserDisplayName(const std::string& user_id, |
| + void SaveUserDisplayName(const AccountId& account_id, |
| const base::string16& display_name) override; |
| - base::string16 GetUserDisplayName(const std::string& user_id) const override; |
| - void SaveUserDisplayEmail(const std::string& user_id, |
| + base::string16 GetUserDisplayName(const AccountId& account_id) const override; |
| + void SaveUserDisplayEmail(const AccountId& account_id, |
| const std::string& display_email) override; |
| - std::string GetUserDisplayEmail(const std::string& user_id) const override; |
| - void SaveUserType(const std::string& user_id, |
| + std::string GetUserDisplayEmail(const AccountId& account_id) const override; |
| + void SaveUserType(const AccountId& account_id, |
| const UserType& user_type) override; |
| - void UpdateUserAccountData(const std::string& user_id, |
| + void UpdateUserAccountData(const AccountId& account_id, |
| const UserAccountData& account_data) override; |
| bool IsCurrentUserOwner() const override; |
| bool IsCurrentUserNew() const override; |
| @@ -97,7 +97,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| bool IsLoggedInAsStub() const override; |
| bool IsSessionStarted() const override; |
| bool IsUserNonCryptohomeDataEphemeral( |
| - const std::string& user_id) const override; |
| + const AccountId& account_id) const override; |
| void AddObserver(UserManager::Observer* obs) override; |
| void RemoveObserver(UserManager::Observer* obs) override; |
| void AddSessionStateObserver( |
| @@ -106,58 +106,59 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| UserManager::UserSessionStateObserver* obs) override; |
| void NotifyLocalStateChanged() override; |
| void ChangeUserChildStatus(User* user, bool is_child) override; |
| - bool FindKnownUserPrefs(const UserID& user_id, |
| + bool FindKnownUserPrefs(const AccountId& account_id, |
| const base::DictionaryValue** out_value) override; |
| - void UpdateKnownUserPrefs(const UserID& user_id, |
| + void UpdateKnownUserPrefs(const AccountId& account_id, |
| const base::DictionaryValue& values, |
| bool clear) override; |
| - bool GetKnownUserStringPref(const UserID& user_id, |
| + bool GetKnownUserStringPref(const AccountId& account_id, |
| const std::string& path, |
| std::string* out_value) override; |
| - void SetKnownUserStringPref(const UserID& user_id, |
| + void SetKnownUserStringPref(const AccountId& account_id, |
| const std::string& path, |
| const std::string& in_value) override; |
| - bool GetKnownUserBooleanPref(const UserID& user_id, |
| + bool GetKnownUserBooleanPref(const AccountId& account_id, |
| const std::string& path, |
| bool* out_value) override; |
| - void SetKnownUserBooleanPref(const UserID& user_id, |
| + void SetKnownUserBooleanPref(const AccountId& account_id, |
| const std::string& path, |
| const bool in_value) override; |
| - bool GetKnownUserIntegerPref(const UserID& user_id, |
| + bool GetKnownUserIntegerPref(const AccountId& account_id, |
| const std::string& path, |
| int* out_value) override; |
| - void SetKnownUserIntegerPref(const UserID& user_id, |
| + void SetKnownUserIntegerPref(const AccountId& account_id, |
| const std::string& path, |
| const int in_value) override; |
| - bool GetKnownUserCanonicalEmail(const UserID& user_id, |
| - std::string* out_email) override; |
| - void UpdateGaiaID(const UserID& user_id, const std::string& gaia_id) override; |
| - bool FindGaiaID(const UserID& user_id, std::string* out_value) override; |
| - void UpdateUsingSAML(const std::string& user_id, |
| + bool GetKnownUserAccountId(const AccountId& authenticated_account_id, |
| + AccountId* out_id) override; |
| + void UpdateGaiaID(const AccountId& account_id, |
| + const std::string& gaia_id) override; |
| + bool FindGaiaID(const AccountId& account_id, std::string* out_value) override; |
| + void UpdateUsingSAML(const AccountId& account_id, |
| const bool using_saml) override; |
| - bool FindUsingSAML(const std::string& user_id) override; |
| - void SetKnownUserDeviceId(const UserID& user_id, |
| + bool FindUsingSAML(const AccountId& account_id) override; |
| + void SetKnownUserDeviceId(const AccountId& account_id, |
| const std::string& device_id) override; |
| - std::string GetKnownUserDeviceId(const UserID& user_id) override; |
| - void SetKnownUserGAPSCookie(const UserID& user_id, |
| + std::string GetKnownUserDeviceId(const AccountId& account_id) override; |
| + void SetKnownUserGAPSCookie(const AccountId& account_id, |
| const std::string& gaps_cookie) override; |
| - std::string GetKnownUserGAPSCookie(const UserID& user_id) override; |
| - void UpdateReauthReason(const std::string& user_id, |
| + std::string GetKnownUserGAPSCookie(const AccountId& account_id) override; |
| + void UpdateReauthReason(const AccountId& account_id, |
| const int reauth_reason) override; |
|
achuithb
2015/10/28 23:11:47
don't need const here
Alexander Alekseev
2015/10/29 02:00:43
Done.
|
| - bool FindReauthReason(const std::string& user_id, int* out_value) override; |
| + bool FindReauthReason(const AccountId& account_id, int* out_value) override; |
| virtual void SetIsCurrentUserNew(bool is_new); |
|
achuithb
2015/10/28 23:11:47
Could you add a comment for this?
Alexander Alekseev
2015/10/29 02:00:43
Done.
|
| // TODO(xiyuan): Figure out a better way to expose this info. |
| - virtual bool HasPendingBootstrap(const std::string& user_id) const; |
| + virtual bool HasPendingBootstrap(const AccountId& account_id) const; |
| // 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); |
| + const std::set<AccountId>& existing_users, |
| + std::vector<AccountId>* users_vector, |
| + std::set<AccountId>* users_set); |
| // Returns true if trusted device policies have successfully been retrieved |
| // and ephemeral users are enabled. |
| @@ -185,9 +186,9 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| // Subsequent calls have no effect. Must be called on the UI thread. |
| virtual void EnsureUsersLoaded(); |
| - // Handle OAuth token |status| change for |user_id|. |
| + // Handle OAuth token |status| change for |account_id|. |
| virtual void HandleUserOAuthTokenStatusChange( |
| - const std::string& user_id, |
| + const AccountId& account_id, |
| User::OAuthTokenStatus status) const = 0; |
| // Returns true if device is enterprise managed. |
| @@ -198,8 +199,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| // 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; |
| + virtual void LoadPublicAccounts(std::set<AccountId>* public_sessions_set) = 0; |
| // Notifies that user has logged in. |
| virtual void NotifyOnLogin(); |
| @@ -224,36 +224,36 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| // Implementation for RemoveUser method. It is synchronous. It is called from |
| // RemoveUserInternal after owner check. |
| - virtual void RemoveNonOwnerUserInternal(const std::string& user_email, |
| + virtual void RemoveNonOwnerUserInternal(const AccountId& account_id, |
| 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* RemoveRegularOrSupervisedUserFromList(const std::string& user_id); |
| + User* RemoveRegularOrSupervisedUserFromList(const AccountId& account_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, |
| + virtual void RemoveUserInternal(const AccountId& account_id, |
| 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); |
| + virtual void RemoveNonCryptohomeData(const AccountId& account_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 |account_id| represents demo app. |
| + virtual bool IsDemoApp(const AccountId& account_id) const = 0; |
| - // Returns true if |user_id| represents kiosk app. |
| - virtual bool IsKioskApp(const std::string& user_id) const = 0; |
| + // Returns true if |account_id| represents kiosk app. |
| + virtual bool IsKioskApp(const AccountId& account_id) const = 0; |
| - // Returns true if |user_id| represents public account that has been marked |
| + // Returns true if |account_id| represents public account that has been marked |
| // for deletion. |
| virtual bool IsPublicAccountMarkedForRemoval( |
| - const std::string& user_id) const = 0; |
| + const AccountId& account_id) const = 0; |
| // These methods are called when corresponding user type has signed in. |
| @@ -264,22 +264,22 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| virtual void GuestUserLoggedIn(); |
| // Indicates that a kiosk app robot just logged in. |
| - virtual void KioskAppLoggedIn(const std::string& app_id) = 0; |
| + virtual void KioskAppLoggedIn(const AccountId& kiosk_app_account_id) = 0; |
| // Indicates that a user just logged into a public session. |
| virtual void PublicAccountUserLoggedIn(User* user) = 0; |
| // Indicates that a regular user just logged in. |
| - virtual void RegularUserLoggedIn(const std::string& user_id); |
| + virtual void RegularUserLoggedIn(const AccountId& account_id); |
| // Indicates that a regular user just logged in as ephemeral. |
| - virtual void RegularUserLoggedInAsEphemeral(const std::string& user_id); |
| + virtual void RegularUserLoggedInAsEphemeral(const AccountId& account_id); |
| // Indicates that a supervised user just logged in. |
| - virtual void SupervisedUserLoggedIn(const std::string& user_id) = 0; |
| + virtual void SupervisedUserLoggedIn(const AccountId& account_id) = 0; |
| // Should be called when regular user was removed. |
| - virtual void OnUserRemoved(const std::string& user_id) = 0; |
| + virtual void OnUserRemoved(const AccountId& account_id) = 0; |
| // Getters/setters for private members. |
| @@ -288,20 +288,20 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| virtual bool GetEphemeralUsersEnabled() const; |
| virtual void SetEphemeralUsersEnabled(bool enabled); |
| - virtual void SetOwnerEmail(const std::string& owner_user_id); |
| + virtual void SetOwnerId(const AccountId& owner_account_id); |
| - virtual const std::string& GetPendingUserSwitchID() const; |
| - virtual void SetPendingUserSwitchID(const std::string& user_id); |
| + virtual const AccountId& GetPendingUserSwitchID() const; |
| + virtual void SetPendingUserSwitchId(const AccountId& account_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* active_user_; |
| + User* active_user_ = nullptr; |
| // The primary user of the current session. It is recorded for the first |
| // signed-in user and does not change thereafter. |
| - User* primary_user_; |
| + User* primary_user_ = nullptr; |
| // List of all known users. User instances are owned by |this|. Regular users |
| // are removed by |RemoveUserFromList|, public accounts by |
| @@ -328,21 +328,21 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| // Returns the user with the given email address if found in the persistent |
| // list. Returns |NULL| otherwise. |
| - const User* FindUserInList(const std::string& user_id) const; |
| + const User* FindUserInList(const AccountId& account_id) const; |
| // Returns |true| if user with the given id is found in the persistent list. |
| // Returns |false| otherwise. Does not trigger user loading. |
| - bool UserExistsInList(const std::string& user_id) const; |
| + bool UserExistsInList(const AccountId& account_id) const; |
| // Same as FindUserInList but returns non-const pointer to User object. |
| - User* FindUserInListAndModify(const std::string& user_id); |
| + User* FindUserInListAndModify(const AccountId& account_id); |
| // Reads user's oauth token status from local state preferences. |
| - User::OAuthTokenStatus LoadUserOAuthStatus(const std::string& user_id) const; |
| + User::OAuthTokenStatus LoadUserOAuthStatus(const AccountId& account_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; |
| + bool LoadForceOnlineSignin(const AccountId& account_id) const; |
| // Notifies observers that merge session state had changed. |
| void NotifyMergeSessionStateChanged(); |
| @@ -350,7 +350,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| // Notifies observers that active user has changed. |
| void NotifyActiveUserChanged(const User* active_user); |
| - // Notifies observers that active user_id hash has changed. |
| + // Notifies observers that active account_id hash has changed. |
| void NotifyActiveUserHashChanged(const std::string& hash); |
| // Update the global LoginState. |
| @@ -360,49 +360,49 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| void SetLRUUser(User* user); |
| // Sends metrics in response to a user with gaia account (regular) logging in. |
| - void SendGaiaUserLoginMetrics(const std::string& user_id); |
| + void SendGaiaUserLoginMetrics(const AccountId& account_id); |
| - // Sets account locale for user with id |user_id|. |
| - virtual void UpdateUserAccountLocale(const std::string& user_id, |
| + // Sets account locale for user with id |account_id|. |
| + virtual void UpdateUserAccountLocale(const AccountId& account_id, |
| const std::string& locale); |
| // Updates user account after locale was resolved. |
| - void DoUpdateAccountLocale(const std::string& user_id, |
| + void DoUpdateAccountLocale(const AccountId& account_id, |
| scoped_ptr<std::string> resolved_locale); |
| - // Removes all user preferences associated with |user_id|. |
| - void RemoveKnownUserPrefs(const UserID& user_id); |
| + // Removes all user preferences associated with |account_id|. |
| + void RemoveKnownUserPrefs(const AccountId& account_id); |
| // Indicates stage of loading user from prefs. |
| - UserLoadStage user_loading_stage_; |
| + UserLoadStage user_loading_stage_ = STAGE_NOT_LOADED; |
| // True if SessionStarted() has been called. |
| - bool session_started_; |
| + bool session_started_ = false; |
| // 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_; |
| + bool is_current_user_owner_ = false; |
| 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_; |
| + bool is_current_user_new_ = false; |
| // 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_; |
| + bool is_current_user_ephemeral_regular_user_ = false; |
| // 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_; |
| + bool ephemeral_users_enabled_ = false; |
| - // Cached name of device owner. Defaults to empty string if the value has not |
| + // Cached name of device owner. Defaults to empty if the value has not |
| // been read from trusted device policy yet. |
| - std::string owner_email_; |
| + AccountId owner_account_id_ = EmptyAccountId(); |
| base::ObserverList<UserManager::Observer> observer_list_; |
| @@ -411,17 +411,17 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager { |
| session_state_observer_list_; |
| // Time at which this object was created. |
| - base::TimeTicks manager_creation_time_; |
| + base::TimeTicks manager_creation_time_ = base::TimeTicks::Now(); |
| // 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_; |
| + AccountId pending_user_switch_ = EmptyAccountId(); |
| // ID of the user that was active in the previous session. |
| // Preference value is stored here before first user signs in |
| // because pref will be overidden once session restore starts. |
| - std::string last_session_active_user_; |
| - bool last_session_active_user_initialized_; |
| + AccountId last_session_active_account_id_ = EmptyAccountId(); |
| + bool last_session_active_account_id_initialized_ = false; |
| // TaskRunner for UI thread. |
| scoped_refptr<base::TaskRunner> task_runner_; |