Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4504)

Unified Diff: chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc

Issue 1063753004: Use HTML messages to inform GAIA about deviceId. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update after review. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..f78ac1762ea76349660b28d8a6aec8e3fd5cc88b 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));
+
+ 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,9 +936,13 @@ void GaiaScreenHandler::LoadAuthExtension(bool force,
context.has_users = !Delegate()->GetUsers().empty();
}
+ if (!context.email.empty()) {
+ context.device_id = user_manager::UserManager::Get()->GetKnownUserDeviceId(
+ gaia::CanonicalizeEmail(context.email));
+ }
+
if (context.device_id.empty()) {
Nikita (slow) 2015/04/23 12:23:12 nit: drop {}
Alexander Alekseev 2015/04/24 12:01:57 Done.
- context.device_id = base::GenerateGUID();
- DCHECK(!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
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698