Chromium Code Reviews| 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; |
|
Nikita (slow)
2015/03/05 18:03:48
Please talk to tls@ whether we want to report devi
Vladislav Kaznacheev
2015/03/10 22:06:09
Talked to tls@. She is OK with this implementation
|
| + |
| + 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); |
| +} |