blob: 4f33f2b8742bed3a3dd4c4a97293b6f82368fd9b [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/metrics/lacros_metrics_provider.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/metrics/enrollment_status.h"
#include "chromeos/crosapi/mojom/crosapi.mojom.h"
#include "chromeos/lacros/lacros_chrome_service_impl.h"
#include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h"
namespace {
EnrollmentStatus GetEnrollmentStatus() {
auto* service = chromeos::LacrosChromeServiceImpl::Get();
switch (service->init_params()->device_mode) {
case crosapi::mojom::DeviceMode::kUnknown:
return EnrollmentStatus::kErrorGettingStatus;
case crosapi::mojom::DeviceMode::kNotSet:
case crosapi::mojom::DeviceMode::kConsumer:
case crosapi::mojom::DeviceMode::kLegacyRetailMode:
case crosapi::mojom::DeviceMode::kConsumerKioskAutolaunch:
return EnrollmentStatus::kNonManaged;
case crosapi::mojom::DeviceMode::kEnterprise:
case crosapi::mojom::DeviceMode::kEnterpriseActiveDirectory:
case crosapi::mojom::DeviceMode::kDemo:
return EnrollmentStatus::kManaged;
}
}
} // namespace
LacrosMetricsProvider::LacrosMetricsProvider() = default;
LacrosMetricsProvider::~LacrosMetricsProvider() = default;
void LacrosMetricsProvider::ProvideStabilityMetrics(
metrics::SystemProfileProto* system_profile_proto) {
// Record whether the device we're running on is enterprise managed.
UMA_STABILITY_HISTOGRAM_ENUMERATION(
"UMA.EnrollmentStatus", GetEnrollmentStatus(),
// static_cast because we only have macros for stability histograms.
static_cast<int>(EnrollmentStatus::kMaxValue) + 1);
}
void LacrosMetricsProvider::ProvideCurrentSessionData(
metrics::ChromeUserMetricsExtension* uma_proto) {
ProvideStabilityMetrics(uma_proto->mutable_system_profile());
base::UmaHistogramBoolean("ChromeOS.IsLacrosBrowser", true);
}