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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/screens/host_pairing_screen.h" 5 #include "chrome/browser/chromeos/login/screens/host_pairing_screen.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/chromeos/login/startup_utils.h" 10 #include "chrome/browser/chromeos/login/startup_utils.h"
10 #include "chrome/browser/chromeos/login/wizard_controller.h" 11 #include "chrome/browser/chromeos/login/wizard_controller.h"
11 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 12 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
12 #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h" 13 #include "chrome/browser/chromeos/policy/enrollment_status_chromeos.h"
14 #include "chrome/common/pref_names.h"
13 #include "components/pairing/host_pairing_controller.h" 15 #include "components/pairing/host_pairing_controller.h"
14 16
15 namespace chromeos { 17 namespace chromeos {
16 18
17 using namespace host_pairing; 19 using namespace host_pairing;
18 using namespace pairing_chromeos; 20 using namespace pairing_chromeos;
19 21
22 namespace {
23
24 // Clear Enrollment related local state after a successful enrollment or when
25 // an error occurs.
26 void ClearEnrollmentLocalState() {
27 g_browser_process->local_state()->ClearPref(
28 prefs::kDeviceEnrollmentAutoStart);
29 g_browser_process->local_state()->ClearPref(prefs::kDeviceEnrollmentCanExit);
30 }
31
32 } // namespace
33
20 HostPairingScreen::HostPairingScreen( 34 HostPairingScreen::HostPairingScreen(
21 BaseScreenDelegate* base_screen_delegate, 35 BaseScreenDelegate* base_screen_delegate,
22 Delegate* delegate, 36 Delegate* delegate,
23 HostPairingScreenActor* actor, 37 HostPairingScreenActor* actor,
24 pairing_chromeos::HostPairingController* remora_controller) 38 pairing_chromeos::HostPairingController* remora_controller)
25 : BaseScreen(base_screen_delegate), 39 : BaseScreen(base_screen_delegate),
26 delegate_(delegate), 40 delegate_(delegate),
27 actor_(actor), 41 actor_(actor),
28 remora_controller_(remora_controller), 42 remora_controller_(remora_controller),
29 current_stage_(HostPairingController::STAGE_NONE), 43 current_stage_(HostPairingController::STAGE_NONE),
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 actor_->Hide(); 75 actor_->Hide();
62 } 76 }
63 77
64 std::string HostPairingScreen::GetName() const { 78 std::string HostPairingScreen::GetName() const {
65 return WizardController::kHostPairingScreenName; 79 return WizardController::kHostPairingScreenName;
66 } 80 }
67 81
68 void HostPairingScreen::PairingStageChanged(Stage new_stage) { 82 void HostPairingScreen::PairingStageChanged(Stage new_stage) {
69 std::string desired_page; 83 std::string desired_page;
70 switch (new_stage) { 84 switch (new_stage) {
85 case HostPairingController::STAGE_INITIALIZATION_ERROR: {
86 desired_page = kPageIntializationError;
87 ClearEnrollmentLocalState();
88 break;
89 }
71 case HostPairingController::STAGE_WAITING_FOR_CONTROLLER: 90 case HostPairingController::STAGE_WAITING_FOR_CONTROLLER:
72 case HostPairingController::STAGE_WAITING_FOR_CONTROLLER_AFTER_UPDATE: { 91 case HostPairingController::STAGE_WAITING_FOR_CONTROLLER_AFTER_UPDATE: {
73 desired_page = kPageWelcome; 92 desired_page = kPageWelcome;
74 break; 93 break;
75 } 94 }
76 case HostPairingController::STAGE_WAITING_FOR_CODE_CONFIRMATION: { 95 case HostPairingController::STAGE_WAITING_FOR_CODE_CONFIRMATION: {
77 desired_page = kPageCodeConfirmation; 96 desired_page = kPageCodeConfirmation;
78 context_.SetString(kContextKeyConfirmationCode, 97 context_.SetString(kContextKeyConfirmationCode,
79 remora_controller_->GetConfirmationCode()); 98 remora_controller_->GetConfirmationCode());
80 break; 99 break;
81 } 100 }
101 case HostPairingController::STAGE_CONTROLLER_CONNECTION_ERROR: {
102 desired_page = kPageConnectionError;
103 ClearEnrollmentLocalState();
104 break;
105 }
82 case HostPairingController::STAGE_SETUP_BASIC_CONFIGURATION: { 106 case HostPairingController::STAGE_SETUP_BASIC_CONFIGURATION: {
83 desired_page = kPageSetupBasicConfiguration; 107 desired_page = kPageSetupBasicConfiguration;
84 break; 108 break;
85 } 109 }
86 case HostPairingController::STAGE_SETUP_NETWORK_ERROR: { 110 case HostPairingController::STAGE_SETUP_NETWORK_ERROR: {
87 desired_page = kPageSetupNetworkError; 111 desired_page = kPageSetupNetworkError;
112 ClearEnrollmentLocalState();
88 break; 113 break;
89 } 114 }
90 case HostPairingController::STAGE_WAITING_FOR_CREDENTIALS: { 115 case HostPairingController::STAGE_WAITING_FOR_CREDENTIALS: {
91 desired_page = kPageEnrollmentIntroduction; 116 desired_page = kPageEnrollmentIntroduction;
92 break; 117 break;
93 } 118 }
94 case HostPairingController::STAGE_ENROLLING: { 119 case HostPairingController::STAGE_ENROLLING: {
95 desired_page = kPageEnrollment; 120 desired_page = kPageEnrollment;
96 context_.SetString(kContextKeyEnrollmentDomain, 121 context_.SetString(kContextKeyEnrollmentDomain,
97 remora_controller_->GetEnrollmentDomain()); 122 remora_controller_->GetEnrollmentDomain());
98 break; 123 break;
99 } 124 }
100 case HostPairingController::STAGE_ENROLLMENT_SUCCESS: { 125 case HostPairingController::STAGE_ENROLLMENT_SUCCESS: {
101 remora_controller_->RemoveObserver(this); 126 remora_controller_->RemoveObserver(this);
102 Finish(WizardController::ENTERPRISE_ENROLLMENT_COMPLETED); 127 Finish(WizardController::ENTERPRISE_ENROLLMENT_COMPLETED);
128 ClearEnrollmentLocalState();
103 break; 129 break;
104 } 130 }
105 case HostPairingController::STAGE_ENROLLMENT_ERROR: { 131 case HostPairingController::STAGE_ENROLLMENT_ERROR: {
106 // TODO(xdai): Maybe return to the Network Setup page? 132 // TODO(xdai): Maybe return to the Network Setup page?
107 remora_controller_->RemoveObserver(this); 133 remora_controller_->RemoveObserver(this);
108 desired_page = kPageEnrollmentError; 134 desired_page = kPageEnrollmentError;
135 ClearEnrollmentLocalState();
109 break; 136 break;
110 } 137 }
111 default: 138 default:
112 break; 139 break;
113 } 140 }
114 current_stage_ = new_stage; 141 current_stage_ = new_stage;
115 context_.SetString(kContextKeyDeviceName, 142 context_.SetString(kContextKeyDeviceName,
116 remora_controller_->GetDeviceName()); 143 remora_controller_->GetDeviceName());
117 context_.SetString(kContextKeyPage, desired_page); 144 context_.SetString(kContextKeyPage, desired_page);
118 CommitContextChanges(); 145 CommitContextChanges();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 } 220 }
194 221
195 void HostPairingScreen::OnAnyEnrollmentError() { 222 void HostPairingScreen::OnAnyEnrollmentError() {
196 enrollment_helper_->ClearAuth(base::Bind(&HostPairingScreen::OnAuthCleared, 223 enrollment_helper_->ClearAuth(base::Bind(&HostPairingScreen::OnAuthCleared,
197 weak_ptr_factory_.GetWeakPtr())); 224 weak_ptr_factory_.GetWeakPtr()));
198 remora_controller_->OnEnrollmentStatusChanged( 225 remora_controller_->OnEnrollmentStatusChanged(
199 HostPairingController::ENROLLMENT_STATUS_FAILURE); 226 HostPairingController::ENROLLMENT_STATUS_FAILURE);
200 } 227 }
201 228
202 } // namespace chromeos 229 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698