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 39eb49bdb6308cc72d4aa8d4f165b5035db356db..cb42359020fa1f829e70b4f1f3059921e98746e0 100644 |
--- a/chrome/browser/chromeos/login/screens/user_selection_screen.cc |
+++ b/chrome/browser/chromeos/login/screens/user_selection_screen.cc |
@@ -277,7 +277,11 @@ bool UserSelectionScreen::ShouldForceOnlineSignIn( |
if (token_status == user_manager::User::OAUTH2_TOKEN_STATUS_INVALID) |
RecordReauthReason(user->GetAccountId(), ReauthReason::OTHER); |
- return user->force_online_signin() || |
+ // We need to force an online signin if the user is marked as requiring it, |
+ // or if the user's session never completed initialization (still need to |
+ // check for policy/management state) or if there's an invalid OAUTH token |
+ // that needs to be refreshed. |
+ return user->force_online_signin() || !user->profile_ever_initialized() || |
(token_status == user_manager::User::OAUTH2_TOKEN_STATUS_INVALID) || |
(token_status == user_manager::User::OAUTH_TOKEN_STATUS_UNKNOWN); |
} |