Index: chrome/browser/policy/device_management_backend_impl.cc |
diff --git a/chrome/browser/policy/device_management_backend_impl.cc b/chrome/browser/policy/device_management_backend_impl.cc |
index 72cf087d00196ebef82e7d8eff2e95fed707a6f0..7f3850eae43b0be3605669a8362299390c14b148 100644 |
--- a/chrome/browser/policy/device_management_backend_impl.cc |
+++ b/chrome/browser/policy/device_management_backend_impl.cc |
@@ -11,9 +11,11 @@ |
#include <sys/utsname.h> |
#endif |
+#include "base/metrics/histogram.h" |
#include "base/stringprintf.h" |
#include "base/sys_info.h" |
#include "chrome/browser/policy/device_management_service.h" |
+#include "chrome/browser/policy/enterprise_metrics.h" |
#include "chrome/common/chrome_version_info.h" |
#include "net/base/escape.h" |
#include "net/url_request/url_request_status.h" |
@@ -302,9 +304,28 @@ class DeviceManagementRegisterJob : public DeviceManagementJobBase { |
private: |
// DeviceManagementJobBase overrides. |
virtual void OnError(DeviceManagementBackend::ErrorCode error) { |
+ MetricToken sample; |
+ switch (error) { |
+ case DeviceManagementBackend::kErrorRequestInvalid: |
+ case DeviceManagementBackend::kErrorRequestFailed: |
+ sample = kMetricTokenFetchRequestFailed; |
+ break; |
+ case DeviceManagementBackend::kErrorServiceDeviceNotFound: |
+ sample = kMetricTokenFetchDeviceNotFound; |
+ break; |
+ case DeviceManagementBackend::kErrorServiceManagementNotSupported: |
+ sample = kMetricTokenFetchManagementNotSupported; |
+ break; |
+ default: |
+ sample = kMetricTokenFetchServerFailed; |
+ break; |
+ } |
+ UMA_HISTOGRAM_ENUMERATION(kMetricToken, sample, kMetricTokenSize); |
delegate_->OnError(error); |
} |
virtual void OnResponse(const em::DeviceManagementResponse& response) { |
+ UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenFetchResponseReceived, |
+ kMetricTokenSize); |
delegate_->HandleRegisterResponse(response.register_response()); |
} |
@@ -372,9 +393,28 @@ class DeviceManagementPolicyJob : public DeviceManagementJobBase { |
private: |
// DeviceManagementJobBase overrides. |
virtual void OnError(DeviceManagementBackend::ErrorCode error) { |
+ MetricPolicy sample; |
+ switch (error) { |
+ case DeviceManagementBackend::kErrorRequestInvalid: |
+ case DeviceManagementBackend::kErrorRequestFailed: |
+ sample = kMetricPolicyFetchRequestFailed; |
+ break; |
+ case DeviceManagementBackend::kErrorServicePolicyNotFound: |
+ sample = kMetricPolicyFetchNotFound; |
+ break; |
+ case DeviceManagementBackend::kErrorServiceManagementTokenInvalid: |
+ sample = kMetricPolicyFetchInvalidToken; |
+ break; |
+ default: |
+ sample = kMetricPolicyFetchServerFailed; |
+ break; |
+ } |
+ UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, sample, kMetricPolicySize); |
delegate_->OnError(error); |
} |
virtual void OnResponse(const em::DeviceManagementResponse& response) { |
+ UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchResponseReceived, |
+ kMetricPolicySize); |
delegate_->HandlePolicyResponse(response.policy_response()); |
} |
@@ -467,6 +507,8 @@ void DeviceManagementBackendImpl::ProcessRegisterRequest( |
const std::string& device_id, |
const em::DeviceRegisterRequest& request, |
DeviceRegisterResponseDelegate* delegate) { |
+ UMA_HISTOGRAM_ENUMERATION(kMetricToken, kMetricTokenFetchRequested, |
+ kMetricTokenSize); |
AddJob(new DeviceManagementRegisterJob(this, auth_token, device_id, request, |
delegate)); |
} |
@@ -485,6 +527,8 @@ void DeviceManagementBackendImpl::ProcessPolicyRequest( |
const std::string& device_id, |
const em::DevicePolicyRequest& request, |
DevicePolicyResponseDelegate* delegate) { |
+ UMA_HISTOGRAM_ENUMERATION(kMetricPolicy, kMetricPolicyFetchRequested, |
+ kMetricPolicySize); |
AddJob(new DeviceManagementPolicyJob(this, device_management_token, device_id, |
request, delegate)); |
} |