| Index: chrome/browser/metrics/chromeos_metrics_provider.cc
|
| diff --git a/chrome/browser/metrics/chromeos_metrics_provider.cc b/chrome/browser/metrics/chromeos_metrics_provider.cc
|
| index 0f961267569b43485b278e0a00d047732d594841..8ea28dffe8ddc35bf4a97d48c7f6cd0ec417b20c 100644
|
| --- a/chrome/browser/metrics/chromeos_metrics_provider.cc
|
| +++ b/chrome/browser/metrics/chromeos_metrics_provider.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "chromeos/system/statistics_provider.h"
|
| #include "components/metrics/metrics_service.h"
|
| @@ -92,6 +93,34 @@ void IncrementPrefValue(const char* path) {
|
| pref->SetInteger(path, value + 1);
|
| }
|
|
|
| +const char kEduDomain[] = ".edu";
|
| +
|
| +// Possible device enrollment status for a Chrome OS device.
|
| +enum EnrollmentStatus {
|
| + NON_MANAGED,
|
| + MANAGED_EDU,
|
| + MANAGED_NON_EDU,
|
| + ERROR_GETTING_ENROLLMENT_STATUS,
|
| + ENROLLMENT_STATUS_MAX,
|
| +};
|
| +
|
| +// Get the enrollment status.
|
| +EnrollmentStatus GetEnrollmentStatus() {
|
| + policy::BrowserPolicyConnectorChromeOS* connector =
|
| + g_browser_process->platform_part()->browser_policy_connector_chromeos();
|
| + if (!connector)
|
| + return ERROR_GETTING_ENROLLMENT_STATUS;
|
| +
|
| + if (!connector->IsEnterpriseManaged())
|
| + return NON_MANAGED;
|
| +
|
| + std::string domain = connector->GetEnterpriseDomain();
|
| + if (EndsWith(domain, kEduDomain, false /* case insensitive */))
|
| + return MANAGED_EDU;
|
| +
|
| + return MANAGED_NON_EDU;
|
| +}
|
| +
|
| } // namespace
|
|
|
| ChromeOSMetricsProvider::ChromeOSMetricsProvider()
|
| @@ -203,6 +232,7 @@ void ChromeOSMetricsProvider::ProvideGeneralMetrics(
|
| uma_proto->add_sampled_profile()->Swap(&(*iter));
|
| }
|
| }
|
| + RecordEnrollmentStatus();
|
| }
|
|
|
| void ChromeOSMetricsProvider::WriteBluetoothProto(
|
| @@ -287,3 +317,8 @@ void ChromeOSMetricsProvider::SetBluetoothAdapter(
|
| scoped_refptr<device::BluetoothAdapter> adapter) {
|
| adapter_ = adapter;
|
| }
|
| +
|
| +void ChromeOSMetricsProvider::RecordEnrollmentStatus() {
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "UMA.EnrollmentStatus", GetEnrollmentStatus(), ENROLLMENT_STATUS_MAX);
|
| +}
|
|
|