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

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: Fix bugs. 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 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 dns_clear_task_running_(false), 169 dns_clear_task_running_(false),
170 cookies_cleared_(false), 170 cookies_cleared_(false),
171 show_when_dns_and_cookies_cleared_(false), 171 show_when_dns_and_cookies_cleared_(false),
172 focus_stolen_(false), 172 focus_stolen_(false),
173 gaia_silent_load_(false), 173 gaia_silent_load_(false),
174 using_saml_api_(false), 174 using_saml_api_(false),
175 is_enrolling_consumer_management_(false), 175 is_enrolling_consumer_management_(false),
176 test_expects_complete_login_(false), 176 test_expects_complete_login_(false),
177 use_easy_bootstrap_(false), 177 use_easy_bootstrap_(false),
178 signin_screen_handler_(NULL), 178 signin_screen_handler_(NULL),
179 temporary_device_id_(base::GenerateGUID()),
Nikita (slow) 2015/04/22 16:46:52 As discussed, let's store this device ID only to a
Alexander Alekseev 2015/04/22 17:58:07 Done.
179 weak_factory_(this) { 180 weak_factory_(this) {
180 DCHECK(network_state_informer_.get()); 181 DCHECK(network_state_informer_.get());
182 DCHECK(!temporary_device_id_.empty());
181 } 183 }
182 184
183 GaiaScreenHandler::~GaiaScreenHandler() { 185 GaiaScreenHandler::~GaiaScreenHandler() {
184 } 186 }
185 187
186 void GaiaScreenHandler::LoadGaia(const GaiaContext& context) { 188 void GaiaScreenHandler::LoadGaia(const GaiaContext& context) {
187 if (!auth_extension_) { 189 if (!auth_extension_) {
188 Profile* signin_profile = ProfileHelper::GetSigninProfile(); 190 Profile* signin_profile = ProfileHelper::GetSigninProfile();
189 auth_extension_.reset(new ScopedGaiaAuthExtension(signin_profile)); 191 auth_extension_.reset(new ScopedGaiaAuthExtension(signin_profile));
190 } 192 }
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI); 411 AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI);
410 AddCallback("scrapedPasswordCount", 412 AddCallback("scrapedPasswordCount",
411 &GaiaScreenHandler::HandleScrapedPasswordCount); 413 &GaiaScreenHandler::HandleScrapedPasswordCount);
412 AddCallback("scrapedPasswordVerificationFailed", 414 AddCallback("scrapedPasswordVerificationFailed",
413 &GaiaScreenHandler::HandleScrapedPasswordVerificationFailed); 415 &GaiaScreenHandler::HandleScrapedPasswordVerificationFailed);
414 AddCallback("loginWebuiReady", &GaiaScreenHandler::HandleGaiaUIReady); 416 AddCallback("loginWebuiReady", &GaiaScreenHandler::HandleGaiaUIReady);
415 AddCallback("toggleWebviewSignin", 417 AddCallback("toggleWebviewSignin",
416 &GaiaScreenHandler::HandleToggleWebviewSignin); 418 &GaiaScreenHandler::HandleToggleWebviewSignin);
417 AddCallback("toggleEasyBootstrap", 419 AddCallback("toggleEasyBootstrap",
418 &GaiaScreenHandler::HandleToggleEasyBootstrap); 420 &GaiaScreenHandler::HandleToggleEasyBootstrap);
421 AddCallback("attemptLogin", &GaiaScreenHandler::HandleAttemptLogin);
419 } 422 }
420 423
421 void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) { 424 void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) {
422 const net::Error frame_error = static_cast<net::Error>(-status); 425 const net::Error frame_error = static_cast<net::Error>(-status);
423 if (frame_error == net::ERR_ABORTED) { 426 if (frame_error == net::ERR_ABORTED) {
424 LOG(WARNING) << "Ignoring Gaia frame error: " << frame_error; 427 LOG(WARNING) << "Ignoring Gaia frame error: " << frame_error;
425 return; 428 return;
426 } 429 }
427 frame_error_ = frame_error; 430 frame_error_ = frame_error;
428 if (frame_error == net::OK) { 431 if (frame_error == net::OK) {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 } 574 }
572 575
573 void GaiaScreenHandler::HandleToggleEasyBootstrap() { 576 void GaiaScreenHandler::HandleToggleEasyBootstrap() {
574 use_easy_bootstrap_ = !use_easy_bootstrap_; 577 use_easy_bootstrap_ = !use_easy_bootstrap_;
575 const bool kForceReload = true; 578 const bool kForceReload = true;
576 const bool kSilentLoad = true; 579 const bool kSilentLoad = true;
577 const bool kNoOfflineUI = false; 580 const bool kNoOfflineUI = false;
578 LoadAuthExtension(kForceReload, kSilentLoad, kNoOfflineUI); 581 LoadAuthExtension(kForceReload, kSilentLoad, kNoOfflineUI);
579 } 582 }
580 583
584 void GaiaScreenHandler::HandleAttemptLogin(const std::string& email) {
585 std::string device_id =
586 user_manager::UserManager::Get()->GetKnownUserDeviceId(
587 gaia::CanonicalizeEmail(email));
588
589 if (!device_id.empty() && StartupUtils::IsWebviewSigninEnabled()) {
590 base::DictionaryValue params;
591 params.SetString("deviceId", device_id);
592 CallJS("updateDeviceId", params);
593 }
594 }
595
581 void GaiaScreenHandler::HandleGaiaUIReady() { 596 void GaiaScreenHandler::HandleGaiaUIReady() {
582 if (focus_stolen_) { 597 if (focus_stolen_) {
583 // Set focus to the Gaia page. 598 // Set focus to the Gaia page.
584 // TODO(altimofeev): temporary solution, until focus parameters are 599 // TODO(altimofeev): temporary solution, until focus parameters are
585 // implemented on the Gaia side. 600 // implemented on the Gaia side.
586 // Do this only once. Any subsequent call would relod GAIA frame. 601 // Do this only once. Any subsequent call would relod GAIA frame.
587 focus_stolen_ = false; 602 focus_stolen_ = false;
588 const char code[] = 603 const char code[] =
589 "if (typeof gWindowOnLoad != 'undefined') gWindowOnLoad();"; 604 "if (typeof gWindowOnLoad != 'undefined') gWindowOnLoad();";
590 content::RenderFrameHost* frame = InlineLoginUI::GetAuthFrame( 605 content::RenderFrameHost* frame = InlineLoginUI::GetAuthFrame(
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 928
914 std::string gaia_id; 929 std::string gaia_id;
915 if (user_manager::UserManager::Get()->FindGaiaID(context.email, &gaia_id)) 930 if (user_manager::UserManager::Get()->FindGaiaID(context.email, &gaia_id))
916 context.gaia_id = gaia_id; 931 context.gaia_id = gaia_id;
917 932
918 if (Delegate()) { 933 if (Delegate()) {
919 context.show_users = Delegate()->IsShowUsers(); 934 context.show_users = Delegate()->IsShowUsers();
920 context.has_users = !Delegate()->GetUsers().empty(); 935 context.has_users = !Delegate()->GetUsers().empty();
921 } 936 }
922 937
938 if (!context.email.empty()) {
939 context.device_id = user_manager::UserManager::Get()->GetKnownUserDeviceId(
940 gaia::CanonicalizeEmail(context.email));
941 }
942
923 if (context.device_id.empty()) { 943 if (context.device_id.empty()) {
924 context.device_id = base::GenerateGUID(); 944 context.device_id = temporary_device_id_;
925 DCHECK(!context.device_id.empty());
926 } 945 }
927 context.session_is_ephemeral = 946 context.session_is_ephemeral =
928 ChromeUserManager::Get()->AreEphemeralUsersEnabled(); 947 ChromeUserManager::Get()->AreEphemeralUsersEnabled();
929 948
930 populated_email_.clear(); 949 populated_email_.clear();
931 950
932 LoadGaia(context); 951 LoadGaia(context);
933 } 952 }
934 953
935 void GaiaScreenHandler::UpdateState(NetworkError::ErrorReason reason) { 954 void GaiaScreenHandler::UpdateState(NetworkError::ErrorReason reason) {
936 if (signin_screen_handler_) 955 if (signin_screen_handler_)
937 signin_screen_handler_->UpdateState(reason); 956 signin_screen_handler_->UpdateState(reason);
938 } 957 }
939 958
940 SigninScreenHandlerDelegate* GaiaScreenHandler::Delegate() { 959 SigninScreenHandlerDelegate* GaiaScreenHandler::Delegate() {
941 DCHECK(signin_screen_handler_); 960 DCHECK(signin_screen_handler_);
942 return signin_screen_handler_->delegate_; 961 return signin_screen_handler_->delegate_;
943 } 962 }
944 963
945 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) { 964 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) {
946 signin_screen_handler_ = handler; 965 signin_screen_handler_ = handler;
947 } 966 }
948 967
949 } // namespace chromeos 968 } // 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