Upstream version 11.39.250.0
[platform/framework/web/crosswalk.git] / src / components / policy / core / common / cloud / enterprise_metrics.h
index 7d5108e..a6a52d7 100644 (file)
@@ -13,191 +13,261 @@ namespace policy {
 
 // Events related to fetching, saving and loading DM server tokens.
 // These metrics are collected both for device and user tokens.
+// This enum is used to define the buckets for an enumerated UMA histogram.
+// Hence,
+//   (a) existing enumerated constants should never be deleted or reordered, and
+//   (b) new constants should only be appended at the end of the enumeration.
 enum MetricToken {
   // A cached token was successfully loaded from disk.
-  kMetricTokenLoadSucceeded,
+  kMetricTokenLoadSucceeded = 0,
   // Reading a cached token from disk failed.
-  kMetricTokenLoadFailed,
+  kMetricTokenLoadFailed = 1,
 
   // A token fetch request was sent to the DM server.
-  kMetricTokenFetchRequested,
+  kMetricTokenFetchRequested = 2,
   // The request was invalid, or the HTTP request failed.
-  kMetricTokenFetchRequestFailed,
+  kMetricTokenFetchRequestFailed = 3,
   // Error HTTP status received, or the DM server failed in another way.
-  kMetricTokenFetchServerFailed,
+  kMetricTokenFetchServerFailed = 4,
   // A response to the fetch request was received.
-  kMetricTokenFetchResponseReceived,
+  kMetricTokenFetchResponseReceived = 5,
   // The response received was invalid. This happens when some expected data
   // was not present in the response.
-  kMetricTokenFetchBadResponse,
+  kMetricTokenFetchBadResponse = 6,
   // DM server reported that management is not supported.
-  kMetricTokenFetchManagementNotSupported,
+  kMetricTokenFetchManagementNotSupported = 7,
   // DM server reported that the given device ID was not found.
-  kMetricTokenFetchDeviceNotFound,
+  kMetricTokenFetchDeviceNotFound = 8,
   // DM token successfully retrieved.
-  kMetricTokenFetchOK,
+  kMetricTokenFetchOK = 9,
 
   // Successfully cached a token to disk.
-  kMetricTokenStoreSucceeded,
+  kMetricTokenStoreSucceeded = 10,
   // Caching a token to disk failed.
-  kMetricTokenStoreFailed,
+  kMetricTokenStoreFailed = 11,
 
   // DM server reported that the device-id generated is not unique.
-  kMetricTokenFetchDeviceIdConflict,
+  kMetricTokenFetchDeviceIdConflict = 12,
   // DM server reported that the serial number we try to register is invalid.
-  kMetricTokenFetchInvalidSerialNumber,
+  kMetricTokenFetchInvalidSerialNumber = 13,
   // DM server reported that the licenses for the domain have expired or been
   // exhausted.
-  kMetricMissingLicenses,
+  kMetricMissingLicenses = 14,
 
   kMetricTokenSize  // Must be the last.
 };
 
 // Events related to fetching, saving and loading user and device policies.
+// This enum is used to define the buckets for an enumerated UMA histogram.
+// Hence,
+//   (a) existing enumerated constants should never be deleted or reordered, and
+//   (b) new constants should only be appended at the end of the enumeration.
 enum MetricPolicy {
   // A cached policy was successfully loaded from disk.
-  kMetricPolicyLoadSucceeded,
+  kMetricPolicyLoadSucceeded = 0,
   // Reading a cached policy from disk failed.
-  kMetricPolicyLoadFailed,
+  kMetricPolicyLoadFailed = 1,
 
   // A policy fetch request was sent to the DM server.
-  kMetricPolicyFetchRequested,
+  kMetricPolicyFetchRequested = 2,
   // The request was invalid, or the HTTP request failed.
-  kMetricPolicyFetchRequestFailed,
+  kMetricPolicyFetchRequestFailed = 3,
   // Error HTTP status received, or the DM server failed in another way.
-  kMetricPolicyFetchServerFailed,
+  kMetricPolicyFetchServerFailed = 4,
   // Policy not found for the given user or device.
-  kMetricPolicyFetchNotFound,
+  kMetricPolicyFetchNotFound = 5,
   // DM server didn't accept the token used in the request.
-  kMetricPolicyFetchInvalidToken,
+  kMetricPolicyFetchInvalidToken = 6,
   // A response to the policy fetch request was received.
-  kMetricPolicyFetchResponseReceived,
+  kMetricPolicyFetchResponseReceived = 7,
   // The policy response message didn't contain a policy, or other data was
   // missing.
-  kMetricPolicyFetchBadResponse,
+  kMetricPolicyFetchBadResponse = 8,
   // Failed to decode the policy.
-  kMetricPolicyFetchInvalidPolicy,
+  kMetricPolicyFetchInvalidPolicy = 9,
   // The device policy was rejected because its signature was invalid.
-  kMetricPolicyFetchBadSignature,
+  kMetricPolicyFetchBadSignature = 10,
   // Rejected policy because its timestamp is in the future.
-  kMetricPolicyFetchTimestampInFuture,
+  kMetricPolicyFetchTimestampInFuture = 11,
   // Device policy rejected because the device is not managed.
-  kMetricPolicyFetchNonEnterpriseDevice,
+  kMetricPolicyFetchNonEnterpriseDevice = 12,
   // The policy was provided for a username that is different from the device
   // owner, and the policy was rejected.
-  kMetricPolicyFetchUserMismatch,
+  kMetricPolicyFetchUserMismatch = 13,
   // The policy was rejected for another reason. Currently this can happen
   // only for device policies, when the SignedSettings fail to store or retrieve
   // a stored policy.
-  kMetricPolicyFetchOtherFailed,
+  kMetricPolicyFetchOtherFailed = 14,
   // The fetched policy was accepted.
-  kMetricPolicyFetchOK,
+  kMetricPolicyFetchOK = 15,
   // The policy just fetched didn't have any changes compared to the cached
   // policy.
-  kMetricPolicyFetchNotModified,
+  kMetricPolicyFetchNotModified = 16,
 
   // Successfully cached a policy to disk.
-  kMetricPolicyStoreSucceeded,
+  kMetricPolicyStoreSucceeded = 17,
   // Caching a policy to disk failed.
-  kMetricPolicyStoreFailed,
+  kMetricPolicyStoreFailed = 18,
 
   kMetricPolicySize  // Must be the last.
 };
 
 // Events related to device enrollment.
+// This enum is used to define the buckets for an enumerated UMA histogram.
+// Hence,
+//   (a) existing enumerated constants should never be deleted or reordered, and
+//   (b) new constants should only be appended at the end of the enumeration.
 enum MetricEnrollment {
-  // The enrollment screen was closed without completing the enrollment
-  // process.
-  kMetricEnrollmentCancelled,
-  // The user submitted credentials and started the enrollment process.
-  kMetricEnrollmentStarted,
-  // Enrollment failed due to a network error.
-  kMetricEnrollmentNetworkFailed,
-  // Enrollment failed because logging in to Gaia failed.
-  kMetricEnrollmentLoginFailed,
-  // Enrollment failed because it is not supported for the account used.
-  kMetricEnrollmentNotSupported,
-  // Enrollment failed because it failed to apply device policy.
-  kMetricEnrollmentPolicyFailed,
-  // Enrollment failed due to an unexpected error. This currently happens when
-  // the Gaia auth token is not issued for the DM service, the device cloud
-  // policy subsystem isn't initialized, or when fetching Gaia tokens fails
-  // for an unknown reason.
-  kMetricEnrollmentOtherFailed,
+  // User pressed 'Cancel' during the enrollment process.
+  kMetricEnrollmentCancelled = 0,
+  // User started enrollment process by submitting valid GAIA credentials.
+  kMetricEnrollmentStarted = 1,
+  // OAuth token fetch failed: network error.
+  kMetricEnrollmentNetworkFailed = 2,
+  // OAuth token fetch failed: login error.
+  kMetricEnrollmentLoginFailed = 3,
+  // Registration / policy fetch failed: DM server reports management not
+  // supported.
+  kMetricEnrollmentNotSupported = 4,
+  /* kMetricEnrollmentPolicyFailed = 5 REMOVED */
+  /* kMetricEnrollmentOtherFailed = 6 REMOVED */
   // Enrollment was successful.
-  kMetricEnrollmentOK,
-  // Enrollment failed because the serial number we try to register is not
-  // assigned to the domain used.
-  kMetricEnrollmentInvalidSerialNumber,
+  kMetricEnrollmentOK = 7,
+  // Registration / policy fetch failed: DM server reports that the serial
+  // number we try to register is not assigned to the domain used.
+  kMetricEnrollmentRegisterPolicyInvalidSerial = 8,
   // Auto-enrollment started automatically after the user signed in.
-  kMetricEnrollmentAutoStarted,
+  kMetricEnrollmentAutoStarted = 9,
   // Auto-enrollment failed.
-  kMetricEnrollmentAutoFailed,
+  kMetricEnrollmentAutoFailed = 10,
   // Auto-enrollment was retried after having failed before.
-  kMetricEnrollmentAutoRetried,
+  kMetricEnrollmentAutoRestarted = 11,
   // Auto-enrollment was canceled through the opt-out dialog.
-  kMetricEnrollmentAutoCancelled,
+  kMetricEnrollmentAutoCancelled = 12,
   // Auto-enrollment succeeded.
-  kMetricEnrollmentAutoOK,
-  // Enrollment failed because the enrollment mode was not supplied by the
-  // DMServer or the mode is not known to the client.
-  kMetricEnrollmentInvalidEnrollmentMode,
-  // Auto-enrollment is not supported for the mode supplied by the server.
-  // This presently means trying to auto-enroll in kiosk mode.
-  kMetricEnrollmentAutoEnrollmentNotSupported,
-  // The lockbox initialization has taken too long to complete and the
-  // enrollment has been canceled because of that.
-  kMetricLockboxTimeoutError,
-  // The username used to re-enroll the device does not belong to the domain
-  // that the device was initially enrolled to.
-  kMetricEnrollmentWrongUserError,
-  // DM server reported that the licenses for the domain has expired or been
+  kMetricEnrollmentAutoOK = 13,
+  // Registration failed: DM server returns unknown/disallowed enrollment mode.
+  kMetricEnrollmentInvalidEnrollmentMode = 14,
+  // Auto-enrollment is not supported for the mode supplied by the server.  This
+  // presently means trying to auto-enroll in kiosk mode.
+  kMetricEnrollmentAutoEnrollmentNotSupported = 15,
+  // Enrollment failed: lockbox initialization took too long to complete.
+  kMetricEnrollmentLockboxTimeoutError = 16,
+  // Re-enrollment device lock failed: domain does not match install attributes.
+  kMetricEnrollmentLockDomainMismatch = 17,
+  // Registration / policy fetch failed: DM server reports licenses expired or
   // exhausted.
-  kMetricMissingLicensesError,
-  // Enrollment failed because the robot account auth code couldn't be
-  // fetched from the DM Server.
-  kMetricEnrollmentRobotAuthCodeFetchFailed,
-  // Enrollment failed because the robot account auth code couldn't be
-  // exchanged for a refresh token.
-  kMetricEnrollmentRobotRefreshTokenFetchFailed,
-  // Enrollment failed because the robot account refresh token couldn't be
-  // persisted on the device.
-  kMetricEnrollmentRobotRefreshTokenStoreFailed,
-  // Enrollment failed because the administrator has deprovisioned the device.
-  kMetricEnrollmentDeprovisioned,
-
-  kMetricEnrollmentSize  // Must be the last.
+  kMetricEnrollmentRegisterPolicyMissingLicenses = 18,
+  // Failed to fetch device robot authorization code from DM Server.
+  kMetricEnrollmentRobotAuthCodeFetchFailed = 19,
+  // Failed to fetch device robot refresh token from GAIA.
+  kMetricEnrollmentRobotRefreshTokenFetchFailed = 20,
+  // Failed to persist robot account refresh token on device.
+  kMetricEnrollmentRobotRefreshTokenStoreFailed = 21,
+  // Registration / policy fetch failed: DM server reports administrator
+  // deprovisioned the device.
+  kMetricEnrollmentRegisterPolicyDeprovisioned = 22,
+  // Registration / policy fetch failed: DM server reports domain mismatch.
+  kMetricEnrollmentRegisterPolicyDomainMismatch = 23,
+  // Enrollment has been triggered, the webui login screen has been shown.
+  kMetricEnrollmentTriggered = 24,
+  // The user submitted valid GAIA credentials to start the enrollment process
+  // for the second (or further) time.
+  kMetricEnrollmentRestarted = 25,
+  // Failed to store DM token and device ID.
+  kMetricEnrollmentStoreTokenAndIdFailed = 26,
+  // Failed to obtain FRE state keys.
+  kMetricEnrollmentNoStateKeys = 27,
+  // Failed to validate policy.
+  kMetricEnrollmentPolicyValidationFailed = 28,
+  // Failed due to error in CloudPolicyStore.
+  kMetricEnrollmentCloudPolicyStoreError = 29,
+  // Failed to lock device.
+  kMetricEnrollmentLockBackendError = 30,
+  // Registration / policy fetch failed: DM server reports invalid request
+  // payload.
+  kMetricEnrollmentRegisterPolicyPayloadInvalid = 31,
+  // Registration / policy fetch failed: DM server reports device not found.
+  kMetricEnrollmentRegisterPolicyDeviceNotFound = 32,
+  // Registration / policy fetch failed: DM server reports DM token invalid.
+  kMetricEnrollmentRegisterPolicyDMTokenInvalid = 33,
+  // Registration / policy fetch failed: DM server reports activation pending.
+  kMetricEnrollmentRegisterPolicyActivationPending = 34,
+  // Registration / policy fetch failed: DM server reports device ID conflict.
+  kMetricEnrollmentRegisterPolicyDeviceIdConflict = 35,
+  // Registration / policy fetch failed: DM server can't find policy.
+  kMetricEnrollmentRegisterPolicyNotFound = 36,
+  // Registration / policy fetch failed: HTTP request failed.
+  kMetricEnrollmentRegisterPolicyRequestFailed = 37,
+  // Registration / policy fetch failed: DM server reports temporary problem.
+  kMetricEnrollmentRegisterPolicyTempUnavailable = 38,
+  // Registration / policy fetch failed: DM server returns non-success HTTP
+  // status code.
+  kMetricEnrollmentRegisterPolicyHttpError = 39,
+  // Registration / policy fetch failed: can't decode DM server response.
+  kMetricEnrollmentRegisterPolicyResponseInvalid = 40,
+  // OAuth token fetch failed: account not signed up.
+  kMetricEnrollmentAccountNotSignedUp = 41,
+  // OAuth token fetch failed: account deleted.
+  kMetricEnrollmentAccountDeleted = 42,
+  // OAuth token fetch failed: account disabled.
+  kMetricEnrollmentAccountDisabled = 43,
+  // Re-enrollment pre-check failed: domain does not match install attributes.
+  kMetricEnrollmentPrecheckDomainMismatch = 44
 };
 
 // Events related to policy refresh.
+// This enum is used to define the buckets for an enumerated UMA histogram.
+// Hence,
+//   (a) existing enumerated constants should never be deleted or reordered, and
+//   (b) new constants should only be appended at the end of the enumeration.
 enum MetricPolicyRefresh {
   // A refresh occurred while the policy was not invalidated and the policy was
   // changed. Invalidations were enabled.
-  METRIC_POLICY_REFRESH_CHANGED,
+  METRIC_POLICY_REFRESH_CHANGED = 0,
   // A refresh occurred while the policy was not invalidated and the policy was
   // changed. Invalidations were disabled.
-  METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS,
+  METRIC_POLICY_REFRESH_CHANGED_NO_INVALIDATIONS = 1,
   // A refresh occurred while the policy was not invalidated and the policy was
   // unchanged.
-  METRIC_POLICY_REFRESH_UNCHANGED,
+  METRIC_POLICY_REFRESH_UNCHANGED = 2,
   // A refresh occurred while the policy was invalidated and the policy was
   // changed.
-  METRIC_POLICY_REFRESH_INVALIDATED_CHANGED,
+  METRIC_POLICY_REFRESH_INVALIDATED_CHANGED = 3,
   // A refresh occurred while the policy was invalidated and the policy was
   // unchanged.
-  METRIC_POLICY_REFRESH_INVALIDATED_UNCHANGED,
+  METRIC_POLICY_REFRESH_INVALIDATED_UNCHANGED = 4,
 
   METRIC_POLICY_REFRESH_SIZE  // Must be the last.
 };
 
+// Types of policy invalidations.
+// This enum is used to define the buckets for an enumerated UMA histogram.
+// Hence,
+//   (a) existing enumerated constants should never be deleted or reordered, and
+//   (b) new constants should only be appended at the end of the enumeration.
+enum PolicyInvalidationType {
+  // The invalidation contained no payload.
+  POLICY_INVALIDATION_TYPE_NO_PAYLOAD = 0,
+  // A normal invalidation containing a payload.
+  POLICY_INVALIDATION_TYPE_NORMAL = 1,
+  // The invalidation contained no payload and was considered expired.
+  POLICY_INVALIDATION_TYPE_NO_PAYLOAD_EXPIRED = 3,
+  // The invalidation contained a payload and was considered expired.
+  POLICY_INVALIDATION_TYPE_EXPIRED = 4,
+
+  POLICY_INVALIDATION_TYPE_SIZE  // Must be the last.
+};
+
 // Names for the UMA counters. They are shared from here since the events
 // from the same enum above can be triggered in different files, and must use
 // the same UMA histogram name.
 POLICY_EXPORT extern const char kMetricToken[];
 POLICY_EXPORT extern const char kMetricPolicy[];
-POLICY_EXPORT extern const char kMetricEnrollment[];
-POLICY_EXPORT extern const char kMetricPolicyRefresh[];
-POLICY_EXPORT extern const char kMetricPolicyInvalidations[];
+POLICY_EXPORT extern const char kMetricUserPolicyRefresh[];
+POLICY_EXPORT extern const char kMetricUserPolicyInvalidations[];
+POLICY_EXPORT extern const char kMetricDevicePolicyRefresh[];
+POLICY_EXPORT extern const char kMetricDevicePolicyInvalidations[];
 
 }  // namespace policy