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

Side by Side 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/guid.h" 8 #include "base/guid.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI); 409 AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI);
410 AddCallback("scrapedPasswordCount", 410 AddCallback("scrapedPasswordCount",
411 &GaiaScreenHandler::HandleScrapedPasswordCount); 411 &GaiaScreenHandler::HandleScrapedPasswordCount);
412 AddCallback("scrapedPasswordVerificationFailed", 412 AddCallback("scrapedPasswordVerificationFailed",
413 &GaiaScreenHandler::HandleScrapedPasswordVerificationFailed); 413 &GaiaScreenHandler::HandleScrapedPasswordVerificationFailed);
414 AddCallback("loginWebuiReady", &GaiaScreenHandler::HandleGaiaUIReady); 414 AddCallback("loginWebuiReady", &GaiaScreenHandler::HandleGaiaUIReady);
415 AddCallback("toggleWebviewSignin", 415 AddCallback("toggleWebviewSignin",
416 &GaiaScreenHandler::HandleToggleWebviewSignin); 416 &GaiaScreenHandler::HandleToggleWebviewSignin);
417 AddCallback("toggleEasyBootstrap", 417 AddCallback("toggleEasyBootstrap",
418 &GaiaScreenHandler::HandleToggleEasyBootstrap); 418 &GaiaScreenHandler::HandleToggleEasyBootstrap);
419 AddCallback("attemptLogin", &GaiaScreenHandler::HandleAttemptLogin);
419 } 420 }
420 421
421 void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) { 422 void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) {
422 const net::Error frame_error = static_cast<net::Error>(-status); 423 const net::Error frame_error = static_cast<net::Error>(-status);
423 if (frame_error == net::ERR_ABORTED) { 424 if (frame_error == net::ERR_ABORTED) {
424 LOG(WARNING) << "Ignoring Gaia frame error: " << frame_error; 425 LOG(WARNING) << "Ignoring Gaia frame error: " << frame_error;
425 return; 426 return;
426 } 427 }
427 frame_error_ = frame_error; 428 frame_error_ = frame_error;
428 if (frame_error == net::OK) { 429 if (frame_error == net::OK) {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 } 572 }
572 573
573 void GaiaScreenHandler::HandleToggleEasyBootstrap() { 574 void GaiaScreenHandler::HandleToggleEasyBootstrap() {
574 use_easy_bootstrap_ = !use_easy_bootstrap_; 575 use_easy_bootstrap_ = !use_easy_bootstrap_;
575 const bool kForceReload = true; 576 const bool kForceReload = true;
576 const bool kSilentLoad = true; 577 const bool kSilentLoad = true;
577 const bool kNoOfflineUI = false; 578 const bool kNoOfflineUI = false;
578 LoadAuthExtension(kForceReload, kSilentLoad, kNoOfflineUI); 579 LoadAuthExtension(kForceReload, kSilentLoad, kNoOfflineUI);
579 } 580 }
580 581
582 void GaiaScreenHandler::HandleAttemptLogin(const std::string& email) {
583 std::string device_id =
584 user_manager::UserManager::Get()->GetKnownUserDeviceId(
585 gaia::CanonicalizeEmail(email));
586
587 if (!device_id.empty() && StartupUtils::IsWebviewSigninEnabled()) {
588 base::DictionaryValue params;
589 params.SetString("deviceId", device_id);
590 CallJS("updateDeviceId", params);
591 } else {
592 // Mark current temporary device Id as used.
593 temporary_device_id_ = std::string();
594 }
595 }
596
581 void GaiaScreenHandler::HandleGaiaUIReady() { 597 void GaiaScreenHandler::HandleGaiaUIReady() {
582 if (focus_stolen_) { 598 if (focus_stolen_) {
583 // Set focus to the Gaia page. 599 // Set focus to the Gaia page.
584 // TODO(altimofeev): temporary solution, until focus parameters are 600 // TODO(altimofeev): temporary solution, until focus parameters are
585 // implemented on the Gaia side. 601 // implemented on the Gaia side.
586 // Do this only once. Any subsequent call would relod GAIA frame. 602 // Do this only once. Any subsequent call would relod GAIA frame.
587 focus_stolen_ = false; 603 focus_stolen_ = false;
588 const char code[] = 604 const char code[] =
589 "if (typeof gWindowOnLoad != 'undefined') gWindowOnLoad();"; 605 "if (typeof gWindowOnLoad != 'undefined') gWindowOnLoad();";
590 content::RenderFrameHost* frame = InlineLoginUI::GetAuthFrame( 606 content::RenderFrameHost* frame = InlineLoginUI::GetAuthFrame(
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 929
914 std::string gaia_id; 930 std::string gaia_id;
915 if (user_manager::UserManager::Get()->FindGaiaID(context.email, &gaia_id)) 931 if (user_manager::UserManager::Get()->FindGaiaID(context.email, &gaia_id))
916 context.gaia_id = gaia_id; 932 context.gaia_id = gaia_id;
917 933
918 if (Delegate()) { 934 if (Delegate()) {
919 context.show_users = Delegate()->IsShowUsers(); 935 context.show_users = Delegate()->IsShowUsers();
920 context.has_users = !Delegate()->GetUsers().empty(); 936 context.has_users = !Delegate()->GetUsers().empty();
921 } 937 }
922 938
939 if (!context.email.empty()) {
940 context.device_id = user_manager::UserManager::Get()->GetKnownUserDeviceId(
941 gaia::CanonicalizeEmail(context.email));
942 }
943
923 if (context.device_id.empty()) { 944 if (context.device_id.empty()) {
Nikita (slow) 2015/04/23 12:23:12 nit: drop {}
Alexander Alekseev 2015/04/24 12:01:57 Done.
924 context.device_id = base::GenerateGUID(); 945 context.device_id = GetTemporaryDeviceId();
925 DCHECK(!context.device_id.empty());
926 } 946 }
927 context.session_is_ephemeral = 947 context.session_is_ephemeral =
928 ChromeUserManager::Get()->AreEphemeralUsersEnabled(); 948 ChromeUserManager::Get()->AreEphemeralUsersEnabled();
929 949
930 populated_email_.clear(); 950 populated_email_.clear();
931 951
932 LoadGaia(context); 952 LoadGaia(context);
933 } 953 }
934 954
935 void GaiaScreenHandler::UpdateState(NetworkError::ErrorReason reason) { 955 void GaiaScreenHandler::UpdateState(NetworkError::ErrorReason reason) {
936 if (signin_screen_handler_) 956 if (signin_screen_handler_)
937 signin_screen_handler_->UpdateState(reason); 957 signin_screen_handler_->UpdateState(reason);
938 } 958 }
939 959
940 SigninScreenHandlerDelegate* GaiaScreenHandler::Delegate() { 960 SigninScreenHandlerDelegate* GaiaScreenHandler::Delegate() {
941 DCHECK(signin_screen_handler_); 961 DCHECK(signin_screen_handler_);
942 return signin_screen_handler_->delegate_; 962 return signin_screen_handler_->delegate_;
943 } 963 }
944 964
945 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) { 965 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) {
946 signin_screen_handler_ = handler; 966 signin_screen_handler_ = handler;
947 } 967 }
948 968
969 std::string GaiaScreenHandler::GetTemporaryDeviceId() {
970 if (temporary_device_id_.empty())
971 temporary_device_id_ = base::GenerateGUID();
972
973 DCHECK(!temporary_device_id_.empty());
974 return temporary_device_id_;
975 }
976
949 } // namespace chromeos 977 } // namespace chromeos
OLDNEW
« 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