Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: chrome/browser/metrics/chromeos_metrics_provider.cc

Issue 974273004: Add Chrome OS enrollment status UMA stat (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+}

Powered by Google App Engine
This is Rietveld 408576698