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

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

Issue 789353004: Host Chrome OS GAIA signin page in webview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase + switch to messages instead of listener interface Created 5 years, 11 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
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/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chrome/browser/browser_process.h" 13 #include "chrome/browser/browser_process.h"
14 #include "chrome/browser/browser_shutdown.h" 14 #include "chrome/browser/browser_shutdown.h"
15 #include "chrome/browser/chromeos/input_method/input_method_util.h" 15 #include "chrome/browser/chromeos/input_method/input_method_util.h"
16 #include "chrome/browser/chromeos/language_preferences.h" 16 #include "chrome/browser/chromeos/language_preferences.h"
17 #include "chrome/browser/chromeos/login/startup_utils.h"
17 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h" 18 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h"
18 #include "chrome/browser/chromeos/policy/consumer_management_service.h" 19 #include "chrome/browser/chromeos/policy/consumer_management_service.h"
19 #include "chrome/browser/chromeos/policy/consumer_management_stage.h" 20 #include "chrome/browser/chromeos/policy/consumer_management_stage.h"
20 #include "chrome/browser/chromeos/profiles/profile_helper.h" 21 #include "chrome/browser/chromeos/profiles/profile_helper.h"
21 #include "chrome/browser/chromeos/settings/cros_settings.h" 22 #include "chrome/browser/chromeos/settings/cros_settings.h"
22 #include "chrome/browser/io_thread.h" 23 #include "chrome/browser/io_thread.h"
24 #include "chrome/browser/lifetime/application_lifetime.h"
23 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" 25 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
24 #include "chrome/browser/ui/webui/signin/inline_login_ui.h" 26 #include "chrome/browser/ui/webui/signin/inline_login_ui.h"
25 #include "chrome/common/chrome_version_info.h" 27 #include "chrome/common/chrome_version_info.h"
26 #include "chrome/common/pref_names.h" 28 #include "chrome/common/pref_names.h"
27 #include "chrome/grit/generated_resources.h" 29 #include "chrome/grit/generated_resources.h"
28 #include "chromeos/chromeos_switches.h" 30 #include "chromeos/chromeos_switches.h"
29 #include "chromeos/settings/cros_settings_names.h" 31 #include "chromeos/settings/cros_settings_names.h"
30 #include "components/user_manager/user_manager.h" 32 #include "components/user_manager/user_manager.h"
31 #include "content/public/browser/browser_thread.h" 33 #include "content/public/browser/browser_thread.h"
32 #include "content/public/browser/render_frame_host.h" 34 #include "content/public/browser/render_frame_host.h"
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 builder->Add("fatalErrorMessageNoPassword", 292 builder->Add("fatalErrorMessageNoPassword",
291 IDS_LOGIN_FATAL_ERROR_NO_PASSWORD); 293 IDS_LOGIN_FATAL_ERROR_NO_PASSWORD);
292 builder->Add("fatalErrorMessageVerificationFailed", 294 builder->Add("fatalErrorMessageVerificationFailed",
293 IDS_LOGIN_FATAL_ERROR_PASSWORD_VERIFICATION); 295 IDS_LOGIN_FATAL_ERROR_PASSWORD_VERIFICATION);
294 builder->Add("fatalErrorMessageInsecureURL", 296 builder->Add("fatalErrorMessageInsecureURL",
295 IDS_LOGIN_FATAL_ERROR_TEXT_INSECURE_URL); 297 IDS_LOGIN_FATAL_ERROR_TEXT_INSECURE_URL);
296 builder->Add("fatalErrorInstructions", IDS_LOGIN_FATAL_ERROR_INSTRUCTIONS); 298 builder->Add("fatalErrorInstructions", IDS_LOGIN_FATAL_ERROR_INSTRUCTIONS);
297 builder->Add("fatalErrorDismissButton", IDS_OK); 299 builder->Add("fatalErrorDismissButton", IDS_OK);
298 } 300 }
299 301
302 void GaiaScreenHandler::GetAdditionalParameters(base::DictionaryValue* dict) {
303 dict->SetBoolean("isWebviewSignin", StartupUtils::IsWebviewSigninEnabled());
304 }
305
300 void GaiaScreenHandler::Initialize() { 306 void GaiaScreenHandler::Initialize() {
301 } 307 }
302 308
303 void GaiaScreenHandler::RegisterMessages() { 309 void GaiaScreenHandler::RegisterMessages() {
304 AddCallback("frameLoadingCompleted", 310 AddCallback("frameLoadingCompleted",
305 &GaiaScreenHandler::HandleFrameLoadingCompleted); 311 &GaiaScreenHandler::HandleFrameLoadingCompleted);
306 AddCallback("completeLogin", &GaiaScreenHandler::HandleCompleteLogin); 312 AddCallback("completeLogin", &GaiaScreenHandler::HandleCompleteLogin);
307 AddCallback("completeAuthentication", 313 AddCallback("completeAuthentication",
308 &GaiaScreenHandler::HandleCompleteAuthentication); 314 &GaiaScreenHandler::HandleCompleteAuthentication);
309 AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI); 315 AddCallback("usingSAMLAPI", &GaiaScreenHandler::HandleUsingSAMLAPI);
310 AddCallback("scrapedPasswordCount", 316 AddCallback("scrapedPasswordCount",
311 &GaiaScreenHandler::HandleScrapedPasswordCount); 317 &GaiaScreenHandler::HandleScrapedPasswordCount);
312 AddCallback("scrapedPasswordVerificationFailed", 318 AddCallback("scrapedPasswordVerificationFailed",
313 &GaiaScreenHandler::HandleScrapedPasswordVerificationFailed); 319 &GaiaScreenHandler::HandleScrapedPasswordVerificationFailed);
314 AddCallback("loginWebuiReady", &GaiaScreenHandler::HandleGaiaUIReady); 320 AddCallback("loginWebuiReady", &GaiaScreenHandler::HandleGaiaUIReady);
315 AddCallback("switchToFullTab", &GaiaScreenHandler::HandleSwitchToFullTab); 321 AddCallback("switchToFullTab", &GaiaScreenHandler::HandleSwitchToFullTab);
322 AddCallback("toggleWebviewSignin",
323 &GaiaScreenHandler::HandleToggleWebviewSignin);
316 } 324 }
317 325
318 void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) { 326 void GaiaScreenHandler::HandleFrameLoadingCompleted(int status) {
319 const net::Error frame_error = static_cast<net::Error>(-status); 327 const net::Error frame_error = static_cast<net::Error>(-status);
320 if (frame_error == net::ERR_ABORTED) { 328 if (frame_error == net::ERR_ABORTED) {
321 LOG(WARNING) << "Ignoring Gaia frame error: " << frame_error; 329 LOG(WARNING) << "Ignoring Gaia frame error: " << frame_error;
322 return; 330 return;
323 } 331 }
324 frame_error_ = frame_error; 332 frame_error_ = frame_error;
325 if (frame_error == net::OK) { 333 if (frame_error == net::OK) {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 } 409 }
402 410
403 void GaiaScreenHandler::HandleScrapedPasswordVerificationFailed() { 411 void GaiaScreenHandler::HandleScrapedPasswordVerificationFailed() {
404 RecordSAMLScrapingVerificationResultInHistogram(false); 412 RecordSAMLScrapingVerificationResultInHistogram(false);
405 } 413 }
406 414
407 void GaiaScreenHandler::HandleSwitchToFullTab() { 415 void GaiaScreenHandler::HandleSwitchToFullTab() {
408 CallJS("switchToFullTab"); 416 CallJS("switchToFullTab");
409 } 417 }
410 418
419 void GaiaScreenHandler::HandleToggleWebviewSignin() {
420 if (StartupUtils::EnableWebviewSignin(
421 !StartupUtils::IsWebviewSigninEnabled())) {
422 chrome::AttemptRestart();
423 }
424 }
425
411 void GaiaScreenHandler::HandleGaiaUIReady() { 426 void GaiaScreenHandler::HandleGaiaUIReady() {
412 if (focus_stolen_) { 427 if (focus_stolen_) {
413 // Set focus to the Gaia page. 428 // Set focus to the Gaia page.
414 // TODO(altimofeev): temporary solution, until focus parameters are 429 // TODO(altimofeev): temporary solution, until focus parameters are
415 // implemented on the Gaia side. 430 // implemented on the Gaia side.
416 // Do this only once. Any subsequent call would relod GAIA frame. 431 // Do this only once. Any subsequent call would relod GAIA frame.
417 focus_stolen_ = false; 432 focus_stolen_ = false;
418 const char code[] = 433 const char code[] =
419 "if (typeof gWindowOnLoad != 'undefined') gWindowOnLoad();"; 434 "if (typeof gWindowOnLoad != 'undefined') gWindowOnLoad();";
420 content::RenderFrameHost* frame = InlineLoginUI::GetAuthIframe( 435 content::RenderFrameHost* frame = InlineLoginUI::GetAuthIframe(
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 751
737 SigninScreenHandlerDelegate* GaiaScreenHandler::Delegate() { 752 SigninScreenHandlerDelegate* GaiaScreenHandler::Delegate() {
738 DCHECK(signin_screen_handler_); 753 DCHECK(signin_screen_handler_);
739 return signin_screen_handler_->delegate_; 754 return signin_screen_handler_->delegate_;
740 } 755 }
741 756
742 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) { 757 void GaiaScreenHandler::SetSigninScreenHandler(SigninScreenHandler* handler) {
743 signin_screen_handler_ = handler; 758 signin_screen_handler_ = handler;
744 } 759 }
745 } // namespace chromeos 760 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h ('k') | chrome/browser/ui/webui/chromeos/login/oobe_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698