OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/webui/chromeos/login/enrollment_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/enrollment_screen_handler.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 reason == NetworkError::ERROR_REASON_PORTAL_DETECTED; | 86 reason == NetworkError::ERROR_REASON_PORTAL_DETECTED; |
87 } | 87 } |
88 | 88 |
89 bool IsProxyError(NetworkStateInformer::State state, | 89 bool IsProxyError(NetworkStateInformer::State state, |
90 NetworkError::ErrorReason reason) { | 90 NetworkError::ErrorReason reason) { |
91 return state == NetworkStateInformer::PROXY_AUTH_REQUIRED || | 91 return state == NetworkStateInformer::PROXY_AUTH_REQUIRED || |
92 reason == NetworkError::ERROR_REASON_PROXY_AUTH_CANCELLED || | 92 reason == NetworkError::ERROR_REASON_PROXY_AUTH_CANCELLED || |
93 reason == NetworkError::ERROR_REASON_PROXY_CONNECTION_FAILED; | 93 reason == NetworkError::ERROR_REASON_PROXY_CONNECTION_FAILED; |
94 } | 94 } |
95 | 95 |
| 96 |
| 97 // Returns the enterprise domain after enrollment, or an empty string. |
| 98 std::string GetEnterpriseDomain() { |
| 99 policy::BrowserPolicyConnectorChromeOS* connector = |
| 100 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| 101 return connector->GetEnterpriseDomain(); |
| 102 } |
| 103 |
96 } // namespace | 104 } // namespace |
97 | 105 |
98 // EnrollmentScreenHandler, public ------------------------------ | 106 // EnrollmentScreenHandler, public ------------------------------ |
99 | 107 |
100 EnrollmentScreenHandler::EnrollmentScreenHandler( | 108 EnrollmentScreenHandler::EnrollmentScreenHandler( |
101 const scoped_refptr<NetworkStateInformer>& network_state_informer, | 109 const scoped_refptr<NetworkStateInformer>& network_state_informer, |
102 NetworkErrorModel* network_error_model) | 110 NetworkErrorModel* network_error_model) |
103 : BaseScreenHandler(kJsScreenPath), | 111 : BaseScreenHandler(kJsScreenPath), |
104 controller_(NULL), | 112 controller_(NULL), |
105 show_on_init_(false), | 113 show_on_init_(false), |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 void EnrollmentScreenHandler::ShowAttributePromptScreen( | 179 void EnrollmentScreenHandler::ShowAttributePromptScreen( |
172 const std::string& asset_id, | 180 const std::string& asset_id, |
173 const std::string& location) { | 181 const std::string& location) { |
174 CallJS("showAttributePromptStep", asset_id, location); | 182 CallJS("showAttributePromptStep", asset_id, location); |
175 } | 183 } |
176 | 184 |
177 void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() { | 185 void EnrollmentScreenHandler::ShowEnrollmentSpinnerScreen() { |
178 ShowStep(kEnrollmentStepWorking); | 186 ShowStep(kEnrollmentStepWorking); |
179 } | 187 } |
180 | 188 |
| 189 void EnrollmentScreenHandler::ShowAttestationBasedEnrollmentSuccessScreen( |
| 190 const std::string& enterprise_domain) { |
| 191 CallJS("showAttestationBasedEnrollmentSuccess", enterprise_domain); |
| 192 } |
| 193 |
181 void EnrollmentScreenHandler::ShowAuthError( | 194 void EnrollmentScreenHandler::ShowAuthError( |
182 const GoogleServiceAuthError& error) { | 195 const GoogleServiceAuthError& error) { |
183 switch (error.state()) { | 196 switch (error.state()) { |
184 case GoogleServiceAuthError::NONE: | 197 case GoogleServiceAuthError::NONE: |
185 case GoogleServiceAuthError::CAPTCHA_REQUIRED: | 198 case GoogleServiceAuthError::CAPTCHA_REQUIRED: |
186 case GoogleServiceAuthError::TWO_FACTOR: | 199 case GoogleServiceAuthError::TWO_FACTOR: |
187 case GoogleServiceAuthError::HOSTED_NOT_ALLOWED: | 200 case GoogleServiceAuthError::HOSTED_NOT_ALLOWED: |
188 case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: | 201 case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: |
189 case GoogleServiceAuthError::REQUEST_CANCELED: | 202 case GoogleServiceAuthError::REQUEST_CANCELED: |
190 case GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE: | 203 case GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE: |
(...skipping 26 matching lines...) Expand all Loading... |
217 ShowError(IDS_ENTERPRISE_ENROLLMENT_FATAL_ENROLLMENT_ERROR, true); | 230 ShowError(IDS_ENTERPRISE_ENROLLMENT_FATAL_ENROLLMENT_ERROR, true); |
218 return; | 231 return; |
219 } | 232 } |
220 NOTREACHED(); | 233 NOTREACHED(); |
221 } | 234 } |
222 | 235 |
223 void EnrollmentScreenHandler::ShowEnrollmentStatus( | 236 void EnrollmentScreenHandler::ShowEnrollmentStatus( |
224 policy::EnrollmentStatus status) { | 237 policy::EnrollmentStatus status) { |
225 switch (status.status()) { | 238 switch (status.status()) { |
226 case policy::EnrollmentStatus::STATUS_SUCCESS: | 239 case policy::EnrollmentStatus::STATUS_SUCCESS: |
227 ShowStep(kEnrollmentStepSuccess); | 240 if (config_.is_mode_attestation()) |
| 241 ShowAttestationBasedEnrollmentSuccessScreen(GetEnterpriseDomain()); |
| 242 else |
| 243 ShowStep(kEnrollmentStepSuccess); |
228 return; | 244 return; |
229 case policy::EnrollmentStatus::STATUS_NO_STATE_KEYS: | 245 case policy::EnrollmentStatus::STATUS_NO_STATE_KEYS: |
230 ShowError(IDS_ENTERPRISE_ENROLLMENT_STATUS_NO_STATE_KEYS, false); | 246 ShowError(IDS_ENTERPRISE_ENROLLMENT_STATUS_NO_STATE_KEYS, false); |
231 return; | 247 return; |
232 case policy::EnrollmentStatus::STATUS_REGISTRATION_FAILED: | 248 case policy::EnrollmentStatus::STATUS_REGISTRATION_FAILED: |
233 // Some special cases for generating a nicer message that's more helpful. | 249 // Some special cases for generating a nicer message that's more helpful. |
234 switch (status.client_status()) { | 250 switch (status.client_status()) { |
235 case policy::DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED: | 251 case policy::DM_STATUS_SERVICE_MANAGEMENT_NOT_SUPPORTED: |
236 ShowError(IDS_ENTERPRISE_ENROLLMENT_ACCOUNT_ERROR, true); | 252 ShowError(IDS_ENTERPRISE_ENROLLMENT_ACCOUNT_ERROR, true); |
237 break; | 253 break; |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 | 358 |
343 void EnrollmentScreenHandler::DeclareLocalizedValues( | 359 void EnrollmentScreenHandler::DeclareLocalizedValues( |
344 ::login::LocalizedValuesBuilder* builder) { | 360 ::login::LocalizedValuesBuilder* builder) { |
345 builder->Add("oauthEnrollScreenTitle", | 361 builder->Add("oauthEnrollScreenTitle", |
346 IDS_ENTERPRISE_ENROLLMENT_SCREEN_TITLE); | 362 IDS_ENTERPRISE_ENROLLMENT_SCREEN_TITLE); |
347 builder->Add("oauthEnrollRetry", IDS_ENTERPRISE_ENROLLMENT_RETRY); | 363 builder->Add("oauthEnrollRetry", IDS_ENTERPRISE_ENROLLMENT_RETRY); |
348 builder->Add("oauthEnrollDone", IDS_ENTERPRISE_ENROLLMENT_DONE); | 364 builder->Add("oauthEnrollDone", IDS_ENTERPRISE_ENROLLMENT_DONE); |
349 builder->Add("oauthEnrollNextBtn", IDS_OFFLINE_LOGIN_NEXT_BUTTON_TEXT); | 365 builder->Add("oauthEnrollNextBtn", IDS_OFFLINE_LOGIN_NEXT_BUTTON_TEXT); |
350 builder->Add("oauthEnrollSkip", IDS_ENTERPRISE_ENROLLMENT_SKIP); | 366 builder->Add("oauthEnrollSkip", IDS_ENTERPRISE_ENROLLMENT_SKIP); |
351 builder->Add("oauthEnrollSuccess", IDS_ENTERPRISE_ENROLLMENT_SUCCESS); | 367 builder->Add("oauthEnrollSuccess", IDS_ENTERPRISE_ENROLLMENT_SUCCESS); |
| 368 builder->Add("oauthEnrollAbeSuccess", IDS_ENTERPRISE_ENROLLMENT_ABE_SUCCESS); |
352 builder->Add("oauthEnrollDeviceInformation", | 369 builder->Add("oauthEnrollDeviceInformation", |
353 IDS_ENTERPRISE_ENROLLMENT_DEVICE_INFORMATION); | 370 IDS_ENTERPRISE_ENROLLMENT_DEVICE_INFORMATION); |
354 builder->Add("oauthEnrollExplaneAttributeLink", | 371 builder->Add("oauthEnrollExplaneAttributeLink", |
355 IDS_ENTERPRISE_ENROLLMENT_EXPLAIN_ATTRIBUTE_LINK); | 372 IDS_ENTERPRISE_ENROLLMENT_EXPLAIN_ATTRIBUTE_LINK); |
356 builder->Add("oauthEnrollAttributeExplanation", | 373 builder->Add("oauthEnrollAttributeExplanation", |
357 IDS_ENTERPRISE_ENROLLMENT_ATTRIBUTE_EXPLANATION); | 374 IDS_ENTERPRISE_ENROLLMENT_ATTRIBUTE_EXPLANATION); |
358 builder->Add("oauthEnrollAssetIdLabel", | 375 builder->Add("oauthEnrollAssetIdLabel", |
359 IDS_ENTERPRISE_ENROLLMENT_ASSET_ID_LABEL); | 376 IDS_ENTERPRISE_ENROLLMENT_ASSET_ID_LABEL); |
360 builder->Add("oauthEnrollLocationLabel", | 377 builder->Add("oauthEnrollLocationLabel", |
361 IDS_ENTERPRISE_ENROLLMENT_LOCATION_LABEL); | 378 IDS_ENTERPRISE_ENROLLMENT_LOCATION_LABEL); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
542 | 559 |
543 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data); | 560 ShowScreenWithData(OobeScreen::SCREEN_OOBE_ENROLLMENT, &screen_data); |
544 if (first_show_) { | 561 if (first_show_) { |
545 first_show_ = false; | 562 first_show_ = false; |
546 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); | 563 UpdateStateInternal(NetworkError::ERROR_REASON_UPDATE, true); |
547 } | 564 } |
548 histogram_helper_->OnScreenShow(); | 565 histogram_helper_->OnScreenShow(); |
549 } | 566 } |
550 | 567 |
551 } // namespace chromeos | 568 } // namespace chromeos |
OLD | NEW |