Chromium Code Reviews| 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/enterprise_oauth_enrollment_scr een_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/enterprise_oauth_enrollment_scr een_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 162 void EnterpriseOAuthEnrollmentScreenHandler::ShowAuthError( | 162 void EnterpriseOAuthEnrollmentScreenHandler::ShowAuthError( |
| 163 const GoogleServiceAuthError& error) { | 163 const GoogleServiceAuthError& error) { |
| 164 switch (error.state()) { | 164 switch (error.state()) { |
| 165 case GoogleServiceAuthError::NONE: | 165 case GoogleServiceAuthError::NONE: |
| 166 case GoogleServiceAuthError::CAPTCHA_REQUIRED: | 166 case GoogleServiceAuthError::CAPTCHA_REQUIRED: |
| 167 case GoogleServiceAuthError::TWO_FACTOR: | 167 case GoogleServiceAuthError::TWO_FACTOR: |
| 168 case GoogleServiceAuthError::HOSTED_NOT_ALLOWED: | 168 case GoogleServiceAuthError::HOSTED_NOT_ALLOWED: |
| 169 case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: | 169 case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: |
| 170 case GoogleServiceAuthError::REQUEST_CANCELED: | 170 case GoogleServiceAuthError::REQUEST_CANCELED: |
| 171 LOG(ERROR) << "Auth error " << error.state(); | 171 LOG(ERROR) << "Auth error " << error.state(); |
| 172 ShowFatalAuthError(); | 172 ShowEnrollmentError(FATAL_AUTH_ERROR); |
| 173 return; | 173 return; |
| 174 case GoogleServiceAuthError::USER_NOT_SIGNED_UP: | 174 case GoogleServiceAuthError::USER_NOT_SIGNED_UP: |
| 175 case GoogleServiceAuthError::ACCOUNT_DELETED: | 175 case GoogleServiceAuthError::ACCOUNT_DELETED: |
| 176 case GoogleServiceAuthError::ACCOUNT_DISABLED: | 176 case GoogleServiceAuthError::ACCOUNT_DISABLED: |
| 177 LOG(ERROR) << "Account error " << error.state(); | 177 LOG(ERROR) << "Account error " << error.state(); |
| 178 ShowAccountError(); | 178 ShowEnrollmentError(ACCOUNT_ERROR); |
| 179 return; | 179 return; |
| 180 case GoogleServiceAuthError::CONNECTION_FAILED: | 180 case GoogleServiceAuthError::CONNECTION_FAILED: |
| 181 case GoogleServiceAuthError::SERVICE_UNAVAILABLE: | 181 case GoogleServiceAuthError::SERVICE_UNAVAILABLE: |
| 182 LOG(WARNING) << "Network error " << error.state(); | 182 LOG(WARNING) << "Network error " << error.state(); |
| 183 ShowNetworkEnrollmentError(); | 183 ShowEnrollmentError(NETWORK_ENROLLMENT_ERROR); |
| 184 return; | 184 return; |
| 185 } | 185 } |
| 186 UMAFailure(policy::kMetricEnrollmentOtherFailed); | 186 UMAFailure(policy::kMetricEnrollmentOtherFailed); |
| 187 NOTREACHED(); | 187 NOTREACHED(); |
| 188 } | 188 } |
| 189 | 189 |
| 190 void EnterpriseOAuthEnrollmentScreenHandler::ShowAccountError() { | 190 void EnterpriseOAuthEnrollmentScreenHandler::ShowEnrollmentError( |
| 191 UMAFailure(policy::kMetricEnrollmentNotSupported); | 191 EnrollmentError error_code) { |
| 192 ShowError(IDS_ENTERPRISE_ENROLLMENT_ACCOUNT_ERROR, true); | 192 switch (error_code) { |
| 193 NotifyObservers(false); | 193 case ACCOUNT_ERROR: |
| 194 } | 194 UMAFailure(policy::kMetricEnrollmentNotSupported); |
| 195 ShowError(IDS_ENTERPRISE_ENROLLMENT_ACCOUNT_ERROR, true); | |
| 196 NotifyObservers(false); | |
|
Mattias Nissler (ping if slow)
2012/06/26 09:19:34
seems like the NotifyObservers(false) can be moved
pastarmovj
2012/06/26 16:59:29
Done.
| |
| 197 break; | |
| 198 case SERIAL_NUMBER_ERROR: | |
| 199 UMAFailure(policy::kMetricEnrollmentInvalidSerialNumber); | |
| 200 ShowError(IDS_ENTERPRISE_ENROLLMENT_SERIAL_NUMBER_ERROR, true); | |
| 201 NotifyObservers(false); | |
| 202 break; | |
| 203 case ENROLLMENT_MODE_ERROR: | |
| 204 UMAFailure(policy::kMetricEnrollmentInvalidEnrollmentMode); | |
| 205 ShowError(IDS_ENTERPRISE_ENROLLMENT_MODE_ERROR, false); | |
| 206 NotifyObservers(false); | |
| 207 break; | |
| 208 case FATAL_AUTH_ERROR: | |
| 209 UMAFailure(policy::kMetricEnrollmentLoginFailed); | |
| 210 ShowError(IDS_ENTERPRISE_ENROLLMENT_FATAL_AUTH_ERROR, false); | |
| 211 NotifyObservers(false); | |
| 212 break; | |
| 213 case AUTO_ENROLLMENT_ERROR: { | |
| 214 UMAFailure(policy::kMetricEnrollmentAutoEnrollmentNotSupported); | |
| 215 // The reason for showing this error is that we have been trying to | |
| 216 // auto-enroll and this failed, so we have to verify whether | |
| 217 // auto-enrollment is on, and if so switch it off, update the UI | |
| 218 // accordingly and show the error message. | |
| 219 std::string user; | |
| 220 is_auto_enrollment_ = controller_ && controller_->IsAutoEnrollment(&user); | |
| 221 base::FundamentalValue value(is_auto_enrollment_); | |
| 222 web_ui()->CallJavascriptFunction( | |
| 223 "oobe.OAuthEnrollmentScreen.setIsAutoEnrollment", value); | |
| 195 | 224 |
| 196 void EnterpriseOAuthEnrollmentScreenHandler::ShowSerialNumberError() { | 225 ShowError(IDS_ENTERPRISE_AUTO_ENROLLMENT_ERROR, false); |
| 197 UMAFailure(policy::kMetricEnrollmentInvalidSerialNumber); | 226 NotifyObservers(false); |
| 198 ShowError(IDS_ENTERPRISE_ENROLLMENT_SERIAL_NUMBER_ERROR, true); | 227 break; |
| 199 NotifyObservers(false); | 228 } |
| 200 } | 229 case NETWORK_ENROLLMENT_ERROR: |
| 201 | 230 UMAFailure(policy::kMetricEnrollmentNetworkFailed); |
| 202 void EnterpriseOAuthEnrollmentScreenHandler::ShowEnrollmentModeError() { | 231 ShowError(IDS_ENTERPRISE_ENROLLMENT_NETWORK_ENROLLMENT_ERROR, true); |
| 203 UMAFailure(policy::kMetricEnrollmentInvalidEnrollmentMode); | 232 NotifyObservers(false); |
| 204 ShowError(IDS_ENTERPRISE_ENROLLMENT_MODE_ERROR, false); | 233 break; |
| 205 NotifyObservers(false); | 234 case LOCKBOX_TIMEOUT_ERROR: |
| 206 } | 235 UMAFailure(policy::kMetricLockboxTimeoutError); |
| 207 | 236 ShowError(IDS_ENTERPRISE_LOCKBOX_TIMEOUT_ERROR, true); |
| 208 void EnterpriseOAuthEnrollmentScreenHandler::ShowFatalAuthError() { | 237 NotifyObservers(false); |
| 209 UMAFailure(policy::kMetricEnrollmentLoginFailed); | 238 break; |
| 210 ShowError(IDS_ENTERPRISE_ENROLLMENT_FATAL_AUTH_ERROR, false); | 239 case DOMAIN_MISMATCH_ERROR: |
| 211 NotifyObservers(false); | 240 UMAFailure(policy::kMetricEnrollmentWrongUserError); |
| 212 } | 241 ShowError(IDS_ENTERPRISE_ENROLLMENT_DOMAIN_MISMATCH_ERROR, true); |
| 213 | 242 NotifyObservers(false); |
| 214 void EnterpriseOAuthEnrollmentScreenHandler::ShowFatalEnrollmentError() { | 243 break; |
| 215 UMAFailure(policy::kMetricEnrollmentOtherFailed); | 244 case MISSING_LICESES_ERROR: |
| 216 ShowError(IDS_ENTERPRISE_ENROLLMENT_FATAL_ENROLLMENT_ERROR, false); | 245 UMAFailure(policy::kMetricEnrollmentMissingSerialsError); |
| 217 NotifyObservers(false); | 246 ShowError(IDS_ENTERPRISE_ENROLLMENT_MISSING_LICENSES_ERROR, true); |
| 218 } | 247 NotifyObservers(false); |
| 219 | 248 break; |
| 220 void EnterpriseOAuthEnrollmentScreenHandler::ShowAutoEnrollmentError() { | 249 case FATAL_ENROLLMENT_ERROR: |
| 221 UMAFailure(policy::kMetricEnrollmentAutoEnrollmentNotSupported); | 250 default: |
| 222 // The reason for showing this error is that we have been trying to | 251 UMAFailure(policy::kMetricEnrollmentOtherFailed); |
| 223 // auto-enroll and this failed, so we have to verify whether auto-enrollment | 252 ShowError(IDS_ENTERPRISE_ENROLLMENT_FATAL_ENROLLMENT_ERROR, false); |
| 224 // is on, and if so switch it off, update the UI accordingly and show the | 253 NotifyObservers(false); |
| 225 // error message. | 254 } |
| 226 std::string user; | |
| 227 is_auto_enrollment_ = controller_ && controller_->IsAutoEnrollment(&user); | |
| 228 base::FundamentalValue value(is_auto_enrollment_); | |
| 229 web_ui()->CallJavascriptFunction( | |
| 230 "oobe.OAuthEnrollmentScreen.setIsAutoEnrollment", value); | |
| 231 | |
| 232 ShowError(IDS_ENTERPRISE_AUTO_ENROLLMENT_ERROR, false); | |
| 233 NotifyObservers(false); | |
| 234 } | |
| 235 | |
| 236 void EnterpriseOAuthEnrollmentScreenHandler::ShowNetworkEnrollmentError() { | |
| 237 UMAFailure(policy::kMetricEnrollmentNetworkFailed); | |
| 238 ShowError(IDS_ENTERPRISE_ENROLLMENT_NETWORK_ENROLLMENT_ERROR, true); | |
| 239 NotifyObservers(false); | |
| 240 } | |
| 241 | |
| 242 void EnterpriseOAuthEnrollmentScreenHandler::ShowLockboxTimeoutError() { | |
| 243 UMAFailure(policy::kMetricLockboxTimeoutError); | |
| 244 ShowError(IDS_ENTERPRISE_LOCKBOX_TIMEOUT_ERROR, true); | |
| 245 NotifyObservers(false); | |
| 246 } | |
| 247 | |
| 248 void EnterpriseOAuthEnrollmentScreenHandler::ShowDomainMismatchError() { | |
| 249 UMAFailure(policy::kMetricEnrollmentWrongUserError); | |
| 250 ShowError(IDS_ENTERPRISE_ENROLLMENT_DOMAIN_MISMATCH_ERROR, true); | |
| 251 NotifyObservers(false); | |
| 252 } | 255 } |
| 253 | 256 |
| 254 void EnterpriseOAuthEnrollmentScreenHandler::SubmitTestCredentials( | 257 void EnterpriseOAuthEnrollmentScreenHandler::SubmitTestCredentials( |
| 255 const std::string& email, | 258 const std::string& email, |
| 256 const std::string& password) { | 259 const std::string& password) { |
| 257 test_email_ = email; | 260 test_email_ = email; |
| 258 test_password_ = password; | 261 test_password_ = password; |
| 259 DoShow(); | 262 DoShow(); |
| 260 } | 263 } |
| 261 | 264 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 303 localized_strings->SetString( | 306 localized_strings->SetString( |
| 304 "oauthEnrollCancelAutoEnrollmentConfirm", | 307 "oauthEnrollCancelAutoEnrollmentConfirm", |
| 305 l10n_util::GetStringUTF16(IDS_ENTERPRISE_ENROLLMENT_CANCEL_AUTO_CONFIRM)); | 308 l10n_util::GetStringUTF16(IDS_ENTERPRISE_ENROLLMENT_CANCEL_AUTO_CONFIRM)); |
| 306 localized_strings->SetString( | 309 localized_strings->SetString( |
| 307 "oauthEnrollCancelAutoEnrollmentGoBack", | 310 "oauthEnrollCancelAutoEnrollmentGoBack", |
| 308 l10n_util::GetStringUTF16(IDS_ENTERPRISE_ENROLLMENT_CANCEL_AUTO_GO_BACK)); | 311 l10n_util::GetStringUTF16(IDS_ENTERPRISE_ENROLLMENT_CANCEL_AUTO_GO_BACK)); |
| 309 } | 312 } |
| 310 | 313 |
| 311 void EnterpriseOAuthEnrollmentScreenHandler::OnGetOAuthTokenFailure( | 314 void EnterpriseOAuthEnrollmentScreenHandler::OnGetOAuthTokenFailure( |
| 312 const GoogleServiceAuthError& error) { | 315 const GoogleServiceAuthError& error) { |
| 313 ShowFatalAuthError(); | 316 ShowEnrollmentError(FATAL_AUTH_ERROR); |
| 314 } | 317 } |
| 315 | 318 |
| 316 void EnterpriseOAuthEnrollmentScreenHandler::OnOAuthGetAccessTokenSuccess( | 319 void EnterpriseOAuthEnrollmentScreenHandler::OnOAuthGetAccessTokenSuccess( |
| 317 const std::string& token, | 320 const std::string& token, |
| 318 const std::string& secret) { | 321 const std::string& secret) { |
| 319 access_token_ = token; | 322 access_token_ = token; |
| 320 access_token_secret_ = secret; | 323 access_token_secret_ = secret; |
| 321 } | 324 } |
| 322 | 325 |
| 323 void EnterpriseOAuthEnrollmentScreenHandler::OnOAuthGetAccessTokenFailure( | 326 void EnterpriseOAuthEnrollmentScreenHandler::OnOAuthGetAccessTokenFailure( |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 559 controller_->OnConfirmationClosed(back_to_signin); | 562 controller_->OnConfirmationClosed(back_to_signin); |
| 560 } | 563 } |
| 561 | 564 |
| 562 void EnterpriseOAuthEnrollmentScreenHandler::UMAFailure(int sample) { | 565 void EnterpriseOAuthEnrollmentScreenHandler::UMAFailure(int sample) { |
| 563 if (is_auto_enrollment_) | 566 if (is_auto_enrollment_) |
| 564 sample = policy::kMetricEnrollmentAutoFailed; | 567 sample = policy::kMetricEnrollmentAutoFailed; |
| 565 UMA(sample); | 568 UMA(sample); |
| 566 } | 569 } |
| 567 | 570 |
| 568 } // namespace chromeos | 571 } // namespace chromeos |
| OLD | NEW |