| Index: chrome/browser/chromeos/login/wizard_controller.cc
|
| diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc
|
| index 6d1d4620d7620a4ddb6417738eb46c20a2ab275d..882302b6c074f9a87eca60e1c273da981561dd66 100644
|
| --- a/chrome/browser/chromeos/login/wizard_controller.cc
|
| +++ b/chrome/browser/chromeos/login/wizard_controller.cc
|
| @@ -497,6 +497,8 @@ void WizardController::ShowEnrollmentScreen() {
|
| mode = EnrollmentScreenActor::ENROLLMENT_MODE_AUTO;
|
| else if (ShouldAutoStartEnrollment() && !CanExitEnrollment())
|
| mode = EnrollmentScreenActor::ENROLLMENT_MODE_FORCED;
|
| + else if (ShouldRecoverEnrollment())
|
| + mode = EnrollmentScreenActor::ENROLLMENT_MODE_FORCED;
|
|
|
| EnrollmentScreen* screen = GetEnrollmentScreen();
|
| screen->SetParameters(mode, GetForcedEnrollmentDomain(), user);
|
| @@ -729,7 +731,7 @@ void WizardController::OnUserImageSkipped() {
|
| void WizardController::OnEnrollmentDone() {
|
| // Mark OOBE as completed only if enterprise enrollment was part of the
|
| // forced flow (i.e. app kiosk).
|
| - if (ShouldAutoStartEnrollment())
|
| + if (ShouldAutoStartEnrollment() || ShouldRecoverEnrollment())
|
| PerformOOBECompletedActions();
|
|
|
| // TODO(mnissler): Unify the logic for auto-login for Public Sessions and
|
| @@ -774,7 +776,7 @@ void WizardController::OnAutoEnrollmentDone() {
|
| }
|
|
|
| void WizardController::OnOOBECompleted() {
|
| - if (ShouldAutoStartEnrollment()) {
|
| + if (ShouldAutoStartEnrollment() || ShouldRecoverEnrollment()) {
|
| ShowEnrollmentScreen();
|
| } else {
|
| PerformOOBECompletedActions();
|
| @@ -1131,6 +1133,15 @@ bool WizardController::ShouldAutoStartEnrollment() {
|
| }
|
|
|
| // static
|
| +bool WizardController::ShouldRecoverEnrollment() {
|
| + policy::BrowserPolicyConnectorChromeOS* connector =
|
| + g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
| + policy::DeviceCloudPolicyInitializer* dcp_initializer =
|
| + connector->GetDeviceCloudPolicyInitializer();
|
| + return dcp_initializer && dcp_initializer->ShouldRecoverEnrollment();
|
| +}
|
| +
|
| +// static
|
| bool WizardController::CanExitEnrollment() {
|
| policy::BrowserPolicyConnectorChromeOS* connector =
|
| g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
|
|