<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->

<!--
This file is used to generate a comprehensive list of Enterprise histograms
along with a detailed description for each histogram.

For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md

Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->

<histogram-configuration>

<histograms>

<variants name="AutoEnrollmentStates">
  <variant name="ConnectionError" summary="connection error"/>
  <variant name="Disabled" summary="disabled"/>
  <variant name="Enrollment" summary="enrollment"/>
  <variant name="NoEnrollment" summary="no enrollment"/>
  <variant name="ServerError" summary="server error"/>
</variants>

<variants name="CleanupHandler">
  <variant name="Browser"
      summary="Handler for open browser windows and browsing data"/>
  <variant name="Clipboard" summary="Handler for clipboard"/>
  <variant name="Extension" summary="Handler for extensions"/>
  <variant name="Files" summary="Handler for files"/>
  <variant name="Lacros" summary="Handler which calls cleanup on Lacros"/>
  <variant name="LacrosBrowser"
      summary="Handler for open browser windows and browsing data on Lacros"/>
  <variant name="LacrosExtension" summary="Handler for extensions on Lacros"/>
  <variant name="LacrosWebApp" summary="Handler for web apps on Lacros"/>
  <variant name="PrintJobs" summary="Handler for print jobs"/>
  <variant name="WebApp" summary="Handler for web apps"/>
</variants>

<variants name="ContentAnalysisType">
  <variant name="Cloud"
      summary="Content analysis of user action is done in the cloud."/>
  <variant name="Local"
      summary="Content analysis of user action is done with a local agent."/>
</variants>

<variants name="Enterprise_CrdSessionType">
  <variant name="RemoteAccess"
      summary="A CRD session where the admin has exclusive control of the
               ChromeOs device."/>
  <variant name="RemoteSupport"
      summary="A CRD session where the admin and the local user share control
               of the ChromeOs device."/>
  <variant name="Unknown"
      summary="When the CRD session type couldn't be determined."/>
</variants>

<variants name="Enterprise_RemoteCommandType">
  <variant name=".BrowserClearBrowsingData" summary="Clear Browsing Data"/>
  <variant name=".BrowserRotateAttestationCredential"
      summary="Rotate Attestation Credential"/>
  <variant name=".CommandEchoTest" summary="Command echo test"/>
  <variant name=".DeviceFetchStatus" summary="Fetch status"/>
  <variant name=".DeviceGetAvailableDiagnosticRoutines"
      summary="Get available diagnostic routines"/>
  <variant name=".DeviceGetDiagnosticRoutineUpdate"
      summary="Get diagnostic routine update"/>
  <variant name=".DeviceReboot" summary="Reboot"/>
  <variant name=".DeviceRefreshEnterpriseMachineCertificate"
      summary="Refresh enterprise machine certificate"/>
  <variant name=".DeviceRemotePowerwash" summary="Powerwash"/>
  <variant name=".DeviceResetEuicc" summary="Reset EUICC"/>
  <variant name=".DeviceRunDiagnosticRoutine" summary="Run diagnostic routine"/>
  <variant name=".DeviceScreenshot" summary="Screenshot"/>
  <variant name=".DeviceSetVolume" summary="Set volume"/>
  <variant name=".DeviceStartCrdSession" summary="Device start CRD session"/>
  <variant name=".DeviceWipeUsers" summary="Wipe users"/>
  <variant name=".FetchCrdAvailabilityInfo"
      summary="Fetch CRD availability info"/>
  <variant name=".FetchSupportPacket" summary="Fetch support packet"/>
  <variant name=".UserArcCommand" summary="ARC command"/>
</variants>

<variants name="Enterprise_UserSessionType">
  <variant name="AffiliatedUserSession"
      summary="The local user is affiliated to the organisation."/>
  <variant name="AutoLaunchedKioskSession"
      summary="The local session is auto launched kiosk."/>
  <variant name="GuestSession"
      summary="The local guest session is not managed by an organisation."/>
  <variant name="ManagedGuestSession"
      summary="The local guest session is managed by an organisation."/>
  <variant name="ManuallyLaunchedKioskSession"
      summary="The local session is manually launched kiosk"/>
  <variant name="NoUserSession" summary="There is no user."/>
  <variant name="UnaffiliatedUserSession"
      summary="The local user is not affiliated to the organisation."/>
  <variant name="UnknownUserSession" summary="user session is unknown."/>
</variants>

<variants name="EnterpriseAutoEnrollmentType">
  <variant name=".ForcedReenrollment" summary="Forced Re-Enrollment"/>
  <variant name=".InitialEnrollment" summary="Initial Enrollment Exchange"/>
</variants>

<variants name="PolicyLevel">
  <variant name="Mandatory" summary="Mandatory Policy"/>
  <variant name="Recommended" summary="Recommended Policy"/>
</variants>

<variants name="StateDeterminationDmRequestTypes">
  <variant name="PsmRlweOprf" summary="PSM RLWE OPRF"/>
  <variant name="PsmRlweQuery" summary="PSM RLWE Query"/>
  <variant name="State" summary="state"/>
</variants>

<variants name="StateDeterminationSteps">
  <variant name="OPRFRequest" summary="PSM OPRF request"/>
  <variant name="OwnershipCheck" summary="ownership check"/>
  <variant name="QueryRequest" summary="PSM Query request"/>
  <variant name="StateKeyRetrieval" summary="state key retrieval"/>
  <variant name="StateRequest" summary="state request"/>
  <variant name="SystemClockSync" summary="system clock sync"/>
</variants>

<variants name="WmiSystemSignal">
  <variant name="AntiVirus" summary="AntiVirus info"/>
  <variant name="Hotfixes" summary="Hotfix info"/>
</variants>

<histogram name="Enterprise.AccountStatusCheckResult"
    enum="EnterpriseAccountStatus" expires_after="2024-02-04">
  <owner>dkuzmin@google.com</owner>
  <owner>cros-oac@google.com</owner>
  <summary>
    Recorded when user enters their account on license packged device during
    enrollment process.
  </summary>
</histogram>

<histogram name="Enterprise.ActiveDirectoryJoin"
    enum="ActiveDirectoryDomainJoinType" expires_after="M119">
  <owner>fsandrade@chromium.org</owner>
  <owner>src/chrome/browser/ash/authpolicy/OWNERS</owner>
  <summary>
    The way device is joined to the Active Directory domain. This will be
    recorded during successful enterprise enrollment and domain join.
  </summary>
</histogram>

<histogram name="Enterprise.AttributesTPMConsistency"
    enum="EnterpriseAttributesTPMConsistencyType" expires_after="never">
<!-- expires-never: Needed for health check. -->

  <owner>igorcov@chromium.org</owner>
  <owner>vsavu@google.com</owner>
  <summary>
    Consistency between TPM lock state and absence/presence of install
    attributes at boot.
  </summary>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentBucketDownloadTime{EnterpriseAutoEnrollmentType}"
    units="ms" expires_after="2023-12-01">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Duration of the bucket download part of the auto-enrollment protocol.
    {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2021-12-26 until
    2022-07-15.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType"/>
</histogram>

<histogram name="Enterprise.AutoEnrollmentControllerTimeout"
    enum="EnterpriseAutoEnrollmentControllerTimeoutReport"
    expires_after="2024-02-04">
  <owner>vsavu@google.com</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Count the number of timeouts and successes for AutoEnrollmentController.
  </summary>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentHashDanceSuccessTime{EnterpriseAutoEnrollmentType}"
    units="ms" expires_after="2024-02-20">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Duration of the hash dance to determine enrollment state of the device. Only
    recorded if the hash dance finished successfully.
    {EnterpriseAutoEnrollmentType}
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType"/>
</histogram>

<histogram name="Enterprise.AutoEnrollmentPrivateSetMembershipSuccessTime"
    units="ms" expires_after="2024-02-04">
  <owner>sergiyb@google.com</owner>
  <owner>mpolzer@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Duration of the private set membership request to determine enrollment state
    of the device. Only recorded if it finished successfully.

    The histogram was expired (not recording data) from 2022-04-10 until
    2022-07-15.
  </summary>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentProtocolTime{EnterpriseAutoEnrollmentType}"
    units="ms" expires_after="2024-02-20">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Total duration time of the auto-enrollment protocol.
    {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2022-01-09 until
    2022-07-15.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType"/>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentPsmDmServerRequestStatus{EnterpriseAutoEnrollmentType}"
    enum="EnterpriseDeviceManagementStatus" expires_after="2024-02-20">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Device management server request status for auto-enrollment PSM requests.
    {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2021-10-31 until
    2021-11-09.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentPsmRequestNetworkErrorCode{EnterpriseAutoEnrollmentType}"
    enum="NetErrorCodes" expires_after="2024-02-20">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Network error code (if applicable) for auto-enrollment PSM requests.
    {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2021-10-31 until
    2021-11-09.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentPsmResult{EnterpriseAutoEnrollmentType}"
    enum="PsmResult" expires_after="2024-02-20">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    All possible PSM protocol results after it has executed successfully or
    terminated due to an error or timeout. This request is used to determine the
    initial enrollment state of the device. {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2021-10-31 until
    2021-11-09.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentRequestNetworkErrorCode{EnterpriseAutoEnrollmentType}"
    enum="NetErrorCodes" expires_after="2024-02-25">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Network error code (if applicable) for auto-enrollment requests.
    {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2021-12-19 until
    2022-07-15.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType"/>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentRequestStatus{EnterpriseAutoEnrollmentType}"
    enum="EnterpriseDeviceManagementStatus" expires_after="2024-02-20">
  <owner>sergiyb@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    URL fetcher status for auto-enrollment requests.
    {EnterpriseAutoEnrollmentType}

    The histogram was expired (not recording data) from 2021-12-12 until
    2022-07-15.
  </summary>
  <token key="EnterpriseAutoEnrollmentType"
      variants="EnterpriseAutoEnrollmentType"/>
</histogram>

<histogram base="true" name="Enterprise.BrowserSigninIOS.SignedOutByPolicy"
    enum="BooleanHit" expires_after="2023-06-30">
  <owner>gujen@google.com</owner>
  <owner>goanuj@google.com</owner>
  <summary>
    Recorded when a signed-in user is automatically signed out of the browser
    due to the BrowserSignin policy being set to 0 (sign-in disabled) by their
    organization. The sample is always recorded as true.

    Warning: This histogram was expired from 2021-06-30 to 2022-11-30; data may
    be missing.
  </summary>
</histogram>

<histogram base="true"
    name="Enterprise.BrowserSigninIOS.SignInInterruptedByPolicy"
    enum="BooleanHit" expires_after="2023-06-30">
  <owner>gujen@google.com</owner>
  <owner>goanuj@google.com</owner>
  <summary>
    Recorded when a user is in the process of signing in to the browser, but is
    interrupted due to the BrowserSignin policy being set to 0 (sign-in
    disabled) by their organization. The sample is always recorded as true.

    Warning: This histogram was expired from 2021-06-30 to 2022-11-30; data may
    be missing.
  </summary>
</histogram>

<histogram name="Enterprise.BrowserSigninPolicy"
    enum="EnterpriseBrowserSigninPolicy" expires_after="2024-02-20">
  <owner>alexwchen@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Histogram for counting the BrowserSignin policy. This metric is recorded
    every 24 hours and at startup along with the full set of the enterprise
    policy rules that are in use.
  </summary>
</histogram>

<histogram name="Enterprise.CBCMPolicyInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2023-01-15">
  <owner>anthonyvd@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Events for counting CBCM policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service.
  </summary>
</histogram>

<histogram name="Enterprise.CBCMPolicyRefresh" enum="EnterprisePolicyRefresh"
    expires_after="2023-08-08">
  <owner>anthonyvd@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing CBCM policy when invalidations
    are received from a service. For each refresh, indicates whether the policy
    changed, and whether the policy was invalidated at the time of the refresh.
  </summary>
</histogram>

<histogram name="Enterprise.CBCMRealTimeReportEnqueue"
    enum="EnterpriseCloudReportingStatusCode" expires_after="2024-10-01">
  <owner>zmin@chromium.org</owner>
  <owner>src/chrome/browser/enterprise/reporting/OWNERS</owner>
  <summary>
    Recorded when real time report enter the queue. It indicates whether the
    report is pushed to the queue successfully or not.
  </summary>
</histogram>

<histogram name="Enterprise.CBCMRemoteCommand.Executed"
    enum="RemoteCommandExecutionStatus" expires_after="2024-10-01">
  <owner>anthonyvd@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Events for counting status of executed CBCM remote commands. The metric
    includes only signed CBCM remote commands. Reports a final status of
    finished remote command (e.g. success, failure or termination).
  </summary>
</histogram>

<histogram name="Enterprise.CBCMRemoteCommand.Received"
    enum="RemoteCommandReceivedStatus" expires_after="2024-10-01">
  <owner>anthonyvd@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Events for counting received CBCM remote commands. The metric includes
    signed CBCM remote commands, both valid and invalid. Valid remote command is
    counted by its type. Invalid remote command is counted by a reason why it is
    considered invalid (e.g. unknown type or duplication).
  </summary>
</histogram>

<histogram name="Enterprise.CBCMRemoteCommandInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2024-10-01">
  <owner>anthonyvd@chromium.org</owner>
  <owner>cbe-eng@google.com</owner>
  <summary>
    Events for counting CBCM remote commands invalidations received with and
    without payloads. Invalidations indicate that there is a remote command to
    execute. Payloads provide context about the remote commands update, but may
    be absent if dropped by the invalidation service.
  </summary>
</histogram>

<histogram name="Enterprise.CloudExtensionRequestDialogAction"
    enum="BooleanSent" expires_after="2023-10-01">
  <owner>zmin@chromium.org</owner>
  <owner>hur.ims@navercorp.com</owner>
  <owner>src/chrome/browser/enterprise/reporting/OWNERS</owner>
  <summary>
    Recorded once each time the extension request prompt dialog is accepted or
    aborted.
  </summary>
</histogram>

<histogram name="Enterprise.CloudExtensionRequestUpdated"
    enum="EnterpriseCloudExtensionRequestListUpdate" expires_after="2024-10-01">
  <owner>zmin@chromium.org</owner>
  <owner>src/chrome/browser/enterprise/reporting/OWNERS</owner>
  <summary>
    Recorded when cloud extension request pending list is updated. Note that
    when multiple requests are added or removed together, there will be only one
    event recorded.
  </summary>
</histogram>

<histogram name="Enterprise.CloudManagementEnrollmentTokenLocation.Mac"
    enum="EnterpriseCloudManagementEnrollmentTokenLocationMac"
    expires_after="2024-06-04">
  <owner>zmin@chromium.org</owner>
  <owner>igorruvinov@chromium.org</owner>
  <summary>
    Records the enrollment token location when the token is loaded.
  </summary>
</histogram>

<histogram name="Enterprise.CloudReportingBasicRequestSize" units="KB"
    expires_after="2024-05-01">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The proto size of the basic Chrome browser cloud management reporting
    request. When a report is separated into multiple requests, all of them
    contain the basic request.
  </summary>
</histogram>

<histogram name="Enterprise.CloudReportingRequestCount" units="requests"
    expires_after="2024-05-01">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The number of request for one Chrome browser cloud management report. A
    report is separated into multiple requests when it's too large.
  </summary>
</histogram>

<histogram name="Enterprise.CloudReportingRequestSize" units="KB"
    expires_after="2024-05-01">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The proto size of each Chrome browser cloud management reporting request. It
    includes the requests which are more than 5MB and discarded.
  </summary>
</histogram>

<histogram name="Enterprise.CloudReportingResponse"
    enum="EnterpriseCloudReportingResponse" expires_after="2024-05-01">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The upload result for each cloud reporting request. Note that there may be
    multiple requests per report. Also, one request may creates multiple data
    point due to retry.
  </summary>
</histogram>

<histogram name="Enterprise.CloudReportingUploadTrigger"
    enum="ReportSchedulerReportTrigger" expires_after="never">
<!-- expires-never: this provides a generally useful signal regarding enterprise report uploads. -->

  <owner>grt@chromium.org</owner>
  <owner>src/chrome/browser/enterprise/reporting/OWNERS</owner>
  <summary>
    The trigger detected by the ReportScheduler responsible that led to an
    attempt to upload an enterprise report.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceLocalAccountPolicyInvalidations2"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting device local account policy invalidations received with
    and without payloads. Invalidations indicate that a policy has been updated
    and should be refreshed. Payloads provide context about the policy update,
    but may be absent if dropped by the invalidation service.

    As opposed to current histogram, Enterprise.DevicePolicyInvalidations2
    counts only events of device policy invalidations.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceLocalAccountPolicyRefresh3"
    enum="EnterprisePolicyRefresh" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing device local account policy
    when invalidations are received from a service. For each refresh, indicates
    whether the policy changed, and whether the policy was invalidated at the
    time of the refresh.

    As opposed to current histogram, Enterprise.DevicePolicyRefresh3 counts only
    events of refreshing device policies.
  </summary>
</histogram>

<histogram name="Enterprise.DevicePolicyInvalidations2"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting device policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service.

    As opposed to current histogram,
    Enterprise.DeviceLocalAccountPolicyInvalidations2 counts only events of
    device local account policy invalidations.
  </summary>
</histogram>

<histogram name="Enterprise.DevicePolicyRefresh3"
    enum="EnterprisePolicyRefresh" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing device policy when
    invalidations are received from a service. For each refresh, indicates
    whether the policy changed, and whether the policy was invalidated at the
    time of the refresh.

    As opposed to current histogram, Enterprise.DeviceLocalAccountPolicyRefresh3
    counts only events of refreshing device local account policies.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceRemoteCommand.Crd.Capturer.FrameSink.Created"
    units="units" expires_after="2023-11-12">
  <owner>macinashutosh@google.com</owner>
  <owner>chromeos-commercial-crd@google.com</owner>
  <summary>
    Reports the creation of FrameSinkDesktopCapturer class object
  </summary>
</histogram>

<histogram
    name="Enterprise.DeviceRemoteCommand.Crd.Capturer.FrameSink.Destroyed"
    units="units" expires_after="2024-03-17">
  <owner>macinashutosh@google.com</owner>
  <owner>chromeos-commercial-crd@google.com</owner>
  <summary>
    Reports the destruction of FrameSinkDesktopCapturer class object
  </summary>
</histogram>

<histogram name="Enterprise.DeviceRemoteCommand.Crd.Result"
    enum="EnterpriseCrdSessionResultCode" expires_after="2024-02-11">
  <owner>macinashutosh@google.com</owner>
  <owner>chromeos-commercial-crd@google.com</owner>
  <summary>Reports success/failure when a session is attempted.</summary>
</histogram>

<histogram name="Enterprise.DeviceRemoteCommand.Crd.SessionType"
    enum="EnterpriseCrdUserType" expires_after="2024-02-11">
  <owner>macinashutosh@google.com</owner>
  <owner>chromeos-commercial-crd@google.com</owner>
  <summary>
    Reports the user type for the attempted session only when the result is
    EnterpriseCrdSessionResultCode::SUCCESS.
  </summary>
</histogram>

<histogram
    name="Enterprise.DeviceRemoteCommand.Crd.{Enterprise_CrdSessionType}.{Enterprise_UserSessionType}.Result"
    enum="EnterpriseCrdSessionResultCode" expires_after="2024-03-10">
  <owner>macinashutosh@google.com</owner>
  <owner>chromeos-commercial-crd@google.com</owner>
  <summary>
    Reports success/failure when a session is attempted for the
    {Enterprise_CrdSessionType} and {Enterprise_UserSessionType}
  </summary>
  <token key="Enterprise_CrdSessionType" variants="Enterprise_CrdSessionType"/>
  <token key="Enterprise_UserSessionType"
      variants="Enterprise_UserSessionType"/>
</histogram>

<histogram
    name="Enterprise.DeviceRemoteCommand.Crd.{Enterprise_CrdSessionType}.{Enterprise_UserSessionType}.SessionDuration"
    units="minutes" expires_after="2024-03-03">
  <owner>macinashutosh@google.com</owner>
  <owner>chromeos-commercial-crd@google.com</owner>
  <summary>
    Reports duration of a successful session completed for the
    {Enterprise_CrdSessionType} and {Enterprise_UserSessionType}
  </summary>
  <token key="Enterprise_CrdSessionType" variants="Enterprise_CrdSessionType">
    <variant name=""/>
  </token>
  <token key="Enterprise_UserSessionType" variants="Enterprise_UserSessionType">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Enterprise.DeviceRemoteCommand.Executed{Enterprise_RemoteCommandType}"
    enum="RemoteCommandExecutionStatus" expires_after="2024-02-20">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting status of executed device remote commands. The metric
    includes only signed device remote commands. Reports a final status of
    finished remote command (e.g. success, failure or termination).
    {Enterprise_RemoteCommandType}
  </summary>
  <token key="Enterprise_RemoteCommandType"
      variants="Enterprise_RemoteCommandType">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceRemoteCommand.FetchSupportPacket.Failure"
    enum="EnterpriseFetchSupportPacketFailureType" expires_after="2024-08-08">
  <owner>iremuguz@google.com</owner>
  <owner>chromeos-commercial-supportability@google.com</owner>
  <summary>
    Reports the failure reason of the FETCH_SUPPORT_PACKET remote command. It
    will be recorded by DeviceCommandFetchSupportPacketJob class when the
    command execution has completed with failure. It will indicate in which
    stage of execution had the failure (e.g. wrong command payload, error when
    exporting the generated support packet or enqueueing the LogUploadEvent to
    ReportQueue).
  </summary>
</histogram>

<histogram name="Enterprise.DeviceRemoteCommand.Received"
    enum="RemoteCommandReceivedStatus" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting received device remote commands. The metric includes
    signed device remote commands, both valid and invalid. Valid remote command
    is counted by its type. Invalid remote command is counted by a reason why it
    is considered invalid (e.g. unknown type or duplication).
  </summary>
</histogram>

<histogram name="Enterprise.DeviceRemoteCommandInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting device remote commands invalidations received with and
    without payloads. Invalidations indicate that there is a remote command to
    execute. Payloads provide context about the remote commands update, but may
    be absent if dropped by the invalidation service.

    Metric is similar to Enterprise.DevicePolicyInvalidations2. Device local
    account scope does not exist for remote commands so there is no metric for
    remote commands similar to
    Enterprise.DeviceLocalAccountPolicyInvalidations2.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceSettings.MissingPolicyMitigated"
    enum="BooleanSuccess" expires_after="2023-12-01">
  <owner>rbock@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <owner>managed-devices@google.com</owner>
  <summary>
    Recorded every time policy file is missing or corrupted on Chrome OS. Should
    be compared to Enterprise.DeviceSettings.UpdatedStatus as happens only if
    status is STORE_NO_POLICY and device being not managed.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceSettings.UpdatedStatus"
    enum="DeviceSettingsStatus" expires_after="2023-12-01">
  <owner>rbock@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <owner>managed-devices@google.com</owner>
  <summary>
    Recorded every time as DeviceSettingsProvider updates its current state.
    Used to compare rate of Enterprise.DeviceSettings.MissingPolicyMitigated
    event.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceSignals.Collection.CrowdStrike.Error"
    enum="DeviceSignalsParsingError" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures an error that occured while trying to get signals from the
    CrowdStrike agent.
  </summary>
</histogram>

<histogram
    name="Enterprise.DeviceSignals.Collection.Failure.{Signal}.{ErrorType}Error"
    enum="DeviceSignalsSignalCollectionError" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the actual error whenever a {Signal} signal collection request
    failed with a {ErrorType} error.
  </summary>
  <token key="Signal">
    <variant name="AntiVirus" summary="AntiVirus with a top-level error"/>
    <variant name="FileSystemInfo" summary="file system information"/>
    <variant name="Hotfixes" summary="Hotfixes"/>
    <variant name="SystemSettings" summary="system settings"/>
  </token>
  <token key="ErrorType">
    <variant name="CollectionLevel" summary="collection-level"/>
    <variant name="TopLevel" summary="top-level"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceSignals.Collection.Request.{Signal}.Items"
    units="items" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the number of items as part of the {Signal} signal collection
    response. Recorded when the collection request was received. This histogram
    applies only to parameterized signals.
  </summary>
  <token key="Signal">
    <variant name="FileSystemInfo" summary="file system items"/>
    <variant name="SystemSettings" summary="system setting items"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceSignals.Collection.Success.{Signal}.Items"
    units="items" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the number of items collected in a {Signal} signal collection
    response. Recorded only when the collection request was successful and the
    signal value represents a collection.
  </summary>
  <token key="Signal">
    <variant name="AntiVirus" summary="AntiVirus"/>
    <variant name="FileSystemInfo" summary="file system items"/>
    <variant name="Hotfixes" summary="Hotfixes"/>
    <variant name="SystemSettings" summary="system settings"/>
  </token>
</histogram>

<histogram
    name="Enterprise.DeviceSignals.Collection.{Outcome}.{Signal}.Latency"
    units="ms" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the signal collection latency for the {Signal} signal. Recorded
    only when the collection {Outcome}.
  </summary>
  <token key="Outcome">
    <variant name="Failure" summary="failed"/>
    <variant name="Success" summary="succeeded"/>
  </token>
  <token key="Signal">
    <variant name="AntiVirus" summary="AntiVirus"/>
    <variant name="FileSystemInfo" summary="file system items"/>
    <variant name="Hotfixes" summary="Hotfixes"/>
    <variant name="SystemSettings" summary="system settings"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceSignals.Collection.{Signal}.Delta"
    units="items" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the number of delta between requested and returned items as part of
    the {Signal} signal collection response. Recorded when the collection
    request was completed. This histogram applies only to parameterized signals.
  </summary>
  <token key="Signal">
    <variant name="FileSystemInfo" summary="file system items"/>
    <variant name="SystemSettings" summary="system setting items"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceSignals.Collection.{Variant}"
    enum="DeviceSignalsSignalName" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded whenever a device signal collection request {Variant} for a
    particular signal.
  </summary>
  <token key="Variant">
    <variant name="Failure" summary="failed"/>
    <variant name="Request" summary="was received"/>
    <variant name="Success" summary="was successful"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceSignals.UserPermission"
    enum="DeviceSignalsUserPermission" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded whenever a permission evaluation has been assessed for a particular
    user for whom device signals were requested.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Attestation.Funnel"
    enum="DTAttestationFunnelStep" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Various steps recorded when a device goes through the device trust connector
    attestation flow with a partner website.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Attestation.ResponseLatency.{Variant}"
    units="ms" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Latency of a {Variant} attestation step in the overarching Device Trust
    connector's attestation flow. This measures the amount of time required to
    generate and return a response to the given challenge, which is effectively
    the last step in the overall attestation flow.
  </summary>
  <token key="Variant">
    <variant name="Failure" summary="failed"/>
    <variant name="Success" summary="successful"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.Attestation.Result"
    enum="DTAttestationResult" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Result of the attestation step in the overarching Device Trust connector's
    attestation flow. Logged whenever the attestation step finishes, success or
    failure, and right before the throttled request resumes.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.EnrollmentStatus"
    enum="DTEnrollmentStatus" expires_after="2024-06-01">
  <owner>lmasopust@google.com</owner>
  <owner>rodmartin@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when a device starts the device trust attestation flow with a
    partner website. This captures the enrollment status of the device where the
    attestation flow is happening.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Handshake.Result"
    enum="DTHandshakeResult" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when a Device Trust handshake was completed between the browser and
    a server. This captures either the success or specific failure of the
    overall flow.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Inline.Attestation.PolicyLevel"
    enum="DTAttestationPolicyLevel" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Policy levels enabled for the Device Trust connector during the DTC inline
    flow process. The inline flow can occur during a user navigation, and the
    policy level determines the content of the attestation services' challenge
    response.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Key.LoadPersistedKeyResult"
    enum="DTLoadPersistedKeyResult" expires_after="2024-06-01">
  <owner>seblalancette@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when a key loading attempt was made with an enum value representing
    either a successful attempt, or different possible errors.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Key.Signing.Latency.{Variant}"
    units="ms" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded every time a Device Trust {Variant} key is successfully used to
    sign a payload. Measures the signing latency in milliseconds.
  </summary>
  <token key="Variant">
    <variant name="Hardware" summary="hardware-backed"/>
    <variant name="OS" summary="OS-backed"/>
    <variant name="Unknown" summary="unknown"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.Key.TrustLevel" enum="DTKeyTrustLevel"
    expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Recorded every time a Device Trust signing key is successfully loaded from
    persistence. This captures what trust level this key has, which in turn
    gives insights into how it was created (e.g. via a TPM or not).
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Key.Type" enum="DTKeyType"
    expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Recorded every time a Device Trust signing key is successfully loaded from
    persistence. This captures what algorithm this key was generated with.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Key.{Variant}Result"
    enum="DTKeyRotationResult" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Recorded every time the browser attempted to {Variant} a Device Trust
    signing key. This captures the result from this process.
  </summary>
  <token key="Variant">
    <variant name="Creation" summary="create (i.e. without nonce)"/>
    <variant name="Rotation" summary="rotate (i.e. with nonce)"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.KeyRotationCommand.Error"
    enum="DTKeyRotationCommandError" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when the browser received a failed response when triggering a
    Device Trust key rotation command. The browser will then attempt to
    categorize the failure using the given enum.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.KeyRotationCommand.Error.Hresult"
    enum="Hresult" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when the browser failed to trigger a Device Trust key rotation
    command through the updater for an unknown reason. This will capture the
    unknown HRESULT returned via the COM APIs.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.KeyRotationCommand.ExitCode"
    units="exit_code" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when the browser received a failed response when triggering a
    Device Trust key rotation command. The browser will then attempt to
    categorize the failure using the given enum.
  </summary>
</histogram>

<histogram
    name="Enterprise.DeviceTrust.Mac.KeychainOSStatus.{KeyType}.{Operation}"
    enum="ErrSecOSStatus" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>hmare@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when a failed OSStatus code is returned from a Keychain Services
    API for the {KeyType} keypair during a {Operation} operation.
  </summary>
  <token key="KeyType">
    <variant name="Permanent" summary="permanent"/>
    <variant name="Temporary" summary="temporary"/>
  </token>
  <token key="Operation">
    <variant name="Copy" summary="Copy"/>
    <variant name="Create" summary="Create"/>
    <variant name="Delete" summary="Delete"/>
    <variant name="ExportPublicKey" summary="ExportPublicKey"/>
    <variant name="SignPayload" summary="SignPayload"/>
    <variant name="Update" summary="Update"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.Mac.SecureEnclaveOperation.{KeyType}"
    enum="DTSecureEnclaveOperationStatus" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Recorded when a device attempts to issue an API that interacts with the
    Secure Enclave signing key in the {KeyType} key storage.
  </summary>
  <token key="KeyType">
    <variant name="Permanent" summary="permanent"/>
    <variant name="Temporary" summary="temporary"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.ManagementService.Error"
    enum="DTManagementServiceError" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Captures any terminal failures that occur in the Device Trust management
    service binary during the execution of a command (e.g. key rotation).
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Origin" enum="DTOrigin"
    expires_after="2024-06-01">
  <owner>lmasopust@google.com</owner>
  <owner>rodmartin@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when a device starts the device trust attestation flow with a
    partner website. This captures if the attestation flow was triggered inside
    of a session or on the login screen.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.Persistence.{Operation}.Error"
    enum="DTKeyPersistenceError" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Captures any terminal failures that occur during the process of creating,
    storing, and loading a Device Trust signing key pair during a key rotation.
  </summary>
  <token key="Operation">
    <variant name="CheckPermission"
        summary="Operation that checks the permissions for accessing the key
                 storage"/>
    <variant name="CreateKeyPair"
        summary="Operation that creates a new signing key pair"/>
    <variant name="LoadKeyPair"
        summary="Operation that loads the key pair from the persistence
                 storage"/>
    <variant name="StoreKeyPair"
        summary="Operation that stores the key pair in persistence storage"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.RotateSigningKey.Tries" units="tries"
    expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Recorded when a device attempts to rotate its device trust signing key.
    Chrome will retry a fixed number of times until the operation either
    succeeds or fails. A value of 1 means the rotation worked on the first try.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.RotateSigningKey.{Nonce}.Status"
    enum="DeviceTrustKeyRotationStatus" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Recorded when a device attempts to rotate its device trust signing key.
    {Nonce}
  </summary>
  <token key="Nonce">
    <variant name="NoNonce"
        summary="This occurs right after the device is enrolled with CBCM."/>
    <variant name="WithNonce"
        summary="This occurs when a device receives a command from the admin
                 console."/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.RotateSigningKey.{Nonce}.UploadCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    HTTP status code of the key upload request recorded when a device attempts
    to rotate its device trust signing key. {Nonce}
  </summary>
  <token key="Nonce">
    <variant name="NoNonce"
        summary="This occurs right after the device is enrolled with CBCM."/>
    <variant name="WithNonce"
        summary="This occurs when a device receives a command from the admin
                 console."/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.SignalsDecorator.Latency.{Variant}"
    units="ms" expires_after="2024-06-01">
  <owner>hmare@google.com</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>seblalancette@chromium.org</owner>
  <summary>
    Latency recorded when the {Variant} decorator(s) finish collecting their
    signals. Captures the amount of time required to collect the signals under
    this scope.
  </summary>
  <token key="Variant">
    <variant name="Ash" summary="Ash"/>
    <variant name="Browser" summary="Browser (without cache)"/>
    <variant name="Common" summary="Common (without cache)"/>
    <variant name="Common.WithCache" summary="Common (with cache)"/>
    <variant name="Context" summary="Context"/>
    <variant name="Full" summary="full set of"/>
    <variant name="Win" summary="Windows"/>
  </token>
</histogram>

<histogram name="Enterprise.DeviceTrust.SyncSigningKey.ClientError"
    enum="DTSynchronizationError" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures any client-side errors that caused a key synchronization flow to
    fail.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.SyncSigningKey.UploadCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-06-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    HTTP status code of the key upload request recorded when a device issues a
    key synchronization request.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ActiveFileEventsCount" units="entries"
    expires_after="2024-03-17">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Number of non-expired file events stored in the
    DlpFilesController::EventStorage. It is recorded each time an entry is added
    or updated.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.CaptureModeInitBlocked" enum="BooleanBlocked"
    expires_after="2023-10-08">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when capture mode initialization was blocked by Data Leak
    Prevention.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.CaptureModeInitWarned" enum="BooleanWarned"
    expires_after="2023-12-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when the user is warned by Data Leak Prevention before capture mode
    initialization.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ClipboardReadBlocked" enum="BooleanBlocked"
    expires_after="2023-12-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Result of Data Leak Prevention evaluation for a data read from the
    clipboard.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ConfidentialContentsCount" units="entries"
    expires_after="2024-03-17">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Number of items stored in the DlpConfidentialContentsCache. It is recorded
    each time a new entry is cached.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.DataTransferControllerStarted" enum="Boolean"
    expires_after="2024-01-21">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when DataTransferController is initialized, meaning that all
    clipboard and drag-n-drop operations will be affected by Data Leak
    Prevention checks.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.DataTransferReportingTimeDiff" units="ms"
    expires_after="2023-12-10">
  <owner>poromov@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Time difference between current and the latest sent Data Leak Prevention
    reporting events for data transfers for which sources and destinations are
    the same.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.DlpPolicyPresent" enum="Boolean"
    expires_after="2024-02-11">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when non-empty Data Leak Prevention policy is present and due to
    that Data Leak Prevention infrastructure is initialized on the client.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.DragDropBlocked" enum="BooleanBlocked"
    expires_after="2023-12-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Result of Data Leak Prevention evaluation for a drag-n-drop operation.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.Errors.Adaptor"
    enum="EnterpriseDlpPolicyCrOSAdaptorError" expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when an error occurs during adaptor usage in the Data Leak
    Prevention daemon.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.Errors.DaemonInit"
    enum="EnterpriseDlpPolicyCrOSDaemonInitError" expires_after="2024-01-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when an error occurs while performing initialization operations in
    the Data Leak Prevention daemon.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.Errors.Fanotify"
    enum="EnterpriseDlpPolicyCrOSFanotifyError" expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when an error occurs during fanotify usage in the Data Leak
    Prevention daemon.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.Errors.FileDatabase"
    enum="EnterpriseDlpPolicyCrOSFileDatabaseError" expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when an error occurs while performing database operations in the
    Data Leak Prevention daemon.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.Errors.FilesPolicySetup" enum="Boolean"
    expires_after="2023-12-17">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Record whether an error occurs during the Data Leak Prevention files policy
    setup.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.Errors.ReportQueueNotReady" enum="Boolean"
    expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Record whether a Data Leak Prevention event is not reported because of
    report queue setup issues.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FanotifyDeleteEventSupport" enum="Boolean"
    expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Record whether the kernel supports fanotify mark filesystem.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FanotifyMarkFilesystemSupport" enum="Boolean"
    expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>Record whether the kernel supports fanotify delete events.</summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionBlocked2"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records when a file action is blocked because of Data Leak Prevention policy
    Files restriction. Identifies which file action was blocked.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionBlockReviewed"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2024-03-01">
  <owner>ayaelattar@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records which file action blocked by Data Leak Prevention policy is
    reviewed.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionWarned2"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records when a file action is warned because of Data Leak Prevention policy
    Files restriction. Identifies which file action was warned.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionWarnProceeded"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2023-12-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records which file action was warned because of Data Leak Prevention policy
    restrictions and proceeded by the user.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionWarnReviewed"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2024-03-01">
  <owner>ayaelattar@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records which file action warning by Data Leak Prevention policy was
    reviewed.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionWarnTimedOut"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2024-03-01">
  <owner>ayaelattar@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records which file action was warned because of Data Leak Prevention policy
    and the warning timed out.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FilesAppOpenTimedOut" enum="Boolean"
    expires_after="2024-03-01">
  <owner>aidazolic@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records True when opening the Files App to show a Data Leak Prevention
    dialog times out, and False when it successfully opens.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FilesBlockedCount" units="entries"
    expires_after="2024-03-01">
  <owner>ayaelattar@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records the number of files blocked by Data Leak Prevention policy per file
    action.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FilesDaemonStarted" enum="Boolean"
    expires_after="2023-12-01">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when Data Leak Prevention policy contains Files restrictions and
    DLP Files daemon is started because of that.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FilesWarnedCount" units="entries"
    expires_after="2024-03-01">
  <owner>ayaelattar@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records the number of files warned by Data Leak Prevention policy per file
    action.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.PrintingBlocked" enum="BooleanBlocked"
    expires_after="2023-12-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>Result of Data Leak Prevention evaluation for printing.</summary>
</histogram>

<histogram name="Enterprise.Dlp.PrintingWarned" enum="BooleanWarned"
    expires_after="2024-03-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when there is a &quot;warn&quot; level Data Leak Prevention
    evaluation for printing.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.PrintingWarnProceeded" enum="Boolean"
    expires_after="2024-03-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when the user proceeded with (True) or canceled (False) the action
    after a Data Leak Prevention warning for printing.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.PrintingWarnSilentProceeded" enum="Boolean"
    expires_after="2024-03-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when there is a &quot;warn&quot; level Data Leak Prevention
    evaluation for a screen share, but it is caused by the content that the user
    was already warned about and decided to proceed, so no new warning is shown
    and printing is silently allowed.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.PrivacyScreenEnforced" enum="BooleanForced"
    expires_after="2023-12-01">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when privacy screen was enforced by Data Leak Prevention.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedBlockLevelRestriction"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2024-02-11">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when Data Leak Prevention event with &quot;block&quot; level was
    reported. Identifies which restriction was blocked and reported.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedEventStatus" enum="GoogleRpcCode"
    expires_after="2024-02-11">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Result of enqueueing Data Leak Prevention event to the reporting queue.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedReportLevelRestriction"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2024-02-11">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when Data Leak Prevention event with &quot;report&quot; level was
    reported. Identifies which restriction was reported.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedWarnLevelRestriction"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2024-03-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when Data Leak Prevention event with &quot;warn&quot; level was
    reported. Identifies which restriction was reported.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedWarnProceedLevelRestriction"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2024-03-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when Data Leak Prevention event with &quot;warn&quot; level was
    reported after a user proceeded with a restricted action. Identifies which
    restriction was reported.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.RestrictionConfigured"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2023-10-08">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Records which types of restrictions are present in Data Leak Prevention
    policy.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.SameFileEventTimeDiff" units="ms"
    expires_after="2024-02-01">
  <owner>accorsi@google.com</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Time difference between the current and the latest sent Data Leak Prevention
    file events for which inodes and destinations are the same.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenShareBlocked" enum="BooleanBlocked"
    expires_after="2023-12-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Result of Data Leak Prevention evaluation for a screen share.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenSharePausedOrResumed" enum="Boolean"
    expires_after="2023-12-01">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when screen share was paused (True) or resumed (False) by Data Leak
    Prevention.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenShareWarned" enum="BooleanWarned"
    expires_after="2023-12-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when there is a &quot;warn&quot; level Data Leak Prevention
    evaluation for a screen share.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenShareWarnProceeded" enum="Boolean"
    expires_after="2023-12-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when the user proceeded with (True) or canceled (False) the action
    after a Data Leak Prevention warning for a screen share.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenShareWarnSilentProceeded" enum="Boolean"
    expires_after="2023-12-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when there is a &quot;warn&quot; level Data Leak Prevention
    evaluation for a screen share, but it is caused by the content that the user
    was already warned about and decided to proceed, so no new warning is shown
    and the screen share is silently allowed.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenshotBlocked" enum="BooleanBlocked"
    expires_after="2023-12-10">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Result of Data Leak Prevention evaluation for taking a screenshot or a video
    capture.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenshotWarned" enum="BooleanWarned"
    expires_after="2023-12-10">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when there is a &quot;warn&quot; level Data Leak Prevention
    evaluation for taking a screenshot or a video capture.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenshotWarnProceeded" enum="Boolean"
    expires_after="2023-12-01">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when the user proceeded with (True) or canceled (False) the action
    after a Data Leak Prevention warning shown at the capture mode
    initialization or before taking a screenshot or a video capture.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenshotWarnSilentProceeded" enum="Boolean"
    expires_after="2023-12-10">
  <owner>aidazolic@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when there is a &quot;warn&quot; level Data Leak Prevention
    evaluation for initiating capture mode, or taking a screenshot or a video
    capture, but it is caused by the content that the user was already warned
    about and decided to proceed, so no new warning is shown and the screen
    share is silently allowed.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.VideoCaptureInterrupted" enum="Boolean"
    expires_after="2023-12-01">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-dlp@google.com</owner>
  <summary>
    Recorded when video capture was interrupted by Data Leak Prevention.
  </summary>
</histogram>

<histogram name="Enterprise.DMServerRequestSuccess{EnterpriseDMServerRequest}"
    enum="EnterpriseDMServerRequestSuccess" expires_after="2024-02-20">
  <owner>rbock@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <owner>managed-devices@google.com</owner>
  <summary>
    Number of retries the client did to execute a DeviceManagementServer
    request. It's recorded after the request has been completed, either
    successfully after 0 or more retries, with a failure (too many retries or
    non-retriable error) or with a server error. {EnterpriseDMServerRequest}
  </summary>
  <token key="EnterpriseDMServerRequest">
    <variant name=""/>
    <variant name=".AndroidManagementCheck" summary="Android Management Check.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".ApiAuthCodeFetch" summary="Api Auth Code Fetch.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".AttributeUpdate" summary="Attribute Update.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".AttributeUpdatePermission"
        summary="Attribute Update Permission.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".AutoEnrollment" summary="Auto Enrollment.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".BrowserUploadPublicKey"
        summary="Upload browser public key.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".CertBasedRegistration" summary="Cert Based Registration.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".CertProvisioningRequest"
        summary="Client Certificate Provisioning Request.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".CheckUserAccount" summary="Check User Account.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".ChromeDesktopReport" summary="Chrome Desktop Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".ChromeOsUserReport" summary="ChromeOs User Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".ChromeProfileReport" summary="Chrome Profile Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".DeviceStateRetrieval" summary="Device State Retrieval.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".GcmIdUpdate" summary="Gcm Id Update.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".InitialEnrollmentStateRetrieval"
        summary="Initial Enrollment State Retrieval.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".Invalid" summary="Invalid.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".PolicyFetch" summary="Policy Fetch.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".PSMDeviceStateRequest" summary="PSM Device State Request.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".PublicSamlUserRequest" summary="Public SAML User Request.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".Registration" summary="Registration.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".RemoteCommands" summary="Remote Commands.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".TokenEnrollment" summary="Token Enrollment.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".Unregistration" summary="Unregistration.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadAppInstallReport"
        summary="Upload App Install Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadCertificate" summary="Upload Certificate.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadEncryptedReport" summary="Upload Encrypted Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadEuiccInfo" summary="Upload EUICC Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadPolicyValidationReport"
        summary="Upload Policy Validation Report.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadrealtimeReport"
        summary="Upload of real-time reports.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
    <variant name=".UploadStatus" summary="Upload Status.">
      <owner>rbock@google.com</owner>
      <owner>zmin@chromium.org</owner>
    </variant>
  </token>
</histogram>

<histogram name="Enterprise.EnrolledDevicePolicyPresent" enum="Boolean"
    expires_after="2024-02-04">
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Whether loading of device policy from file on an enterprise-enrolled
    (checked against install_attributes.pb) Chrome OS device yields an
    enterprise policy. Filled once during session startup, after first
    successful device policy read.
  </summary>
</histogram>

<histogram name="Enterprise.EnrolledPolicyHasDMToken" enum="Boolean"
    expires_after="never">
<!-- expires-never: Used for monitoring the health of device policy. -->

  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Whether loading of device policies from file on an enterprise-enrolled
    (checked against install_attributes.pb) Chrome OS device yields a PolicyData
    message with a DMToken. Filled once during session startup, after first
    successful device policy read.
  </summary>
</histogram>

<histogram name="Enterprise.Enrollment" enum="EnterpriseEnrollmentType"
    expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to device enrollment on new installs of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentAttestationBased"
    enum="EnterpriseEnrollmentType" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to attestation-based enrollment (Zero-Touch) of Chrome OS
    devices.

    Warning: this histogram was expired from 2021-12-05 to 2022-02-01. Data may
    be missing.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForced" enum="EnterpriseEnrollmentType"
    expires_after="2024-02-11">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to forced re-enrollment (FRE) of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedAttestationBased"
    enum="EnterpriseEnrollmentType" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to attestation-based re-enrollment (Auto RE) of Chrome OS
    devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedInitial"
    enum="EnterpriseEnrollmentType" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to forced initial enrollment of Chrome OS devices during the
    first startup of a device.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedInitialAttestationBased"
    enum="EnterpriseEnrollmentType" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to attestation-based initial enrollment (Zero-Touch) of
    Chrome OS devices during the first startup of a device.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedInitialManualFallback"
    enum="EnterpriseEnrollmentType" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to manual fallback from attestation-based initial enrollment
    (Zero-Touch) of Chrome OS devices during the first startup of a device.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedManualFallback"
    enum="EnterpriseEnrollmentType" expires_after="2024-02-25">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to manual fallback from attestation-based re-enrollment (Auto
    RE) of Chrome OS devices.

    Warning: this histogram was expired from 2021-12-05 to 2022-02-01. Data may
    be missing.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentNudge.PolicyFetchResult"
    enum="EnrollmentNudgePolicyFetchResult" expires_after="2024-02-01">
  <owner>andreydav@google.com</owner>
  <owner>rodmartin@google.com</owner>
  <owner>chromeos-commercial-identity@google.com</owner>
  <summary>
    Recorded when we fetch the value of enrollment nudge policy. Tracks the
    value of the policy or the absence of it in the server response.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentNudge.UserAction"
    enum="EnrollmentNudgeUserAction" expires_after="2024-02-01">
  <owner>andreydav@google.com</owner>
  <owner>rodmartin@google.com</owner>
  <owner>chromeos-commercial-identity@google.com</owner>
  <summary>
    Tracks user actions on the enrollment nudge pop-up on the Gaia screen.
    Recorded when user clicks on one of the buttons there.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentRecovery" enum="EnterpriseEnrollmentType"
    expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to Chrome OS enterprise enrollment recovery. Note that this
    only covers cases in which prior to recovery, UMA stats are enabled by
    policy.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentRollbackAttestation"
    enum="EnterpriseEnrollmentType" expires_after="2023-12-01">
  <owner>crisguerrero@chromium.org</owner>
  <owner>mpolzer@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to attestation based re-enrollment after enterprise rollback.

    Events are recorded during enrollment after rollback and types are listed in
    the MetricEnrollment enum.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentRollbackManualFallback"
    enum="EnterpriseEnrollmentType" expires_after="2023-12-01">
  <owner>crisguerrero@chromium.org</owner>
  <owner>mpolzer@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events related to manual re-enrollment after enterprise rollback. This is
    used when attestation based enrollment fails.

    Events are recorded during enrollment after rollback and types are listed in
    the MetricEnrollment enum.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Cancel" units="ms"
    expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment was cancelled.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Failure" units="ms"
    expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment failed.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Success" units="ms"
    expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment succeeded.
  </summary>
</histogram>

<histogram name="Enterprise.FCMInvalidationService.CBCMPolicyInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2023-01-15">
  <owner>anthonyvd@chromium.org</owner>
  <owner>chrome-enterprise-team-core@google.com</owner>
  <summary>
    Events for counting CBCM policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service. Subset of
    &quot;Enterprise.CBCMPolicyInvalidations&quot;. Gets recorded only when
    FCMInvalidationService is used as InvalidationService.
  </summary>
</histogram>

<histogram name="Enterprise.FCMInvalidationService.CBCMPolicyRefresh"
    enum="EnterprisePolicyRefresh" expires_after="2023-01-15">
  <owner>anthonyvd@chromium.org</owner>
  <owner>chrome-enterprise-team-core@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing CBCM policy when invalidations
    are received from a service. For each refresh, indicates whether the policy
    changed, and whether the policy was invalidated at the time of the refresh.
    Subset of &quot;Enterprise.CBCMPolicyRefresh&quot;. Gets recorded only when
    FCMInvalidationService is used as InvalidationService.
  </summary>
</histogram>

<histogram
    name="Enterprise.FCMInvalidationService.DeviceLocalAccountPolicyInvalidations2"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting device local account policy invalidations received with
    and without payloads. Invalidations indicate that a policy has been updated
    and should be refreshed. Payloads provide context about the policy update,
    but may be absent if dropped by the invalidation service. Subset of
    &quot;Enterprise.DeviceLocalAccountPolicyInvalidations2&quot;. Gets recorded
    only when FCMInvalidationService is used as InvalidationService.

    As opposed to current histogram,
    Enterprise.FCMInvalidationService.DevicePolicyInvalidations2 counts only
    events of device policy invalidations.
  </summary>
</histogram>

<histogram
    name="Enterprise.FCMInvalidationService.DeviceLocalAccountPolicyRefresh3"
    enum="EnterprisePolicyRefresh" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing device local account policy
    when invalidations are received from a service. For each refresh, indicates
    whether the policy changed, and whether the policy was invalidated at the
    time of the refresh. Subset of
    &quot;Enterprise.DeviceLocalAccountPolicyRefresh3&quot;. Gets recorded only
    when FCMInvalidationService is used as InvalidationService.

    As opposed to current histogram,
    Enterprise.FCMInvalidationService.DevicePolicyRefresh3 counts only events of
    refreshing device policies.
  </summary>
</histogram>

<histogram name="Enterprise.FCMInvalidationService.DevicePolicyInvalidations2"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting device policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service. Subset of
    &quot;Enterprise.DevicePolicyInvalidations2&quot;. Gets recorded only when
    FCMInvalidationService is used as InvalidationService.

    As opposed to current histogram,
    Enterprise.FCMInvalidationService.DeviceLocalAccountPolicyInvalidations2
    counts only events of device local account policy invalidations.
  </summary>
</histogram>

<histogram name="Enterprise.FCMInvalidationService.DevicePolicyRefresh3"
    enum="EnterprisePolicyRefresh" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing device policy when
    invalidations are received from a service. For each refresh, indicates
    whether the policy changed, and whether the policy was invalidated at the
    time of the refresh. Subset of &quot;Enterprise.DevicePolicyRefresh3&quot;.
    Gets recorded only when FCMInvalidationService is used as
    InvalidationService.

    As opposed to current histogram,
    Enterprise.FCMInvalidationService.DeviceLocalAccountPolicyRefresh3 counts
    only events of refreshing device local account policies.
  </summary>
</histogram>

<histogram name="Enterprise.FCMInvalidationService.PolicyInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting user policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service. Subset of
    &quot;Enterprise.PolicyInvalidations&quot;. Gets recorded only when
    FCMInvalidationService is used as InvalidationService.
  </summary>
</histogram>

<histogram
    name="Enterprise.FCMInvalidationService.PolicyInvalidationsRegistrationResult"
    enum="BooleanSuccess" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks the result of registration for policy invalidations. It will fail
    when duplicate invalidation names are used for different policies due to
    http://b/119860379. Subset of
    &quot;Enterprise.PolicyInvalidationsRegistrationResult&quot;. Gets recorded
    only when FCMInvalidationService is used as InvalidationService.
  </summary>
</histogram>

<histogram name="Enterprise.FCMInvalidationService.PolicyRefresh2"
    enum="EnterprisePolicyRefresh" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing user policy when invalidations
    are received from a service. For each refresh, indicates whether the policy
    changed, and whether the policy was invalidated at the time of the refresh.
    Subset of &quot;Enterprise.PolicyRefresh2&quot;. Gets recorded only when
    FCMInvalidationService is used as InvalidationService.
  </summary>
</histogram>

<histogram name="Enterprise.InvalidDevicePolicyFilesStatus"
    enum="InvalidDevicePolicyFilesStatus" expires_after="2024-02-04">
  <owner>emaxx@chromium.org</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>vsavu@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Chrome OS only. Result of checking if device policy files are valid when
    reading the device policy data.
  </summary>
</histogram>

<histogram name="Enterprise.LoginApiCleanup.{CleanupHandler}.Success"
    enum="BooleanSuccess" expires_after="2023-12-31">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>ChromeOS only. Records if cleanup handler succeeded.</summary>
  <token key="CleanupHandler" variants="CleanupHandler"/>
</histogram>

<histogram name="Enterprise.LoginApiCleanup.{CleanupHandler}.Timing" units="ms"
    expires_after="2023-12-31">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>
    ChromeOS only. Records the duration the cleanup handler took.
  </summary>
  <token key="CleanupHandler" variants="CleanupHandler"/>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.DMTokenDeletion"
    enum="BooleanSuccess" expires_after="2024-06-01">
  <owner>igorruvinov@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Records whether browser unenrollment via DMToken deletion completed
    succcessfully after attempting to delete the token.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.RequestFailureTime"
    units="ms" expires_after="2022-06-01">
  <owner>rogerta@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Time since the enrollment request was made until an error is returned from
    the server.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.RequestSuccessTime"
    units="ms" expires_after="2024-06-01">
  <owner>zmin@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Time since the enrollment request was made until a successful enrollment
    response is returned from the server.
  </summary>
</histogram>

<histogram name="Enterprise.MachineLevelUserCloudPolicyEnrollment.Result"
    enum="MachineLevelUserCloudPolicyEnrollmentResult"
    expires_after="2024-06-01">
  <owner>zmin@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>The result of machine level user cloud policy enrollment.</summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.StartupDialog"
    enum="MachineLevelUserCloudPolicyEnrollmentStartupDialog"
    expires_after="2024-06-01">
  <owner>zmin@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Records whether the machine level user cloud policy enrollment dialog is
    shown to the user and the action they took.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.StartupDialogTime"
    units="ms" expires_after="2024-06-01">
  <owner>zmin@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    The length of time the machine level user cloud policy enrollment dialog was
    visible to the user.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.UnenrollSuccess"
    enum="BooleanSuccess" expires_after="2024-06-01">
  <owner>zmin@chromium.org</owner>
  <owner>domfc@chromium.org</owner>
  <summary>
    Records whether a browser unenrollment was completed succcessfully by
    writing an invalid DMToken to storage or not.
  </summary>
</histogram>

<histogram name="Enterprise.ManagedScreensaver.Enabled" enum="BooleanEnabled"
    expires_after="2024-06-07">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>
    Records whether the managed screensaver is enabled. Recorded for managed
    devices when the sign-in screen is displayed, on every user login, and every
    time the ScreensaverLockScreenEnabled or DeviceScreensaverLoginScreenEnabled
    policy is updated.
  </summary>
</histogram>

<histogram name="Enterprise.ManagedScreensaver.EngagementTime.Slideshow"
    units="ms" expires_after="2024-06-07">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>
    Among users with managed screensaver enabled, records the length of each
    session for Slideshow. The metric is emitted when an ambient mode session
    ends.
  </summary>
</histogram>

<histogram name="Enterprise.ManagedScreensaver.ImageCount" units="count"
    expires_after="2024-06-07">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>
    Records the count of images downloaded in cache to display in the managed
    screensaver. Recorded every time the policy list changes and images are
    deleted from the cache or downloaded to the cache.
  </summary>
</histogram>

<histogram name="Enterprise.ManagedScreensaver.ImageDownloadResult"
    enum="ManagedScreensaverImageDownloadResult" expires_after="2024-06-09">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>
    Records the result after attempting to download an image for the managed
    screensaver. Emitted on every image download operation.
  </summary>
</histogram>

<histogram name="Enterprise.ManagedScreensaver.StartupTime.Slideshow"
    units="ms" expires_after="2024-06-07">
  <owner>mpetrisor@chromium.org</owner>
  <owner>imprivata-eng@google.com</owner>
  <summary>
    Records the amount of time it takes for the managed screensaver to start.
    This includes tasks such as getting the list of downloaded images, checking
    that the list has a minimal amount of images, decoding them, etc. Note this
    measurement does not include the lock screen inactivity timeout. The metric
    would be emitted when the first two images are loaded succcessfully.
  </summary>
</histogram>

<histogram name="Enterprise.OnBulkDataEntry.DataSize" units="bytes"
    expires_after="2024-03-17">
  <owner>domfc@chromium.org</owner>
  <owner>webprotect-team@google.com</owner>
  <summary>
    Records the size (in bytes) of data that might have been scanned by the
    OnBulkDataEntry Enterprise Connector. Is is logged once per user action that
    would trigger this Connector.
  </summary>
</histogram>

<histogram name="Enterprise.ONC.PolicyValidation" enum="BooleanSuccess"
    expires_after="M85">
  <owner>mnissler@chromium.org</owner>
  <summary>Result of the OpenNetworkConfiguration policy validation.</summary>
</histogram>

<histogram name="Enterprise.OnPrint.{ContentAnalysisType}.PrintType"
    enum="PrintScanningContext" expires_after="2024-07-12">
  <owner>domfc@chromium.org</owner>
  <owner>dpr-eng@google.com</owner>
  <summary>
    Records the type of printing the user attempted that triggered content
    analysis. Is is logged once per user action that would trigger this
    Connector.
  </summary>
  <token key="ContentAnalysisType" variants="ContentAnalysisType"/>
</histogram>

<histogram name="Enterprise.PlatformAuth.GetAuthData.Count" units="count"
    expires_after="2024-09-01">
  <owner>igorruvinov@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    The number of proof-of-possession cookies retrieved from the platform to
    authenticate the user to their IdP/STS. Recorded once per successful fetch.
  </summary>
</histogram>

<histogram name="Enterprise.PlatformAuth.GetAuthData.FailureHresult"
    enum="Hresult" expires_after="2024-09-01">
  <owner>igorruvinov@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    The HRESULT returned by either CoCreateInstance or GetCookieInfoForUri when
    trying to fetch proof-of-possession cookies from the platform to
    authenticate the user to their IdP/STS.
  </summary>
</histogram>

<histogram name="Enterprise.PlatformAuth.GetAuthData.{Result}Time" units="ms"
    expires_after="2024-09-01">
  <owner>igorruvinov@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    The elapsed time for a fetch of proof-of-possession cookies from the
    platform to authenticate the user to their IdP/STS to {Result}. Recorded
    once per fetch.
  </summary>
  <token key="Result">
    <variant name="Failure" summary="fail"/>
    <variant name="Success" summary="succeed"/>
  </token>
</histogram>

<histogram name="Enterprise.Policies" enum="EnterprisePolicies"
    expires_after="2024-02-05">
  <owner>vsavu@google.com</owner>
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    A set of enterprise policy rules that are in use. This is recorded every 24
    hours and at startup, if the last recording was earlier than a day before.
  </summary>
</histogram>

<histogram name="Enterprise.Policies.Sources" enum="EnterprisePoliciesSources"
    expires_after="2024-02-11">
  <owner>zmin@chromium.org</owner>
  <owner>igorruvinov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Record summary of sources of all policies. It's recorded ever 24 hours and
    at startup.

    This does not include user cloud policy and some speicial policy sources
    like enterprise_default.
  </summary>
</histogram>

<histogram name="Enterprise.Policies.{PolicyLevel}" enum="EnterprisePolicies"
    expires_after="2024-02-20">
  <owner>zmin@chromium.org</owner>
  <owner>qiutanw@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    A set of {PolicyLevel} enterprise policy rules that are in use. This is
    recorded for each {PolicyLevel} policy every 24 hours and at startup, if the
    last recording was earlier than a day before.
  </summary>
  <token key="PolicyLevel" variants="PolicyLevel"/>
</histogram>

<histogram name="Enterprise.PolicyInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting user policy invalidations received with and without
    payloads. Invalidations indicate that a policy has been updated and should
    be refreshed. Payloads provide context about the policy update, but may be
    absent if dropped by the invalidation service.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyInvalidationsRegistrationResult"
    enum="BooleanSuccess" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks the result of registration for policy invalidations. It will fail
    when duplicate invalidation names are used for different policies due to
    http://b/119860379.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyInvalidationsStartupTime" units="ms"
    expires_after="M77">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Time since startup of the cloud policy code until the policy invalidation
    service first reported its online status.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyLoadStatus" enum="EnterprisePolicyLoadStatus"
    expires_after="M82">
  <owner>mnissler@chromium.org</owner>
  <summary>
    Load status from the policy loaders which pull policy settings from the
    underlying platform, such as Windows Group Policy.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyRefresh2" enum="EnterprisePolicyRefresh"
    expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events measuring effectiveness of refreshing user policy when invalidations
    are received from a service. For each refresh, indicates whether the policy
    changed, and whether the policy was invalidated at the time of the refresh.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyUI.ButtonUsage.{ButtonType}" units="counts"
    expires_after="2024-07-01">
  <owner>zmin@chromium.org</owner>
  <owner>src/components/policy/OWNERS</owner>
  <summary>
    The total number of time {ButtonType} button has been clicked for each time
    chrome://policy page is opened. Recorded once the page is closed. Export To
    JSON button is not available on iOS.

    Note that we won't be able to collect the data if the page is not closed
    normally. For example, browser is crash or shutdown by OS which often
    happens on mobile platforms.
  </summary>
  <token key="ButtonType">
    <variant name="CopyToJson" summary="Copy To JSON"/>
    <variant name="ExportToJson" summary="Export To JSON"/>
    <variant name="ReloadPolicies" summary="Reload Policies"/>
    <variant name="Upload Report" summary="Upload Report"/>
  </token>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.Device" units="days"
    expires_after="2023-12-01">
  <owner>rbock@google.com</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Time since last device policy fetch. Emitted when policies are loaded.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.MachineLevelUser" units="days"
    expires_after="2024-03-03">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    Time since last machine level user policy fetch.. Emitted when policies are
    loaded.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.User" units="days"
    expires_after="2023-12-01">
  <owner>rbock@google.com</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Time since last user policy fetch. Emitted when policies are loaded.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyUserVerification"
    enum="EnterprisePolicyUserVerification" expires_after="2023-11-30">
  <owner>poromov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>Tracking the results of policy user verification.</summary>
</histogram>

<histogram name="Enterprise.ProfileIdentifier.Error"
    enum="EnterpriseProfileIdError" expires_after="2023-11-10">
  <owner>hmare@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded in the event of failures during the profile identifier generation
    action.
  </summary>
</histogram>

<histogram name="Enterprise.ProfileIdentifier.Status" enum="Boolean"
    expires_after="2024-01-14">
  <owner>hmare@google.com</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Records whether the profile identifier generation action was successful or
    not.
  </summary>
</histogram>

<histogram name="Enterprise.ProfileSeparation.DasherPolicyFetch.HttpResponse"
    enum="HttpResponseCode" expires_after="2024-07-01">
  <owner>ydago@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    The Http statuses returned by the server when trying to get the
    ManagedAccounsSigninRestriction policy value for individual dasher accounts.
    This is recorded after trying to the the policy value, when the status is
    available.
  </summary>
</histogram>

<histogram name="Enterprise.ProfileSeparation.DasherPolicyFetch.NetworkError"
    enum="NetErrorCodes" expires_after="2024-07-01">
  <owner>ydago@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    The network errors that happen when trying to get the
    ManagedAccounsSigninRestriction policy value for individual dasher accounts.
    This is recorded every time after trying to the the policy value.
  </summary>
</histogram>

<histogram name="Enterprise.PublicSession.SessionLength" units="minutes"
    expires_after="2024-09-03">
  <owner>bfranz@chromium.org</owner>
  <owner>chromeos-kiosk-eng@google.com</owner>
  <summary>
    A public session starts when a user signs in using the policy configured
    public account. It stops when the user signs out. Session length is the
    duration between the start and stop events. It is recorded during signing
    out and reported on the next chrome run. This metric tracks the recorded
    session length rounded down to the nearest 10-minute bucket and capped at 24
    hours.
  </summary>
</histogram>

<histogram name="Enterprise.RealtimeReportingSuccess"
    enum="EnterpriseDMServerRequestSuccess" expires_after="2020-07-01">
  <owner>rogerta@chromium.org</owner>
  <summary>
    Number of retries the client did to execute a real-time reporting upload
    request. It's recorded after the request has been completed, either
    successfully after 0 or more retries, with a failure (too many retries or
    non-retriable error) or with a server error.
  </summary>
</histogram>

<histogram name="Enterprise.RegularUserSession.SessionLength" units="minutes"
    expires_after="2024-03-17">
  <owner>bfranz@chromium.org</owner>
  <owner>chromeos-kiosk-eng@google.com</owner>
  <summary>
    A regular user session starts when a user signs in using his/her user
    account. It stops when the user signs out. Session length is the duration
    between the start and stop events. It is recorded during signing out and
    reported on the next chrome run. This metric tracks the recorded session
    length on an enrolled device rouned down to the nearest 10-minute bucket and
    capped at 24 hours.
  </summary>
</histogram>

<histogram name="Enterprise.RemoteCommandInvalidationsRegistrationResult"
    enum="BooleanSuccess" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks whether remote commands invalidator registered for corresponding
    invalidations. In case of success the invalidator is able to receive
    incoming invalidations.

    Metric is similar to Enterprise.PolicyInvalidationsRegistrationResult.
  </summary>
</histogram>

<histogram name="Enterprise.ReportingEventUploadFailure"
    enum="EnterpriseReportingEventType" expires_after="2024-06-01">
  <owner>xanth@google.com</owner>
  <owner>alshawwa@chromium.org</owner>
  <owner>domfc@chromium.org</owner>
  <summary>
    Failures to upload reporting events to the reporting server bucketed by
    event type.
  </summary>
</histogram>

<histogram name="Enterprise.ReportingEventUploadSuccess"
    enum="EnterpriseReportingEventType" expires_after="2024-06-01">
  <owner>xanth@google.com</owner>
  <owner>alshawwa@chromium.org</owner>
  <owner>domfc@chromium.org</owner>
  <summary>
    Reporting events successfully uploaded to the reporting server bucketed by
    event type.
  </summary>
</histogram>

<histogram
    name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.ResponseLatency"
    units="ms" expires_after="2023-10-04">
  <owner>rodmartin@google.com</owner>
  <owner>chromeos-commercial-identity@google.com</owner>
  <summary>
    Latency of a SecondaryGoogleAccountUsage policy fetch request. This measures
    the amount of time required to fetch the policy value of
    SecondaryGoogleAccountUsage from the Secure Connect API. This is recorded
    when a user account is added as a secondary account (in-session).
  </summary>
</histogram>

<histogram name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.Status"
    enum="SecondaryGoogleAccountUsagePolicyFetchStatus"
    expires_after="2024-02-04">
  <owner>rodmartin@google.com</owner>
  <owner>chromeos-commercial-identity@google.com</owner>
  <summary>
    Tracks the result of
    UserCloudSigninRestrictionPolicyFetcher::GetSecondaryGoogleAccountUsage.
    This is recorded when a user account is added as a secondary account
    (in-session).
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.DeviceIdentifierStatus"
    enum="DeviceIdentifierStatus" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Captures state of device identifiers during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.EmbargoDatePassed"
    enum="Boolean" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks whether embargo date has passed during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.Enabled" enum="Boolean"
    expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>Captures situations when state determination is enabled.</summary>
</histogram>

<histogram
    name="Enterprise.StateDetermination.KillSwitchFetch.NetworkErrorCode"
    enum="NetErrorCodes" expires_after="2024-05-10">
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Network error code for unified state determination kill switch config
    requests.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.KillSwitchFetch.NumTries"
    units="requests" expires_after="2024-05-10">
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Number of tries for fetching unified state determination kill switch config.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.OnFlex" enum="Boolean"
    expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Captures situations when state determination takes place on Flex devices.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.OwnershipStatus"
    enum="OwnershipStatus" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Captures ownership state of device during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.PsmReportedAvailableState"
    enum="Boolean" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks whether PSM has reported that state is available during state
    determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.StateKeysRetrieved"
    enum="Boolean" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks whether state keys were retrieved during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.StateReturned" enum="Boolean"
    expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks whether state request returned state during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.StepDuration.{Step}" units="ms"
    expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks the duration of the {Step} as part of state determination.
  </summary>
  <token key="Step" variants="StateDeterminationSteps"/>
</histogram>

<histogram name="Enterprise.StateDetermination.SystemClockSynchronized"
    enum="Boolean" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks whether system clock was synchronized during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.TotalDuration" units="ms"
    expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>Tracks the total duration of state determination.</summary>
</histogram>

<histogram name="Enterprise.StateDetermination.TotalDurationByState.{State}"
    units="ms" expires_after="2024-05-10">
  <owner>sergiyb@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Tracks the total duration of state determination when it results in {State}
    state.
  </summary>
  <token key="State" variants="AutoEnrollmentStates"/>
</histogram>

<histogram
    name="Enterprise.StateDetermination.{RequestType}Request.DmStatusCode"
    enum="EnterpriseDeviceManagementStatus" expires_after="2024-05-10">
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Device management server request status for {RequestType} requests to Device
    Management server.
  </summary>
  <token key="RequestType" variants="StateDeterminationDmRequestTypes"/>
</histogram>

<histogram
    name="Enterprise.StateDetermination.{RequestType}Request.NetworkErrorCode"
    enum="NetErrorCodes" expires_after="2024-05-10">
  <owner>sergiyb@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Network error code for {RequestType} requests to Device Management server.
  </summary>
  <token key="RequestType" variants="StateDeterminationDmRequestTypes"/>
</histogram>

<histogram name="Enterprise.SystemFeaturesDisableList" enum="SystemFeature"
    expires_after="2023-06-01">
  <owner>ayaelattar@chromium.org</owner>
  <owner>poromov@chromium.org</owner>
  <summary>
    Shows which system features are set to be disabled by
    SystemFeaturesDisableList policy. Recorded when the policy preference is
    updated with a new system feature. No-op updates aren't counted.
  </summary>
</histogram>

<histogram name="Enterprise.SystemSignals.Collection.WMI.{Signal}.ParsingError"
    enum="DeviceSignalsWmiParsingError" expires_after="2023-12-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the actual error whenever parsing of {Signal} from WMI results
    failed.
  </summary>
  <token key="Signal" variants="WmiSystemSignal"/>
</histogram>

<histogram name="Enterprise.SystemSignals.Collection.WMI.{Signal}.QueryError"
    enum="WmiQueryError" expires_after="2023-12-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the actual error whenever collection of {Signal} from WMI failed
    with a query error.
  </summary>
  <token key="Signal" variants="WmiSystemSignal"/>
</histogram>

<histogram
    name="Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError"
    enum="DeviceSignalsWscParsingError" expires_after="2023-12-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the actual error whenever parsing of AntiVirus info from WSC
    results failed.
  </summary>
</histogram>

<histogram name="Enterprise.SystemSignals.Collection.WSC.AntiVirus.QueryError"
    enum="DeviceSignalsWscQueryError" expires_after="2023-12-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the actual error whenever collection of AntiVirus info from WSC
    failed with a query error.
  </summary>
</histogram>

<histogram
    name="Enterprise.SystemSignals.Collection.{Signal}.ParsingError.Rate"
    units="%" expires_after="2023-12-01">
  <owner>seblalancette@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Captures the response parsing error rate whenever collecting {Signal}.
  </summary>
  <token key="Signal">
    <variant name="WMI.Hotfixes" summary="Hotfixes info from WMI"/>
    <variant name="WSC.AntiVirus" summary="AntiVirus info from WSC"/>
  </token>
</histogram>

<histogram name="Enterprise.TimeToFirstPolicyLoad.Profile.{ProfileType}"
    units="ms" expires_after="2023-07-01">
  <owner>emaxx@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    Duration of the initial policy load operation (including reading from cache
    or fetching over network, parsing and validating) during {ProfileType}
    session startup.
  </summary>
  <token key="ProfileType">
    <variant name="Child" summary="Child account (ChromeOS Ash only)"/>
    <variant name="Kiosk" summary="Kiosk (ChromeOS Ash only)"/>
    <variant name="Managed" summary="Managed user (non ChromeOS Ash only)"/>
    <variant name="Managed.Ephemeral"
        summary="Ephemeral managed user (ChromeOS Ash only)"/>
    <variant name="Managed.Existing"
        summary="Existing regular managed user (ChromeOS Ash only)"/>
    <variant name="Managed.NewPersistent"
        summary="Newly created regular managed user (ChromeOS Ash only)"/>
    <variant name="ManagedGuestSession"
        summary="Managed Guest Session (ChromeOS Ash only)"/>
    <variant name="Unmanaged" summary="Unmanaged user"/>
  </token>
</histogram>

<histogram name="Enterprise.TimeToUnthrottlePolicyInit" units="ms"
    expires_after="2024-01-14">
  <owner>emaxx@chromium.org</owner>
  <owner>pmarko@chromium.org</owner>
  <summary>
    Duration between when the construction of the policy stack for a user
    profile starts and when its initialization gets untrottled.

    Only reported on ChromeOS Ash, only for managed users who are primary users
    in the given session. The values are capped at around 5 seconds, and
    timeouts are reported as this upper boundary value as well.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicy.Count" units="policies"
    expires_after="2024-06-12">
  <owner>vincb@google.com</owner>
  <owner>ftirelo@chromium.org</owner>
  <summary>
    Records the number of user policies that are active when using a managed
    account.

    Recorded once during the profile's browsing session on the first policy
    update after signing in with a managed account.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.ChildUser.OAuthTokenError"
    enum="GoogleServiceAuthError" expires_after="2024-03-17">
  <owner>agawronska@chromium.org</owner>
  <owner>michaelpg@chromium.org</owner>
  <summary>Failure reason for OAuth token fetch for child user.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2Error"
    enum="GoogleServiceAuthError" expires_after="2023-12-01">
  <owner>igorcov@chromium.org</owner>
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Service error during OAuth2 access token fetch.

    There is a gap in data as the histogram was expired from 2022-03-01 till
    2023-02-09.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.ReregistrationResult"
    enum="EnterpriseUserPolicyChromeOSReregistrationResult"
    expires_after="2023-12-01">
  <owner>hendrich@chromium.org</owner>
  <owner>rbock@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <owner>managed-devices@google.com</owner>
  <summary>Re-registration results after failed policy fetch.</summary>
</histogram>

<histogram
    name="Enterprise.UserRemoteCommand.Executed{Enterprise_RemoteCommandType}"
    enum="RemoteCommandExecutionStatus" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting status of executed user remote commands. The metric
    includes only signed user remote commands. Reports a final status of
    finished remote command (e.g. success, failure or termination).
    {Enterprise_RemoteCommandType}
  </summary>
  <token key="Enterprise_RemoteCommandType"
      variants="Enterprise_RemoteCommandType">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Enterprise.UserRemoteCommand.Received"
    enum="RemoteCommandReceivedStatus" expires_after="2024-02-04">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting received user remote commands. The metric includes
    signed user remote commands, both valid and invalid. Valid remote command is
    counted by its type. Invalid remote command is counted by a reason why it is
    considered invalid (e.g. unknown type or duplication).
  </summary>
</histogram>

<histogram name="Enterprise.UserRemoteCommandInvalidations"
    enum="EnterprisePolicyInvalidations" expires_after="2023-12-01">
  <owner>asumaneev@google.com</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    Events for counting user remote commands invalidations received with and
    without payloads. Invalidations indicate that there is a remote command to
    execute. Payloads provide context about the remote commands update, but may
    be absent if dropped by the invalidation service.

    Metric is similar to Enterprise.PolicyInvalidations.
  </summary>
</histogram>

<histogram name="Enterprise.UserSession.Logins"
    enum="EnterpriseUserSessionLogins" expires_after="2024-01-14">
  <owner>xiyuan@chromium.org</owner>
  <owner>sduraisamy@chromium.org</owner>
  <summary>Tracks the sign-in events on an enrolled device.</summary>
</histogram>

<histogram name="Enterprise.VerifiedAccess.SAML.DeviceTrustMatchesEndpoints"
    enum="Boolean" expires_after="2023-11-12">
  <owner>lmasopust@google.com</owner>
  <owner>rodmartin@chromium.org</owner>
  <owner>cbe-device-trust-eng@google.com</owner>
  <summary>
    Recorded when building a response for a challenge from Verified Access
    server for remote attestation during SAML authentication. This captures if
    Device Trust is configured alongside Verified Access for the current
    endpoint or not.
  </summary>
</histogram>

<histogram name="Enterprise.VPDCacheReadResult" enum="VPDCacheReadResult"
    expires_after="2024-02-04">
  <owner>vsavu@google.com</owner>
  <owner>igorcov@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>The result of Chrome reading the VPD cache on Chrome OS.</summary>
</histogram>

<histogram name="Enterprise.VpdCheck" units="units" expires_after="2023-12-01">
  <owner>igorcov@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    The status code (exit code or signal) from sanity check of RW_VPD read and
    matching the contents with data from dump_vpd_log (Chrome OS).

    There is a gap in data as the histogram was expired from 2020-07-05 till
    2023-02-09.
  </summary>
</histogram>

<histogram name="Enterprise.VpdUpdateStatus" units="units"
    expires_after="2024-02-05">
  <owner>igorcov@chromium.org</owner>
  <owner>tnagel@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    The status code (exit code or signal) from VPD update operation (Chrome OS).
  </summary>
</histogram>

<histogram name="EnterpriseCheck.AzureADJoinStatusCheckTime" units="ms"
    expires_after="2024-03-01">
  <owner>igorruvinov@chromium.org</owner>
  <owner>ydago@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Time elapsed for checking the Azure AD join status. This is only recorded
    once during the first successful join status check.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InDomain" enum="BooleanEnabled"
    expires_after="2024-03-01">
  <owner>ydago@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Whether the machine is part of an AD domain. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InvalidJsonPolicies" enum="EnterprisePolicies"
    expires_after="2024-02-04">
  <owner>olsen@chromium.org</owner>
  <owner>chromeos-commercial-remote-management@google.com</owner>
  <summary>
    A set of policy rules that failed validation due to unparsable JSON, or JSON
    that did not match the schema. This validation happens on start-up and when
    the policy has changed.

    The histogram was expired (not recording data) from 2020-06-18 until
    2021-03-15 and from 2021-07-01 to 2022-10-23.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InvalidPolicies" enum="EnterprisePolicies"
    expires_after="2024-02-25">
  <owner>pastarmovj@chromium.org</owner>
  <owner>ydago@chromium.org</owner>
  <summary>
    A set of policy rules that were ignored due to integrity violations while
    parsing the policy data which happens on start-up and when the policy has
    changed.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InvalidPoliciesDetected"
    units="disabled policies" expires_after="2024-02-04">
  <owner>pastarmovj@chromium.org</owner>
  <owner>zmin@chomium.org</owner>
  <summary>
    The number of disabled policy entries on Windows due to integrity violations
    while parsing the policy data which happens on start-up and when the policy
    has changed.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsDomainJoined" enum="BooleanEnabled"
    expires_after="2024-02-04">
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Whether the machine is joined to an AD domain. This check is performed once
    at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsEnterpriseUser" enum="BooleanEnabled"
    expires_after="2024-02-04">
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Whether the machine is considered an enterprise user. An enterprise user is
    either in a domain, either local or cloud via AAD. This check is performed
    once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsFullyManaged2" enum="IsFullyManagedBoolean"
    expires_after="2024-03-17">
  <owner>twellington@google.com</owner>
  <owner>tedchcoc@chromium.org</owner>
  <summary>
    On Android (OS version Lollipop+): Whether the device has a &quot;device
    owner&quot; app installed. This check is performed once on application
    start-up.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsJoinedToAzureAD" enum="BooleanEnabled"
    expires_after="2023-12-01">
  <owner>igorruvinov@chromium.org</owner>
  <owner>ydago@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Whether the machine is joined to an Azure AD domain or the user has added
    one or more work/school accounts to their login session. This check is
    performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsLocalMachine" enum="Boolean"
    expires_after="2024-10-01">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Whether the full machine name is the same as the short one, identifying a
    local machine. This check is performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsLocalUser" enum="Boolean"
    expires_after="2024-10-01">
  <owner>zmin@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <summary>
    Whether the currently logged in user is a local user or not, based on its
    SAM compatible user name and machine name. This check is performed once at
    start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsManaged2" enum="BooleanEnabled"
    expires_after="2024-02-04">
  <owner>zmin@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    On Windows: Whether the machine is managed via MDM. On macOS: Whether Chrome
    found a file of managed policies to follow. On Android (OS version
    Lollipop+): Whether the device has a profile owner app. This check is
    performed once on application start-up.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.IsManagedOrEnterpriseDevice"
    enum="BooleanEnabled" expires_after="2024-02-04">
  <owner>pastarmovj@chromium.org</owner>
  <owner>rogerta@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Whether the machine is managed or part of an enterprise. This includes
    devices that are either in a domain or managed via MDM. This check is
    performed once at start-up on Windows.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.Mac.IsCurrentUserDomainUser" enum="Boolean"
    expires_after="2023-12-31">
  <owner>pastarmovj@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    On the Mac: Whether the current user has an enterprise identity in Open
    Directory. This check is performed once at start-up.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.Mac.IsDeviceDomainJoined" enum="Boolean"
    expires_after="2023-12-31">
  <owner>pastarmovj@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    On the Mac: Whether the machine is joined to a domain. This check is
    performed once at start-up.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.Mac.IsDeviceMDMEnrolledNew"
    enum="EnterpriseMacMDMStatusNew" expires_after="2023-12-31">
  <owner>pastarmovj@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    On the Mac: Whether the machine is managed via MDM, with data obtained via a
    new method (profiles) that is only available in 10.13.4 or later. This check
    is performed once at start-up.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.Mac.IsDeviceMDMEnrolledOld"
    enum="EnterpriseMacMDMStatusOld" expires_after="2023-12-31">
  <owner>pastarmovj@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    On the Mac: Whether the machine is managed via MDM, with data obtained via
    an old method (system_profiler). This check is performed once at start-up.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.OSType" enum="OsSuite"
    expires_after="2024-03-10">
  <owner>ydago@chromium.org</owner>
  <owner>pastarmovj@chromium.org</owner>
  <summary>
    The rough Windows suite we are running on. This check is performed once at
    start-up on Windows. The histogram was removed in 108 and reinstated in 111.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
