Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2615)

Unified Diff: chrome/browser/chromeos/login/wizard_controller.cc

Issue 387403003: Fix UI glitches in enterprise enrollment recovery. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 e4fa0c34a21c570df21dadeedd934bdc63887281..aa4635159dfad9189259e4fbdaffe0872b25292b 100644
--- a/chrome/browser/chromeos/login/wizard_controller.cc
+++ b/chrome/browser/chromeos/login/wizard_controller.cc
@@ -55,6 +55,7 @@
#include "chrome/browser/chromeos/policy/device_cloud_policy_initializer.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/chromeos/timezone/timezone_provider.h"
+#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/options/options_util.h"
@@ -204,6 +205,7 @@ WizardController::WizardController(chromeos::LoginDisplayHost* host,
oobe_display_(oobe_display),
usage_statistics_reporting_(true),
skip_update_enroll_after_eula_(false),
+ enrollment_recovery_(ShouldRecoverEnrollment()),
login_screen_started_(false),
user_image_screen_return_to_previous_hack_(false),
timezone_resolved_(false),
@@ -491,18 +493,20 @@ void WizardController::ShowEnrollmentScreen() {
screen_parameters_->GetString("user", &user);
}
- EnrollmentScreenActor::EnrollmentMode mode;
- if (is_auto_enrollment)
+ EnrollmentScreenActor::EnrollmentMode mode =
+ EnrollmentScreenActor::ENROLLMENT_MODE_MANUAL;
+ EnrollmentScreen* screen = GetEnrollmentScreen();
+ std::string enrollment_domain = GetForcedEnrollmentDomain();
+ if (is_auto_enrollment) {
mode = EnrollmentScreenActor::ENROLLMENT_MODE_AUTO;
- else if (ShouldRecoverEnrollment())
+ } else if (enrollment_recovery_) {
mode = EnrollmentScreenActor::ENROLLMENT_MODE_RECOVERY;
- else if (ShouldAutoStartEnrollment() && !CanExitEnrollment())
+ enrollment_domain = GetEnrollmentRecoveryDomain();
+ } else if (ShouldAutoStartEnrollment() && !CanExitEnrollment()) {
mode = EnrollmentScreenActor::ENROLLMENT_MODE_FORCED;
- else
- mode = EnrollmentScreenActor::ENROLLMENT_MODE_MANUAL;
+ }
- EnrollmentScreen* screen = GetEnrollmentScreen();
- screen->SetParameters(mode, GetForcedEnrollmentDomain(), user);
+ screen->SetParameters(mode, enrollment_domain, user);
SetCurrentScreen(screen);
}
@@ -732,7 +736,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() || ShouldRecoverEnrollment())
+ if (ShouldAutoStartEnrollment() || enrollment_recovery_)
PerformOOBECompletedActions();
// TODO(mnissler): Unify the logic for auto-login for Public Sessions and
@@ -777,7 +781,7 @@ void WizardController::OnAutoEnrollmentDone() {
}
void WizardController::OnOOBECompleted() {
- if (ShouldAutoStartEnrollment() || ShouldRecoverEnrollment()) {
+ if (ShouldAutoStartEnrollment() || enrollment_recovery_) {
ShowEnrollmentScreen();
} else {
PerformOOBECompletedActions();
@@ -845,6 +849,9 @@ void WizardController::PerformOOBECompletedActions() {
GetLocalState()->GetInteger(prefs::kTimesHIDDialogShown));
GetLocalState()->ClearPref(prefs::kTimesHIDDialogShown);
StartupUtils::MarkOobeCompleted();
+
+ if (enrollment_recovery_)
+ chrome::AttemptRestart();
}
void WizardController::SetCurrentScreen(WizardScreen* new_current) {
@@ -1143,6 +1150,17 @@ bool WizardController::ShouldRecoverEnrollment() {
}
// static
+std::string WizardController::GetEnrollmentRecoveryDomain() {
+ policy::BrowserPolicyConnectorChromeOS* connector =
+ g_browser_process->platform_part()->browser_policy_connector_chromeos();
+ policy::DeviceCloudPolicyInitializer* dcp_initializer =
+ connector->GetDeviceCloudPolicyInitializer();
+ if (!dcp_initializer)
+ return std::string();
+ return dcp_initializer->GetEnrollmentRecoveryDomain();
+}
+
+// static
bool WizardController::CanExitEnrollment() {
policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos();
« no previous file with comments | « chrome/browser/chromeos/login/wizard_controller.h ('k') | chrome/browser/chromeos/policy/device_cloud_policy_initializer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698