OLD | NEW |
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 "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 AddCallback("completeLogin", &SigninScreenHandler::HandleCompleteLogin); | 726 AddCallback("completeLogin", &SigninScreenHandler::HandleCompleteLogin); |
727 AddCallback("completeAuthentication", | 727 AddCallback("completeAuthentication", |
728 &SigninScreenHandler::HandleCompleteAuthentication); | 728 &SigninScreenHandler::HandleCompleteAuthentication); |
729 AddCallback("getUsers", &SigninScreenHandler::HandleGetUsers); | 729 AddCallback("getUsers", &SigninScreenHandler::HandleGetUsers); |
730 AddCallback("launchDemoUser", &SigninScreenHandler::HandleLaunchDemoUser); | 730 AddCallback("launchDemoUser", &SigninScreenHandler::HandleLaunchDemoUser); |
731 AddCallback("launchIncognito", &SigninScreenHandler::HandleLaunchIncognito); | 731 AddCallback("launchIncognito", &SigninScreenHandler::HandleLaunchIncognito); |
732 AddCallback("showLocallyManagedUserCreationScreen", | 732 AddCallback("showLocallyManagedUserCreationScreen", |
733 &SigninScreenHandler::HandleShowLocallyManagedUserCreationScreen); | 733 &SigninScreenHandler::HandleShowLocallyManagedUserCreationScreen); |
734 AddCallback("launchPublicAccount", | 734 AddCallback("launchPublicAccount", |
735 &SigninScreenHandler::HandleLaunchPublicAccount); | 735 &SigninScreenHandler::HandleLaunchPublicAccount); |
736 AddCallback("offlineLogin", &SigninScreenHandler::HandleOfflineLogin); | 736 AddRawCallback("offlineLogin", &SigninScreenHandler::HandleOfflineLogin); |
737 AddCallback("rebootSystem", &SigninScreenHandler::HandleRebootSystem); | 737 AddCallback("rebootSystem", &SigninScreenHandler::HandleRebootSystem); |
738 AddCallback("showAddUser", &SigninScreenHandler::HandleShowAddUser); | 738 AddRawCallback("showAddUser", &SigninScreenHandler::HandleShowAddUser); |
739 AddCallback("shutdownSystem", &SigninScreenHandler::HandleShutdownSystem); | 739 AddCallback("shutdownSystem", &SigninScreenHandler::HandleShutdownSystem); |
740 AddCallback("loadWallpaper", &SigninScreenHandler::HandleLoadWallpaper); | 740 AddCallback("loadWallpaper", &SigninScreenHandler::HandleLoadWallpaper); |
741 AddCallback("removeUser", &SigninScreenHandler::HandleRemoveUser); | 741 AddCallback("removeUser", &SigninScreenHandler::HandleRemoveUser); |
742 AddCallback("toggleEnrollmentScreen", | 742 AddCallback("toggleEnrollmentScreen", |
743 &SigninScreenHandler::HandleToggleEnrollmentScreen); | 743 &SigninScreenHandler::HandleToggleEnrollmentScreen); |
744 AddCallback("toggleResetScreen", | 744 AddCallback("toggleResetScreen", |
745 &SigninScreenHandler::HandleToggleResetScreen); | 745 &SigninScreenHandler::HandleToggleResetScreen); |
746 AddCallback("launchHelpApp", &SigninScreenHandler::HandleLaunchHelpApp); | 746 AddCallback("launchHelpApp", &SigninScreenHandler::HandleLaunchHelpApp); |
747 AddCallback("createAccount", &SigninScreenHandler::HandleCreateAccount); | 747 AddCallback("createAccount", &SigninScreenHandler::HandleCreateAccount); |
748 AddCallback("accountPickerReady", | 748 AddCallback("accountPickerReady", |
(...skipping 19 matching lines...) Expand all Loading... |
768 AddCallback("loginScreenUpdate", | 768 AddCallback("loginScreenUpdate", |
769 &SigninScreenHandler::HandleLoginScreenUpdate); | 769 &SigninScreenHandler::HandleLoginScreenUpdate); |
770 AddCallback("showGaiaFrameError", | 770 AddCallback("showGaiaFrameError", |
771 &SigninScreenHandler::HandleShowGaiaFrameError); | 771 &SigninScreenHandler::HandleShowGaiaFrameError); |
772 AddCallback("showLoadingTimeoutError", | 772 AddCallback("showLoadingTimeoutError", |
773 &SigninScreenHandler::HandleShowLoadingTimeoutError); | 773 &SigninScreenHandler::HandleShowLoadingTimeoutError); |
774 AddCallback("updateOfflineLogin", | 774 AddCallback("updateOfflineLogin", |
775 &SigninScreenHandler::HandleUpdateOfflineLogin); | 775 &SigninScreenHandler::HandleUpdateOfflineLogin); |
776 } | 776 } |
777 | 777 |
778 void SigninScreenHandler::HandleGetUsers(const base::ListValue* args) { | 778 void SigninScreenHandler::HandleGetUsers() { |
779 SendUserList(false); | 779 SendUserList(false); |
780 } | 780 } |
781 | 781 |
782 void SigninScreenHandler::ClearAndEnablePassword() { | 782 void SigninScreenHandler::ClearAndEnablePassword() { |
783 base::FundamentalValue force_online(false); | 783 base::FundamentalValue force_online(false); |
784 CallJS("cr.ui.Oobe.resetSigninUI", force_online); | 784 CallJS("cr.ui.Oobe.resetSigninUI", force_online); |
785 } | 785 } |
786 | 786 |
787 void SigninScreenHandler::ClearUserPodPassword() { | 787 void SigninScreenHandler::ClearUserPodPassword() { |
788 CallJS("cr.ui.Oobe.clearUserPodPassword"); | 788 CallJS("cr.ui.Oobe.clearUserPodPassword"); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 delegate_->LoadWallpaper(email_); | 955 delegate_->LoadWallpaper(email_); |
956 | 956 |
957 LoadAuthExtension(!gaia_silent_load_, false, false); | 957 LoadAuthExtension(!gaia_silent_load_, false, false); |
958 UpdateUIState(UI_STATE_GAIA_SIGNIN, NULL); | 958 UpdateUIState(UI_STATE_GAIA_SIGNIN, NULL); |
959 | 959 |
960 if (gaia_silent_load_) { | 960 if (gaia_silent_load_) { |
961 // The variable is assigned to false because silently loaded Gaia page was | 961 // The variable is assigned to false because silently loaded Gaia page was |
962 // used. | 962 // used. |
963 gaia_silent_load_ = false; | 963 gaia_silent_load_ = false; |
964 if (focus_stolen_) | 964 if (focus_stolen_) |
965 HandleLoginWebuiReady(NULL); | 965 HandleLoginWebuiReady(); |
966 } | 966 } |
967 | 967 |
968 UpdateState(network_state_informer_->state(), | 968 UpdateState(network_state_informer_->state(), |
969 network_state_informer_->last_network_service_path(), | 969 network_state_informer_->last_network_service_path(), |
970 network_state_informer_->last_network_type(), | 970 network_state_informer_->last_network_type(), |
971 ErrorScreenActor::kErrorReasonUpdate); | 971 ErrorScreenActor::kErrorReasonUpdate); |
972 } | 972 } |
973 | 973 |
974 void SigninScreenHandler::LoadAuthExtension( | 974 void SigninScreenHandler::LoadAuthExtension( |
975 bool force, bool silent_load, bool offline) { | 975 bool force, bool silent_load, bool offline) { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 DictionaryValue params; | 1035 DictionaryValue params; |
1036 UpdateAuthParamsFromSettings(¶ms, CrosSettings::Get()); | 1036 UpdateAuthParamsFromSettings(¶ms, CrosSettings::Get()); |
1037 CallJS("login.GaiaSigninScreen.updateAuthExtension", params); | 1037 CallJS("login.GaiaSigninScreen.updateAuthExtension", params); |
1038 } | 1038 } |
1039 | 1039 |
1040 void SigninScreenHandler::UpdateAddButtonStatus() { | 1040 void SigninScreenHandler::UpdateAddButtonStatus() { |
1041 base::FundamentalValue disabled(AllWhitelistedUsersPresent()); | 1041 base::FundamentalValue disabled(AllWhitelistedUsersPresent()); |
1042 CallJS("cr.ui.login.DisplayManager.updateAddUserButtonStatus", disabled); | 1042 CallJS("cr.ui.login.DisplayManager.updateAddUserButtonStatus", disabled); |
1043 } | 1043 } |
1044 | 1044 |
1045 void SigninScreenHandler::HandleCompleteLogin(const base::ListValue* args) { | 1045 void SigninScreenHandler::HandleCompleteLogin(const std::string& typed_email, |
| 1046 const std::string& password) { |
1046 if (!delegate_) | 1047 if (!delegate_) |
1047 return; | 1048 return; |
1048 | 1049 const std::string sanitized_email = gaia::SanitizeEmail(typed_email); |
1049 std::string typed_email; | 1050 delegate_->SetDisplayEmail(sanitized_email); |
1050 std::string password; | 1051 delegate_->CompleteLogin(UserContext(sanitized_email, |
1051 if (!args->GetString(0, &typed_email) || | |
1052 !args->GetString(1, &password)) { | |
1053 NOTREACHED(); | |
1054 return; | |
1055 } | |
1056 | |
1057 typed_email = gaia::SanitizeEmail(typed_email); | |
1058 delegate_->SetDisplayEmail(typed_email); | |
1059 delegate_->CompleteLogin(UserContext(typed_email, | |
1060 password, | 1052 password, |
1061 std::string())); // auth_code | 1053 std::string())); // auth_code |
1062 } | 1054 } |
1063 | 1055 |
1064 void SigninScreenHandler::HandleCompleteAuthentication( | 1056 void SigninScreenHandler::HandleCompleteAuthentication( |
1065 const base::ListValue* args) { | 1057 const std::string& email, |
| 1058 const std::string& password, |
| 1059 const std::string& auth_code) { |
1066 if (!delegate_) | 1060 if (!delegate_) |
1067 return; | 1061 return; |
1068 | 1062 const std::string sanitized_email = gaia::SanitizeEmail(email); |
1069 std::string email; | 1063 delegate_->SetDisplayEmail(sanitized_email); |
1070 std::string password; | 1064 delegate_->CompleteLogin(UserContext(sanitized_email, password, auth_code)); |
1071 std::string auth_code; | |
1072 if (!args->GetString(0, &email) || | |
1073 !args->GetString(1, &password) || | |
1074 !args->GetString(2, &auth_code)) { | |
1075 NOTREACHED(); | |
1076 return; | |
1077 } | |
1078 | |
1079 email = gaia::SanitizeEmail(email); | |
1080 delegate_->SetDisplayEmail(email); | |
1081 delegate_->CompleteLogin(UserContext(email, password, auth_code)); | |
1082 } | 1065 } |
1083 | 1066 |
1084 void SigninScreenHandler::HandleAuthenticateUser(const base::ListValue* args) { | 1067 void SigninScreenHandler::HandleAuthenticateUser(const std::string& username, |
| 1068 const std::string& password) { |
1085 if (!delegate_) | 1069 if (!delegate_) |
1086 return; | 1070 return; |
1087 | 1071 delegate_->Login(UserContext(gaia::SanitizeEmail(username), |
1088 std::string username; | |
1089 std::string password; | |
1090 if (!args->GetString(0, &username) || | |
1091 !args->GetString(1, &password)) { | |
1092 NOTREACHED(); | |
1093 return; | |
1094 } | |
1095 | |
1096 username = gaia::SanitizeEmail(username); | |
1097 delegate_->Login(UserContext(username, | |
1098 password, | 1072 password, |
1099 std::string())); // auth_code | 1073 std::string())); // auth_code |
1100 } | 1074 } |
1101 | 1075 |
1102 void SigninScreenHandler::HandleLaunchDemoUser(const base::ListValue* args) { | 1076 void SigninScreenHandler::HandleLaunchDemoUser() { |
1103 if (delegate_) | 1077 if (delegate_) |
1104 delegate_->LoginAsRetailModeUser(); | 1078 delegate_->LoginAsRetailModeUser(); |
1105 } | 1079 } |
1106 | 1080 |
1107 void SigninScreenHandler::HandleLaunchIncognito(const base::ListValue* args) { | 1081 void SigninScreenHandler::HandleLaunchIncognito() { |
1108 if (delegate_) | 1082 if (delegate_) |
1109 delegate_->LoginAsGuest(); | 1083 delegate_->LoginAsGuest(); |
1110 } | 1084 } |
1111 | 1085 |
1112 void SigninScreenHandler::HandleShowLocallyManagedUserCreationScreen( | 1086 void SigninScreenHandler::HandleShowLocallyManagedUserCreationScreen() { |
1113 const base::ListValue* args) { | |
1114 const CommandLine* command_line = CommandLine::ForCurrentProcess(); | 1087 const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
1115 if (!command_line->HasSwitch(::switches::kEnableManagedUsers)) | 1088 if (!command_line->HasSwitch(::switches::kEnableManagedUsers)) |
1116 return; | 1089 return; |
1117 BaseLoginDisplayHost::default_host()-> | 1090 BaseLoginDisplayHost::default_host()-> |
1118 StartWizard(WizardController::kLocallyManagedUserCreationScreenName, | 1091 StartWizard(WizardController::kLocallyManagedUserCreationScreenName, |
1119 NULL); | 1092 NULL); |
1120 } | 1093 } |
1121 | 1094 |
1122 void SigninScreenHandler::HandleLaunchPublicAccount( | 1095 void SigninScreenHandler::HandleLaunchPublicAccount( |
1123 const base::ListValue* args) { | 1096 const std::string& username) { |
1124 if (!delegate_) | 1097 if (delegate_) |
1125 return; | 1098 delegate_->LoginAsPublicAccount(username); |
1126 | |
1127 std::string username; | |
1128 if (!args->GetString(0, &username)) { | |
1129 NOTREACHED(); | |
1130 return; | |
1131 } | |
1132 delegate_->LoginAsPublicAccount(username); | |
1133 } | 1099 } |
1134 | 1100 |
1135 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { | 1101 void SigninScreenHandler::HandleOfflineLogin(const base::ListValue* args) { |
1136 if (!delegate_ || delegate_->IsShowUsers()) { | 1102 if (!delegate_ || delegate_->IsShowUsers()) { |
1137 NOTREACHED(); | 1103 NOTREACHED(); |
1138 return; | 1104 return; |
1139 } | 1105 } |
1140 if (!args->GetString(0, &email_)) | 1106 if (!args->GetString(0, &email_)) |
1141 email_.clear(); | 1107 email_.clear(); |
1142 // Load auth extension. Parameters are: force reload, do not load extension in | 1108 // Load auth extension. Parameters are: force reload, do not load extension in |
1143 // background, use offline version. | 1109 // background, use offline version. |
1144 LoadAuthExtension(true, false, true); | 1110 LoadAuthExtension(true, false, true); |
1145 UpdateUIState(UI_STATE_GAIA_SIGNIN, NULL); | 1111 UpdateUIState(UI_STATE_GAIA_SIGNIN, NULL); |
1146 } | 1112 } |
1147 | 1113 |
1148 void SigninScreenHandler::HandleShutdownSystem(const base::ListValue* args) { | 1114 void SigninScreenHandler::HandleShutdownSystem() { |
1149 ash::Shell::GetInstance()->session_state_controller()->RequestShutdown(); | 1115 ash::Shell::GetInstance()->session_state_controller()->RequestShutdown(); |
1150 } | 1116 } |
1151 | 1117 |
1152 void SigninScreenHandler::HandleLoadWallpaper(const base::ListValue* args) { | 1118 void SigninScreenHandler::HandleLoadWallpaper(const std::string& email) { |
1153 if (!delegate_) | 1119 if (delegate_) |
1154 return; | 1120 delegate_->LoadWallpaper(email); |
1155 | |
1156 std::string email; | |
1157 if (!args->GetString(0, &email)) { | |
1158 NOTREACHED(); | |
1159 return; | |
1160 } | |
1161 | |
1162 delegate_->LoadWallpaper(email); | |
1163 } | 1121 } |
1164 | 1122 |
1165 void SigninScreenHandler::HandleRebootSystem(const base::ListValue* args) { | 1123 void SigninScreenHandler::HandleRebootSystem() { |
1166 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 1124 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
1167 } | 1125 } |
1168 | 1126 |
1169 void SigninScreenHandler::HandleRemoveUser(const base::ListValue* args) { | 1127 void SigninScreenHandler::HandleRemoveUser(const std::string& email) { |
1170 if (!delegate_) | 1128 if (!delegate_) |
1171 return; | 1129 return; |
1172 | |
1173 std::string email; | |
1174 if (!args->GetString(0, &email)) { | |
1175 NOTREACHED(); | |
1176 return; | |
1177 } | |
1178 | |
1179 delegate_->RemoveUser(email); | 1130 delegate_->RemoveUser(email); |
1180 UpdateAddButtonStatus(); | 1131 UpdateAddButtonStatus(); |
1181 } | 1132 } |
1182 | 1133 |
1183 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { | 1134 void SigninScreenHandler::HandleShowAddUser(const base::ListValue* args) { |
1184 email_.clear(); | 1135 email_.clear(); |
1185 // |args| can be null if it's OOBE. | 1136 // |args| can be null if it's OOBE. |
1186 if (args) | 1137 if (args) |
1187 args->GetString(0, &email_); | 1138 args->GetString(0, &email_); |
1188 is_account_picker_showing_first_time_ = false; | 1139 is_account_picker_showing_first_time_ = false; |
1189 | 1140 |
1190 if (gaia_silent_load_ && email_.empty()) { | 1141 if (gaia_silent_load_ && email_.empty()) { |
1191 dns_cleared_ = true; | 1142 dns_cleared_ = true; |
1192 cookies_cleared_ = true; | 1143 cookies_cleared_ = true; |
1193 ShowSigninScreenIfReady(); | 1144 ShowSigninScreenIfReady(); |
1194 } else { | 1145 } else { |
1195 StartClearingDnsCache(); | 1146 StartClearingDnsCache(); |
1196 | 1147 |
1197 cookie_remover_callback_ = base::Bind( | 1148 cookie_remover_callback_ = base::Bind( |
1198 &SigninScreenHandler::ShowSigninScreenIfReady, | 1149 &SigninScreenHandler::ShowSigninScreenIfReady, |
1199 weak_factory_.GetWeakPtr()); | 1150 weak_factory_.GetWeakPtr()); |
1200 StartClearingCookies(); | 1151 StartClearingCookies(); |
1201 } | 1152 } |
1202 } | 1153 } |
1203 | 1154 |
1204 void SigninScreenHandler::HandleToggleEnrollmentScreen( | 1155 void SigninScreenHandler::HandleToggleEnrollmentScreen() { |
1205 const base::ListValue* args) { | |
1206 if (delegate_) | 1156 if (delegate_) |
1207 delegate_->ShowEnterpriseEnrollmentScreen(); | 1157 delegate_->ShowEnterpriseEnrollmentScreen(); |
1208 } | 1158 } |
1209 | 1159 |
1210 void SigninScreenHandler::HandleToggleResetScreen( | 1160 void SigninScreenHandler::HandleToggleResetScreen() { |
1211 const base::ListValue* args) { | |
1212 if (delegate_ && | 1161 if (delegate_ && |
1213 !g_browser_process->browser_policy_connector()->IsEnterpriseManaged()) { | 1162 !g_browser_process->browser_policy_connector()->IsEnterpriseManaged()) { |
1214 delegate_->ShowResetScreen(); | 1163 delegate_->ShowResetScreen(); |
1215 } | 1164 } |
1216 } | 1165 } |
1217 | 1166 |
1218 void SigninScreenHandler::HandleLaunchHelpApp(const base::ListValue* args) { | 1167 void SigninScreenHandler::HandleLaunchHelpApp(double help_topic_id) { |
1219 if (!delegate_) | 1168 if (!delegate_) |
1220 return; | 1169 return; |
1221 double help_topic_id; // Javascript number is passed back as double. | |
1222 if (!args->GetDouble(0, &help_topic_id)) { | |
1223 NOTREACHED(); | |
1224 return; | |
1225 } | |
1226 | |
1227 if (!help_app_.get()) | 1170 if (!help_app_.get()) |
1228 help_app_ = new HelpAppLauncher(GetNativeWindow()); | 1171 help_app_ = new HelpAppLauncher(GetNativeWindow()); |
1229 help_app_->ShowHelpTopic( | 1172 help_app_->ShowHelpTopic( |
1230 static_cast<HelpAppLauncher::HelpTopic>(help_topic_id)); | 1173 static_cast<HelpAppLauncher::HelpTopic>(help_topic_id)); |
1231 } | 1174 } |
1232 | 1175 |
1233 void SigninScreenHandler::FillUserDictionary(User* user, | 1176 void SigninScreenHandler::FillUserDictionary(User* user, |
1234 bool is_owner, | 1177 bool is_owner, |
1235 DictionaryValue* user_dict) { | 1178 DictionaryValue* user_dict) { |
1236 const std::string& email = user->email(); | 1179 const std::string& email = user->email(); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1312 ++non_owner_count; | 1255 ++non_owner_count; |
1313 } | 1256 } |
1314 } | 1257 } |
1315 | 1258 |
1316 base::FundamentalValue animated_value(animated); | 1259 base::FundamentalValue animated_value(animated); |
1317 base::FundamentalValue guest_value(delegate_->IsShowGuest()); | 1260 base::FundamentalValue guest_value(delegate_->IsShowGuest()); |
1318 CallJS("login.AccountPickerScreen.loadUsers", | 1261 CallJS("login.AccountPickerScreen.loadUsers", |
1319 users_list, animated_value, guest_value); | 1262 users_list, animated_value, guest_value); |
1320 } | 1263 } |
1321 | 1264 |
1322 void SigninScreenHandler::HandleAccountPickerReady( | 1265 void SigninScreenHandler::HandleAccountPickerReady() { |
1323 const base::ListValue* args) { | |
1324 LOG(INFO) << "Login WebUI >> AccountPickerReady"; | 1266 LOG(INFO) << "Login WebUI >> AccountPickerReady"; |
1325 | 1267 |
1326 if (delegate_ && !ScreenLocker::default_screen_locker() && | 1268 if (delegate_ && !ScreenLocker::default_screen_locker() && |
1327 !chromeos::IsMachineHWIDCorrect() && | 1269 !chromeos::IsMachineHWIDCorrect() && |
1328 !oobe_ui_) { | 1270 !oobe_ui_) { |
1329 delegate_->ShowWrongHWIDScreen(); | 1271 delegate_->ShowWrongHWIDScreen(); |
1330 return; | 1272 return; |
1331 } | 1273 } |
1332 | 1274 |
1333 PrefService* prefs = g_browser_process->local_state(); | 1275 PrefService* prefs = g_browser_process->local_state(); |
1334 if (prefs->GetBoolean(prefs::kFactoryResetRequested)) { | 1276 if (prefs->GetBoolean(prefs::kFactoryResetRequested)) { |
1335 prefs->SetBoolean(prefs::kFactoryResetRequested, false); | 1277 prefs->SetBoolean(prefs::kFactoryResetRequested, false); |
1336 prefs->CommitPendingWrite(); | 1278 prefs->CommitPendingWrite(); |
1337 base::ListValue args; | 1279 HandleToggleResetScreen(); |
1338 HandleToggleResetScreen(&args); | |
1339 return; | 1280 return; |
1340 } | 1281 } |
1341 | 1282 |
1342 is_account_picker_showing_first_time_ = true; | 1283 is_account_picker_showing_first_time_ = true; |
1343 MaybePreloadAuthExtension(); | 1284 MaybePreloadAuthExtension(); |
1344 | 1285 |
1345 if (ScreenLocker::default_screen_locker()) { | 1286 if (ScreenLocker::default_screen_locker()) { |
1346 content::NotificationService::current()->Notify( | 1287 content::NotificationService::current()->Notify( |
1347 chrome::NOTIFICATION_LOCK_WEBUI_READY, | 1288 chrome::NOTIFICATION_LOCK_WEBUI_READY, |
1348 content::NotificationService::AllSources(), | 1289 content::NotificationService::AllSources(), |
1349 content::NotificationService::NoDetails()); | 1290 content::NotificationService::NoDetails()); |
1350 } | 1291 } |
1351 | 1292 |
1352 if (delegate_) | 1293 if (delegate_) |
1353 delegate_->OnSigninScreenReady(); | 1294 delegate_->OnSigninScreenReady(); |
1354 } | 1295 } |
1355 | 1296 |
1356 void SigninScreenHandler::HandleWallpaperReady( | 1297 void SigninScreenHandler::HandleWallpaperReady() { |
1357 const base::ListValue* args) { | |
1358 if (ScreenLocker::default_screen_locker()) { | 1298 if (ScreenLocker::default_screen_locker()) { |
1359 content::NotificationService::current()->Notify( | 1299 content::NotificationService::current()->Notify( |
1360 chrome::NOTIFICATION_LOCK_BACKGROUND_DISPLAYED, | 1300 chrome::NOTIFICATION_LOCK_BACKGROUND_DISPLAYED, |
1361 content::NotificationService::AllSources(), | 1301 content::NotificationService::AllSources(), |
1362 content::NotificationService::NoDetails()); | 1302 content::NotificationService::NoDetails()); |
1363 } | 1303 } |
1364 } | 1304 } |
1365 | 1305 |
1366 void SigninScreenHandler::HandleLoginWebuiReady(const base::ListValue* args) { | 1306 void SigninScreenHandler::HandleLoginWebuiReady() { |
1367 if (focus_stolen_) { | 1307 if (focus_stolen_) { |
1368 // Set focus to the Gaia page. | 1308 // Set focus to the Gaia page. |
1369 // TODO(altimofeev): temporary solution, until focus parameters are | 1309 // TODO(altimofeev): temporary solution, until focus parameters are |
1370 // implemented on the Gaia side. | 1310 // implemented on the Gaia side. |
1371 // Do this only once. Any subsequent call would relod GAIA frame. | 1311 // Do this only once. Any subsequent call would relod GAIA frame. |
1372 focus_stolen_ = false; | 1312 focus_stolen_ = false; |
1373 const char code[] = "gWindowOnLoad();"; | 1313 const char code[] = "gWindowOnLoad();"; |
1374 RenderViewHost* rvh = web_ui()->GetWebContents()->GetRenderViewHost(); | 1314 RenderViewHost* rvh = web_ui()->GetWebContents()->GetRenderViewHost(); |
1375 rvh->ExecuteJavascriptInWebFrame( | 1315 rvh->ExecuteJavascriptInWebFrame( |
1376 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), | 1316 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), |
(...skipping 11 matching lines...) Expand all Loading... |
1388 // implemented on the Gaia side. | 1328 // implemented on the Gaia side. |
1389 const char code[] = "var gWindowOnLoad = window.onload; " | 1329 const char code[] = "var gWindowOnLoad = window.onload; " |
1390 "window.onload=function() {};"; | 1330 "window.onload=function() {};"; |
1391 RenderViewHost* rvh = web_ui()->GetWebContents()->GetRenderViewHost(); | 1331 RenderViewHost* rvh = web_ui()->GetWebContents()->GetRenderViewHost(); |
1392 rvh->ExecuteJavascriptInWebFrame( | 1332 rvh->ExecuteJavascriptInWebFrame( |
1393 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), | 1333 ASCIIToUTF16("//iframe[@id='signin-frame']\n//iframe"), |
1394 ASCIIToUTF16(code)); | 1334 ASCIIToUTF16(code)); |
1395 } | 1335 } |
1396 } | 1336 } |
1397 | 1337 |
1398 void SigninScreenHandler::HandleDemoWebuiReady(const base::ListValue* args) { | 1338 void SigninScreenHandler::HandleDemoWebuiReady() { |
1399 content::NotificationService::current()->Notify( | 1339 content::NotificationService::current()->Notify( |
1400 chrome::NOTIFICATION_DEMO_WEBUI_LOADED, | 1340 chrome::NOTIFICATION_DEMO_WEBUI_LOADED, |
1401 content::NotificationService::AllSources(), | 1341 content::NotificationService::AllSources(), |
1402 content::NotificationService::NoDetails()); | 1342 content::NotificationService::NoDetails()); |
1403 } | 1343 } |
1404 | 1344 |
1405 void SigninScreenHandler::HandleSignOutUser(const base::ListValue* args) { | 1345 void SigninScreenHandler::HandleSignOutUser() { |
1406 if (delegate_) | 1346 if (delegate_) |
1407 delegate_->Signout(); | 1347 delegate_->Signout(); |
1408 } | 1348 } |
1409 | 1349 |
1410 void SigninScreenHandler::HandleUserImagesLoaded(const base::ListValue* args) { | 1350 void SigninScreenHandler::HandleUserImagesLoaded() { |
1411 content::NotificationService::current()->Notify( | 1351 content::NotificationService::current()->Notify( |
1412 chrome::NOTIFICATION_LOGIN_USER_IMAGES_LOADED, | 1352 chrome::NOTIFICATION_LOGIN_USER_IMAGES_LOADED, |
1413 content::NotificationService::AllSources(), | 1353 content::NotificationService::AllSources(), |
1414 content::NotificationService::NoDetails()); | 1354 content::NotificationService::NoDetails()); |
1415 } | 1355 } |
1416 | 1356 |
1417 void SigninScreenHandler::HandleNetworkErrorShown(const base::ListValue* args) { | 1357 void SigninScreenHandler::HandleNetworkErrorShown() { |
1418 content::NotificationService::current()->Notify( | 1358 content::NotificationService::current()->Notify( |
1419 chrome::NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN, | 1359 chrome::NOTIFICATION_LOGIN_NETWORK_ERROR_SHOWN, |
1420 content::NotificationService::AllSources(), | 1360 content::NotificationService::AllSources(), |
1421 content::NotificationService::NoDetails()); | 1361 content::NotificationService::NoDetails()); |
1422 } | 1362 } |
1423 | 1363 |
1424 void SigninScreenHandler::HandleCreateAccount(const base::ListValue* args) { | 1364 void SigninScreenHandler::HandleCreateAccount() { |
1425 if (delegate_) | 1365 if (delegate_) |
1426 delegate_->CreateAccount(); | 1366 delegate_->CreateAccount(); |
1427 } | 1367 } |
1428 | 1368 |
1429 void SigninScreenHandler::HandleOpenProxySettings(const base::ListValue* args) { | 1369 void SigninScreenHandler::HandleOpenProxySettings() { |
1430 BaseLoginDisplayHost::default_host()->OpenProxySettings(); | 1370 BaseLoginDisplayHost::default_host()->OpenProxySettings(); |
1431 } | 1371 } |
1432 | 1372 |
1433 void SigninScreenHandler::HandleLoginVisible(const base::ListValue* args) { | 1373 void SigninScreenHandler::HandleLoginVisible(const std::string& source) { |
1434 std::string source; | |
1435 if (!args->GetString(0, &source)) { | |
1436 NOTREACHED(); | |
1437 return; | |
1438 } | |
1439 | |
1440 LOG(INFO) << "Login WebUI >> LoginVisible, source: " << source << ", " | 1374 LOG(INFO) << "Login WebUI >> LoginVisible, source: " << source << ", " |
1441 << "webui_visible_: " << webui_visible_; | 1375 << "webui_visible_: " << webui_visible_; |
1442 if (!webui_visible_) { | 1376 if (!webui_visible_) { |
1443 // There might be multiple messages from OOBE UI so send notifications after | 1377 // There might be multiple messages from OOBE UI so send notifications after |
1444 // the first one only. | 1378 // the first one only. |
1445 content::NotificationService::current()->Notify( | 1379 content::NotificationService::current()->Notify( |
1446 chrome::NOTIFICATION_LOGIN_WEBUI_VISIBLE, | 1380 chrome::NOTIFICATION_LOGIN_WEBUI_VISIBLE, |
1447 content::NotificationService::AllSources(), | 1381 content::NotificationService::AllSources(), |
1448 content::NotificationService::NoDetails()); | 1382 content::NotificationService::NoDetails()); |
1449 } | 1383 } |
1450 webui_visible_ = true; | 1384 webui_visible_ = true; |
1451 } | 1385 } |
1452 | 1386 |
1453 void SigninScreenHandler::HandleCancelPasswordChangedFlow( | 1387 void SigninScreenHandler::HandleCancelPasswordChangedFlow() { |
1454 const base::ListValue* args) { | |
1455 cookie_remover_callback_ = base::Bind( | 1388 cookie_remover_callback_ = base::Bind( |
1456 &SigninScreenHandler::CancelPasswordChangedFlowInternal, | 1389 &SigninScreenHandler::CancelPasswordChangedFlowInternal, |
1457 weak_factory_.GetWeakPtr()); | 1390 weak_factory_.GetWeakPtr()); |
1458 StartClearingCookies(); | 1391 StartClearingCookies(); |
1459 } | 1392 } |
1460 | 1393 |
1461 void SigninScreenHandler::HandleMigrateUserData(const base::ListValue* args) { | 1394 void SigninScreenHandler::HandleMigrateUserData( |
1462 std::string old_password; | 1395 const std::string& old_password) { |
1463 if (!args->GetString(0, &old_password)) { | |
1464 NOTREACHED(); | |
1465 return; | |
1466 } | |
1467 if (delegate_) | 1396 if (delegate_) |
1468 delegate_->MigrateUserData(old_password); | 1397 delegate_->MigrateUserData(old_password); |
1469 } | 1398 } |
1470 | 1399 |
1471 void SigninScreenHandler::HandleResyncUserData(const base::ListValue* args) { | 1400 void SigninScreenHandler::HandleResyncUserData() { |
1472 if (delegate_) | 1401 if (delegate_) |
1473 delegate_->ResyncUserData(); | 1402 delegate_->ResyncUserData(); |
1474 } | 1403 } |
1475 | 1404 |
1476 void SigninScreenHandler::HandleLoginUIStateChanged( | 1405 void SigninScreenHandler::HandleLoginUIStateChanged(const std::string& source, |
1477 const base::ListValue* args) { | 1406 bool new_value) { |
1478 std::string source; | |
1479 bool new_value; | |
1480 if (!args->GetString(0, &source) || !args->GetBoolean(1, &new_value)) { | |
1481 NOTREACHED(); | |
1482 return; | |
1483 } | |
1484 if (source == kSourceGaiaSignin) { | 1407 if (source == kSourceGaiaSignin) { |
1485 ui_state_ = UI_STATE_GAIA_SIGNIN; | 1408 ui_state_ = UI_STATE_GAIA_SIGNIN; |
1486 } else if (source == kSourceAccountPicker) { | 1409 } else if (source == kSourceAccountPicker) { |
1487 ui_state_ = UI_STATE_ACCOUNT_PICKER; | 1410 ui_state_ = UI_STATE_ACCOUNT_PICKER; |
1488 } else { | 1411 } else { |
1489 NOTREACHED(); | 1412 NOTREACHED(); |
1490 return; | 1413 return; |
1491 } | 1414 } |
1492 | 1415 |
1493 LOG(INFO) << "Login WebUI >> active: " << new_value << ", " | 1416 LOG(INFO) << "Login WebUI >> active: " << new_value << ", " |
1494 << "source: " << source; | 1417 << "source: " << source; |
1495 login_ui_active_ = new_value; | 1418 login_ui_active_ = new_value; |
1496 } | 1419 } |
1497 | 1420 |
1498 void SigninScreenHandler::HandleUnlockOnLoginSuccess( | 1421 void SigninScreenHandler::HandleUnlockOnLoginSuccess() { |
1499 const base::ListValue* args) { | |
1500 DCHECK(UserManager::Get()->IsUserLoggedIn()); | 1422 DCHECK(UserManager::Get()->IsUserLoggedIn()); |
1501 if (ScreenLocker::default_screen_locker()) | 1423 if (ScreenLocker::default_screen_locker()) |
1502 ScreenLocker::default_screen_locker()->UnlockOnLoginSuccess(); | 1424 ScreenLocker::default_screen_locker()->UnlockOnLoginSuccess(); |
1503 } | 1425 } |
1504 | 1426 |
1505 void SigninScreenHandler::HandleLoginScreenUpdate( | 1427 void SigninScreenHandler::HandleLoginScreenUpdate() { |
1506 const base::ListValue* args) { | |
1507 LOG(INFO) << "Auth extension frame is loaded"; | 1428 LOG(INFO) << "Auth extension frame is loaded"; |
1508 UpdateStateInternal(network_state_informer_->state(), | 1429 UpdateStateInternal(network_state_informer_->state(), |
1509 network_state_informer_->last_network_service_path(), | 1430 network_state_informer_->last_network_service_path(), |
1510 network_state_informer_->last_network_type(), | 1431 network_state_informer_->last_network_type(), |
1511 ErrorScreenActor::kErrorReasonUpdate, | 1432 ErrorScreenActor::kErrorReasonUpdate, |
1512 false); | 1433 false); |
1513 } | 1434 } |
1514 | 1435 |
1515 void SigninScreenHandler::HandleShowGaiaFrameError( | 1436 void SigninScreenHandler::HandleShowGaiaFrameError(int error) { |
1516 const base::ListValue* args) { | |
1517 int error; | |
1518 if (args->GetSize() != 1 || !args->GetInteger(0, &error)) { | |
1519 NOTREACHED(); | |
1520 return; | |
1521 } | |
1522 if (network_state_informer_->state() != NetworkStateInformer::ONLINE) | 1437 if (network_state_informer_->state() != NetworkStateInformer::ONLINE) |
1523 return; | 1438 return; |
1524 LOG(WARNING) << "Gaia frame error: " << error; | 1439 LOG(WARNING) << "Gaia frame error: " << error; |
1525 std::string reason = base::StringPrintf("frame error:%d", error); | 1440 std::string reason = base::StringPrintf("frame error:%d", error); |
1526 UpdateStateInternal(network_state_informer_->state(), | 1441 UpdateStateInternal(network_state_informer_->state(), |
1527 network_state_informer_->last_network_service_path(), | 1442 network_state_informer_->last_network_service_path(), |
1528 network_state_informer_->last_network_type(), | 1443 network_state_informer_->last_network_type(), |
1529 reason, | 1444 reason, |
1530 false); | 1445 false); |
1531 } | 1446 } |
1532 | 1447 |
1533 void SigninScreenHandler::HandleShowLoadingTimeoutError( | 1448 void SigninScreenHandler::HandleShowLoadingTimeoutError() { |
1534 const base::ListValue* args) { | |
1535 UpdateStateInternal(network_state_informer_->state(), | 1449 UpdateStateInternal(network_state_informer_->state(), |
1536 network_state_informer_->last_network_service_path(), | 1450 network_state_informer_->last_network_service_path(), |
1537 network_state_informer_->last_network_type(), | 1451 network_state_informer_->last_network_type(), |
1538 ErrorScreenActor::kErrorReasonLoadingTimeout, | 1452 ErrorScreenActor::kErrorReasonLoadingTimeout, |
1539 false); | 1453 false); |
1540 } | 1454 } |
1541 | 1455 |
1542 void SigninScreenHandler::HandleUpdateOfflineLogin( | 1456 void SigninScreenHandler::HandleUpdateOfflineLogin(bool offline_login_active) { |
1543 const base::ListValue* args) { | |
1544 DCHECK(args && args->GetSize() == 1); | |
1545 | |
1546 bool offline_login_active = false; | |
1547 if (!args->GetBoolean(0, &offline_login_active)) { | |
1548 NOTREACHED(); | |
1549 return; | |
1550 } | |
1551 offline_login_active_ = offline_login_active; | 1457 offline_login_active_ = offline_login_active; |
1552 } | 1458 } |
1553 | 1459 |
1554 void SigninScreenHandler::StartClearingDnsCache() { | 1460 void SigninScreenHandler::StartClearingDnsCache() { |
1555 if (dns_clear_task_running_ || !g_browser_process->io_thread()) | 1461 if (dns_clear_task_running_ || !g_browser_process->io_thread()) |
1556 return; | 1462 return; |
1557 | 1463 |
1558 dns_cleared_ = false; | 1464 dns_cleared_ = false; |
1559 BrowserThread::PostTaskAndReply( | 1465 BrowserThread::PostTaskAndReply( |
1560 BrowserThread::IO, FROM_HERE, | 1466 BrowserThread::IO, FROM_HERE, |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1659 if (!cros_settings) | 1565 if (!cros_settings) |
1660 return false; | 1566 return false; |
1661 | 1567 |
1662 // Offline login is allowed only when user pods are hidden. | 1568 // Offline login is allowed only when user pods are hidden. |
1663 bool show_pods; | 1569 bool show_pods; |
1664 cros_settings->GetBoolean(kAccountsPrefShowUserNamesOnSignIn, &show_pods); | 1570 cros_settings->GetBoolean(kAccountsPrefShowUserNamesOnSignIn, &show_pods); |
1665 return !show_pods; | 1571 return !show_pods; |
1666 } | 1572 } |
1667 | 1573 |
1668 } // namespace chromeos | 1574 } // namespace chromeos |
OLD | NEW |