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

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

Issue 2498613003: Add ARC++ kiosk menu items and ability to start kiosk session. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 1 month 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 <memory> 7 #include <memory>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 void ExistingUserController::UpdateLoginDisplay( 227 void ExistingUserController::UpdateLoginDisplay(
228 const user_manager::UserList& users) { 228 const user_manager::UserList& users) {
229 bool show_users_on_signin; 229 bool show_users_on_signin;
230 user_manager::UserList filtered_users; 230 user_manager::UserList filtered_users;
231 231
232 cros_settings_->GetBoolean(kAccountsPrefShowUserNamesOnSignIn, 232 cros_settings_->GetBoolean(kAccountsPrefShowUserNamesOnSignIn,
233 &show_users_on_signin); 233 &show_users_on_signin);
234 for (auto* user : users) { 234 for (auto* user : users) {
235 // Skip kiosk apps for login screen user list. Kiosk apps as pods (aka new 235 // Skip kiosk apps for login screen user list. Kiosk apps as pods (aka new
236 // kiosk UI) is currently disabled and it gets the apps directly from 236 // kiosk UI) is currently disabled and it gets the apps directly from
237 // KioskAppManager. 237 // KioskAppManager and ArcKioskAppManager.
238 if (user->GetType() == user_manager::USER_TYPE_KIOSK_APP) 238 if (user->GetType() == user_manager::USER_TYPE_KIOSK_APP ||
239 user->GetType() == user_manager::USER_TYPE_ARC_KIOSK_APP) {
239 continue; 240 continue;
241 }
240 242
241 // TODO(xiyuan): Clean user profile whose email is not in whitelist. 243 // TODO(xiyuan): Clean user profile whose email is not in whitelist.
242 const bool meets_supervised_requirements = 244 const bool meets_supervised_requirements =
243 user->GetType() != user_manager::USER_TYPE_SUPERVISED || 245 user->GetType() != user_manager::USER_TYPE_SUPERVISED ||
244 user_manager::UserManager::Get()->AreSupervisedUsersAllowed(); 246 user_manager::UserManager::Get()->AreSupervisedUsersAllowed();
245 const bool meets_whitelist_requirements = 247 const bool meets_whitelist_requirements =
246 CrosSettings::IsWhitelisted(user->GetAccountId().GetUserEmail(), 248 CrosSettings::IsWhitelisted(user->GetAccountId().GetUserEmail(),
247 nullptr) || 249 nullptr) ||
248 !user->HasGaiaAccount(); 250 !user->HasGaiaAccount();
249 251
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 // Login can continue immediately. 901 // Login can continue immediately.
900 LoginAsPublicSessionInternal(new_user_context); 902 LoginAsPublicSessionInternal(new_user_context);
901 } 903 }
902 904
903 void ExistingUserController::LoginAsKioskApp(const std::string& app_id, 905 void ExistingUserController::LoginAsKioskApp(const std::string& app_id,
904 bool diagnostic_mode) { 906 bool diagnostic_mode) {
905 const bool auto_start = false; 907 const bool auto_start = false;
906 host_->StartAppLaunch(app_id, diagnostic_mode, auto_start); 908 host_->StartAppLaunch(app_id, diagnostic_mode, auto_start);
907 } 909 }
908 910
911 void ExistingUserController::LoginAsArcKioskApp(const AccountId& account_id) {
912 login_performer_.reset(nullptr);
913 login_performer_.reset(new ChromeLoginPerformer(this));
914 login_performer_->LoginAsArcKioskAccount(account_id);
915 }
916
909 void ExistingUserController::ConfigurePublicSessionAutoLogin() { 917 void ExistingUserController::ConfigurePublicSessionAutoLogin() {
910 std::string auto_login_account_id; 918 std::string auto_login_account_id;
911 cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId, 919 cros_settings_->GetString(kAccountsPrefDeviceLocalAccountAutoLoginId,
912 &auto_login_account_id); 920 &auto_login_account_id);
913 const std::vector<policy::DeviceLocalAccount> device_local_accounts = 921 const std::vector<policy::DeviceLocalAccount> device_local_accounts =
914 policy::GetDeviceLocalAccounts(cros_settings_); 922 policy::GetDeviceLocalAccounts(cros_settings_);
915 923
916 public_session_auto_login_account_id_ = EmptyAccountId(); 924 public_session_auto_login_account_id_ = EmptyAccountId();
917 for (std::vector<policy::DeviceLocalAccount>::const_iterator 925 for (std::vector<policy::DeviceLocalAccount>::const_iterator
918 it = device_local_accounts.begin(); 926 it = device_local_accounts.begin();
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 LoginAsPublicSession(user_context); 1206 LoginAsPublicSession(user_context);
1199 return; 1207 return;
1200 } 1208 }
1201 1209
1202 if (user_context.GetUserType() == user_manager::USER_TYPE_KIOSK_APP) { 1210 if (user_context.GetUserType() == user_manager::USER_TYPE_KIOSK_APP) {
1203 LoginAsKioskApp(user_context.GetAccountId().GetUserEmail(), 1211 LoginAsKioskApp(user_context.GetAccountId().GetUserEmail(),
1204 specifics.kiosk_diagnostic_mode); 1212 specifics.kiosk_diagnostic_mode);
1205 return; 1213 return;
1206 } 1214 }
1207 1215
1216 if (user_context.GetUserType() == user_manager::USER_TYPE_ARC_KIOSK_APP) {
1217 LoginAsArcKioskApp(user_context.GetAccountId());
1218 return;
1219 }
1220
1208 // Regular user or supervised user login. 1221 // Regular user or supervised user login.
1209 1222
1210 if (!user_context.HasCredentials()) { 1223 if (!user_context.HasCredentials()) {
1211 // If credentials are missing, refuse to log in. 1224 // If credentials are missing, refuse to log in.
1212 1225
1213 // Reenable clicking on other windows and status area. 1226 // Reenable clicking on other windows and status area.
1214 login_display_->SetUIEnabled(true); 1227 login_display_->SetUIEnabled(true);
1215 // Restart the auto-login timer. 1228 // Restart the auto-login timer.
1216 StartPublicSessionAutoLoginTimer(); 1229 StartPublicSessionAutoLoginTimer();
1217 } 1230 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 } 1277 }
1265 1278
1266 // Otherwise, show the unrecoverable cryptohome error UI and ask user's 1279 // Otherwise, show the unrecoverable cryptohome error UI and ask user's
1267 // permission to collect a feedback. 1280 // permission to collect a feedback.
1268 RecordPasswordChangeFlow(LOGIN_PASSWORD_CHANGE_FLOW_CRYPTOHOME_FAILURE); 1281 RecordPasswordChangeFlow(LOGIN_PASSWORD_CHANGE_FLOW_CRYPTOHOME_FAILURE);
1269 VLOG(1) << "Show unrecoverable cryptohome error dialog."; 1282 VLOG(1) << "Show unrecoverable cryptohome error dialog.";
1270 login_display_->ShowUnrecoverableCrypthomeErrorDialog(); 1283 login_display_->ShowUnrecoverableCrypthomeErrorDialog();
1271 } 1284 }
1272 1285
1273 } // namespace chromeos 1286 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698