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 ffdc6e4eebda0dd2ce23743d62a2e6863f410c0e..8d7eee487738c9504ee81561df5b0a3aa522dd00 100644 |
--- a/chrome/browser/chromeos/login/wizard_controller.cc |
+++ b/chrome/browser/chromeos/login/wizard_controller.cc |
@@ -732,12 +732,21 @@ void WizardController::OnChangedMetricsReportingState(bool enabled) { |
} |
void WizardController::OnUpdateErrorCheckingForUpdate() { |
- // TODO(nkostylev): Update should be required during OOBE. |
- // We do not want to block users from being able to proceed to the login |
- // screen if there is any error checking for an update. |
- // They could use "browse without sign-in" feature to set up the network to be |
- // able to perform the update later. |
- OnUpdateCompleted(); |
+ const bool is_hands_off_mode = |
+ (policy::DeviceCloudPolicyManagerChromeOS::GetZeroTouchEnrollmentMode() == |
+ policy::ZeroTouchEnrollmentMode::HANDS_OFF); |
+ |
+ // If there was an error while checking for update, return to the network |
+ // selection screen if the OOBE isn't complete (unless it's in the zero-touch |
+ // enrollment mode) as we don't want to miss any critical update. Otherwise, |
+ // we do not want to block users from being able to proceed to the login |
+ // screen if there is any error checking for an update. They could use |
+ // "browse without sign-in" feature to set up the network to be able to |
+ // perform the update later. |
+ if (is_out_of_box_ && !is_hands_off_mode) |
+ ShowNetworkScreen(); |
+ else |
+ OnUpdateCompleted(); |
} |
void WizardController::OnUpdateErrorUpdating(bool is_critical_update) { |