Index: chrome/browser/chromeos/login/existing_user_controller.cc |
diff --git a/chrome/browser/chromeos/login/existing_user_controller.cc b/chrome/browser/chromeos/login/existing_user_controller.cc |
index 95257862b679616087f511ac7e49064e1792702e..993749968e21e638b0d9ca5346f8249fd5d6bffe 100644 |
--- a/chrome/browser/chromeos/login/existing_user_controller.cc |
+++ b/chrome/browser/chromeos/login/existing_user_controller.cc |
@@ -44,6 +44,7 @@ |
#include "chrome/browser/chromeos/profiles/profile_helper.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "chrome/browser/chromeos/system/device_disabling_manager.h" |
+#include "chrome/browser/signin/chrome_signin_client.h" |
#include "chrome/browser/signin/easy_unlock_service.h" |
#include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h" |
#include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" |
@@ -1119,7 +1120,20 @@ void ExistingUserController::ContinueLoginIfDeviceNotDisabled( |
continuation.Run(); |
} |
-void ExistingUserController::DoCompleteLogin(const UserContext& user_context) { |
+void ExistingUserController::DoCompleteLogin( |
+ const UserContext& user_context_wo_device_id) { |
+ UserContext user_context = user_context_wo_device_id; |
+ std::string device_id = |
+ user_manager::UserManager::Get()->GetKnownUserDeviceId( |
+ user_context.GetUserID()); |
+ if (device_id.empty()) { |
+ bool is_ephemeral = |
+ ChromeUserManager::Get()->AreEphemeralUsersEnabled() && |
+ user_context.GetUserID() != ChromeUserManager::Get()->GetOwnerEmail(); |
+ device_id = ChromeSigninClient::GenerateSigninScopedDeviceID(is_ephemeral); |
+ } |
+ user_context.SetDeviceId(device_id); |
+ |
PerformPreLoginActions(user_context); |
if (!time_init_.is_null()) { |