chromium/tools/metrics/histograms/metadata/enterprise/histograms.xml

<!--
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
[email protected].
-->

<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"/>
  <variant name="StateKeysRetrievalError" summary="State keys retrieval error"/>
</variants>

<variants name="CertificateProvisioningOutcome">
  <variant name="Failure" summary="failed"/>
  <variant name="Success" summary="successful"/>
</variants>

<variants name="CertificateProvisioningScenario">
  <variant name="CertificateCreation" summary="certificate creation"/>
  <variant name="CertificateRenewal" summary="certificate renewal"/>
  <variant name="PublicKeySync" summary="private key sync"/>
  <variant name="Unknown" summary="unknown"/>
</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="PinnedApps" summary="Handler for pinned apps"/>
  <variant name="PrintJobs" summary="Handler for print jobs"/>
  <variant name="WebApp" summary="Handler for web apps"/>
</variants>

<variants name="ClientCertificateUploadScenario">
  <variant name="CreateCertificate" summary="certificate creation"/>
  <variant name="PublicKeySync" summary="public key sync"/>
</variants>

<variants name="ContentAnalysisProtocol">
  <variant name="Multipart"
      summary="Content analysis of user action is done with the Multipart
               protocol."/>
  <variant name="Resumable"
      summary="Content analysis of user action is done with the Resumable
               protocol."/>
</variants>

<variants name="ContentAnalysisRequestType">
  <variant name="File"
      summary="Content analysis of uploaded or downloaded files."/>
  <variant name="Print" summary="Content analysis of printed pages."/>
  <variant name="Text" summary="Content analysis of pasted text."/>
</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 organization."/>
  <variant name="AutoLaunchedKioskSession"
      summary="The local session is auto launched kiosk."/>
  <variant name="GuestSession"
      summary="The local guest session is not managed by an organization."/>
  <variant name="ManagedGuestSession"
      summary="The local guest session is managed by an organization."/>
  <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 organization."/>
  <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="IdentityType">
  <variant name="Dasher-based" summary="google-backed 3P identity"/>
  <variant name="Dasherless" summary="non-google-backed 3P identity"/>
</variants>

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

<variants name="ResumableRequestCheckType">
  <variant name="Content" summary="Content upload step of a Resumable request"/>
  <variant name="Metadata"
      summary="Metadata upload step of a Resumable request."/>
</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="StateKeysRetrieval" summary="state keys 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="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when user enters their account on license packged device during
    enrollment process.
  </summary>
</histogram>

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

  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count the number of timeouts and successes for AutoEnrollmentController.
  </summary>
</histogram>

<histogram
    name="Enterprise.AutoEnrollmentHashDanceSuccessTime{EnterpriseAutoEnrollmentType}"
    units="ms" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.ClientCertificate.Profile.CreateCertificate.Success.HasCert"
    enum="BooleanSuccess" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures whether the HTTP response body for the Profile certificate creation
    request had a certificate or not.
  </summary>
</histogram>

<histogram name="Enterprise.ClientCertificate.Profile.CreatePrivateKey.Source"
    enum="CertificatePrivateKeySource" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures the source of a private key creation after it was created (e.g.
    TPM-backed or not) as part of the client certificate provisioning flow for a
    Profile.
  </summary>
</histogram>

<histogram name="Enterprise.ClientCertificate.Profile.Provisioning.Error"
    enum="CertificateProvisioningError" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures a terminal error that occured when trying to provision a client
    certificate for a Profile.
  </summary>
</histogram>

<histogram name="Enterprise.ClientCertificate.Profile.Provisioning.Store.Error"
    enum="CertificateStoreError" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures a terminal store error that occured when trying to provision a
    client certificate for a Profile.
  </summary>
</histogram>

<histogram
    name="Enterprise.ClientCertificate.Profile.Provisioning.{ProvisioningScenario}.Outcome"
    enum="BooleanSuccess" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures whether the {ProvisioningScenario} provisioning scenario was
    successful or not.
  </summary>
  <token key="ProvisioningScenario" variants="CertificateProvisioningScenario"/>
</histogram>

<histogram
    name="Enterprise.ClientCertificate.Profile.Provisioning.{ProvisioningScenario}.{ProvisioningOutcome}.Latency"
    units="ms" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures how long a {ProvisioningOutcome} {ProvisioningScenario}
    provisioning scenario took.
  </summary>
  <token key="ProvisioningScenario" variants="CertificateProvisioningScenario"/>
  <token key="ProvisioningOutcome" variants="CertificateProvisioningOutcome"/>
</histogram>

<histogram
    name="Enterprise.ClientCertificate.Profile.{UploadScenario}.ClientError"
    enum="CertificateUploadClientError" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures a client error that occured when trying to upload a Profile's
    public key for {UploadScenario}.
  </summary>
  <token key="UploadScenario" variants="ClientCertificateUploadScenario"/>
</histogram>

<histogram
    name="Enterprise.ClientCertificate.Profile.{UploadScenario}.UploadCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-04-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures the HTTP response code for the upload of a Profile's public key for
    {UploadScenario}.
  </summary>
  <token key="UploadScenario" variants="ClientCertificateUploadScenario"/>
</histogram>

<histogram name="Enterprise.CloudExtensionRequestUpdated"
    enum="EnterpriseCloudExtensionRequestListUpdate" expires_after="2024-10-01">
  <owner>[email protected]</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.CloudManagement.PolicyFetchingTime" units="ms"
    expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time for fetching cloud policies, measured from the moment the
    request object is created until the client receives the policy payload.
  </summary>
</histogram>

<histogram name="Enterprise.CloudManagementEnrollmentTokenLocation.Mac"
    enum="EnterpriseCloudManagementEnrollmentTokenLocationMac"
    expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the enrollment token location when the token is loaded.
  </summary>
</histogram>

<histogram name="Enterprise.CloudReportingBasicRequestSize" units="KB"
    expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</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.CloudUserAffiliationStatus"
    enum="EnterpriseCloudUserAffiliationStatus" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The cloud user affiliation status. Recorded once at the end of each policy
    fetch process where a cloud-managed user is involved.
  </summary>
</histogram>

<histogram name="Enterprise.DataProtection.NavigationFinished.URLVerdictSource"
    enum="DataProtectionURLVerdictSource" expires_after="2025-03-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records where the realtime url lookup verdict is read from in the data
    protection navigation observer. It is logged once per navigation.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceLocalAccountCount" units="accounts"
    expires_after="M130">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Logs the number of device local accounts on the device.</summary>
</histogram>

<histogram name="Enterprise.DeviceLocalAccountPolicyInvalidations2"
    enum="EnterprisePolicyInvalidations" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.DevicePolicyDeviceIdValidity2.{EnrollmentType}"
    enum="EnterprisePolicyDeviceIdValidity" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On ChromeOS, the result of the device ID validation in the device policy
    blob compared to the device ID from install attributes. Emitted every time
    the device policy was loaded or stored successfully after additional check
    for the presence of DM Token is done. This allows to filter out the cases of
    enrollment recovery.
  </summary>
  <token key="EnrollmentType">
    <variant name="NewEnrollmentDemo"/>
    <variant name="NewEnrollmentEnterprise"/>
    <variant name="OldEnrollmentDemo"/>
    <variant name="OldEnrollmentEnterprise"/>
  </token>
</histogram>

<histogram name="Enterprise.DevicePolicyInvalidations2"
    enum="EnterprisePolicyInvalidations" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.Result"
    enum="EnterpriseCrdSessionResultCode" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Reports success/failure when a session is attempted.</summary>
</histogram>

<histogram
    name="Enterprise.DeviceRemoteCommand.Crd.{Enterprise_CrdSessionType}.{Enterprise_UserSessionType}.Result"
    enum="EnterpriseCrdSessionResultCode" expires_after="2025-08-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-08-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures an error that occurred while trying to get signals from the
    CrowdStrike agent.
  </summary>
</histogram>

<histogram
    name="Enterprise.DeviceSignals.Collection.Failure.{Signal}.{ErrorType}Error"
    enum="DeviceSignalsSignalCollectionError" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PublicKeyUpload.URLLoaderNetError"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-04-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Net error recorded when a public key upload request failed to leave the
    client.
  </summary>
</histogram>

<histogram name="Enterprise.DeviceTrust.RotateSigningKey.Tries" units="tries"
    expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when capture mode initialization was blocked by Data Leak
    Prevention.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.CaptureModeInitWarned" enum="BooleanWarned"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record whether the kernel supports fanotify mark filesystem.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FanotifyMarkFilesystemSupport" enum="Boolean"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Record whether the kernel supports fanotify delete events.</summary>
</histogram>

<histogram name="Enterprise.Dlp.FileActionBlocked2"
    enum="EnterpriseDlpPolicyFileAction" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.FilesDefaultFileAccess"
    enum="EnterpriseDlpFileAccessDefaultAction" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record if we were not able to pin a source URL to a file open request and
    have to fallback on the default behaviour.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FilesUnknownAccessLevel"
    units="EnterpriseDlpPolicyLevel" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the resolved Data Leak Prevention file access level every time an
    unknown unauthorized access is being resolved over IsDlpPolicyMatched.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.FilesWarnedCount" units="entries"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Result of Data Leak Prevention evaluation for printing.</summary>
</histogram>

<histogram name="Enterprise.Dlp.PrintingWarned" enum="BooleanWarned"
    expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when privacy screen was enforced by Data Leak Prevention.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedBlockLevelRestriction"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Result of enqueueing Data Leak Prevention event to the reporting queue.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ReportedReportLevelRestriction"
    enum="EnterpriseDlpPolicyRestriction" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Result of Data Leak Prevention evaluation for a screen share.
  </summary>
</histogram>

<histogram name="Enterprise.Dlp.ScreenSharePausedOrResumed" enum="Boolean"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when video capture was interrupted by Data Leak Prevention.
  </summary>
</histogram>

<histogram
    name="Enterprise.DMServerCloudPolicyRequestStatus{EnterpriseDMServerCloudPolicyRequest}"
    enum="EnterpriseDeviceManagementStatus" expires_after="2025-06-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the returned status of fetching cloud policies from the dmserver.

    Recorded when receiving the response from the dmserver upon request
    completion with policy type {EnterpriseDMServerCloudPolicyRequest}.
  </summary>
  <token key="EnterpriseDMServerCloudPolicyRequest">
    <variant name=""/>
    <variant name=".ChromeDevicePolicy" summary="Chrome device policy"/>
    <variant name=".MachineLevelUserCloudPolicy"
        summary="Machine level policy"/>
    <variant name=".UserPolicy" summary="User policy"/>
  </token>
</histogram>

<histogram name="Enterprise.DMServerRequestSuccess{EnterpriseDMServerRequest}"
    enum="EnterpriseDMServerRequestSuccess" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".ApiAuthCodeFetch" summary="Api Auth Code Fetch.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".AttributeUpdate" summary="Attribute Update.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".AttributeUpdatePermission"
        summary="Attribute Update Permission.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".AutoEnrollment" summary="Auto Enrollment.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".BrowserUploadPublicKey"
        summary="Upload browser public key.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".CertBasedRegistration" summary="Cert Based Registration.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".CertProvisioningRequest"
        summary="Client Certificate Provisioning Request.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".CheckUserAccount" summary="Check User Account.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".ChromeDesktopReport" summary="Chrome Desktop Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".ChromeOsUserReport" summary="ChromeOs User Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".ChromeProfileReport" summary="Chrome Profile Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".DeviceStateRetrieval" summary="Device State Retrieval.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".GcmIdUpdate" summary="Gcm Id Update.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".InitialEnrollmentStateRetrieval"
        summary="Initial Enrollment State Retrieval.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".Invalid" summary="Invalid.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".OidcRegistration"
        summary="Registration with OIDC response.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".PolicyFetch" summary="Policy Fetch.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".PSMDeviceStateRequest" summary="PSM Device State Request.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".PublicSamlUserRequest" summary="Public SAML User Request.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".Registration" summary="Registration.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".RemoteCommands" summary="Remote Commands.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".TokenEnrollment" summary="Token Enrollment.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".Unregistration" summary="Unregistration.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadAppInstallReport"
        summary="Upload App Install Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadCertificate" summary="Upload Certificate.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadEncryptedReport" summary="Upload Encrypted Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadEuiccInfo" summary="Upload EUICC Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadPolicyValidationReport"
        summary="Upload Policy Validation Report.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadrealtimeReport"
        summary="Upload of real-time reports.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
    <variant name=".UploadStatus" summary="Upload Status.">
      <owner>[email protected]</owner>
      <owner>[email protected]</owner>
    </variant>
  </token>
</histogram>

<histogram name="Enterprise.EnrolledDevicePolicyPresent" enum="Boolean"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Events related to device enrollment on new installs of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentAttestationBased"
    enum="EnterpriseEnrollmentType" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Events related to forced re-enrollment (FRE) of Chrome OS devices.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentForcedAttestationBased"
    enum="EnterpriseEnrollmentType" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment was cancelled.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Failure" units="ms"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment failed.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTime.Success" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from *after* GAIA login until enrollment succeeded.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTokenBased"
    enum="EnterpriseEnrollmentType" expires_after="2025-04-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Events related to token-based enrollment on ChromeOS devices. As of writing
    only Flex devices use token-based enrollment, to perform Flex Auto
    Enrollment.

    Events are recorded in response to a successful or failed enrollment.
  </summary>
</histogram>

<histogram name="Enterprise.EnrollmentTokenBasedManualFallback"
    enum="EnterpriseEnrollmentType" expires_after="2025-04-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Events related to manual fallback from token-based enrollment on ChromeOS
    devices. As of writing only Flex devices use token-based enrollment, to
    perform Flex Auto Enrollment.

    Events are recorded in response to a successful or failed enrollment.
  </summary>
</histogram>

<histogram name="Enterprise.IdleTimeoutPolicies.ActionTime.{ActionType}"
    units="ms" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The time taken to run {ActionType} on idle timeout.</summary>
  <token key="ActionType">
    <variant name="AllActions" summary="All Actions"/>
    <variant name="ClearBrowsingData" summary="Clear Browsing Data Action(s)"/>
    <variant name="SignOut" summary="Signout Action"/>
  </token>
</histogram>

<histogram name="Enterprise.IdleTimeoutPolicies.IdleTimeoutCase"
    enum="IdleTimeoutCase" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    On mobile: whether idle timeout happened while the app was already
    foregrounded or backgrounded. The metric is recorded when idle timeout is
    detected while the app is foreground and when idle timeout is detected on
    reforeground or start-up.
  </summary>
</histogram>

<histogram name="Enterprise.IdleTimeoutPolicies.IdleTimeoutDialogEvent"
    enum="IdleTimeoutDialogEvent" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks events related to the timeout dialog shown to the user for 30 seconds
    before idle timeout actions run. The user either responds by clicking the
    button in the dialog indicating activity or the dialog expires and actions
    run.
  </summary>
</histogram>

<histogram name="Enterprise.IdleTimeoutPolicies.IdleTimeoutLaunchScreenEvent"
    enum="IdleTimeoutLaunchScreenEvent" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks events related to the launch screen shown on mobile when idle timeout
    actions run on app foreground. The launch screen can be dismissed after
    actions complete or after it has reached its expiry deadline.
  </summary>
</histogram>

<histogram name="Enterprise.IdleTimeoutPolicies.Success.{ActionType}"
    enum="BooleanSuccess" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the {ActionType} ran successfully or not. The metric is recorded as
    true if the action runs successfully and false if the action fails.
  </summary>
  <token key="ActionType">
    <variant name="AllActions" summary="All Actions"/>
    <variant name="ClearBrowsingData" summary="Clear Browsing Data Action(s)"/>
    <variant name="CloseBrowsers" summary="Close Browsers Action"/>
    <variant name="CloseTabs" summary="Close Tabs Action"/>
    <variant name="ReloadPages" summary="Reload Pages Action"/>
    <variant name="ShowProfilePicker" summary="Show Profile Picker Action"/>
    <variant name="SignOut" summary="Signout Action"/>
  </token>
</histogram>

<histogram name="Enterprise.InstallAttributes.ValidOnEnrolledDevice"
    enum="Boolean" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the install attributes are valid on the enrolled device. Device is
    determined to be enrolled based on the device policy. The check is performed
    at device boot.
  </summary>
</histogram>

<histogram name="Enterprise.InvalidDevicePolicyFilesStatus"
    enum="InvalidDevicePolicyFilesStatus" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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.KeySignatureVerification"
    enum="EnterpriseKeySignatureVerification" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Result of key signature verification from the policy data.</summary>
</histogram>

<histogram name="Enterprise.LoginApiCleanup.{CleanupHandler}.Success"
    enum="BooleanSuccess" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether browser unenrollment via DMToken deletion completed
    successfully after attempting to delete the token.
  </summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.RequestSuccessTime"
    units="ms" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The result of machine level user cloud policy enrollment.</summary>
</histogram>

<histogram
    name="Enterprise.MachineLevelUserCloudPolicyEnrollment.StartupDialog"
    enum="MachineLevelUserCloudPolicyEnrollmentStartupDialog"
    expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether a browser unenrollment was completed successfully by writing
    an invalid DMToken to storage or not.
  </summary>
</histogram>

<histogram name="Enterprise.ManagedScreensaver.Enabled" enum="BooleanEnabled"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-06-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</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 successfully.
  </summary>
</histogram>

<histogram name="Enterprise.OidcEnrollment.Interception.Funnel"
    enum="OidcInterceptionFunnelStep" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the occurrance of each crucial step of the OIDC enrollment flow
    before profile registration.
  </summary>
</histogram>

<histogram name="Enterprise.OidcEnrollment.Interception.Result"
    enum="OidcInterceptionResult" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the results of OIDC enrollment flow when it finishes before profile
    registration.
  </summary>
</histogram>

<histogram
    name="Enterprise.OidcEnrollment.ProfileCreation.Funnel.{IdentityType}"
    enum="OidcProfileCreationFunnelStep" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the occurrance of each crucial step of the OIDC enrollment flow with
    a {IdentityType} 3P identity after profile registration.
  </summary>
  <token key="IdentityType" variants="IdentityType"/>
</histogram>

<histogram
    name="Enterprise.OidcEnrollment.ProfileCreation.Result.{IdentityType}"
    enum="OidcProfileCreationResult" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the results of OIDC enrollment flow with a {IdentityType} 3P identity
    when it finishes after profile registration.
  </summary>
  <token key="IdentityType" variants="IdentityType"/>
</histogram>

<histogram
    name="Enterprise.OidcEnrollment.{IdentityType}.PolicyFetchLatency.{Result}"
    units="ms" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Latency of a {Result} policy fetch operation for an OIDC profile with
    {IdentityType} 3P identity during enrollment, recorded when the fetch
    response is received.
  </summary>
  <token key="Result">
    <variant name="Failure" summary="failed"/>
    <variant name="Success" summary="successful"/>
  </token>
  <token key="IdentityType" variants="IdentityType"/>
</histogram>

<histogram
    name="Enterprise.OidcEnrollment.{IdentityType}.RegistrationLatency.{Result}"
    units="ms" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Latency of a {IdentityType} OIDC profile registration operation when OIDC
    profiles are first getting created. Failed attempts will always be
    classified as undecided since we won't know whether it's dasher-based.
    Recorded when the registration response is received.
  </summary>
  <token key="Result">
    <variant name="Failure" summary="failed"/>
    <variant name="Success" summary="successful"/>
  </token>
  <token key="IdentityType">
    <variant name="" summary="undecided if 3P identity is google-backed"/>
    <variant name="Dasher-based" summary="google-backed 3P identity"/>
    <variant name="Dasherless" summary="non-google-backed 3P identity"/>
  </token>
</histogram>

<histogram name="Enterprise.OnBulkDataEntry.DataSize" units="bytes"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the size (in bytes) of data that might have been scanned by the
    OnBulkDataEntry Enterprise Connector. It is logged once per user action that
    would trigger this Connector.
  </summary>
</histogram>

<histogram name="Enterprise.OnPrint.{ContentAnalysisType}.PrintType"
    enum="PrintScanningContext" expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the type of printing the user attempted that triggered content
    analysis. It 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="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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 special policy sources like
    enterprise_default.
  </summary>
</histogram>

<histogram name="Enterprise.Policies.{PolicyLevel}" enum="EnterprisePolicies"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PolicyLoadStatus" enum="EnterprisePolicyLoadStatus"
    expires_after="M82">
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.PolicyServiceInitTime{Scope}{PolicyCountSuffix}"
    units="ms" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time required for full initialization of the PolicyService,
    measured from the moment the object is created until policies are ready.

    {Scope}

    {PolicyCountSuffix}
  </summary>
  <token key="Scope">
    <variant name=".Machine"
        summary="Recorded for the top-level PolicyService (either browser or
                 device) on startup."/>
    <variant name=".User"
        summary="Recorded for profile-level PolicyService objects, each time
                 a profile is created."/>
  </token>
  <token key="PolicyCountSuffix">
    <variant name=""
        summary="Recorded regardless of the number of policies it contains."/>
    <variant name=".With_1_to_50_Policies"
        summary="Recorded only for PolicyService objects that with 1-50
                 policies."/>
    <variant name=".With_51_to_100_Policies"
        summary="Recorded only for PolicyService objects that with 51-100
                 policies."/>
    <variant name=".With_101_Plus_Policies"
        summary="Recorded only for PolicyService objects that with 101+
                 policies."/>
    <variant name=".WithoutPolicies"
        summary="Recorded only for PolicyService objects that without any
                 policy."/>
    <variant name=".WithPolicies"
        summary="Recorded only for PolicyService objects that with at least
                 one policy."/>
  </token>
</histogram>

<histogram name="Enterprise.PolicyUI.ButtonUsage.{ButtonType}" units="counts"
    expires_after="2025-01-05">
  <owner>[email protected]</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="UploadReport" summary="Upload Report"/>
  </token>
</histogram>

<histogram name="Enterprise.PolicyUpdatePeriod.Device" units="days"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time since last user policy fetch. Emitted when policies are loaded.
  </summary>
</histogram>

<histogram name="Enterprise.PolicyUserVerification"
    enum="EnterprisePolicyUserVerification" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Tracking the results of policy user verification.</summary>
</histogram>

<histogram name="Enterprise.ProfileAffiliation.IsAffiliated" enum="Boolean"
    expires_after="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the current profile is affiliated. Recorded for each active profile
    every 7 days and upon profile policy service initialization.
  </summary>
</histogram>

<histogram name="Enterprise.ProfileAffiliation.UnaffiliatedReason"
    enum="EnterpriseProfileUnaffiliatedReason" expires_after="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason why the current profile is not affiliated. Recorded for each
    unaffiliated active profile every 7 days and upon profile policy service
    initialization.
  </summary>
</histogram>

<histogram name="Enterprise.ProfileIdentifier.Error"
    enum="EnterpriseProfileIdError" expires_after="2024-11-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</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-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The Http statuses returned by the server when trying to get the
    ManagedAccountsSigninRestriction 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="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The network errors that happen when trying to get the
    ManagedAccountsSigninRestriction 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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.RegularUserSession.SessionLength" units="minutes"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    A regular user session starts when a user signs in using their 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 rounded down to the nearest 10-minute bucket and capped at
    24 hours.
  </summary>
</histogram>

<histogram name="Enterprise.ReportingEventUploadFailure"
    enum="EnterpriseReportingEventType" expires_after="2024-06-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Reporting events successfully uploaded to the reporting server bucketed by
    event type.
  </summary>
</histogram>

<histogram
    name="Enterprise.ResumableRequest.{ResumableRequestCheckType}Check.{ContentAnalysisRequestType}.Duration"
    units="ms" expires_after="2025-03-21">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the duration of a {ResumableRequestCheckType} check part of a
    broader {ContentAnalysisRequestType} Resumable request. It is logged once
    per user action that would trigger this Connector.
  </summary>
  <token key="ContentAnalysisRequestType"
      variants="ContentAnalysisRequestType"/>
  <token key="ResumableRequestCheckType" variants="ResumableRequestCheckType"/>
</histogram>

<histogram name="Enterprise.SafeSites.Latency" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The latency of the request to the SafeSites API to classify URLs for users
    with the SafeSitesFilterBehavior policy. This is measured once per
    classified URL that requires a network request (URLs returned from the cache
    are not recorded).
  </summary>
</histogram>

<histogram
    name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.ResponseLatency"
    units="ms" expires_after="2024-12-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</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).

    Warning: this histogram was expired from 2023-10-04 to 2023-12-11; data may
    be missing.
  </summary>
</histogram>

<histogram name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.Status"
    enum="SecondaryGoogleAccountUsagePolicyFetchStatus"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures state of device identifiers during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.EmbargoDatePassed"
    enum="Boolean" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks whether embargo date has passed during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.Enabled" enum="Boolean"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Captures situations when state determination is enabled.</summary>
</histogram>

<histogram name="Enterprise.StateDetermination.IsInitialByState.{State}"
    enum="Boolean" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks whether state {State} returned by the server was initial (true), i.e.
    device is not enrolled into any domain because it is brand new or has been
    deprovisioned, or secondary (false), i.e. device is already managed and
    needs to retrieve its state because it has been powerwashed.
  </summary>
  <token key="State" variants="AutoEnrollmentStates"/>
</histogram>

<histogram
    name="Enterprise.StateDetermination.KillSwitchFetch.NetworkErrorCode"
    enum="NetErrorCodes" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of tries for fetching unified state determination kill switch config.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.OnFlex" enum="Boolean"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures situations when state determination takes place on Flex devices.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.OwnershipStatus"
    enum="OwnershipStatus" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures ownership state of device during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.PsmReportedAvailableState"
    enum="Boolean" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks whether PSM has reported that state is available during state
    determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.StateKeys.RetrievalErrorType"
    enum="StateKeysRetrievalErrorType" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the final errors due to which state keys failed to be retrieved.
    Errors which are hidden by the retries are not reported.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.StateReturned" enum="Boolean"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks whether state request returned state during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.Status"
    enum="StateDeterminationStatus" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Captures the status of state determination: whether it is enabled and why.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.StepDuration.{Step}" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks whether system clock was synchronized during state determination.
  </summary>
</histogram>

<histogram name="Enterprise.StateDetermination.TotalDuration" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Tracks the total duration of state determination.</summary>
</histogram>

<histogram name="Enterprise.StateDetermination.TotalDurationByState.{State}"
    units="ms" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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.SystemLogUploader.LogSize.{LogName}" units="KB"
    expires_after="2025-06-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the total size in kilobytes of all the &quot;{LogName}&quot; log
    files uploaded during the periodic log upload.
  </summary>
  <token key="LogName">
    <variant name="BiosInfo"
        summary="Messages from components before Linux kernel starts."/>
    <variant name="Chrome"
        summary="Messages that are written before user logs in."/>
    <variant name="Eventlog" summary="Messages about system events."/>
    <variant name="Extensions"
        summary="Messages from extension acting as system extensions."/>
    <variant name="Messages"
        summary="Messages written by services such as session_manager,
                 cryptohomed and cros-disks."/>
    <variant name="Net" summary="Network-related messages."/>
    <variant name="UI" summary="Data written to stdout and stderr by Chrome."/>
    <variant name="UpdateEngine" summary="Messages from update_engine."/>
  </token>
</histogram>

<histogram name="Enterprise.SystemSignals.Collection.WMI.{Signal}.ParsingError"
    enum="DeviceSignalsWmiParsingError" expires_after="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-03-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.TimeToUnthrottlePolicyInit" units="ms"
    expires_after="2024-01-14">
  <owner>[email protected]</owner>
  <summary>
    Duration between when the construction of the policy stack for a user
    profile starts and when its initialization gets unthrottled.

    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.TokenBasedEnrollmentOobeConfig.{OobeConfigSource}.Success"
    enum="BooleanSuccess" expires_after="2025-08-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of a token-based enrollment that was triggered by the
    following OOBE config source: {OobeConfigSource}.

    Events are recorded in response to a successful or failed token-based
    enrollment attempt.
  </summary>
  <token key="OobeConfigSource">
    <variant name="None" summary="No OOBE config source"/>
    <variant name="PackagingTool"
        summary="OOBE config created by an image token packaging tool"/>
    <variant name="RemoteDeployment"
        summary="OOBE config created during remote deployment"/>
    <variant name="Unknown" summary="Unrecognized OOBE config source value"/>
  </token>
</histogram>

<histogram name="Enterprise.UserInfoFetch.HttpErrorCode"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-02-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the http error code when there is a network error that comes with a
    http error code.

    Recorded at the end of an user info fetch if there is a network error that
    comes with a http error code.
  </summary>
</histogram>

<histogram name="Enterprise.UserInfoFetch.Status"
    enum="EnterpriseUserInfoFetchStatus" expires_after="2025-02-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of fetching user info when doing registration for user
    policy.

    Recorded at the end of each user info fetch.
  </summary>
</histogram>

<histogram name="Enterprise.UserPolicy.Count" units="policies"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Failure reason for OAuth token fetch for child user.</summary>
</histogram>

<histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2Error"
    enum="GoogleServiceAuthError" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Re-registration results after failed policy fetch.</summary>
</histogram>

<histogram
    name="Enterprise.UserRemoteCommand.Executed{Enterprise_RemoteCommandType}"
    enum="RemoteCommandExecutionStatus" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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.VpdCheck" units="units" expires_after="2023-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status code (exit code or signal) from VPD update operation (Chrome OS).
  </summary>
</histogram>

<histogram
    name="Enterprise.{ContentAnalysisProtocol}Request.{ContentAnalysisRequestType}.Duration"
    units="ms" expires_after="2025-02-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the duration of scanning requests, parametrized by the protocol used
    and the type of content that's uploaded. It is logged once per user action
    that would trigger this Connector.
  </summary>
  <token key="ContentAnalysisProtocol" variants="ContentAnalysisProtocol"/>
  <token key="ContentAnalysisRequestType"
      variants="ContentAnalysisRequestType"/>
</histogram>

<histogram
    name="Enterprise.{ContentAnalysisProtocol}Request.{ContentAnalysisRequestType}.Result"
    enum="SafeBrowsingBinaryUploadResult" expires_after="2025-03-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of scanning requests, parametrized by the protocol used
    and the type of content that's uploaded. It is logged once per user action
    that would trigger this Connector.
  </summary>
  <token key="ContentAnalysisProtocol" variants="ContentAnalysisProtocol"/>
  <token key="ContentAnalysisRequestType"
      variants="ContentAnalysisRequestType"/>
</histogram>

<histogram name="EnterpriseCheck.AzureADJoinStatusCheckTime" units="ms"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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.EnrollementRecoveryOnBoot"
    enum="EnrollmentRecoveryOnBootAction" expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The action taken on boot when enrollment recovery is marked in the local
    state.
  </summary>
</histogram>

<histogram name="EnterpriseCheck.InDomain" enum="BooleanEnabled"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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="2025-01-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</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.OSType" enum="OsSuite"
    expires_after="2024-07-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</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>

<histogram name="EnterpriseCheck.WindowsProfileType" enum="WindowsProfileType"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The Windows profile type of the current user. This is obtained by calling
    the GetProfileType API once at start-up on Windows.
  </summary>
</histogram>

<histogram name="SkyVault.LocalUserFilesCleanupCount" units="count"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times cleanup of local files was initiated after user session
    startup. Recorded at every time accumulating number of previous calls in
    this session.
  </summary>
</histogram>

</histograms>

</histogram-configuration>