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(); |