Chromium Code Reviews| Index: chrome/browser/chromeos/login/enterprise_enrollment_screen.cc |
| diff --git a/chrome/browser/chromeos/login/enterprise_enrollment_screen.cc b/chrome/browser/chromeos/login/enterprise_enrollment_screen.cc |
| index 102554ef2a0784f022c4ae200f5622ed69c121e9..506b12c842a1e2dc63fb716f5a75cfc7434d3b1f 100644 |
| --- a/chrome/browser/chromeos/login/enterprise_enrollment_screen.cc |
| +++ b/chrome/browser/chromeos/login/enterprise_enrollment_screen.cc |
| @@ -10,10 +10,13 @@ |
| #include "chrome/browser/chromeos/cros/cryptohome_library.h" |
| #include "chrome/browser/chromeos/login/screen_observer.h" |
| #include "chrome/browser/policy/browser_policy_connector.h" |
| +#include "chrome/browser/policy/enterprise_metrics.h" |
| #include "chrome/common/net/gaia/gaia_constants.h" |
| namespace chromeos { |
| +namespace em = enterprise_management; |
| + |
| // Retry for InstallAttrs initialization every 500ms. |
| const int kLockRetryIntervalMs = 500; |
| @@ -40,6 +43,7 @@ void EnterpriseEnrollmentScreen::Authenticate(const std::string& user, |
| const std::string& password, |
| const std::string& captcha, |
| const std::string& access_code) { |
| + em::LogEnrollmentOperation(em::kEnrollmentStarted); |
| captcha_token_.clear(); |
| user_ = user; |
| auth_fetcher_.reset( |
| @@ -60,6 +64,7 @@ void EnterpriseEnrollmentScreen::Authenticate(const std::string& user, |
| } |
| void EnterpriseEnrollmentScreen::CancelEnrollment() { |
| + em::LogEnrollmentOperation(em::kEnrollmentCancelled); |
| auth_fetcher_.reset(); |
| registrar_.reset(); |
| g_browser_process->browser_policy_connector()->StopAutoRetry(); |
| @@ -113,6 +118,7 @@ void EnterpriseEnrollmentScreen::OnIssueAuthTokenSuccess( |
| const std::string& service, |
| const std::string& auth_token) { |
| if (service != GaiaConstants::kDeviceManagementService) { |
| + em::LogEnrollmentOperation(em::kEnrollmentOtherFailed); |
| NOTREACHED() << service; |
| return; |
| } |
| @@ -123,6 +129,7 @@ void EnterpriseEnrollmentScreen::OnIssueAuthTokenSuccess( |
| g_browser_process->browser_policy_connector(); |
| if (!connector->cloud_policy_subsystem()) { |
| NOTREACHED() << "Cloud policy subsystem not initialized."; |
| + em::LogEnrollmentOperation(em::kEnrollmentOtherFailed); |
| if (view()) |
| view()->ShowFatalEnrollmentError(); |
| return; |
| @@ -142,6 +149,7 @@ void EnterpriseEnrollmentScreen::OnIssueAuthTokenFailure( |
| const GoogleServiceAuthError& error) { |
| if (service != GaiaConstants::kDeviceManagementService) { |
| NOTREACHED() << service; |
| + em::LogEnrollmentOperation(em::kEnrollmentOtherFailed); |
| return; |
| } |
| @@ -173,11 +181,17 @@ void EnterpriseEnrollmentScreen::OnPolicyStateChanged( |
| case policy::CloudPolicySubsystem::SUCCESS: |
| // Success! |
| registrar_.reset(); |
| + em::LogEnrollmentOperation(em::kEnrollmentOK); |
| view()->ShowConfirmationScreen(); |
| return; |
| } |
| // We have an error. |
| + if (state == policy::CloudPolicySubsystem::UNMANAGED) { |
| + em::LogEnrollmentOperation(em::kEnrollmentNotSupported); |
| + } else { |
| + em::LogEnrollmentOperation(em::kEnrollmentPolicyFailed); |
| + } |
| LOG(WARNING) << "Policy subsystem error during enrollment: " << state |
| << " details: " << error_details; |
| } |
| @@ -199,16 +213,21 @@ void EnterpriseEnrollmentScreen::HandleAuthError( |
| return; |
| switch (error.state()) { |
| - case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: |
| case GoogleServiceAuthError::CONNECTION_FAILED: |
| + em::LogEnrollmentOperation(em::kEnrollmentNetworkFailed); |
| + view()->ShowNetworkEnrollmentError(); |
| + return; |
| + case GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS: |
| case GoogleServiceAuthError::CAPTCHA_REQUIRED: |
| case GoogleServiceAuthError::TWO_FACTOR: |
| + em::LogEnrollmentOperation(em::kEnrollmentLoginFailed); |
| view()->ShowAuthError(error); |
| return; |
| case GoogleServiceAuthError::USER_NOT_SIGNED_UP: |
| case GoogleServiceAuthError::ACCOUNT_DELETED: |
| case GoogleServiceAuthError::ACCOUNT_DISABLED: |
| case GoogleServiceAuthError::SERVICE_UNAVAILABLE: |
|
kmixter1
2011/06/28 01:06:02
is SERVICE_UNAVAILABLE a network/service transient
Joao da Silva
2011/06/30 12:57:00
It's an error that can be returned from gaia, and
kmixter1
2011/06/30 23:28:59
Agree - from your description it sounds like it is
|
| + em::LogEnrollmentOperation(em::kEnrollmentNotSupported); |
| view()->ShowAccountError(); |
| return; |
| case GoogleServiceAuthError::NONE: |
| @@ -217,11 +236,13 @@ void EnterpriseEnrollmentScreen::HandleAuthError( |
| // fall through. |
| case GoogleServiceAuthError::REQUEST_CANCELED: |
| LOG(ERROR) << "Unexpected GAIA auth error: " << error.state(); |
| + em::LogEnrollmentOperation(em::kEnrollmentNetworkFailed); |
| view()->ShowFatalAuthError(); |
| return; |
| } |
| NOTREACHED() << error.state(); |
| + em::LogEnrollmentOperation(em::kEnrollmentOtherFailed); |
| } |
| void EnterpriseEnrollmentScreen::WriteInstallAttributesData() { |