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 ae3542276ad6a9a6b5fc0c85cb12d16021e157b7..36a1e0733826b421eec61a150bb80c1b3308cee5 100644 |
--- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc |
+++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc |
@@ -404,16 +404,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( |
@@ -421,10 +423,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( |