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

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

Issue 2298073003: Better access to offline login flow from user pods (Closed)
Patch Set: Cleaned up for review Created 4 years, 3 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/signin_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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/signin_screen_handler.h" 5 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <vector> 10 #include <vector>
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 network_error_model_->SetErrorState(NetworkError::ERROR_STATE_OFFLINE, 824 network_error_model_->SetErrorState(NetworkError::ERROR_STATE_OFFLINE,
825 std::string()); 825 std::string());
826 } 826 }
827 827
828 const bool guest_signin_allowed = 828 const bool guest_signin_allowed =
829 IsGuestSigninAllowed() && 829 IsGuestSigninAllowed() &&
830 IsSigninScreenError(network_error_model_->GetErrorState()); 830 IsSigninScreenError(network_error_model_->GetErrorState());
831 network_error_model_->AllowGuestSignin(guest_signin_allowed); 831 network_error_model_->AllowGuestSignin(guest_signin_allowed);
832 832
833 const bool offline_login_allowed = 833 const bool offline_login_allowed =
834 IsOfflineLoginAllowed() &&
835 IsSigninScreenError(network_error_model_->GetErrorState()) && 834 IsSigninScreenError(network_error_model_->GetErrorState()) &&
836 network_error_model_->GetErrorState() != 835 network_error_model_->GetErrorState() !=
837 NetworkError::ERROR_STATE_AUTH_EXT_TIMEOUT; 836 NetworkError::ERROR_STATE_AUTH_EXT_TIMEOUT;
838 network_error_model_->AllowOfflineLogin(offline_login_allowed); 837 network_error_model_->AllowOfflineLogin(offline_login_allowed);
839 838
840 if (GetCurrentScreen() != OobeScreen::SCREEN_ERROR_MESSAGE) { 839 if (GetCurrentScreen() != OobeScreen::SCREEN_ERROR_MESSAGE) {
841 network_error_model_->SetUIState(NetworkError::UI_STATE_SIGNIN); 840 network_error_model_->SetUIState(NetworkError::UI_STATE_SIGNIN);
842 network_error_model_->SetParentScreen(OobeScreen::SCREEN_GAIA_SIGNIN); 841 network_error_model_->SetParentScreen(OobeScreen::SCREEN_GAIA_SIGNIN);
843 network_error_model_->Show(); 842 network_error_model_->Show();
844 histogram_helper_->OnErrorShow(network_error_model_->GetErrorState()); 843 histogram_helper_->OnErrorShow(network_error_model_->GetErrorState());
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
1101 if (!delegate_) 1100 if (!delegate_)
1102 return; 1101 return;
1103 1102
1104 UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT, account_id); 1103 UserContext context(user_manager::USER_TYPE_PUBLIC_ACCOUNT, account_id);
1105 context.SetPublicSessionLocale(locale), 1104 context.SetPublicSessionLocale(locale),
1106 context.SetPublicSessionInputMethod(input_method); 1105 context.SetPublicSessionInputMethod(input_method);
1107 delegate_->Login(context, SigninSpecifics()); 1106 delegate_->Login(context, SigninSpecifics());
1108 } 1107 }
1109 1108
1110 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { 1109 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) {
1111 if (!delegate_ || delegate_->IsShowUsers()) { 1110 if (!delegate_) {
1112 NOTREACHED(); 1111 NOTREACHED();
1113 return; 1112 return;
1114 } 1113 }
1115 std::string email; 1114 std::string email;
1116 args->GetString(0, &email); 1115 args->GetString(0, &email);
1117 1116
1118 gaia_screen_handler_->set_populated_email(email); 1117 gaia_screen_handler_->set_populated_email(email);
1119 gaia_screen_handler_->LoadAuthExtension(true /* force */, true /* offline */); 1118 gaia_screen_handler_->LoadAuthExtension(true /* force */, true /* offline */);
1120 UpdateUIState(UI_STATE_GAIA_SIGNIN, nullptr); 1119 UpdateUIState(UI_STATE_GAIA_SIGNIN, nullptr);
1121 } 1120 }
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1467 1466
1468 bool SigninScreenHandler::IsGuestSigninAllowed() const { 1467 bool SigninScreenHandler::IsGuestSigninAllowed() const {
1469 CrosSettings* cros_settings = CrosSettings::Get(); 1468 CrosSettings* cros_settings = CrosSettings::Get();
1470 if (!cros_settings) 1469 if (!cros_settings)
1471 return false; 1470 return false;
1472 bool allow_guest; 1471 bool allow_guest;
1473 cros_settings->GetBoolean(kAccountsPrefAllowGuest, &allow_guest); 1472 cros_settings->GetBoolean(kAccountsPrefAllowGuest, &allow_guest);
1474 return allow_guest; 1473 return allow_guest;
1475 } 1474 }
1476 1475
1477 bool SigninScreenHandler::IsOfflineLoginAllowed() const {
1478 CrosSettings* cros_settings = CrosSettings::Get();
1479 if (!cros_settings)
1480 return false;
1481
1482 // Offline login is allowed only when user pods are hidden.
1483 bool show_pods;
1484 cros_settings->GetBoolean(kAccountsPrefShowUserNamesOnSignIn, &show_pods);
1485 return !show_pods;
1486 }
1487
1488 void SigninScreenHandler::OnShowAddUser() { 1476 void SigninScreenHandler::OnShowAddUser() {
1489 is_account_picker_showing_first_time_ = false; 1477 is_account_picker_showing_first_time_ = false;
1490 gaia_screen_handler_->ShowGaiaAsync(); 1478 gaia_screen_handler_->ShowGaiaAsync();
1491 } 1479 }
1492 1480
1493 net::Error SigninScreenHandler::FrameError() const { 1481 net::Error SigninScreenHandler::FrameError() const {
1494 return gaia_screen_handler_->frame_error(); 1482 return gaia_screen_handler_->frame_error();
1495 } 1483 }
1496 1484
1497 void SigninScreenHandler::OnCapsLockChanged(bool enabled) { 1485 void SigninScreenHandler::OnCapsLockChanged(bool enabled) {
1498 caps_lock_enabled_ = enabled; 1486 caps_lock_enabled_ = enabled;
1499 if (page_is_ready()) 1487 if (page_is_ready())
1500 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_); 1488 CallJS("login.AccountPickerScreen.setCapsLockState", caps_lock_enabled_);
1501 } 1489 }
1502 1490
1503 void SigninScreenHandler::OnFeedbackFinished() { 1491 void SigninScreenHandler::OnFeedbackFinished() {
1504 CallJS("login.UnrecoverableCryptohomeErrorScreen.resumeAfterFeedbackUI"); 1492 CallJS("login.UnrecoverableCryptohomeErrorScreen.resumeAfterFeedbackUI");
1505 1493
1506 // Recreate user's cryptohome after the feedback is attempted. 1494 // Recreate user's cryptohome after the feedback is attempted.
1507 HandleResyncUserData(); 1495 HandleResyncUserData();
1508 } 1496 }
1509 1497
1510 } // namespace chromeos 1498 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698