summaryrefslogtreecommitdiff
path: root/chromium/components/user_manager
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-20 13:40:20 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-22 12:41:23 +0000
commit7961cea6d1041e3e454dae6a1da660b453efd238 (patch)
treec0eeb4a9ff9ba32986289c1653d9608e53ccb444 /chromium/components/user_manager
parentb7034d0803538058e5c9d904ef03cf5eab34f6ef (diff)
downloadqtwebengine-chromium-7961cea6d1041e3e454dae6a1da660b453efd238.tar.gz
BASELINE: Update Chromium to 78.0.3904.130
Change-Id: If185e0c0061b3437531c97c9c8c78f239352a68b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/user_manager')
-rw-r--r--chromium/components/user_manager/OWNERS1
-rw-r--r--chromium/components/user_manager/fake_user_manager.cc5
-rw-r--r--chromium/components/user_manager/fake_user_manager.h1
-rw-r--r--chromium/components/user_manager/user.cc18
-rw-r--r--chromium/components/user_manager/user.h8
-rw-r--r--chromium/components/user_manager/user_manager.cc32
-rw-r--r--chromium/components/user_manager/user_manager.h25
-rw-r--r--chromium/components/user_manager/user_manager_base.cc27
-rw-r--r--chromium/components/user_manager/user_manager_base.h5
9 files changed, 44 insertions, 78 deletions
diff --git a/chromium/components/user_manager/OWNERS b/chromium/components/user_manager/OWNERS
index b280edc9c78..fb10e77d999 100644
--- a/chromium/components/user_manager/OWNERS
+++ b/chromium/components/user_manager/OWNERS
@@ -1,3 +1,4 @@
achuith@chromium.org
alemate@chromium.org
xiyuan@chromium.org
+# COMPONENT: Enterprise
diff --git a/chromium/components/user_manager/fake_user_manager.cc b/chromium/components/user_manager/fake_user_manager.cc
index 97883d1b8db..100b76bf82a 100644
--- a/chromium/components/user_manager/fake_user_manager.cc
+++ b/chromium/components/user_manager/fake_user_manager.cc
@@ -213,11 +213,6 @@ base::string16 FakeUserManager::GetUserDisplayName(
return base::string16();
}
-std::string FakeUserManager::GetUserDisplayEmail(
- const AccountId& account_id) const {
- return std::string();
-}
-
bool FakeUserManager::IsCurrentUserOwner() const {
return false;
}
diff --git a/chromium/components/user_manager/fake_user_manager.h b/chromium/components/user_manager/fake_user_manager.h
index ea7d0bfe899..b4767bc0ffa 100644
--- a/chromium/components/user_manager/fake_user_manager.h
+++ b/chromium/components/user_manager/fake_user_manager.h
@@ -85,7 +85,6 @@ class USER_MANAGER_EXPORT FakeUserManager : public UserManagerBase {
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 AccountId& account_id) const override;
bool IsCurrentUserOwner() const override;
bool IsCurrentUserNew() const override;
bool IsCurrentUserNonCryptohomeDataEphemeral() const override;
diff --git a/chromium/components/user_manager/user.cc b/chromium/components/user_manager/user.cc
index a23a0ae976c..2e6c2a70b07 100644
--- a/chromium/components/user_manager/user.cc
+++ b/chromium/components/user_manager/user.cc
@@ -263,8 +263,10 @@ bool User::has_gaia_account() const {
}
void User::AddProfileCreatedObserver(base::OnceClosure on_profile_created) {
- DCHECK(!profile_is_created_);
- on_profile_created_observers_.push_back(std::move(on_profile_created));
+ if (profile_is_created_)
+ std::move(on_profile_created).Run();
+ else
+ on_profile_created_observers_.push_back(std::move(on_profile_created));
}
bool User::IsAffiliated() const {
@@ -309,8 +311,11 @@ User* User::CreateSupervisedUser(const AccountId& account_id) {
return new SupervisedUser(account_id);
}
-User* User::CreatePublicAccountUser(const AccountId& account_id) {
- return new PublicAccountUser(account_id);
+User* User::CreatePublicAccountUser(const AccountId& account_id,
+ bool is_using_saml) {
+ User* user = new PublicAccountUser(account_id);
+ user->set_using_saml(is_using_saml);
+ return user;
}
void User::SetAccountLocale(const std::string& resolved_account_locale) {
@@ -476,7 +481,10 @@ std::string SupervisedUser::display_email() const {
}
PublicAccountUser::PublicAccountUser(const AccountId& account_id)
- : DeviceLocalAccountUserBase(account_id) {}
+ : DeviceLocalAccountUserBase(account_id) {
+ // Public accounts do not have a real email address, so they do not set
+ // |display_email_|.
+}
PublicAccountUser::~PublicAccountUser() {
}
diff --git a/chromium/components/user_manager/user.h b/chromium/components/user_manager/user.h
index 41462a9441b..c4033480b52 100644
--- a/chromium/components/user_manager/user.h
+++ b/chromium/components/user_manager/user.h
@@ -217,7 +217,8 @@ class USER_MANAGER_EXPORT User : public UserInfo {
static User* CreateKioskAppUser(const AccountId& kiosk_app_account_id);
static User* CreateArcKioskAppUser(const AccountId& arc_kiosk_account_id);
static User* CreateSupervisedUser(const AccountId& account_id);
- static User* CreatePublicAccountUser(const AccountId& account_id);
+ static User* CreatePublicAccountUser(const AccountId& account_id,
+ bool is_using_saml = false);
const std::string* GetAccountLocale() const { return account_locale_.get(); }
@@ -277,7 +278,10 @@ class USER_MANAGER_EXPORT User : public UserInfo {
AccountId account_id_;
base::string16 display_name_;
base::string16 given_name_;
- // The displayed user email, defaults to |email_|.
+ // User email for display, which may include capitals and non-significant
+ // periods. For example, "John.Steinbeck@gmail.com" is a display email, but
+ // "johnsteinbeck@gmail.com" is the canonical form. Defaults to
+ // account_id_.GetUserEmail().
std::string display_email_;
bool using_saml_ = false;
std::unique_ptr<UserImage> user_image_;
diff --git a/chromium/components/user_manager/user_manager.cc b/chromium/components/user_manager/user_manager.cc
index e02109fef62..caa9a2998b6 100644
--- a/chromium/components/user_manager/user_manager.cc
+++ b/chromium/components/user_manager/user_manager.cc
@@ -9,6 +9,8 @@
namespace user_manager {
+const char kRegularUsersPref[] = "LoggedInUsers";
+
UserManager* UserManager::instance = nullptr;
UserManager::Observer::~Observer() = default;
@@ -26,29 +28,23 @@ void UserManager::Observer::OnUserProfileImageUpdated(
void UserManager::Observer::OnUsersSignInConstraintsChanged() {}
void UserManager::UserSessionStateObserver::ActiveUserChanged(
- const User* active_user) {
-}
+ User* active_user) {}
void UserManager::UserSessionStateObserver::UserAddedToSession(
- const User* active_user) {
-}
+ const User* active_user) {}
void UserManager::UserSessionStateObserver::ActiveUserHashChanged(
- const std::string& hash) {
-}
+ const std::string& hash) {}
-UserManager::UserSessionStateObserver::~UserSessionStateObserver() {
-}
+UserManager::UserSessionStateObserver::~UserSessionStateObserver() {}
UserManager::UserAccountData::UserAccountData(
const base::string16& display_name,
const base::string16& given_name,
const std::string& locale)
- : display_name_(display_name), given_name_(given_name), locale_(locale) {
-}
+ : display_name_(display_name), given_name_(given_name), locale_(locale) {}
-UserManager::UserAccountData::~UserAccountData() {
-}
+UserManager::UserAccountData::~UserAccountData() {}
void UserManager::Initialize() {
DCHECK(!UserManager::instance);
@@ -142,16 +138,4 @@ UserType UserManager::CalculateUserType(const AccountId& account_id,
return USER_TYPE_REGULAR;
}
-ScopedUserSessionStateObserver::ScopedUserSessionStateObserver(
- UserManager::UserSessionStateObserver* observer)
- : observer_(observer) {
- if (UserManager::IsInitialized())
- UserManager::Get()->AddSessionStateObserver(observer_);
-}
-
-ScopedUserSessionStateObserver::~ScopedUserSessionStateObserver() {
- if (UserManager::IsInitialized())
- UserManager::Get()->RemoveSessionStateObserver(observer_);
-}
-
} // namespace user_manager
diff --git a/chromium/components/user_manager/user_manager.h b/chromium/components/user_manager/user_manager.h
index d13ef14307a..0d892fae197 100644
--- a/chromium/components/user_manager/user_manager.h
+++ b/chromium/components/user_manager/user_manager.h
@@ -22,6 +22,10 @@ namespace user_manager {
class ScopedUserManager;
class RemoveUserDelegate;
+// A list pref of the the regular users known on this device, arranged in LRU
+// order, stored in local state.
+USER_MANAGER_EXPORT extern const char kRegularUsersPref[];
+
// Interface for UserManagerBase - that provides base implementation for
// Chrome OS user management. Typical features:
// * Get list of all know users (who have logged into this Chrome OS device)
@@ -62,7 +66,7 @@ class USER_MANAGER_EXPORT UserManager {
class UserSessionStateObserver {
public:
// Called when active user has changed.
- virtual void ActiveUserChanged(const User* active_user);
+ virtual void ActiveUserChanged(User* active_user);
// Called when another user got added to the existing session.
virtual void UserAddedToSession(const User* added_user);
@@ -237,12 +241,6 @@ class USER_MANAGER_EXPORT UserManager {
virtual void SaveUserDisplayEmail(const AccountId& account_id,
const std::string& display_email) = 0;
- // Returns the display email for user |account_id| if it is known (was
- // previously set by a |SaveUserDisplayEmail| call).
- // Otherwise, returns |account_id| itself.
- virtual std::string GetUserDisplayEmail(
- const AccountId& account_id) const = 0;
-
// Saves user's type for |user| into local state preferences.
virtual void SaveUserType(const User* user) = 0;
@@ -410,19 +408,6 @@ class USER_MANAGER_EXPORT UserManager {
static UserManager* SetForTesting(UserManager* user_manager);
};
-// TODO(xiyuan): Move this along with UserSessionStateObserver
-class USER_MANAGER_EXPORT ScopedUserSessionStateObserver {
- public:
- explicit ScopedUserSessionStateObserver(
- UserManager::UserSessionStateObserver* observer);
- ~ScopedUserSessionStateObserver();
-
- private:
- UserManager::UserSessionStateObserver* const observer_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedUserSessionStateObserver);
-};
-
} // namespace user_manager
#endif // COMPONENTS_USER_MANAGER_USER_MANAGER_H_
diff --git a/chromium/components/user_manager/user_manager_base.cc b/chromium/components/user_manager/user_manager_base.cc
index 5e050b7db5e..ec0a254cf12 100644
--- a/chromium/components/user_manager/user_manager_base.cc
+++ b/chromium/components/user_manager/user_manager_base.cc
@@ -34,10 +34,6 @@
namespace user_manager {
namespace {
-// A vector pref of the the regular users known on this device, arranged in LRU
-// order.
-const char kRegularUsers[] = "LoggedInUsers";
-
// A dictionary that maps user IDs to the displayed name.
const char kUserDisplayName[] = "UserDisplayName";
@@ -98,7 +94,7 @@ const base::Feature kHideSupervisedUsers{"HideSupervisedUsers",
// static
void UserManagerBase::RegisterPrefs(PrefRegistrySimple* registry) {
- registry->RegisterListPref(kRegularUsers);
+ registry->RegisterListPref(kRegularUsersPref);
registry->RegisterStringPref(kLastLoggedInGaiaUser, std::string());
registry->RegisterDictionaryPref(kUserDisplayName);
registry->RegisterDictionaryPref(kUserGivenName);
@@ -112,7 +108,7 @@ void UserManagerBase::RegisterPrefs(PrefRegistrySimple* registry) {
}
UserManagerBase::UserManagerBase(scoped_refptr<base::TaskRunner> task_runner)
- : task_runner_(task_runner), weak_factory_(this) {}
+ : task_runner_(task_runner) {}
UserManagerBase::~UserManagerBase() {
// Can't use STLDeleteElements because of the private destructor of User.
@@ -351,7 +347,7 @@ void UserManagerBase::RemoveUserFromList(const AccountId& account_id) {
DCHECK(IsSupervisedAccountId(account_id));
// Special case, removing partially-constructed supervised user during user
// list loading.
- ListPrefUpdate users_update(GetLocalState(), kRegularUsers);
+ ListPrefUpdate users_update(GetLocalState(), kRegularUsersPref);
users_update->Remove(base::Value(account_id.GetUserEmail()), nullptr);
OnUserRemoved(account_id);
} else {
@@ -489,12 +485,6 @@ void UserManagerBase::SaveUserDisplayEmail(const AccountId& account_id,
base::Value(display_email));
}
-std::string UserManagerBase::GetUserDisplayEmail(
- const AccountId& account_id) const {
- const User* user = FindUser(account_id);
- return user ? user->display_email() : account_id.GetUserEmail();
-}
-
void UserManagerBase::SaveUserType(const User* user) {
DCHECK(!task_runner_ || task_runner_->RunsTasksInCurrentSequence());
@@ -805,7 +795,7 @@ void UserManagerBase::EnsureUsersLoaded() {
PrefService* local_state = GetLocalState();
const base::ListValue* prefs_regular_users =
- local_state->GetList(kRegularUsers);
+ local_state->GetList(kRegularUsersPref);
const base::DictionaryValue* prefs_display_names =
local_state->GetDictionary(kUserDisplayName);
@@ -879,7 +869,8 @@ const User* UserManagerBase::FindUserInList(const AccountId& account_id) const {
}
bool UserManagerBase::UserExistsInList(const AccountId& account_id) const {
- const base::ListValue* user_list = GetLocalState()->GetList(kRegularUsers);
+ const base::ListValue* user_list =
+ GetLocalState()->GetList(kRegularUsersPref);
for (size_t i = 0; i < user_list->GetSize(); ++i) {
std::string email;
if (user_list->GetString(i, &email) && (account_id.GetUserEmail() == email))
@@ -904,7 +895,7 @@ void UserManagerBase::GuestUserLoggedIn() {
void UserManagerBase::AddUserRecord(User* user) {
// Add the user to the front of the user list.
- ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers);
+ ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsersPref);
prefs_users_update->Insert(
0, std::make_unique<base::Value>(user->GetAccountId().GetUserEmail()));
users_.insert(users_.begin(), user);
@@ -949,7 +940,7 @@ void UserManagerBase::RegularUserLoggedInAsEphemeral(
known_user::SetIsEphemeralUser(active_user_->GetAccountId(), true);
}
-void UserManagerBase::NotifyActiveUserChanged(const User* active_user) {
+void UserManagerBase::NotifyActiveUserChanged(User* active_user) {
DCHECK(!task_runner_ || task_runner_->RunsTasksInCurrentSequence());
for (auto& observer : session_state_observer_list_)
observer.ActiveUserChanged(active_user);
@@ -1028,7 +1019,7 @@ void UserManagerBase::RemoveNonCryptohomeData(const AccountId& account_id) {
User* UserManagerBase::RemoveRegularOrSupervisedUserFromList(
const AccountId& account_id,
bool notify) {
- ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsers);
+ ListPrefUpdate prefs_users_update(GetLocalState(), kRegularUsersPref);
prefs_users_update->Clear();
User* user = nullptr;
for (UserList::iterator it = users_.begin(); it != users_.end();) {
diff --git a/chromium/components/user_manager/user_manager_base.h b/chromium/components/user_manager/user_manager_base.h
index 886191ca1bd..a4f2d8e58d2 100644
--- a/chromium/components/user_manager/user_manager_base.h
+++ b/chromium/components/user_manager/user_manager_base.h
@@ -79,7 +79,6 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
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 AccountId& account_id) const override;
void SaveUserType(const User* user) override;
void UpdateUserAccountData(const AccountId& account_id,
const UserAccountData& account_data) override;
@@ -169,7 +168,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
std::set<AccountId>* device_local_accounts_set) = 0;
// Notifies observers that active user has changed.
- void NotifyActiveUserChanged(const User* active_user);
+ void NotifyActiveUserChanged(User* active_user);
// Notifies that user has logged in.
virtual void NotifyOnLogin();
@@ -389,7 +388,7 @@ class USER_MANAGER_EXPORT UserManagerBase : public UserManager {
// TaskRunner for UI thread.
scoped_refptr<base::TaskRunner> task_runner_;
- base::WeakPtrFactory<UserManagerBase> weak_factory_;
+ base::WeakPtrFactory<UserManagerBase> weak_factory_{this};
DISALLOW_COPY_AND_ASSIGN(UserManagerBase);
};