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

Unified Diff: chrome/browser/chromeos/login/screens/host_pairing_screen.cc

Issue 1535573002: 1) Add initialization error page; 2) Add connection error page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clear the enrollment related local state when the enrollment succeeds or an error occurs. Created 5 years 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/screens/host_pairing_screen.cc
diff --git a/chrome/browser/chromeos/login/screens/host_pairing_screen.cc b/chrome/browser/chromeos/login/screens/host_pairing_screen.cc
index 021ab6f5dbbf6028c0e01ea3f11b8cb4361d2c91..0c84bb6646dd6f5baa9eb38ac4ebd0f8ee6393e9 100644
--- a/chrome/browser/chromeos/login/screens/host_pairing_screen.cc
+++ b/chrome/browser/chromeos/login/screens/host_pairing_screen.cc
@@ -5,11 +5,13 @@
#include "chrome/browser/chromeos/login/screens/host_pairing_screen.h"
#include "base/command_line.h"
+#include "base/prefs/pref_service.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
+#include "chrome/common/pref_names.h"
#include "components/pairing/host_pairing_controller.h"
namespace chromeos {
@@ -17,6 +19,18 @@ namespace chromeos {
using namespace host_pairing;
using namespace pairing_chromeos;
+namespace {
+
+// Clear Enrollment related local state after a successful enrollment or when
+// an error occurs.
+void ClearEnrollmentLocalState() {
+ g_browser_process->local_state()->ClearPref(
+ prefs::kDeviceEnrollmentAutoStart);
+ g_browser_process->local_state()->ClearPref(prefs::kDeviceEnrollmentCanExit);
+}
+
+} // namespace
+
HostPairingScreen::HostPairingScreen(
BaseScreenDelegate* base_screen_delegate,
Delegate* delegate,
@@ -68,6 +82,11 @@ std::string HostPairingScreen::GetName() const {
void HostPairingScreen::PairingStageChanged(Stage new_stage) {
std::string desired_page;
switch (new_stage) {
+ case HostPairingController::STAGE_INITIALIZATION_ERROR: {
+ desired_page = kPageIntializationError;
+ ClearEnrollmentLocalState();
+ break;
+ }
case HostPairingController::STAGE_WAITING_FOR_CONTROLLER:
case HostPairingController::STAGE_WAITING_FOR_CONTROLLER_AFTER_UPDATE: {
desired_page = kPageWelcome;
@@ -79,12 +98,18 @@ void HostPairingScreen::PairingStageChanged(Stage new_stage) {
remora_controller_->GetConfirmationCode());
break;
}
+ case HostPairingController::STAGE_CONTROLLER_CONNECTION_ERROR: {
+ desired_page = kPageConnectionError;
+ ClearEnrollmentLocalState();
+ break;
+ }
case HostPairingController::STAGE_SETUP_BASIC_CONFIGURATION: {
desired_page = kPageSetupBasicConfiguration;
break;
}
case HostPairingController::STAGE_SETUP_NETWORK_ERROR: {
desired_page = kPageSetupNetworkError;
+ ClearEnrollmentLocalState();
break;
}
case HostPairingController::STAGE_WAITING_FOR_CREDENTIALS: {
@@ -100,12 +125,14 @@ void HostPairingScreen::PairingStageChanged(Stage new_stage) {
case HostPairingController::STAGE_ENROLLMENT_SUCCESS: {
remora_controller_->RemoveObserver(this);
Finish(WizardController::ENTERPRISE_ENROLLMENT_COMPLETED);
+ ClearEnrollmentLocalState();
break;
}
case HostPairingController::STAGE_ENROLLMENT_ERROR: {
// TODO(xdai): Maybe return to the Network Setup page?
remora_controller_->RemoveObserver(this);
desired_page = kPageEnrollmentError;
+ ClearEnrollmentLocalState();
break;
}
default:

Powered by Google App Engine
This is Rietveld 408576698