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

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: 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 882302b6c074f9a87eca60e1c273da981561dd66..d100f24279aad6696ee6c6b59686a2bace8db222 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),
@@ -493,15 +495,18 @@ void WizardController::ShowEnrollmentScreen() {
EnrollmentScreenActor::EnrollmentMode mode =
EnrollmentScreenActor::ENROLLMENT_MODE_MANUAL;
- if (is_auto_enrollment)
+ EnrollmentScreen* screen = GetEnrollmentScreen();
+ std::string enrollment_domain = GetForcedEnrollmentDomain();
+ if (is_auto_enrollment) {
mode = EnrollmentScreenActor::ENROLLMENT_MODE_AUTO;
- else if (ShouldAutoStartEnrollment() && !CanExitEnrollment())
+ } else if (ShouldAutoStartEnrollment() && !CanExitEnrollment()) {
mode = EnrollmentScreenActor::ENROLLMENT_MODE_FORCED;
- else if (ShouldRecoverEnrollment())
+ } else if (enrollment_recovery_) {
mode = EnrollmentScreenActor::ENROLLMENT_MODE_FORCED;
+ enrollment_domain = GetEnrollmentRecoveryDomain();
+ }
- EnrollmentScreen* screen = GetEnrollmentScreen();
- screen->SetParameters(mode, GetForcedEnrollmentDomain(), user);
+ screen->SetParameters(mode, enrollment_domain, user);
SetCurrentScreen(screen);
}
@@ -731,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
@@ -776,7 +781,7 @@ void WizardController::OnAutoEnrollmentDone() {
}
void WizardController::OnOOBECompleted() {
- if (ShouldAutoStartEnrollment() || ShouldRecoverEnrollment()) {
+ if (ShouldAutoStartEnrollment() || enrollment_recovery_) {
ShowEnrollmentScreen();
} else {
PerformOOBECompletedActions();
@@ -844,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) {
@@ -1142,6 +1150,16 @@ 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();
pastarmovj 2014/07/15 08:44:10 nit: line break.
Thiemo Nagel 2014/07/16 09:55:32 Done.
+ 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