| Index: chrome/browser/chromeos/login/session/user_session_manager.cc
|
| diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc
|
| index edecf3a3207452a1d459eb3acaaa385835ab11b2..c4f03af57ef0e4311aa150f5e8b3e826bb614297 100644
|
| --- a/chrome/browser/chromeos/login/session/user_session_manager.cc
|
| +++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
|
| @@ -1672,4 +1672,43 @@ void UserSessionManager::SendUserPodsMetrics() {
|
| NUM_USER_PODS_DISPLAY);
|
| }
|
|
|
| +void UserSessionManager::OnOAuth2TokensFetched(UserContext context) {
|
| + if (StartupUtils::IsWebviewSigninEnabled() && TokenHandlesEnabled()) {
|
| + if (!token_handle_util_.get()) {
|
| + token_handle_util_.reset(
|
| + new TokenHandleUtil(user_manager::UserManager::Get()));
|
| + }
|
| + if (token_handle_util_->ShouldObtainHandle(context.GetUserID())) {
|
| + token_handle_util_->GetTokenHandle(
|
| + context.GetUserID(), context.GetAccessToken(),
|
| + base::Bind(&UserSessionManager::OnTokenHandleObtained,
|
| + weak_factory_.GetWeakPtr()));
|
| + }
|
| + }
|
| +}
|
| +
|
| +void UserSessionManager::OnTokenHandleObtained(
|
| + const user_manager::UserID& id,
|
| + TokenHandleUtil::TokenHandleStatus status) {
|
| + if (status != TokenHandleUtil::VALID) {
|
| + LOG(ERROR) << "OAuth2 token handle fetch failed.";
|
| + return;
|
| + }
|
| +}
|
| +
|
| +bool UserSessionManager::TokenHandlesEnabled() {
|
| + bool ephemeral_users_enabled = false;
|
| + bool show_names_on_signin = true;
|
| + auto cros_settings = CrosSettings::Get();
|
| + cros_settings->GetBoolean(kAccountsPrefEphemeralUsersEnabled,
|
| + &ephemeral_users_enabled);
|
| + cros_settings->GetBoolean(kAccountsPrefShowUserNamesOnSignIn,
|
| + &show_names_on_signin);
|
| + return show_names_on_signin && !ephemeral_users_enabled;
|
| +}
|
| +
|
| +void UserSessionManager::Shutdown() {
|
| + token_handle_util_.reset();
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|