Commit 3ec949fd authored by Yves Arrouye's avatar Yves Arrouye Committed by Commit Bot

New UMA histograms for attestation-based enrollment

BUG=chromium:890636
TEST=Enroll using attestation and check UMA

Change-Id: Ifdfa408a62cf7af43e7436b4a64b2a43afe7bf18
Reviewed-on: https://chromium-review.googlesource.com/c/1304613
Commit-Queue: Yves Arrouye <drcrash@chromium.org>
Reviewed-by: default avatarMaksim Ivanov <emaxx@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606659}
parent 5377a107
......@@ -267,25 +267,28 @@ void EnrollmentScreen::ProcessRetry() {
}
void EnrollmentScreen::OnCancel() {
if (AdvanceToNextAuth()) {
Show();
return;
}
if (enrollment_succeeded_) {
// Cancellation is the same to confirmation after the successful enrollment.
OnConfirmationClosed();
return;
}
on_joined_callback_.Reset();
if (authpolicy_login_helper_)
authpolicy_login_helper_->CancelRequestsAndRestart();
// Record cancellation for that one enrollment mode.
UMA(policy::kMetricEnrollmentCancelled);
if (AdvanceToNextAuth()) {
Show();
return;
}
// Record the total time for all auth attempts until final cancellation.
if (elapsed_timer_)
UMA_ENROLLMENT_TIME(kMetricEnrollmentTimeCancel, elapsed_timer_);
on_joined_callback_.Reset();
if (authpolicy_login_helper_)
authpolicy_login_helper_->CancelRequestsAndRestart();
const ScreenExitCode exit_code =
config_.is_forced() ? ScreenExitCode::ENTERPRISE_ENROLLMENT_BACK
: ScreenExitCode::ENTERPRISE_ENROLLMENT_COMPLETED;
......@@ -343,13 +346,17 @@ void EnrollmentScreen::OnEnrollmentError(policy::EnrollmentStatus status) {
// based enrollment and we have a fallback authentication, show it.
if (status.status() == policy::EnrollmentStatus::REGISTRATION_FAILED &&
status.client_status() == policy::DM_STATUS_SERVICE_DEVICE_NOT_FOUND &&
current_auth_ == AUTH_ATTESTATION && AdvanceToNextAuth()) {
Show();
} else {
view_->ShowEnrollmentStatus(status);
if (WizardController::UsingHandsOffEnrollment())
AutomaticRetry();
current_auth_ == AUTH_ATTESTATION) {
UMA(policy::kMetricEnrollmentDeviceNotPreProvisioned);
if (AdvanceToNextAuth()) {
Show();
return;
}
}
view_->ShowEnrollmentStatus(status);
if (WizardController::UsingHandsOffEnrollment())
AutomaticRetry();
}
void EnrollmentScreen::OnOtherError(
......@@ -491,8 +498,8 @@ void EnrollmentScreen::ShowSigninScreen() {
void EnrollmentScreen::RecordEnrollmentErrorMetrics() {
enrollment_failed_once_ = true;
// TODO(drcrash): Maybe create multiple metrics (http://crbug.com/640313)?
if (elapsed_timer_)
// TODO(crbug.com/896793): Have other metrics for each auth mechanism.
if (elapsed_timer_ && current_auth_ == last_auth_)
UMA_ENROLLMENT_TIME(kMetricEnrollmentTimeFailure, elapsed_timer_);
}
......
......@@ -11,6 +11,12 @@ namespace {
const char* const kMetricEnrollment = "Enterprise.Enrollment";
const char* const kMetricEnrollmentForced = "Enterprise.EnrollmentForced";
const char* const kMetricEnrollmentAttestationBased =
"Enterprise.EnrollmentAttestationBased";
const char* const kMetricEnrollmentForcedAttestationBased =
"Enterprise.EnrollmentForcedAttestationBased";
const char* const kMetricEnrollmentForcedManualFallback =
"Enterprise.EnrollmentForcedManualFallback";
const char* const kMetricEnrollmentRecovery = "Enterprise.EnrollmentRecovery";
} // namespace
......@@ -24,16 +30,22 @@ void EnrollmentUMA(policy::MetricEnrollment sample,
case policy::EnrollmentConfig::MODE_MANUAL_REENROLLMENT:
case policy::EnrollmentConfig::MODE_LOCAL_ADVERTISED:
case policy::EnrollmentConfig::MODE_SERVER_ADVERTISED:
case policy::EnrollmentConfig::MODE_ATTESTATION:
case policy::EnrollmentConfig::MODE_OFFLINE_DEMO:
base::UmaHistogramSparse(kMetricEnrollment, sample);
break;
case policy::EnrollmentConfig::MODE_ATTESTATION:
base::UmaHistogramSparse(kMetricEnrollmentAttestationBased, sample);
break;
case policy::EnrollmentConfig::MODE_LOCAL_FORCED:
case policy::EnrollmentConfig::MODE_SERVER_FORCED:
base::UmaHistogramSparse(kMetricEnrollmentForced, sample);
break;
case policy::EnrollmentConfig::MODE_ATTESTATION_LOCAL_FORCED:
case policy::EnrollmentConfig::MODE_ATTESTATION_SERVER_FORCED:
base::UmaHistogramSparse(kMetricEnrollmentForcedAttestationBased, sample);
break;
case policy::EnrollmentConfig::MODE_ATTESTATION_MANUAL_FALLBACK:
base::UmaHistogramSparse(kMetricEnrollmentForced, sample);
base::UmaHistogramSparse(kMetricEnrollmentForcedManualFallback, sample);
break;
case policy::EnrollmentConfig::MODE_RECOVERY:
base::UmaHistogramSparse(kMetricEnrollmentRecovery, sample);
......
......@@ -237,6 +237,8 @@ enum MetricEnrollment {
kMetricEnrollmentLicenseRequestFailed = 57,
// Registration failed: Consumer account with packaged license.
kMetricEnrollmentRegisterConsumerAccountWithPackagedLicense = 58,
// Device was not pre-provisioned for Zero-Touch.
kMetricEnrollmentDeviceNotPreProvisioned = 59,
};
// Events related to policy refresh.
......
......@@ -14317,6 +14317,9 @@ Called by update_net_error_codes.py.-->
<int value="58" label="Consumer account with packaged license">
Can't enroll a device with a packaged license to a consumer account.
</int>
<int value="59" label="Device not pre-provisioned">
The device is not pre-provisioned for Zero-Touch.
</int>
</enum>
<enum name="EnterpriseExistingInstallAttributesLockType">
......@@ -25561,6 +25561,15 @@ uploading your change for review.
</summary>
</histogram>
<histogram name="Enterprise.EnrollmentAttestationBased"
enum="EnterpriseEnrollmentType">
<owner>drcrash@chromium.org</owner>
<summary>
Events related to attestation-based enrollment (Zero-Touch) of Chrome OS
devices.
</summary>
</histogram>
<histogram name="Enterprise.EnrollmentForced" enum="EnterpriseEnrollmentType">
<owner>tnagel@chromium.org</owner>
<summary>
......@@ -25568,6 +25577,24 @@ uploading your change for review.
</summary>
</histogram>
<histogram name="Enterprise.EnrollmentForcedAttestationBased"
enum="EnterpriseEnrollmentType">
<owner>drcrash@chromium.org</owner>
<summary>
Events related to attestation-based re-enrollment (Auto RE) of Chrome OS
devices.
</summary>
</histogram>
<histogram name="Enterprise.EnrollmentForcedManualFallback"
enum="EnterpriseEnrollmentType">
<owner>drcrash@chromium.org</owner>
<summary>
Events related to manual fallback from attestation-based re-enrollment (Auto
RE) of Chrome OS devices.
</summary>
</histogram>
<histogram name="Enterprise.EnrollmentRecovery" enum="EnterpriseEnrollmentType">
<owner>tnagel@chromium.org</owner>
<summary>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment