| 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(
|
|
|