| Index: chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
|
| index bffd9ef2b8a95f44bcb4a4519612dbcec09a2fde..e771305e5032b032e125a337ea12ef738bc55a4f 100644
|
| --- a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
|
| @@ -176,8 +176,10 @@ GaiaScreenHandler::GaiaScreenHandler(
|
| test_expects_complete_login_(false),
|
| use_easy_bootstrap_(false),
|
| signin_screen_handler_(NULL),
|
| + temporary_device_id_(base::GenerateGUID()),
|
| weak_factory_(this) {
|
| DCHECK(network_state_informer_.get());
|
| + DCHECK(!temporary_device_id_.empty());
|
| }
|
|
|
| GaiaScreenHandler::~GaiaScreenHandler() {
|
| @@ -416,6 +418,7 @@ void GaiaScreenHandler::RegisterMessages() {
|
| &GaiaScreenHandler::HandleToggleWebviewSignin);
|
| AddCallback("toggleEasyBootstrap",
|
| &GaiaScreenHandler::HandleToggleEasyBootstrap);
|
| + AddCallback("attemptLogin", &GaiaScreenHandler::HandleAttemptLogin);
|
| }
|
|
|
| void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) {
|
| @@ -578,6 +581,16 @@ void GaiaScreenHandler::HandleToggleEasyBootstrap() {
|
| LoadAuthExtension(kForceReload, kSilentLoad, kNoOfflineUI);
|
| }
|
|
|
| +void GaiaScreenHandler::HandleAttemptLogin(const std::string& email) {
|
| + std::string device_id =
|
| + user_manager::UserManager::Get()->GetKnownUserDeviceId(email);
|
| + if (!device_id.empty() && StartupUtils::IsWebviewSigninEnabled()) {
|
| + base::DictionaryValue params;
|
| + params.SetString("deviceId", device_id);
|
| + CallJS("updateDeviceId", params);
|
| + }
|
| +}
|
| +
|
| void GaiaScreenHandler::HandleGaiaUIReady() {
|
| if (focus_stolen_) {
|
| // Set focus to the Gaia page.
|
| @@ -920,9 +933,13 @@ void GaiaScreenHandler::LoadAuthExtension(bool force,
|
| context.has_users = !Delegate()->GetUsers().empty();
|
| }
|
|
|
| + if (!context.email.empty()) {
|
| + context.device_id =
|
| + user_manager::UserManager::Get()->GetKnownUserDeviceId(context.email);
|
| + }
|
| +
|
| if (context.device_id.empty()) {
|
| - context.device_id = base::GenerateGUID();
|
| - DCHECK(!context.device_id.empty());
|
| + context.device_id = temporary_device_id_;
|
| }
|
| context.session_is_ephemeral =
|
| ChromeUserManager::Get()->AreEphemeralUsersEnabled();
|
|
|