| Index: chrome/browser/chromeos/login/screens/user_selection_screen.cc
|
| diff --git a/chrome/browser/chromeos/login/screens/user_selection_screen.cc b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
|
| index 814faee0196f4f8509c36bf03975a9ca2b9b8d0e..9ee6910254aa5ee3c248b41a730131f4250d6c69 100644
|
| --- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc
|
| +++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc
|
| @@ -405,16 +405,18 @@ void UserSelectionScreen::SendUserList() {
|
| }
|
|
|
| handler_->LoadUsers(users_list, show_guest_);
|
| +
|
| + CheckAllUserStatuses();
|
| }
|
|
|
| void UserSelectionScreen::HandleGetUsers() {
|
| SendUserList();
|
| }
|
|
|
| -void UserSelectionScreen::CheckUserStatus(const std::string& user_id) {
|
| +bool UserSelectionScreen::CheckUserStatus(const std::string& user_id) {
|
| // No checks on lock screen.
|
| if (ScreenLocker::default_screen_locker())
|
| - return;
|
| + return false;
|
|
|
| if (!token_handle_util_.get()) {
|
| token_handle_util_.reset(
|
| @@ -422,10 +424,19 @@ void UserSelectionScreen::CheckUserStatus(const std::string& user_id) {
|
| }
|
|
|
| if (token_handle_util_->HasToken(user_id)) {
|
| - token_handle_util_->CheckToken(
|
| + return token_handle_util_->CheckToken(
|
| user_id, base::Bind(&UserSelectionScreen::OnUserStatusChecked,
|
| weak_factory_.GetWeakPtr()));
|
| }
|
| + return false;
|
| +}
|
| +
|
| +void UserSelectionScreen::CheckAllUserStatuses() {
|
| + const user_manager::UserList& users = GetUsers();
|
| + for (const user_manager::User* user : users) {
|
| + // ignore return value.
|
| + CheckUserStatus(user->email());
|
| + }
|
| }
|
|
|
| void UserSelectionScreen::OnUserStatusChecked(
|
|
|