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

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..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
« 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