OLD | NEW |
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 11 matching lines...) Expand all Loading... |
22 #include "base/version.h" | 22 #include "base/version.h" |
23 #include "chrome/browser/accessibility/accessibility_events.h" | 23 #include "chrome/browser/accessibility/accessibility_events.h" |
24 #include "chrome/browser/browser_process.h" | 24 #include "chrome/browser/browser_process.h" |
25 #include "chrome/browser/browser_process_platform_part.h" | 25 #include "chrome/browser/browser_process_platform_part.h" |
26 #include "chrome/browser/chrome_notification_types.h" | 26 #include "chrome/browser/chrome_notification_types.h" |
27 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" | 27 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" |
28 #include "chrome/browser/chromeos/boot_times_loader.h" | 28 #include "chrome/browser/chromeos/boot_times_loader.h" |
29 #include "chrome/browser/chromeos/customization_document.h" | 29 #include "chrome/browser/chromeos/customization_document.h" |
30 #include "chrome/browser/chromeos/first_run/first_run.h" | 30 #include "chrome/browser/chromeos/first_run/first_run.h" |
31 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" | 31 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h" |
| 32 #include "chrome/browser/chromeos/login/auth/chrome_login_performer.h" |
32 #include "chrome/browser/chromeos/login/helper.h" | 33 #include "chrome/browser/chromeos/login/helper.h" |
33 #include "chrome/browser/chromeos/login/login_utils.h" | 34 #include "chrome/browser/chromeos/login/login_utils.h" |
34 #include "chrome/browser/chromeos/login/startup_utils.h" | 35 #include "chrome/browser/chromeos/login/startup_utils.h" |
35 #include "chrome/browser/chromeos/login/ui/login_display_host.h" | 36 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
36 #include "chrome/browser/chromeos/login/user_flow.h" | 37 #include "chrome/browser/chromeos/login/user_flow.h" |
37 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 38 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
38 #include "chrome/browser/chromeos/login/wizard_controller.h" | 39 #include "chrome/browser/chromeos/login/wizard_controller.h" |
39 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 40 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
40 #include "chrome/browser/chromeos/policy/device_local_account.h" | 41 #include "chrome/browser/chromeos/policy/device_local_account.h" |
41 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" | 42 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 BootTimesLoader::Get()->RecordLoginAttempted(); | 453 BootTimesLoader::Get()->RecordLoginAttempted(); |
453 | 454 |
454 // Disable UI while loading user profile. | 455 // Disable UI while loading user profile. |
455 login_display_->SetUIEnabled(false); | 456 login_display_->SetUIEnabled(false); |
456 | 457 |
457 // Use the same LoginPerformer for subsequent login as it has state | 458 // Use the same LoginPerformer for subsequent login as it has state |
458 // such as Authenticator instance. | 459 // such as Authenticator instance. |
459 if (!login_performer_.get() || num_login_attempts_ <= 1) { | 460 if (!login_performer_.get() || num_login_attempts_ <= 1) { |
460 // Only one instance of LoginPerformer should exist at a time. | 461 // Only one instance of LoginPerformer should exist at a time. |
461 login_performer_.reset(NULL); | 462 login_performer_.reset(NULL); |
462 login_performer_.reset(new LoginPerformer(this)); | 463 login_performer_.reset(new ChromeLoginPerformer(this)); |
463 } | 464 } |
464 | 465 |
465 is_login_in_progress_ = true; | 466 is_login_in_progress_ = true; |
466 if (gaia::ExtractDomainName(user_context.GetUserID()) == | 467 if (gaia::ExtractDomainName(user_context.GetUserID()) == |
467 chromeos::login::kSupervisedUserDomain) { | 468 chromeos::login::kSupervisedUserDomain) { |
468 login_performer_->LoginAsSupervisedUser(user_context); | 469 login_performer_->LoginAsSupervisedUser(user_context); |
469 } else { | 470 } else { |
470 login_performer_->PerformLogin(user_context, auth_mode); | 471 login_performer_->PerformLogin(user_context, auth_mode); |
471 } | 472 } |
472 SendAccessibilityAlert( | 473 SendAccessibilityAlert( |
473 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNING_IN)); | 474 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNING_IN)); |
474 } | 475 } |
475 | 476 |
476 void ExistingUserController::LoginAsRetailModeUser() { | 477 void ExistingUserController::LoginAsRetailModeUser() { |
477 // Stop the auto-login timer when attempting login. | 478 // Stop the auto-login timer when attempting login. |
478 StopPublicSessionAutoLoginTimer(); | 479 StopPublicSessionAutoLoginTimer(); |
479 | 480 |
480 // Disable clicking on other windows. | 481 // Disable clicking on other windows. |
481 login_display_->SetUIEnabled(false); | 482 login_display_->SetUIEnabled(false); |
482 // TODO(rkc): Add a CHECK to make sure retail mode logins are allowed once | 483 // TODO(rkc): Add a CHECK to make sure retail mode logins are allowed once |
483 // the enterprise policy wiring is done for retail mode. | 484 // the enterprise policy wiring is done for retail mode. |
484 | 485 |
485 // Only one instance of LoginPerformer should exist at a time. | 486 // Only one instance of LoginPerformer should exist at a time. |
486 login_performer_.reset(NULL); | 487 login_performer_.reset(NULL); |
487 login_performer_.reset(new LoginPerformer(this)); | 488 login_performer_.reset(new ChromeLoginPerformer(this)); |
488 is_login_in_progress_ = true; | 489 is_login_in_progress_ = true; |
489 login_performer_->LoginRetailMode(); | 490 login_performer_->LoginRetailMode(); |
490 SendAccessibilityAlert( | 491 SendAccessibilityAlert( |
491 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNIN_DEMOUSER)); | 492 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNIN_DEMOUSER)); |
492 } | 493 } |
493 | 494 |
494 void ExistingUserController::LoginAsGuest() { | 495 void ExistingUserController::LoginAsGuest() { |
495 if (is_login_in_progress_ || | 496 if (is_login_in_progress_ || |
496 user_manager::UserManager::Get()->IsUserLoggedIn()) { | 497 user_manager::UserManager::Get()->IsUserLoggedIn()) { |
497 return; | 498 return; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 HelpAppLauncher::HELP_CANT_ACCESS_ACCOUNT); | 533 HelpAppLauncher::HELP_CANT_ACCESS_ACCOUNT); |
533 // Reenable clicking on other windows and status area. | 534 // Reenable clicking on other windows and status area. |
534 login_display_->SetUIEnabled(true); | 535 login_display_->SetUIEnabled(true); |
535 StartPublicSessionAutoLoginTimer(); | 536 StartPublicSessionAutoLoginTimer(); |
536 display_email_.clear(); | 537 display_email_.clear(); |
537 return; | 538 return; |
538 } | 539 } |
539 | 540 |
540 // Only one instance of LoginPerformer should exist at a time. | 541 // Only one instance of LoginPerformer should exist at a time. |
541 login_performer_.reset(NULL); | 542 login_performer_.reset(NULL); |
542 login_performer_.reset(new LoginPerformer(this)); | 543 login_performer_.reset(new ChromeLoginPerformer(this)); |
543 is_login_in_progress_ = true; | 544 is_login_in_progress_ = true; |
544 login_performer_->LoginOffTheRecord(); | 545 login_performer_->LoginOffTheRecord(); |
545 SendAccessibilityAlert( | 546 SendAccessibilityAlert( |
546 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNIN_OFFRECORD)); | 547 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNIN_OFFRECORD)); |
547 } | 548 } |
548 | 549 |
549 void ExistingUserController::MigrateUserData(const std::string& old_password) { | 550 void ExistingUserController::MigrateUserData(const std::string& old_password) { |
550 // LoginPerformer instance has state of the user so it should exist. | 551 // LoginPerformer instance has state of the user so it should exist. |
551 if (login_performer_.get()) | 552 if (login_performer_.get()) |
552 login_performer_->RecoverEncryptedData(old_password); | 553 login_performer_->RecoverEncryptedData(old_password); |
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1246 DCHECK(!keyboard_layout.empty()); | 1247 DCHECK(!keyboard_layout.empty()); |
1247 new_user_context.SetPublicSessionInputMethod(keyboard_layout); | 1248 new_user_context.SetPublicSessionInputMethod(keyboard_layout); |
1248 | 1249 |
1249 LoginAsPublicSessionInternal(new_user_context); | 1250 LoginAsPublicSessionInternal(new_user_context); |
1250 } | 1251 } |
1251 | 1252 |
1252 void ExistingUserController::LoginAsPublicSessionInternal( | 1253 void ExistingUserController::LoginAsPublicSessionInternal( |
1253 const UserContext& user_context) { | 1254 const UserContext& user_context) { |
1254 // Only one instance of LoginPerformer should exist at a time. | 1255 // Only one instance of LoginPerformer should exist at a time. |
1255 login_performer_.reset(NULL); | 1256 login_performer_.reset(NULL); |
1256 login_performer_.reset(new LoginPerformer(this)); | 1257 login_performer_.reset(new ChromeLoginPerformer(this)); |
1257 is_login_in_progress_ = true; | 1258 is_login_in_progress_ = true; |
1258 login_performer_->LoginAsPublicSession(user_context); | 1259 login_performer_->LoginAsPublicSession(user_context); |
1259 SendAccessibilityAlert( | 1260 SendAccessibilityAlert( |
1260 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNIN_PUBLIC_ACCOUNT)); | 1261 l10n_util::GetStringUTF8(IDS_CHROMEOS_ACC_LOGIN_SIGNIN_PUBLIC_ACCOUNT)); |
1261 } | 1262 } |
1262 | 1263 |
1263 } // namespace chromeos | 1264 } // namespace chromeos |
OLD | NEW |