Chromium Code Reviews| 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..84153c926aad9a45997c498224a66ba096adf96f 100644 |
| --- a/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc |
| +++ b/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc |
| @@ -416,6 +416,7 @@ void GaiaScreenHandler::RegisterMessages() { |
| &GaiaScreenHandler::HandleToggleWebviewSignin); |
| AddCallback("toggleEasyBootstrap", |
| &GaiaScreenHandler::HandleToggleEasyBootstrap); |
| + AddCallback("attemptLogin", &GaiaScreenHandler::HandleAttemptLogin); |
| } |
| void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) { |
| @@ -578,6 +579,21 @@ void GaiaScreenHandler::HandleToggleEasyBootstrap() { |
| LoadAuthExtension(kForceReload, kSilentLoad, kNoOfflineUI); |
| } |
| +void GaiaScreenHandler::HandleAttemptLogin(const std::string& email) { |
| + std::string device_id = |
| + user_manager::UserManager::Get()->GetKnownUserDeviceId( |
| + gaia::CanonicalizeEmail(email)); |
|
Nikita (slow)
2015/04/29 12:42:24
This doesn't work:
[5977:5977:0429/154046:ERROR:g
|
| + |
| + if (!device_id.empty() && StartupUtils::IsWebviewSigninEnabled()) { |
| + base::DictionaryValue params; |
| + params.SetString("deviceId", device_id); |
| + CallJS("updateDeviceId", params); |
| + } else { |
| + // Mark current temporary device Id as used. |
| + temporary_device_id_ = std::string(); |
| + } |
| +} |
| + |
| void GaiaScreenHandler::HandleGaiaUIReady() { |
| if (focus_stolen_) { |
| // Set focus to the Gaia page. |
| @@ -920,10 +936,14 @@ void GaiaScreenHandler::LoadAuthExtension(bool force, |
| context.has_users = !Delegate()->GetUsers().empty(); |
| } |
| - if (context.device_id.empty()) { |
| - context.device_id = base::GenerateGUID(); |
| - DCHECK(!context.device_id.empty()); |
| + if (!context.email.empty()) { |
| + context.device_id = user_manager::UserManager::Get()->GetKnownUserDeviceId( |
| + gaia::CanonicalizeEmail(context.email)); |
| } |
| + |
| + if (context.device_id.empty()) |
| + context.device_id = GetTemporaryDeviceId(); |
| + |
| context.session_is_ephemeral = |
| ChromeUserManager::Get()->AreEphemeralUsersEnabled(); |
| @@ -946,4 +966,12 @@ void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) { |
| signin_screen_handler_ = handler; |
| } |
| +std::string GaiaScreenHandler::GetTemporaryDeviceId() { |
| + if (temporary_device_id_.empty()) |
| + temporary_device_id_ = base::GenerateGUID(); |
| + |
| + DCHECK(!temporary_device_id_.empty()); |
| + return temporary_device_id_; |
| +} |
| + |
| } // namespace chromeos |