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

Side by Side Diff: chrome/browser/chromeos/login/existing_user_controller.cc

Issue 1693383003: ChromeOS cryptohome should be able to use gaia id as user identifier. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing files. Created 4 years, 10 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chromeos/login/existing_user_controller.h" 5 #include "chrome/browser/chromeos/login/existing_user_controller.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 } 732 }
733 733
734 bool ExistingUserController::password_changed() const { 734 bool ExistingUserController::password_changed() const {
735 if (login_performer_) 735 if (login_performer_)
736 return login_performer_->password_changed(); 736 return login_performer_->password_changed();
737 737
738 return password_changed_; 738 return password_changed_;
739 } 739 }
740 740
741 void ExistingUserController::LoginAsGuest() { 741 void ExistingUserController::LoginAsGuest() {
742 PerformPreLoginActions(UserContext(user_manager::USER_TYPE_GUEST, 742 PerformPreLoginActions(
743 login::GuestAccountId().GetUserEmail())); 743 UserContext(user_manager::USER_TYPE_GUEST, login::GuestAccountId()));
744 744
745 bool allow_guest; 745 bool allow_guest;
746 cros_settings_->GetBoolean(kAccountsPrefAllowGuest, &allow_guest); 746 cros_settings_->GetBoolean(kAccountsPrefAllowGuest, &allow_guest);
747 if (!allow_guest) { 747 if (!allow_guest) {
748 // Disallowed. The UI should normally not show the guest session button. 748 // Disallowed. The UI should normally not show the guest session button.
749 LOG(ERROR) << "Guest login attempt when guest mode is disallowed."; 749 LOG(ERROR) << "Guest login attempt when guest mode is disallowed.";
750 PerformLoginFinishedActions(true /* start public session timer */); 750 PerformLoginFinishedActions(true /* start public session timer */);
751 display_email_.clear(); 751 display_email_.clear();
752 return; 752 return;
753 } 753 }
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 host_->StartAppLaunch(app_id, diagnostic_mode, auto_start); 836 host_->StartAppLaunch(app_id, diagnostic_mode, auto_start);
837 } 837 }
838 838
839 void ExistingUserController::ConfigurePublicSessionAutoLogin() { 839 void ExistingUserController::ConfigurePublicSessionAutoLogin() {
840 std::string auto_login_account_id; 840 std::string auto_login_account_id;
841 cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId, 841 cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId,
842 &auto_login_account_id); 842 &auto_login_account_id);
843 const std::vector<policy::DeviceLocalAccount> device_local_accounts = 843 const std::vector<policy::DeviceLocalAccount> device_local_accounts =
844 policy::GetDeviceLocalAccounts(cros_settings_); 844 policy::GetDeviceLocalAccounts(cros_settings_);
845 845
846 public_session_auto_login_username_.clear(); 846 public_session_auto_login_account_id_ = EmptyAccountId();
847 for (std::vector<policy::DeviceLocalAccount>::const_iterator 847 for (std::vector<policy::DeviceLocalAccount>::const_iterator
848 it = device_local_accounts.begin(); 848 it = device_local_accounts.begin();
849 it != device_local_accounts.end(); ++it) { 849 it != device_local_accounts.end(); ++it) {
850 if (it->account_id == auto_login_account_id) { 850 if (it->account_id == auto_login_account_id) {
851 public_session_auto_login_username_ = it->user_id; 851 public_session_auto_login_account_id_ =
852 AccountId::FromUserEmail(it->user_id);
852 break; 853 break;
853 } 854 }
854 } 855 }
855 856
856 const user_manager::User* user = user_manager::UserManager::Get()->FindUser( 857 const user_manager::User* user = user_manager::UserManager::Get()->FindUser(
857 AccountId::FromUserEmail(public_session_auto_login_username_)); 858 public_session_auto_login_account_id_);
858 if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT) 859 if (!user || user->GetType() != user_manager::USER_TYPE_PUBLIC_ACCOUNT)
859 public_session_auto_login_username_.clear(); 860 public_session_auto_login_account_id_ = EmptyAccountId();
860 861
861 if (!cros_settings_->GetInteger( 862 if (!cros_settings_->GetInteger(
862 kAccountsPrefDeviceLocalAccountAutoLoginDelay, 863 kAccountsPrefDeviceLocalAccountAutoLoginDelay,
863 &public_session_auto_login_delay_)) { 864 &public_session_auto_login_delay_)) {
864 public_session_auto_login_delay_ = 0; 865 public_session_auto_login_delay_ = 0;
865 } 866 }
866 867
867 if (!public_session_auto_login_username_.empty()) 868 if (public_session_auto_login_account_id_.is_valid())
868 StartPublicSessionAutoLoginTimer(); 869 StartPublicSessionAutoLoginTimer();
869 else 870 else
870 StopPublicSessionAutoLoginTimer(); 871 StopPublicSessionAutoLoginTimer();
871 } 872 }
872 873
873 void ExistingUserController::ResetPublicSessionAutoLoginTimer() { 874 void ExistingUserController::ResetPublicSessionAutoLoginTimer() {
874 // Only restart the auto-login timer if it's already running. 875 // Only restart the auto-login timer if it's already running.
875 if (auto_login_timer_ && auto_login_timer_->IsRunning()) { 876 if (auto_login_timer_ && auto_login_timer_->IsRunning()) {
876 StopPublicSessionAutoLoginTimer(); 877 StopPublicSessionAutoLoginTimer();
877 StartPublicSessionAutoLoginTimer(); 878 StartPublicSessionAutoLoginTimer();
878 } 879 }
879 } 880 }
880 881
881 void ExistingUserController::OnPublicSessionAutoLoginTimerFire() { 882 void ExistingUserController::OnPublicSessionAutoLoginTimerFire() {
882 CHECK(signin_screen_ready_ && !public_session_auto_login_username_.empty()); 883 CHECK(signin_screen_ready_ &&
884 public_session_auto_login_account_id_.is_valid());
883 Login(UserContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT, 885 Login(UserContext(user_manager::USER_TYPE_PUBLIC_ACCOUNT,
884 public_session_auto_login_username_), 886 public_session_auto_login_account_id_),
885 SigninSpecifics()); 887 SigninSpecifics());
886 } 888 }
887 889
888 void ExistingUserController::StopPublicSessionAutoLoginTimer() { 890 void ExistingUserController::StopPublicSessionAutoLoginTimer() {
889 if (auto_login_timer_) 891 if (auto_login_timer_)
890 auto_login_timer_->Stop(); 892 auto_login_timer_->Stop();
891 } 893 }
892 894
893 void ExistingUserController::StartPublicSessionAutoLoginTimer() { 895 void ExistingUserController::StartPublicSessionAutoLoginTimer() {
894 if (!signin_screen_ready_ || 896 if (!signin_screen_ready_ || is_login_in_progress_ ||
895 is_login_in_progress_ || 897 !public_session_auto_login_account_id_.is_valid()) {
896 public_session_auto_login_username_.empty()) {
897 return; 898 return;
898 } 899 }
899 900
900 // Start the auto-login timer. 901 // Start the auto-login timer.
901 if (!auto_login_timer_) 902 if (!auto_login_timer_)
902 auto_login_timer_.reset(new base::OneShotTimer); 903 auto_login_timer_.reset(new base::OneShotTimer);
903 904
904 auto_login_timer_->Start( 905 auto_login_timer_->Start(
905 FROM_HERE, 906 FROM_HERE,
906 base::TimeDelta::FromMilliseconds( 907 base::TimeDelta::FromMilliseconds(
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
1201 if (!success) { 1202 if (!success) {
1202 LOG(ERROR) << "OAuth2 token fetch failed."; 1203 LOG(ERROR) << "OAuth2 token fetch failed.";
1203 OnAuthFailure(AuthFailure(AuthFailure::FAILED_TO_INITIALIZE_TOKEN)); 1204 OnAuthFailure(AuthFailure(AuthFailure::FAILED_TO_INITIALIZE_TOKEN));
1204 return; 1205 return;
1205 } 1206 }
1206 UserSessionManager::GetInstance()->OnOAuth2TokensFetched(user_context); 1207 UserSessionManager::GetInstance()->OnOAuth2TokensFetched(user_context);
1207 PerformLogin(user_context, LoginPerformer::AUTH_MODE_EXTENSION); 1208 PerformLogin(user_context, LoginPerformer::AUTH_MODE_EXTENSION);
1208 } 1209 }
1209 1210
1210 } // namespace chromeos 1211 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698