| Index: chrome/browser/chromeos/login/ui/login_display_host_impl.cc
|
| diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
|
| index 38b426af97e586f92bc419fb257dfc865fae61a7..79e18d95ff4587bcf49d15e918f9e4a843bec79a 100644
|
| --- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
|
| +++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
|
| @@ -37,6 +37,7 @@
|
| #include "chrome/browser/chromeos/login/helper.h"
|
| #include "chrome/browser/chromeos/login/login_wizard.h"
|
| #include "chrome/browser/chromeos/login/screens/core_oobe_actor.h"
|
| +#include "chrome/browser/chromeos/login/signin/token_handler_util.h"
|
| #include "chrome/browser/chromeos/login/startup_utils.h"
|
| #include "chrome/browser/chromeos/login/ui/input_events_blocker.h"
|
| #include "chrome/browser/chromeos/login/ui/keyboard_driven_oobe_key_handler.h"
|
| @@ -71,6 +72,7 @@
|
| #include "chromeos/settings/timezone_settings.h"
|
| #include "chromeos/timezone/timezone_resolver.h"
|
| #include "components/session_manager/core/session_manager.h"
|
| +#include "components/user_manager/user.h"
|
| #include "components/user_manager/user_manager.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/notification_types.h"
|
| @@ -628,6 +630,22 @@ void LoginDisplayHostImpl::StartSignInScreen(
|
| SetStatusAreaVisible(true);
|
| existing_user_controller_->Init(users);
|
|
|
| + // Validate user OAuth tokens.
|
| +
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableOAuthTokenHandlers)) {
|
| + token_handler_util_.reset(
|
| + new TokenHandlerUtil(user_manager::UserManager::Get()));
|
| + for (auto* user : users) {
|
| + auto user_id = user->GetUserID();
|
| + if (token_handler_util_->HasToken(user_id)) {
|
| + token_handler_util_->CheckToken(
|
| + user_id, base::Bind(&LoginDisplayHostImpl::OnTokenHandlerChecked,
|
| + pointer_factory_.GetWeakPtr()));
|
| + }
|
| + }
|
| + }
|
| +
|
| // We might be here after a reboot that was triggered after OOBE was complete,
|
| // so check for auto-enrollment again. This might catch a cached decision from
|
| // a previous oobe flow, or might start a new check with the server.
|
| @@ -654,6 +672,16 @@ void LoginDisplayHostImpl::StartSignInScreen(
|
| "login-wait-for-signin-state-initialize");
|
| }
|
|
|
| +void LoginDisplayHostImpl::OnTokenHandlerChecked(
|
| + const user_manager::UserID& user_id,
|
| + TokenHandlerUtil::TokenHandleStatus token_status) {
|
| + if (token_status == TokenHandlerUtil::INVALID) {
|
| + user_manager::UserManager::Get()->SaveUserOAuthStatus(
|
| + user_id, user_manager::User::OAUTH2_TOKEN_STATUS_INVALID);
|
| + token_handler_util_->DeleteToken(user_id);
|
| + }
|
| +}
|
| +
|
| void LoginDisplayHostImpl::OnPreferencesChanged() {
|
| if (is_showing_login_)
|
| webui_login_display_->OnPreferencesChanged();
|
|
|