| 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 23 matching lines...) Expand all Loading... |
| 34 #include "chrome/browser/chromeos/login/startup_utils.h" | 34 #include "chrome/browser/chromeos/login/startup_utils.h" |
| 35 #include "chrome/browser/chromeos/login/ui/login_display_host.h" | 35 #include "chrome/browser/chromeos/login/ui/login_display_host.h" |
| 36 #include "chrome/browser/chromeos/login/user_flow.h" | 36 #include "chrome/browser/chromeos/login/user_flow.h" |
| 37 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" | 37 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" |
| 38 #include "chrome/browser/chromeos/login/wizard_controller.h" | 38 #include "chrome/browser/chromeos/login/wizard_controller.h" |
| 39 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 39 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 40 #include "chrome/browser/chromeos/policy/device_local_account.h" | 40 #include "chrome/browser/chromeos/policy/device_local_account.h" |
| 41 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" | 41 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" |
| 42 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 42 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| 43 #include "chrome/browser/chromeos/settings/cros_settings.h" | 43 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 44 #include "chrome/browser/chromeos/system/device_disabling_manager.h" |
| 44 #include "chrome/browser/signin/easy_unlock_service.h" | 45 #include "chrome/browser/signin/easy_unlock_service.h" |
| 45 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" | 46 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" |
| 46 #include "chrome/common/chrome_switches.h" | 47 #include "chrome/common/chrome_switches.h" |
| 47 #include "chrome/common/chrome_version_info.h" | 48 #include "chrome/common/chrome_version_info.h" |
| 48 #include "chrome/common/url_constants.h" | 49 #include "chrome/common/url_constants.h" |
| 49 #include "chrome/grit/generated_resources.h" | 50 #include "chrome/grit/generated_resources.h" |
| 50 #include "chromeos/chromeos_switches.h" | 51 #include "chromeos/chromeos_switches.h" |
| 51 #include "chromeos/dbus/dbus_thread_manager.h" | 52 #include "chromeos/dbus/dbus_thread_manager.h" |
| 52 #include "chromeos/dbus/power_manager_client.h" | 53 #include "chromeos/dbus/power_manager_client.h" |
| 53 #include "chromeos/dbus/session_manager_client.h" | 54 #include "chromeos/dbus/session_manager_client.h" |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 if (status == CrosSettingsProvider::TEMPORARILY_UNTRUSTED) | 429 if (status == CrosSettingsProvider::TEMPORARILY_UNTRUSTED) |
| 429 return; | 430 return; |
| 430 | 431 |
| 431 if (status == CrosSettingsProvider::PERMANENTLY_UNTRUSTED) { | 432 if (status == CrosSettingsProvider::PERMANENTLY_UNTRUSTED) { |
| 432 // If the |cros_settings_| are permanently untrusted, show an error message | 433 // If the |cros_settings_| are permanently untrusted, show an error message |
| 433 // and refuse to log in. | 434 // and refuse to log in. |
| 434 login_display_->ShowError(IDS_LOGIN_ERROR_OWNER_KEY_LOST, | 435 login_display_->ShowError(IDS_LOGIN_ERROR_OWNER_KEY_LOST, |
| 435 1, | 436 1, |
| 436 HelpAppLauncher::HELP_CANT_ACCESS_ACCOUNT); | 437 HelpAppLauncher::HELP_CANT_ACCESS_ACCOUNT); |
| 437 | 438 |
| 438 // Reenable clicking on other windows and the status area. Do not start the | 439 // Re-enable clicking on other windows and the status area. Do not start the |
| 439 // auto-login timer though. Without trusted |cros_settings_|, no auto-login | 440 // auto-login timer though. Without trusted |cros_settings_|, no auto-login |
| 440 // can succeed. | 441 // can succeed. |
| 441 login_display_->SetUIEnabled(true); | 442 login_display_->SetUIEnabled(true); |
| 442 return; | 443 return; |
| 443 } | 444 } |
| 444 | 445 |
| 446 bool device_disabled = false; |
| 447 cros_settings_->GetBoolean(kDeviceDisabled, &device_disabled); |
| 448 if (device_disabled && system::DeviceDisablingManager:: |
| 449 HonorDeviceDisablingDuringNormalOperation()) { |
| 450 // If the device is disabled, bail out. A device disabled screen will be |
| 451 // shown by the DeviceDisablingManager. |
| 452 |
| 453 // Re-enable clicking on other windows and the status area. Do not start the |
| 454 // auto-login timer though. On a disabled device, no auto-login can succeed. |
| 455 login_display_->SetUIEnabled(true); |
| 456 return; |
| 457 } |
| 458 |
| 445 if (is_login_in_progress_) { | 459 if (is_login_in_progress_) { |
| 446 // If there is another login in progress, bail out. Do not re-enable | 460 // If there is another login in progress, bail out. Do not re-enable |
| 447 // clicking on other windows and the status area. Do not start the | 461 // clicking on other windows and the status area. Do not start the |
| 448 // auto-login timer. | 462 // auto-login timer. |
| 449 return; | 463 return; |
| 450 } | 464 } |
| 451 | 465 |
| 452 if (user_context.GetUserType() != user_manager::USER_TYPE_REGULAR && | 466 if (user_context.GetUserType() != user_manager::USER_TYPE_REGULAR && |
| 453 user_manager::UserManager::Get()->IsUserLoggedIn()) { | 467 user_manager::UserManager::Get()->IsUserLoggedIn()) { |
| 454 // Multi-login is only allowed for regular users. If we are attempting to | 468 // Multi-login is only allowed for regular users. If we are attempting to |
| (...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1200 is_login_in_progress_ = false; | 1214 is_login_in_progress_ = false; |
| 1201 | 1215 |
| 1202 // Reenable clicking on other windows and status area. | 1216 // Reenable clicking on other windows and status area. |
| 1203 login_display_->SetUIEnabled(true); | 1217 login_display_->SetUIEnabled(true); |
| 1204 | 1218 |
| 1205 if (start_public_session_timer) | 1219 if (start_public_session_timer) |
| 1206 StartPublicSessionAutoLoginTimer(); | 1220 StartPublicSessionAutoLoginTimer(); |
| 1207 } | 1221 } |
| 1208 | 1222 |
| 1209 } // namespace chromeos | 1223 } // namespace chromeos |
| OLD | NEW |