chromium/tools/metrics/histograms/metadata/arc/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 Arc 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="AnrPeriods">
  <variant name="First10MinutesAfterStart"
      summary="10 minutes after ARC start."/>
  <variant name="Per4Hours"
      summary="Regular per 4 hours of ARC active session including session
               restarts. This also includes period First10MinutesAfterStart"/>
</variants>

<variants name="ArcAccessibilityFeatures">
  <variant name="DockedMagnifier"/>
  <variant name="FullscreenMagnifier"/>
  <variant name="SelectToSpeak"/>
  <variant name="SpokenFeedback" summary="SpokenFeedback without Talkback"/>
  <variant name="SwitchAccess"/>
  <variant name="TalkBack"/>
</variants>

<variants name="ArcAppInstallTypes">
  <variant name="Manual" summary="app manually installed by the user"/>
  <variant name="Policy" summary="app installed by a managed user's policy"/>
</variants>

<variants name="ArcAppKillDailyBackgroundVms">
  <variant name="" summary="Total"/>
  <variant name=".Crostini" summary="When Crostini is also running"/>
  <variant name=".OnlyArc" summary="When no other VMs are running"/>
  <variant name=".PluginVm" summary="When a plugin VM is also running"/>
  <variant name=".Steam" summary="When Steam is also running"/>
  <variant name=".UnknownVm" summary="When an unknown VM is also running"/>
</variants>

<variants name="ArcAppKillDailyType">
  <variant name=".CachedDaily" summary="with cached priority"/>
  <variant name=".ForegroundDaily" summary="when foreground"/>
  <variant name=".OomDaily" summary="by Linux's OOM killer"/>
  <variant name=".PerceptibleDaily" summary="when perceptible"/>
</variants>

<variants name="ArcAppKillType">
  <variant name="LinuxOOM" summary="ARCVM's Linux OOM Killer"/>
  <variant name="LMKD.Cached"
      summary="LMKD with oom_score_adj &gt;= CACHED_APP_MIN_ADJ"/>
  <variant name="LMKD.Foreground"
      summary="LMKD with oom_score_adj &lt;= FOREGROUND_APP_ADJ"/>
  <variant name="LMKD.Perceptible"
      summary="LMKD with FOREGROUND_APP_ADJ &lt; oom_score_adj &lt;
               CACHED_APP_MIN_ADJ"/>
  <variant name="Pressure.Cached"
      summary="ApplyHostMemoryPressure with ProcessState &gt;=
               PROCESS_STATE_CACHED_ACTIVITY"/>
  <variant name="Pressure.Foreground"
      summary="ApplyHostMemoryPressue with ProcessState &lt;
               PROCESS_STATE_TOP or ProcessState == PROCESS_STATE_TOP and
               focused"/>
  <variant name="Pressure.Perceptible"
      summary="ApplyHostMemoryPressure with PROCESS_STATE_TOP &lt;=
               ProcessState &lt; PROCESS_STATE_CACHED_ACTIVITY and not
               focused"/>
</variants>

<variants name="ArcBackgroundVms">
  <variant name="Crostini" summary="Crostini is also running"/>
  <variant name="OnlyArc" summary="no other VMs are running"/>
  <variant name="PluginVm" summary="a plugin VM is also running"/>
  <variant name="Steam" summary="Steam is also running"/>
  <variant name="UnknownVm" summary="an unknown type of VM is also running"/>
</variants>

<variants name="ArcBootTypes">
  <variant name="FirstBoot" summary="For the very first boot, aka opt-in."/>
  <variant name="FirstBootAfterUpdate"
      summary="For the first boot after Chrome OS update."/>
  <variant name="RegularBoot" summary="For a regular boot."/>
</variants>

<variants name="ArcPerformanceAppCategories">
  <variant name=".AmongUs" summary="Casual game 2: Among Us"/>
  <variant name=".CandyCrush" summary="Casual game 2: Candy Crush"/>
  <variant name=".FIFAMobile" summary="Online game: FIFA Mobile"/>
  <variant name=".GachaClub" summary="Casual game 2: Gacha Club"/>
  <variant name=".GarenaFreeFire" summary="Shooter game: Garena Free Fire"/>
  <variant name=".GenshinImpact" summary="Online game: Genshin Impact"/>
  <variant name=".Homescapes" summary="Casual game 2: Homescapes"/>
  <variant name=".MinecraftConsumerEdition"
      summary="Online game 2: Minecraft: Consumer Edition"/>
  <variant name=".MinecraftEducationEdition"
      summary="Online game 2: Minecraft: Education Edition"/>
  <variant name=".Netflix" summary="Video playback app: Netflix"/>
  <variant name=".PUBGMobile" summary="Heavy Game: PUBG Mobile"/>
  <variant name=".RaidLegends" summary="Online game: Raid: Shadow Legends"/>
  <variant name=".Roblox" summary="Online game: Roblox"/>
  <variant name=".TocaLife" summary="Online game: Toca Life"/>
  <variant name=".Underlords" summary="Online game: Underlords"/>
</variants>

<variants name="ArcSyncAppTypes">
  <variant name="Expected" summary="Apps expected to be synced"/>
  <variant name="Installed" summary="Apps installed"/>
  <variant name="NotInstalled"
      summary="Apps that were expected but not installed"/>
</variants>

<variants name="ArcUserTypes">
  <variant name=".Child" summary="User with child accounts."/>
  <variant name=".DemoMode"
      summary="Demo devices with a demo mode robot account."/>
  <variant name=".Managed" summary="User with forced Play Store feature"/>
  <variant name=".OfflineDemoMode"
      summary="Offline enrolled demo mode devices."/>
  <variant name=".RobotAccount"
      summary="Managed devices with a robot account (Public Session or Kiosk)"/>
  <variant name=".Unmanaged" summary="User with optional Play Store feature"/>
</variants>

<variants name="ArcVmDataMigrationType">
  <variant name="NewMigration" summary="new migration"/>
  <variant name="ResumeMigration" summary="resume migration"/>
</variants>

<variants name="ChromeOSAppType">
  <variant name="ArcApp"/>
  <variant name="Browser"/>
  <variant name="ChromeApp"/>
  <variant name="CrostiniApp"/>
  <variant name="Others"/>
  <variant name="SystemApp"/>
</variants>

<variants name="DeferArcActivationType">
  <variant name="Deferred"/>
  <variant name="NotDeferred"/>
</variants>

<variants name="DeviceType">
  <variant name="Rtc"/>
  <variant name="VirtioBalloon"/>
  <variant name="VirtioBlock"/>
  <variant name="VirtioFs"/>
  <variant name="VirtioGpu"/>
  <variant name="VirtioNet"/>
  <variant name="VirtioOther"/>
  <variant name="VirtioVsock"/>
  <variant name="VirtioWayland"/>
</variants>

<variants name="SuccessFailure">
  <variant name=".Failure" summary="Operation failed"/>
  <variant name=".Success" summary="Operation succeeded"/>
</variants>

<variants name="TimedCloudDpcOp">
  <variant name=".DeviceSetup"
      summary="Step during ManagedProvisioning app to setup the device"/>
  <variant name=".SetupService.AddAccount"
      summary="Step during the setup service that adds the account"/>
  <variant name=".SetupService.InstallApps"
      summary="Step during the setup service that installs apps"/>
  <variant name=".SetupService.PullAndApplyPolicies"
      summary="Step during the setup service that pulls and applies policies"/>
  <variant name=".SetupService.Total"
      summary="All steps that occur during the setup service"/>
</variants>

<variants name="WaylandEventType">
  <variant name=".BinderReleaseClipboardData"
      summary="Clipboard data released"/>
  <variant name=".Other" summary="Unspecified event"/>
  <variant name=".WlBufferRelease" summary="Fenced buffer released"/>
  <variant name=".WlKeyboardLeave" summary="Input keyboard leave"/>
  <variant name=".WlPointerLeave" summary="Input pointer leave"/>
  <variant name=".WlPointerMotion" summary="Input pointer motion"/>
  <variant name=".ZauraShellActivated" summary="Aura shell activated"/>
  <variant name=".ZauraSurfaceOcclusionChanged"
      summary="Surface occlusion changed"/>
  <variant name=".ZcrRemoteSurfaceBoundsChangedInOutput"
      summary="Window bounds changed"/>
  <variant name=".ZcrRemoteSurfaceWindowGeometryChanged"
      summary="Window geometry changed"/>
  <variant name=".ZcrVsyncTimingUpdate" summary="Vsync update"/>
</variants>

<histogram name="Arc.AbiMigration.BootTime" units="ms"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken for ARC to boot during an Abi Migration event. Warning: this
    histogram was expired from 08/04/2022 to 07/12/2023; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.AbiMigration.DowngradeDelay" units="ms"
    expires_after="2024-09-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken by ArcAbiMigrationService specifically to downgrade system
    packages. Warning: this histogram was expired from 08/04/2022 to 07/12/2023;
    data may be missing.
  </summary>
</histogram>

<histogram name="Arc.AbiMigration.Event" enum="ArcCorePriAbiMigEvent"
    expires_after="2024-09-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records event type for ArcAbiMigrationService during Abi Migration. Warning:
    this histogram was expired from 08/04/2022 to 07/12/2023; data may be
    missing.
  </summary>
</histogram>

<histogram name="Arc.AbiMigration.FailedAttempts" units="units"
    expires_after="2024-07-13">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of failed attempts in trying to perform Primary Abi
    Migration. Warning: this histogram was expired from 08/04/2022 to
    07/12/2023; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.Accessibility.ActiveTime.{ArcAccessibilityFeatures}"
    units="ms" expires_after="2025-04-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    For each window, measure the time that the window is focused with
    {ArcAccessibilityFeatures} enabled. This metric is recorded when the window
    loses focus or the window is closed.
  </summary>
  <token key="ArcAccessibilityFeatures" variants="ArcAccessibilityFeatures"/>
</histogram>

<histogram name="Arc.Accessibility.WindowCount" enum="ArcAccessibilityFeature"
    expires_after="2025-05-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count the number of windows with accessibility features enabled when a
    window is opened or an accessibility feature is enabled while windows exist.
  </summary>
</histogram>

<histogram name="Arc.AdbSideloadingEnablingScreen"
    enum="AdbSideloadingPromptEvent" expires_after="2024-07-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record user's choice or error during ADB sideloading opt-in UI after reboot.

    This histogram was expired between 2022-05-01 and 2023-09-07. Data might be
    missing or incomplete for this period.
  </summary>
</histogram>

<histogram name="Arc.AndroidBootTime" units="ms" expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The time elapsed for booting up the ARC instance.</summary>
</histogram>

<histogram name="Arc.Anr.{AnrPeriod}" units="ANRs" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ANR rate separated by {AnrPeriod} as ANR count happened in this period.
  </summary>
  <token key="AnrPeriod" variants="AnrPeriods"/>
</histogram>

<histogram name="Arc.Anr.{AnrPeriod}.{ArcBootType}" units="ANRs"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ANR rate separated by {AnrPeriod} and {ArcBootType} as ANR count happened in
    this period.
  </summary>
  <token key="AnrPeriod" variants="AnrPeriods"/>
  <token key="ArcBootType" variants="ArcBootTypes"/>
</histogram>

<histogram name="Arc.Anr.{AnrSource}" enum="ArcAnr" expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts ANR events in the system separated by ANR type and {AnrSource}.
  </summary>
  <token key="AnrSource">
    <variant name="ArcAppLauncher" summary="ARC App launcher."/>
    <variant name="ArcOther" summary="Other ARC components."/>
    <variant name="FirstParty" summary="First party Google apps."/>
    <variant name="GmsCore" summary="GMS Core."/>
    <variant name="Other" summary="Other apps."/>
    <variant name="Overall" summary="Total statistics."/>
    <variant name="PlayStore" summary="Play Store."/>
    <variant name="PreNotified" summary="Pre-ANR situation is notified."/>
    <variant name="RecoveryFailed"
        summary="Recovery failed for pre-ANR situation."/>
    <variant name="SystemApp" summary="System components."/>
    <variant name="SystemServer" summary="System Server."/>
  </token>
</histogram>

<histogram name="Arc.App.GmsCoreKill.{ArcBootType}" enum="ArcAppGmsKillType"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts the types of app kills caused by GMS core updates {ArcBootType}. See
    go/gmscore-killed-my-app. Emitted when the GMS core update is done.
  </summary>
  <token key="ArcBootType" variants="ArcBootTypes"/>
</histogram>

<histogram name="Arc.App.LowMemoryKills.{ArcAppKillType}Count10Minutes"
    units="Apps" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of ARC Apps killed by {ArcAppKillType} in each interval of 10
    minutes.
  </summary>
  <token key="ArcAppKillType" variants="ArcAppKillType"/>
</histogram>

<histogram
    name="Arc.App.LowMemoryKills.{ArcBackgroundVms}.{ArcAppKillType}Count10Minutes"
    units="Apps" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of ARC Apps killed by {ArcAppKillType} in each interval of 10 minutes
    when {ArcBackgroundVms}.
  </summary>
  <token key="ArcAppKillType" variants="ArcAppKillType"/>
  <token key="ArcBackgroundVms" variants="ArcBackgroundVms"/>
</histogram>

<histogram
    name="Arc.App.LowMemoryKills{ArcAppKillDailyBackgroundVms}{ArcAppKillDailyType}"
    units="Apps" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of ARC Apps killed each day {ArcAppKillDailyType}.
    {ArcAppKillDailyBackgroundVms}.
  </summary>
  <token key="ArcAppKillDailyType" variants="ArcAppKillDailyType"/>
  <token key="ArcAppKillDailyBackgroundVms"
      variants="ArcAppKillDailyBackgroundVms"/>
</histogram>

<histogram name="Arc.App.PrimaryAbi" enum="AppPrimaryAbi"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted for each app launched with ArcAppLauncher. Records the primary ABI
    used for the app. This will let us know if 32-bit binaries are still being
    used or if 32-bit support is not needed anymore.
  </summary>
</histogram>

<histogram name="Arc.AppCount" units="units" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of ARC apps open at any given time. Collected every 5 minutes.
    This indicates both how many users are engaging with apps and, when they do
    engage, how many apps they are engaging with at a time.
  </summary>
</histogram>

<histogram name="Arc.AppCount.HasInstalledOrUnknownApp" enum="Boolean"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    True if the user (or Chrome app sync) has manually installed one or more
    apps. See Arc.AppCount.InstalledApp for more details. UnknownApp is
    deprecated and has never been collected. Collected once every time when ARC
    starts.
  </summary>
</histogram>

<histogram name="Arc.AppCount.{AppType}" units="apps"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of Ash Chrome managed ARC {AppType} Collected once every time
    when ARC starts.
  </summary>
  <token key="AppType">
    <variant name="DefaultApp"
        summary="default apps. Either PAI or one in system/vendor image. Can
                 be 1+ even for opt-out users."/>
    <variant name="InstalledApp"
        summary="apps which the user has manually installed. This includes
                 the one installed via Chrome app sync. 0 for opt-out users."/>
    <variant name="StickyApp"
        summary="sticky apps in a system/vendor image. This is always 0 for
                 opt-out users."/>
    <variant name="VpnApp" summary="apps that provide vpn."/>
  </token>
</histogram>

<histogram name="Arc.AppInstall.CacheHit" enum="BooleanCacheHit"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether APK Cache had a hit or miss for an app install request. This
    metric is recorded when app is being installed for an affiliated managed
    user.
  </summary>
</histogram>

<histogram name="Arc.AppInstall.PolicySuccessRate" units="%"
    expires_after="2025-01-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the success rate for all apps within a single policy. This will allow
    us to understand the reliability of force installs for a single customer.
    The metric is emitted when success/failure results are received for all apps
    in a policy or when 30 minutes have elapsed since the policy was received.
  </summary>
</histogram>

<histogram
    name="Arc.AppInstall.{ArcAppInstallTypes}.InitialSession.NumAppsIncomplete"
    units="apps" expires_after="2024-09-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the number of {ArcAppInstallTypes} that did not complete after the
    very first login on a device. This metric is recorded when the ARC session
    is stopped IFF it is the first session after opting in during the sync
    consent screen.
  </summary>
  <token key="ArcAppInstallTypes" variants="ArcAppInstallTypes"/>
</histogram>

<histogram
    name="Arc.AppInstall.{ArcAppInstallTypes}.InitialSession.NumAppsRequested"
    units="apps" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the number of {ArcAppInstallTypes} that were requested after the very
    first login on a device. This metric is recorded when the ARC session is
    stopped IFF it is the first session after opting in during the sync consent
    screen.
  </summary>
  <token key="ArcAppInstallTypes" variants="ArcAppInstallTypes"/>
</histogram>

<histogram name="Arc.AppInstall.{ArcAppInstallTypes}.InitialSession.TimeDelta"
    units="ms" expires_after="2024-09-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the length of time it took to complete installation for one
    {ArcAppInstallTypes} after the very first login on a device. This metric is
    recorded when the install succeeds IFF it is the first session after opting
    in during the sync consent screen.
  </summary>
  <token key="ArcAppInstallTypes" variants="ArcAppInstallTypes"/>
</histogram>

<histogram name="Arc.AppInstalledReason" enum="InstallationCounterReasonEnum"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record a reason when an arc application completes installation successfully,
    including policy based applications, default applications and user prompted
    installations. Warning: this histogram was expired from 09/01/2021 to
    10/01/2021; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.AppLanguageSwitch.{SettingsPage}.TargetLanguage"
    enum="LocaleCodeISO639" expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the settings page source when users change app language, and which
    language users changed the language to.
  </summary>
  <token key="SettingsPage">
    <variant name="AppsManagementPage"
        summary="ChromeOS AppsManagement settings page"/>
    <variant name="LanguagesPage" summary="ChromeOS Languages settings page"/>
  </token>
</histogram>

<histogram name="Arc.AppRequestedInSession" units="count"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of requests of ARC app launching in a user session.

    Note: this is emitted at the beginning of the next user session. This is
    because ash-chrome may be shutdown unexepctedly (incl. crashes), so emit the
    value at the end of the user session is not reliable enough. Instead, the
    number of requests are tracked and stored in the PrefService to survive
    chrome restart, and the value is emitted in the next user session.
  </summary>
</histogram>

<histogram name="Arc.AppShortcutSearchResult.ShortcutStatus"
    enum="ArcAppShortcutStatus" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted for each ARC app shortcut search result. Records whether the icon is
    empty. This will let us know how often the Google Play Store icon is shown
    in place of a shortcut.
  </summary>
</histogram>

<histogram name="Arc.AppShortcutsRequest.ShortcutStatus"
    enum="ArcAppShortcutStatus" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted for each requested ARC app shortcut. Records whether the icon is
    empty. This will let us know how often the Google Play Store icon is shown
    in place of a shortcut.
  </summary>
</histogram>

<histogram name="Arc.AppsInstalledAtStartup" units="App Count"
    expires_after="2024-07-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total number of ARC apps installed on a device measured at startup. Note:
    This includes launchable apps that are installed by default, such as Play
    Store and Settings, as well as any vendor specific apps.

    Warning: this histogram was expired after M92 and brought back 2021-09-17;
    expired after M99 and brought back 2022-12-07, then expired after M114 and
    brought back 2023-07-11; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.AppSync.InitialSession.InstalledAppSize" units="MB"
    expires_after="2025-01-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the app size of apps installed during the initial session of app
    sync. Metrics are emitted when an app sync install is completed IFF it is
    the first session after opting in during the sync consent screen.
  </summary>
</histogram>

<histogram name="Arc.AppSync.InitialSession.Latency" units="seconds"
    expires_after="2025-01-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time from the start of app sync until the last finished
    installation before the session ended. This is not the latency for total app
    sync, since total app sync may occur over multiple sessions. Metrics are
    emitted when a user logs off IFF it is the first session after opting in
    during the sync consent screen.
  </summary>
</histogram>

<histogram name="Arc.AppSync.InitialSession.NumApps{ArcSyncAppTypes}"
    units="apps" expires_after="2025-01-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the count of {ArcSyncAppTypes} apps during the initial session for
    app sync. Metrics are emitted when a user logs off IFF it is the first
    session after opting in during the sync consent screen.
  </summary>
  <token key="ArcSyncAppTypes" variants="ArcSyncAppTypes"/>
</histogram>

<histogram name="Arc.AppUninstallReason" enum="UninstallCounterReasonEnum"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record a reason why an application was uninstalled when uninstall is
    completed. Warning: this histogram was expired from 09/01/2021 to 10/01/2021
    and from 2023-06-04 to 2023-08-18; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.ArcFeatures.ParseResult" enum="ArcFeaturesParseResult"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of parsing the ARC Features JSON file off rootfs.
    Recorded every time the file is parsed, which most commonly happens during
    OOBE.
  </summary>
</histogram>

<histogram name="Arc.ArcOnDemand.ActivationIsDelayed" enum="Boolean"
    expires_after="2025-05-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether ARC activation is delayed by ARC on Demand or not. Recorded
    on a regular boot.
  </summary>
</histogram>

<histogram name="Arc.ArcOnDemandV2.ActivationShouldBeDelayed" enum="Boolean"
    expires_after="2025-05-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded during every regular boot, regardless of feature flag. Returns
    whether the ArcOnDemandV2 triggering condition is met (ARC should be
    activated later in an on-demand manner). This is different from
    ActivationIsDelayed as this focuses on the triggering conditions without
    taking into acccount the feature flag.
  </summary>
</histogram>

<histogram name="Arc.Auth.AccountCheck.Status{ArcUserTypes}"
    enum="ArcAuthAccountCheckStatus" expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of account check before GMS Sign-in. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Auth.AccountCheck.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time waiting for the account status check to be completed. This is
    not recorded in case of account status check failure. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Auth.Checkin.Attempts{ArcUserTypes}" units="attempts"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of attempts done while waiting for the check-in task to be completed.
    0 means that device was already checked-in. This is recorded in case
    check-in task is completed successfully. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Auth.Checkin.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time waiting for the check-in task to be completed. This is recorded
    in case check-in task is completed successfully. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Auth.MainAccountHashMigration.Status"
    enum="ArcMainAccountHashMigrationStatus" expires_after="2024-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Contains the status of the main account hash migration resolution. We record
    this metric when migrating the main account hash from java hashcode to use a
    cryptographic hash. This is done at the bootup time.
  </summary>
</histogram>

<histogram name="Arc.Auth.MainAccountResolution.Status{ArcUserTypes}"
    enum="ArcAuthMainAccountResolutionStatus" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Contains the status of main account resolution. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Auth.NetworkWait.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time waiting for network connection before starting other
    authorization operations. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Auth.NumAccounts" units="count" expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the number of accounts in ARC. This is recorded only once per
    session, at login time.
  </summary>
</histogram>

<histogram name="Arc.Auth.PercentAccounts" units="%" expires_after="2024-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the percentage of the accounts in session that are also available in
    ARC. This is recorded only once per session, at login time.
  </summary>
</histogram>

<histogram name="Arc.Auth.Reauth.Reason{ArcUserTypes}"
    enum="ArcAuthReauthReason" expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records why ARC restarted the provisioning flow by reauthenticating and
    adding the user to ARC. This happens when ARC detects missing AndroidID or
    primary user in the Account Manager. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Auth.RequestAccountInfoResult.Primary"
    enum="ArcAuthCodeStatus" expires_after="2025-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Contains the status of the account info and auth code fetch for primary
    account. Recorded when ARC requests account information (e.g. when account
    is added, when token is updated).
  </summary>
</histogram>

<histogram name="Arc.Auth.RequestAccountInfoResult.Secondary"
    enum="ArcAuthCodeStatus" expires_after="2025-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Contains the status of the account info and auth code fetch for secondary
    account. Recorded when ARC requests account information (e.g. when account
    is added, when token is updated).
  </summary>
</histogram>

<histogram name="Arc.Auth.SignIn.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time waiting for GMS sign-in to complete. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram
    name="Arc.CloudDpc{TimedCloudDpcOp}.TimeDelta{SuccessFailure}{ArcUserTypes}"
    units="ms" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time it took to complete the {TimedCloudDpcOp}
    ({SuccessFailure}) operation in CloudDPC. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
  <token key="TimedCloudDpcOp" variants="TimedCloudDpcOp"/>
  <token key="SuccessFailure" variants="SuccessFailure"/>
</histogram>

<histogram name="Arc.CompanionLibraryApisCounter"
    enum="CompanionLibraryApisList" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of times ChromeOS Companion Library API called. Counter
    adding when its Stub library receive the call from applications.
  </summary>
</histogram>

<histogram name="Arc.CompatMode.InitialResizeLockState"
    enum="ArcResizeLockState" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The initial resize lock state of ARC apps. The histogram is emitted when any
    ARC window is initialized.
  </summary>
</histogram>

<histogram name="Arc.ContainerLifetimeEvent" enum="ArcContainerLifetimeEvent"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <summary>
    The number of ARC container lifetime events. One START event and up to one
    non-START event are recorded per ARC session, which ends when the user opts
    out from ARC or signs out.

    Warning: this histogram was expired after 2022-04-03 and brought back
    2022-12-07; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.ContainerRestartAfterCrashCount" units="units"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <summary>
    The number of times ARC container crashes and automatically restarts in one
    ARC session, which ends when the user opts out from ARC or signs out.

    Warning: this histogram was expired after 2022-04-24 and brought back
    2022-12-07; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.CpuRestrictionDisabled{ArcThrottleObservers}" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time that throttling was disabled due to a particular throttle
    observer. The duration begins when a new throttle observer becomes active,
    and measures until it becomes inactive or another throttle observer becomes
    effective. {ArcThrottleObservers}
  </summary>
  <token key="ArcThrottleObservers">
    <variant name=".ArcAppLaunchRequested"
        summary="ARC app launch in progress."/>
    <variant name=".ArcIsBooting" summary="ARC is booting or restarting."/>
    <variant name=".ArcKioskMode" summary="ARC works in Kiosk mode."/>
    <variant name=".ArcPipWindowIsVisible"
        summary="An ARC PIP window is active."/>
    <variant name=".ArcPower" summary="ARC handles pre-ANR conditions."/>
    <variant name=".ArcSwitch"
        summary="ARC throttling is disabled by switch. Not expected in
                 production."/>
    <variant name=".ArcWindowIsActiveWindow"
        summary="An ARC window is active."/>
  </token>
</histogram>

<histogram name="Arc.CpuRestrictionVmResult" enum="ArcCpuRestrictionVmResult"
    expires_after="2024-09-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of setting ARC CPU restrictions in ARCVM.
  </summary>
</histogram>

<histogram name="Arc.CumulativeUseTime" units="seconds"
    expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    ARC use time. The use time is incremented in regular intervals while android
    container is active. Reported at most once a day, at which point accumulated
    time is reset (which means that sum of reported times for a OS version would
    give an estimate of ARC usage time per OS version).

    Warning: this histogram was expired after 2021-03-12 and brought back
    2021-09-17; expired 2022-05-01 and brought back 2022-12-07; data may be
    missing.
  </summary>
</histogram>

<histogram name="Arc.DataRemoved.Success" enum="Boolean"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>True if data was successfully removed on request.</summary>
</histogram>

<histogram name="Arc.DataRestore.Duration" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration of the SELinux data restoration flow. Warning: this histogram
    was expired from 2023-04-09 to 2023-08-30; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.DataRestore.Status" enum="ArcDataRestoreStatus"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks status of SELinux contexts restore flows of Android /data. This also
    means ARC++ boot delay.
  </summary>
</histogram>

<histogram name="Arc.DeferActivation.Category"
    enum="DeferArcActivationCategory" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how &quot;deferring ARC activation until user session start up task
    completion&quot; worked.
  </summary>
</histogram>

<histogram name="Arc.DeferActivation.Result" enum="DeferArcActivationResult"
    expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the decision of &quot;deferring ARC activation until user
    session start up task completion&quot;, which is prediction, was succeeded
    or failed.
  </summary>
</histogram>

<histogram
    name="Arc.DeferActivation.{DeferArcActivationType}{SuccessFailure}.ElapsedTime"
    units="ms" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    How long does it take since the activation necessity check until the
    following activation for each group of deferring ARC pattern and its
    success/failure status.
  </summary>
  <token key="DeferArcActivationType" variants="DeferArcActivationType"/>
  <token key="SuccessFailure" variants="SuccessFailure"/>
</histogram>

<histogram
    name="Arc.DeferActivation.{DeferArcActivationType}{SuccessFailure}.Reason"
    enum="AllowActivationReason" expires_after="2025-01-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason why the activation is allowed for each group of deferring ARC
    pattern and its success/failure status.
  </summary>
  <token key="DeferArcActivationType" variants="DeferArcActivationType"/>
  <token key="SuccessFailure" variants="SuccessFailure"/>
</histogram>

<histogram name="Arc.EngagementTime.ArcTotal" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total of Arc.EngagementTime.Background and Arc.EngagementTime.Foreground.
    Note that this differs from Arc.EngagementTime.Total in that this is the
    ARC++ engagement time, while Arc.EngagementTime.Total is the CrOS total
    engagement time on devices with ARC++ enabled. See Arc.EngagementTime.Total
    for definition of engagement and further details.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.Background" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Times when user is engaged and ARC++ apps are running in the background, but
    the user isn't focusing on an ARC++ app window. See Arc.EngagementTime.Total
    for definition of engagement and details.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.Foreground" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Times when user is engaged and focuses on an ARC++ app window. See
    Arc.EngagementTime.Total for definition of engagement and details.
  </summary>
</histogram>

<histogram name="Arc.EngagementTime.Total" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total CrOS user session time (from login to logout) excluding times when
    user &quot;disengages&quot;: screen is locked or dims down due to user idle.
    Engagement time metrics, along with foreground and background time, are only
    collected on users with ARC++ enabled. All four metrics are accumulated and
    recorded to UMA once a day. For Total ARC++ engagement time, please see
    Arc.EngagementTime.ArcTotal.
  </summary>
</histogram>

<histogram name="Arc.FirstAppLaunchDelay.TimeDelta" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when user requests app launch before ARC boot and ARC
    is booted. Note, ARC booted does not mean app is actually shown. You may
    consider Arc.FirstAppLaunchDelay.TimeDeltaUntilAppLaunch also. Unlike
    Arc.FirstAppLaunchDelay.TimeDeltaUntilAppLaunch, this metric is recorded
    only up to once a user session. Zero when the container has already been up
    and running when the user launches the ARC app.
  </summary>
</histogram>

<histogram name="Arc.FirstAppLaunchDelay.TimeDeltaUntilAppLaunch" units="ms"
    expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    How long the user sees the spinning icon waiting for ARC boot. This metric
    is not recorded at all if the user launches apps only after ARC is booted.
    Unlike Arc.FirstAppLaunchDelay.TimeDelta, this metric might be recorded
    multiple times per a user session, for example when users starts multiple
    ARC apps while ARC is booting.
  </summary>
</histogram>

<histogram name="Arc.FirstAppLaunchRequest.TimeDelta" units="ms"
    expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when UI is shown after login to when the user
    activates first ARC app.
  </summary>
</histogram>

<histogram name="Arc.GameControls.ButtonOptionsMenuFunctionTriggered"
    enum="GameControlsButtonOptionsMenuFunction" expires_after="2025-04-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how often a specific function within the game controls button
    options menu is triggered.
  </summary>
</histogram>

<histogram name="Arc.GameControls.EditDeleteMenuFuctionTriggered"
    enum="GameControlsEditDeleteMenuFunction" expires_after="2025-04-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how often a specific function within the game controls edit/delete
    menu is triggered.
  </summary>
</histogram>

<histogram name="Arc.GameControls.EditingListFunctionTriggered"
    enum="GameControlsEditingListFunction" expires_after="2025-04-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how often a specific function within the game controls editing list
    is triggered.
  </summary>
</histogram>

<histogram
    name="Arc.GameControls.{FeatureOrHint}ToggleWithMappingSource.{OnOrOff}"
    enum="GameControlsMappingSource" expires_after="2025-04-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the game controls feature or hint is toggled on or off with current
    mapping source.
  </summary>
  <token key="FeatureOrHint">
    <variant name="Feature"/>
    <variant name="Hint"/>
  </token>
  <token key="OnOrOff">
    <variant name="Off"/>
    <variant name="On"/>
  </token>
</histogram>

<histogram name="Arc.GhostWindowViewType" units="ArcGhostWindowViewType"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of the view type of ARC app ghost window. Counted when the ghost
    window created or the view updated.
  </summary>
</histogram>

<histogram name="Arc.GuestZram.ReclaimedProcess" units="count"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of reclaimed process. Counted when there is a successful guest zram
    reclaim.
  </summary>
</histogram>

<histogram name="Arc.GuestZram.SuccessfulReclaim" enum="Boolean"
    expires_after="2024-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Outcome of an ARC Guest Zram reclaim operation. True if at least one process
    was successfully reclaimed, false otherwise.
  </summary>
</histogram>

<histogram name="Arc.GuestZram.TotalReclaimTime" units="ms"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time to reclaim memory from all processs. Recorded only when there
    is a successful guest zram reclaim.
  </summary>
</histogram>

<histogram name="Arc.GuestZram.UnreclaimedProcess" units="count"
    expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of unreclaimed process. Counted when there is a successful guest zram
    reclaim.
  </summary>
</histogram>

<histogram name="Arc.IconLoadFromFileTime.compressedFirst5" units="ms"
    expires_after="2021-03-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time of first 5 compressed app icons is loaded from file system.
    Recorded when the app icon loading completes.
  </summary>
</histogram>

<histogram name="Arc.IconLoadFromFileTime.compressedOthers" units="ms"
    expires_after="2021-03-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time of other compressed app icons is loaded from file system.
    Recorded when the app icon loading completes.
  </summary>
</histogram>

<histogram name="Arc.IconLoadFromFileTime.uncompressedFirst5" units="ms"
    expires_after="2021-03-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time of first 5 uncompressed app icons is loaded from file system.
    Recorded when the app icon loading completes.
  </summary>
</histogram>

<histogram name="Arc.IconLoadFromFileTime.uncompressedOthers" units="ms"
    expires_after="2021-03-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time of other uncompressed app icons is loaded from file system.
    Recorded when the app icon loading completes.
  </summary>
</histogram>

<histogram name="Arc.IdleManager.ScreenOffTime" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time spent in screen-off mode, induced by inactivity detected in
    ARCVM. Recorded each time we wake up from that mode, and also when there's a
    loss of connection with ARCVM (logout or crash) while in screen-off mode.
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.ActionRepositionOperationType"
    enum="ArcInputOverlayRepositionOperationType" expires_after="2024-02-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the Action reposition operation types, including touchscreen drag,
    mouse drag and keyboard arrow keys, when users move action views to adjust
    touch points. Records the events when users release touch, mouse or key.
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.ButtonGroupRepositionOperationType"
    enum="ArcInputOverlayRepositionOperationType" expires_after="2023-12-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the button group reposition operation types, including touchscreen
    drag, mouse drag and keyboard arrow keys, when users move the button group.
    Records the events when users release touch, mouse or key.
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.Customized" enum="BooleanEnabled"
    expires_after="2023-10-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count the usage of input overlay editing feature on all associated apps. The
    metric is recorded when users press the Customize button. Refer to
    InputMenuView::OnButtonCustomizedPressed().
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.FeatureState" enum="BooleanEnabled"
    expires_after="2023-08-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Check whether users play the game with input overlay feature enabled or
    disabled on all associated apps. The metric is recorded when users launch
    the associated apps and when users have menu state changed upon on closing
    the input menu only. Refer to TouchInjector::RecordMenuStateOnLaunch() and
    TouchInjector::OnInputMenuViewRemoved().
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.MappingHintState" enum="BooleanEnabled"
    expires_after="2023-08-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Check whether users play the game with input overlay mapping hint enabled or
    disabled on all associated apps. The metric is recorded when users launch
    the associated apps and when users have menu state changed upon on closing
    the input menu only. Refer to TouchInjector::RecordMenuStateOnLaunch() and
    TouchInjector::OnInputMenuViewRemoved().
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.MenuEntryRepositionOperationType"
    enum="ArcInputOverlayRepositionOperationType" expires_after="2023-12-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the menu entry button reposition operation types, including
    touchscreen drag, mouse drag and keyboard arrow keys, when users move menu
    entry button. Records the events when users release touch, mouse or key.
  </summary>
</histogram>

<histogram name="Arc.InputOverlay.{UI}RepositionWindowStateType"
    enum="ArcInputOverlayWindowStateType" expires_after="2023-08-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the window state type when {UI} reposition happens. Records the
    events when users release touch, mouse or key.
  </summary>
  <token key="UI">
    <variant name="Action"/>
    <variant name="ButtonGroup"/>
    <variant name="MenuEntry"/>
  </token>
</histogram>

<histogram name="Arc.KeyMint.KeyMintError" enum="ArcKeyMintError"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted for errors on KeyMint calls. Coverage includes some error types and
    only on certain KeyMint calls.
  </summary>
</histogram>

<histogram name="Arc.LaunchedWithGhostWindow" units="apps"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The number of ARC apps launched with ghost window.</summary>
</histogram>

<histogram
    name="Arc.LoadAverageX100PerProcessor15MinutesAfterArcStart.{ArcBootType}"
    units="0.01 jobs/processor" expires_after="2024-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The 15-minute load average multiplied by 100 and divided by the number of
    logical processors online. Recorded 15 minutes after ARC start.
  </summary>
  <token key="ArcBootType" variants="ArcBootTypes"/>
</histogram>

<histogram
    name="Arc.LoadAverageX100PerProcessor1MinuteAfterArcStart.{ArcBootType}"
    units="0.01 jobs/processor" expires_after="2023-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The 1-minute load average multiplied by 100 and divided by the number of
    logical processors online. Recorded 1 minute after ARC start.
  </summary>
  <token key="ArcBootType" variants="ArcBootTypes"/>
</histogram>

<histogram
    name="Arc.LoadAverageX100PerProcessor5MinutesAfterArcStart.{ArcBootType}"
    units="0.01 jobs/processor" expires_after="2023-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The 5-minute load average multiplied by 100 and divided by the number of
    logical processors online. Recorded 5 minutes after ARC start.
  </summary>
  <token key="ArcBootType" variants="ArcBootTypes"/>
</histogram>

<histogram name="Arc.NativeBridge" enum="ArcNativeBridgeType"
    expires_after="never">
<!-- expires-never: used internally for filtering -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Native bridge used for ARC. Can be unknown and none. This is collected along
    with Arc.State during every metrics recording interval, so it is in every
    record uploaded to the server (despite crbug.com/929583 which was fixed in
    M73). This is required because this value is used to categorize all other
    data in the dashboard as collected with specific native bridge in use. Since
    M74 this is also included in initial stability logs.
  </summary>
</histogram>

<histogram name="Arc.NearbyShare.ArcBridgeFailure"
    enum="NearbyShareArcBridgeFailResult" expires_after="2025-03-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records any ARC Bridge connection / communication failures using
    NearbyShare.
  </summary>
</histogram>

<histogram name="Arc.NearbyShare.DataHandlingFailure"
    enum="ArcNearbyShareDataHandlingResult" expires_after="2025-03-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records any data handling errors with sharing text or files using
    NearbyShare.
  </summary>
</histogram>

<histogram name="Arc.NearbyShare.FileStreamComplete.TimeDelta" units="ms"
    expires_after="2025-03-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken by ARC Nearby Share to transfer file streams from ARC's virtual
    file system in ContentProviders to Chrome's native file system. The time is
    only recorded when file stream completes successfully.
  </summary>
</histogram>

<histogram name="Arc.NearbyShare.FileStreamFailure" enum="PlatformFileError"
    expires_after="2025-03-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the reason for failing to stream a file using NearbyShare. ARC
    NearbyShare shares a file after finding a window, and once &quot;share&quot;
    is clicked, it attempts to send the file.
  </summary>
</histogram>

<histogram name="Arc.NearbyShare.IOFailure" enum="ArcNearbyShareIOErrorResult"
    expires_after="2025-03-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records any IO errors while using NearbyShare.</summary>
</histogram>

<histogram name="Arc.NearbyShare.WindowFound" units="units"
    expires_after="2025-03-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the success or failure of attempts to find NearbyShare window. ARC
    NearbyShare finds a window after the &quot;nearby share&quot; button is
    clicked in an app. If NearbyShare successfully finds a window,
    &quot;true&quot; is recorded onto the histogram. &quot;false&quot; is
    recorded in the case a window is not found.
  </summary>
</histogram>

<histogram name="Arc.Net.ArcNetworkError" enum="ArcNetworkError"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records errors that happened inside the ARC networking and WiFi Java stack.
  </summary>
</histogram>

<histogram name="Arc.Net.ArcNetworkEvent" enum="ArcNetworkEvent"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records events triggered inside ARC networking and WiFi Java stack related
    to Android API usage by Android Apps, mojom API usage by the host, and other
    events such as VPN connections
  </summary>
</histogram>

<histogram name="Arc.Net.DnsQuery.AndroidApi" enum="BooleanSuccess"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the success result of DNS query resolution inside ARC.
  </summary>
</histogram>

<histogram name="Arc.Net.DnsQuery.Other" enum="BooleanSuccess"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the success result of DNS query resolution inside ARC.
  </summary>
</histogram>

<histogram name="Arc.Net.Qos.NewQosSocketCount" units="count"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the count of newly opened QoS socket connections in a single poll
    every time socket connections information is polled regularly in ARC.
  </summary>
</histogram>

<histogram name="Arc.Net.Qos.QosSocketPercentage" units="%"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the percentage of QoS socket connections in a single poll every time
    socket connections information is polled regularly in ARC.
  </summary>
</histogram>

<histogram name="Arc.Notifications.ActionEnabled" enum="BooleanEnabled"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether at least one action button is enabled or not for an Arc
    notification when the notification is created.
  </summary>
</histogram>

<histogram name="Arc.Notifications.InlineReplyEnabled" enum="BooleanEnabled"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether inline reply is enabled or not for an Arc notification when
    the notification is created.
  </summary>
</histogram>

<histogram name="Arc.Notifications.IsCustomNotification"
    enum="BooleanIsCustomNotification" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether an Arc notification is custom notification or not.
  </summary>
</histogram>

<histogram name="Arc.Notifications.Style" enum="ArcNotificationStyle"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the style of an Arc notification when it's created.</summary>
</histogram>

<histogram
    name="Arc.NotificationView.{ChildView}.{FadeType}.AnimationSmoothness"
    units="%" expires_after="2025-01-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relative smoothness of the fade animation of {ChildView} inside a
    notification view. 100% represents ideally smooth 60 frames per second.
    Emitted when the fade in/out animation is completed.
  </summary>
  <token key="ChildView">
    <variant name="CollapsedSummaryView"/>
    <variant name="ContentView"/>
  </token>
  <token key="FadeType">
    <variant name="FadeIn"/>
    <variant name="FadeOut"/>
  </token>
</histogram>

<histogram name="Arc.OptInAction" enum="ArcOptInAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Arc OptIn action taken by user. Warning: this histogram was expired from
    2022-03-17 to 2022-04-18; data may be missing.
  </summary>
</histogram>

<histogram name="Arc.OptInCancel" enum="ArcOptInCancel"
    expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Arc OptIn cancelation reason.</summary>
</histogram>

<histogram name="Arc.OptInNetworkErrorAction" enum="ArcOptInNetworkErrorAction"
    expires_after="2024-12-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records user action on the optin dialog when a network-related provisioning
    failure occurs by type: close window, retry, send feedback and check network
    connection.
  </summary>
</histogram>

<histogram name="Arc.OptInResult" enum="ArcOptInResult"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Arc OptIn flow result.</summary>
</histogram>

<histogram name="Arc.OptInSilentAuthCode" enum="ArcOptInSilentAuthCode"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Arc Silent Auth Code status. This status is set during the ARC OptIn flow.
  </summary>
</histogram>

<histogram name="Arc.OptInSilentAuthCode.Reauthorization"
    enum="ArcOptInSilentAuthCode" expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Arc Silent Auth Code status. This status is set during the ARC
    Device/Primary Account reauthorization flow.
  </summary>
</histogram>

<histogram name="Arc.OptInSilentAuthCode.SecondaryAccount"
    enum="ArcOptInSilentAuthCode" expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Arc Silent Auth Code status. This status is set during the minting of an
    auth code for a Secondary Account. It can be set for Secondary Account
    signin or reauthorization.
  </summary>
</histogram>

<histogram name="Arc.OptinTosLoadResult" enum="BooleanSuccess"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of loading Play terms of service in in-session optin
    dialog. This metric reports false on aborts and failed retries as well.
  </summary>
</histogram>

<histogram name="Arc.PlayAutoInstallRequest.State{ArcUserTypes}"
    enum="ArcPlayAutoInstallRequestState" expires_after="2024-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    State of PlayAutoInstall flow after the request. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.PlayAutoInstallRequest.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="2024-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when the PlayAutoInstall request was issued and
    completed. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.PlayStoreLaunch.TimeDelta" units="ms"
    expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when the user launches the Play Store app and to when
    the Play Store window is shown to the user.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreLaunchWithinAWeek" enum="BooleanUsage"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the Play Store has been launched by the user within a week from the
    when onboarding (OOBE) is finished. The metric is recorded only once. The
    recording happens when Play Store is launched by the user or when a week has
    passed since onboarding (a check is done at user session initialization).
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.QueryTime" units="ms"
    expires_after="2025-01-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time between sending an Play Store app discovery request and the storing
    returned results.

    This histogram was expired between 2023-03-19 and 2024-01-17 and some data
    may be missing.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.ReturnedAppsTotalV2" units="apps"
    expires_after="2025-01-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total number of returned apps of a Play Store app discovery query.

    This histogram was expired between 2023-09-01 and 2024-01-17 and some data
    may be missing.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.ReturnedInstantAppsV2" units="apps"
    expires_after="2025-01-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of returned instant apps of a Play Store app discovery query.

    This histogram was expired between 2023-09-01 and 2024-01-17 and some data
    may be missing.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreSearch.ReturnedUninstalledAppsV2" units="apps"
    expires_after="2025-01-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of returned uninstalled apps of a Play Store app discovery query.

    This histogram was expired between 2023-09-01 and 2024-01-17 and some data
    may be missing.
  </summary>
</histogram>

<histogram name="Arc.PlayStoreShown.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when the user agrees ToS to when the Play Store window
    is shown to the user. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Policy.InstallTypesOnDevice" enum="AppInstallType"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record which app install types are included in the policy that is applied to
    a device. The metric is emitted once when arc_policy_bridge starts and any
    time the policy is updated. For example, if there are 5 FORCE_INSTALLED apps
    and 3 BLOCKED apps in the policy, the metric will record one count for
    FORCE_INSTALLED and one count for BLOCKED.
  </summary>
</histogram>

<histogram name="Arc.Policy.Keys" enum="ArcPolicyKey"
    expires_after="2025-01-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record which sub-policies are included in the ArcPolicy object that
    represents policy restrictions set on ARC. The metric is emitted once when
    arc_policy_bridge starts and any time the policy is updated.
  </summary>
</histogram>

<histogram name="Arc.Policy.SecondaryAccountAllowedInArc.Status"
    enum="SecureConnectPolicyApiStatus" expires_after="2024-12-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of secure connect api call made to download the value for
    SecondaryAccountAllowedInArc policy. This is recorded when a user account is
    added as a secondary account (in-session).
  </summary>
</histogram>

<histogram name="Arc.Policy.SecondaryAccountAllowedInArc.TimeDelta" units="ms"
    expires_after="2024-12-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Latency of a SecondaryAccountAllowedInArc policy fetch request. This
    measures the amount of time required to fetch the policy value of
    SecondaryAccountAllowedInArc from the Secure Connect API. This is recorded
    when a user account is added as a secondary account (in-session).
  </summary>
</histogram>

<histogram name="Arc.Policy.SecondaryAccountAllowedInArc.Value" enum="Boolean"
    expires_after="2024-12-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the value of SecondaryAccountAllowedInArc policy. This is recorded
    when a user account is added as a secondary account (in-session). Only
    recorded on successful policy fetch.
  </summary>
</histogram>

<histogram name="Arc.PrintPreview.PreviewEvent" enum="PrintPreviewHelperEvents"
    expires_after="2025-02-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Print preview events for ARC. Recorded when specific print preview events
    occur (print preview requested, preview document created, etc.).
  </summary>
</histogram>

<histogram name="Arc.PrintPreview.RendererError" enum="PrintPreviewFailureType"
    expires_after="2025-02-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count how frequently a set of pre-defined print preview errors occur for
    ARC.
  </summary>
</histogram>

<histogram name="Arc.Provisioning.CheckinResult{ArcUserTypes}"
    enum="ArcProvisioningCheckinResult" expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success or the reason of failure) of GMS check-in operation.
    Recorded when ARC++ provisioning flow completes. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Provisioning.DeviceAffiliationAction"
    enum="UnaffiliatedDeviceArcAllowedStatus" expires_after="2024-10-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when ARC is allowed on unaffiliated and affiliated devices and
    disallowed on unaffiliated devices depending on UnaffiliatedDeviceArcAllowed
    policy.
  </summary>
</histogram>

<histogram name="Arc.Provisioning.DpcResult{ArcUserTypes}"
    enum="ArcProvisioningDpcResult" expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success or the reason of failure) of Cloud DPC provisioning.
    Recorded when ARC++ provisioning flow completes. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Provisioning.PreSignIn.TimeDelta{ArcUserTypes}" units="ms"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the signing in process start to right before GMS sign-in
    or CloudDPC provisioning. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Provisioning.SigninResult{ArcUserTypes}"
    enum="ArcProvisioningSigninResult" expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success or the reason of failure) of GMS sign-in operation.
    Recorded when ARC++ provisioning flow completes. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Provisioning.Status{ArcUserTypes}"
    enum="ArcProvisioningStatus" expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status (success or error) of ARC++ provisioning. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.Provisioning.TimeDelta.Failure{ArcUserTypes}" units="ms"
    expires_after="2025-08-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the signing in process start to call to onSignInFailed.
    Warning: this histogram was expired from 2022-11-01 to 2023-03-08; data may
    be missing. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Provisioning.TimeDelta.Success{ArcUserTypes}" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the signing in process start to successful call to
    onSignInComplete. Warning: this histogram was expired from 2022-11-01 to
    2023-03-08; data may be missing. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Reauthorization.Result{ArcUserTypes}"
    enum="ArcProvisioningStatus" expires_after="2025-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success or the type of failure) of ARC reauthorization.
    {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Arc.Runtime.Performance.CommitDeviation2{ArcPerformanceAppCategories}"
    units="microseconds" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Standard deviation for commit time delta from ideal time. Only collected if
    the user has app syncing enabled and doesn't have a custom passphrase set.
    This metric is reported for all clients. {ArcPerformanceAppCategories}.
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Runtime.Performance.FPS2{ArcPerformanceAppCategories}"
    units="fps" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Render frames per second. Only collected if the user has app syncing enabled
    and doesn't have a custom passphrase set. {ArcPerformanceAppCategories}
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Runtime.Performance.Generic.FirstFrameRendered" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time (in ms) between an app launch request and the detection of the first
    rendered frame. Recorded when the frame is detected by the first commit to
    the Exo surface.
  </summary>
</histogram>

<histogram name="Arc.Runtime.Performance.Generic.FrameTime" units="ms"
    expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    95 percent of the frames in the first 5 minutes after app launch took
    shorter time (in ms) than this value.
  </summary>
</histogram>

<histogram name="Arc.Runtime.Performance.Generic.Jankiness" units="%"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Percentage ratio of janky frames to total frames recorded in a 5 minute
    interval.
  </summary>
</histogram>

<histogram
    name="Arc.Runtime.Performance.JanksPercentage2{ArcPerformanceAppCategories}"
    units="%" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Percentage of the number of present frames during the tracing period which
    contain UI janks. A jank is defined as a displayed frame with duration
    longer than the normal display rate by 190%. {ArcPerformanceAppCategories}
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Arc.Runtime.Performance.JanksPerMinute2{ArcPerformanceAppCategories}"
    units="count" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Count of the number of UI janks per minute that occured during the tracing
    period. A jank is defined as a displayed frame with duration longer than the
    normal display rate by 190%. {ArcPerformanceAppCategories}
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Arc.Runtime.Performance.PerceivedFPS2{ArcPerformanceAppCategories}"
    units="fps" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Render frames per second, not considering frames which exo could not
    present. Only collected if the user has app syncing enabled and doesn't have
    a custom passphrase set. {ArcPerformanceAppCategories}
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Arc.Runtime.Performance.PresentDeviation2{ArcPerformanceAppCategories}"
    units="microseconds" expires_after="2024-07-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Standard deviation for present time delta from ideal time. Only collected if
    the user has app syncing enabled and doesn't have a custom passphrase set.
    This metric is reported for all clients. {ArcPerformanceAppCategories}
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Arc.Runtime.Performance.RenderQuality2{ArcPerformanceAppCategories}"
    units="%" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Render quality with maximum 100%. Only collected if the user has app syncing
    enabled and doesn't have a custom passphrase set.
    {ArcPerformanceAppCategories}
  </summary>
  <token key="ArcPerformanceAppCategories"
      variants="ArcPerformanceAppCategories">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.SdkVersionUpgradeType" enum="ArcSdkVersionUpgradeType"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The types of ARC SDK version upgrade. (e.g. Upgrade from N to P) Reported
    when SDK version upgrade is detected during ARC boot.
  </summary>
</histogram>

<histogram name="Arc.Secondary.Signin.Result" enum="ArcProvisioningStatus"
    expires_after="never">
<!-- expires-never: Needed for long-term health monitoring of ARC provisioning. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success or the type of failure) of ARC Secondary Account signin/
    reauthorization.
  </summary>
</histogram>

<histogram name="Arc.Session.HasWebViewUsage" enum="Boolean"
    expires_after="2023-12-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    True if there has been a WebView usage in an ARC session. This is recorded
    when an ARC session is stopped.
  </summary>
</histogram>

<histogram name="Arc.Session.MojoDisconnection{ArcUserTypes}"
    enum="ArcMojoConnectionType" expires_after="2022-11-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This is updated when the mojo connections to processes in detailing in
    ArcMojoConnectionType are closed for reasons other than the ARC container
    shutting down or crashing. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Session.StopReason{ArcUserTypes}" enum="ArcStopReason"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This is updated in case ARC++ stops for the reasons detailed in
    ArcStopReason. For example, this is recorded in case of a graceful ARC++
    shutdown or if ARC++ crashes. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.State" enum="BooleanEnabled" expires_after="never">
<!-- expires-never: used internally for filtering -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether ARC is enabled or not. Before M56 this was collected only on login
    and when ARC was enabled or disabled. From M56 forward this is collected
    during every metrics recording interval, so it is in every record uploaded
    to the server (despite crbug.com/929583 which was fixed in M73). This is
    required because this value is used to categorize all other data in the
    dashboard as collected with ARC enabled or not. This is true even for users
    who are running on ecryptfs and skipped Ext4 migration; even though ARC Apps
    do not run until migration is complete on N or later systems. Since M74 this
    is also included in initial stability logs.
  </summary>
</histogram>

<histogram name="Arc.StateByUserType{ArcUserTypes}" enum="ArcEnableState"
    expires_after="2023-06-07">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Similar to &quot;Arc.State&quot; metric but has separation by user type.
    {ArcUserTypes}

    Warning: this histogram was expired after 2022-03-05 and brought back
    2022-12-07; data may be missing.
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Supervision.Transition.Result"
    enum="ArcSupervisionTransitionResult" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result (success or the type of failure) of ARC supervision transition
    events.
  </summary>
</histogram>

<histogram name="Arc.Supervision.Transition.Screen.Success.TimeDelta"
    units="ms" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time for a successful supervision transition, during which the
    supervision transition screen was displayed.
  </summary>
</histogram>

<histogram name="Arc.Supervision.Transition.Screen.Successful"
    enum="BooleanSuccess" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether supervision transition screen exited due to a successful transition.
  </summary>
</histogram>

<histogram name="Arc.SystemHealth.Upgrade.PackagesDeleted"
    enum="BooleanDeletedOrNot" expires_after="2025-08-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether system package updates were deleted during ARC upgrade.
  </summary>
</histogram>

<histogram name="Arc.SystemHealth.Upgrade.TimeDelta" units="ms"
    expires_after="2025-08-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time taken by ARC System Health Service to run upgrade hygiene tasks.
  </summary>
</histogram>

<histogram name="Arc.UiAvailable.AlreadyProvisioned.TimeDelta{ArcUserTypes}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when ARC++ is started in already provisioned state to
    when the ARC is available for the user. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.UiAvailable.InSessionProvisioning.TimeDelta{ArcUserTypes}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when ARC++ is opted in from the user's session to when
    the ARC is available for the user. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.UiAvailable.OobeProvisioning.TimeDelta{ArcUserTypes}"
    units="ms" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the when ARC++ is opted in from OOBE to when the ARC is
    available for the user. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.UserInteraction" enum="ArcUserInteraction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts user interactions with ARC by type, such as ARC app launches via the
    shelf or launcher.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.AccessDeniedAtOpenSourceFileFailureType"
    enum="ArcVmDataMigrationAccessDeniedAtOpenFileFailureType"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The detailed cause of an access denied error at opening a source file during
    ARCVM /data migration. Reported each time when the migrator encounters such
    an error.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.AutoResumeCount" units="count"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times ARCVM /data migration has been automatically resumed.
    This is reported when an auto-resume is triggered, or the maximum number of
    auto-resumes has been hit for the first time. The value 0 means that no
    auto-resume has been attempted, and the first auto-resume will be triggered
    right after the event. Samples in the overflow bucket means that the maximum
    number of auto-resumes has been reached but the migration is not finished
    yet, in which case auto-resume is disabled and the user needs to manually
    resume the migration. Each value should be recorded at most once per user.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.BatteryConsumption" units="%"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of decrease in battery level during ARCVM /data migration,
    defined by the battery level at the beginning of the migration minus the
    lowest battery level observed during the migration. Reported at the end of
    successful migrations. 0 is reported if the battery level has always been
    higher than that at the beginning of the migration.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.DesiredDiskImageSizeInGB.{SatisfiedOrNot}"
    units="GB" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The desired disk image size for the destination of ARCVM /data migration.
    Reported each time the initial screen is shown and the free disk space
    requirement is {SatisfiedOrNot}.
  </summary>
  <token key="SatisfiedOrNot">
    <variant name="Satisfied" summary="satisfied"/>
    <variant name="Unsatisfied" summary="not satisfied"/>
  </token>
</histogram>

<histogram name="Arc.VmDataMigration.Duration" units="seconds"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Duration of the ARCVM /data migration. This is reported once when a newly
    started migration is completed.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.EndStatus"
    enum="CrOSFileSystemMigrationEndStatus" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of ARCVM /data migration when it ends. This is reported when a
    migration finishes successfully, fails, or gets cancelled halfway.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.FailedErrorCode" enum="PlatformFileError"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The error code of a file operation failure that caused the ARCVM /data
    migration to fail. Reported when a migration thread encounters a file
    operation error. This can be reported multiple times for a migration when
    multiple threads fail at around the same time.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.FailedOperationType"
    enum="CrOSFileSystemMigrationFailedOperationType"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of file operation at which the ARCVM /data migration failed.
    Reported when a migration thread encounters a file operation error. This can
    be reported multiple times for a migration when multiple threads fail at
    around the same time.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.FailedPathType"
    enum="ArcVmDataMigrationFailedPathType" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The location of files at which ARCVM /data migration failed. Reported when a
    migration thread encounters a file operation error. This can be reported
    multiple times for a migration when multiple threads fail at around the same
    time.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.GetAndroidDataInfoDuration" units="ms"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time taken for ArcVmDataMigrator's D-Bus method GetAndroidDataInfo to
    return a result, measured from the caller (Chrome) side. Reported every time
    the migration welcome screen is being set up.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.InitialBatteryLevel" units="%"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The battery level when the user enters the UX flow of ARCVM /data migration.
    This is reported for both new migrations and resumed migrations.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.InitialFreeSpace" units="MB"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total amount of free disk space on the system when a new or resumed
    ARCVM /data migration is started. Reported when a migration failed with
    ENOSPC (no space error).
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.MigrationFinishReason{ArcUserTypes}"
    enum="ArcVmDataMigrationFinishReason" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason why ARCVM /data migration is marked as finished. {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.VmDataMigration.MigrationStatusOnArcStarted{ArcUserTypes}"
    enum="ArcVmDataMigrationStatus" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of ARCVM /data migration at the beginning of each ARC session.
    {ArcUserTypes}
  </summary>
  <token key="ArcUserTypes" variants="ArcUserTypes"/>
</histogram>

<histogram name="Arc.VmDataMigration.NoSpaceFailureFreeSpace" units="MB"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total amount of free disk space on the system when the user encounters
    ENOSPC (no space error) during ARCVM /data migration. Reported when a
    migration failed with ENOSPC.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.NoSpaceXattrSize" units="bytes"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total number of bytes of xattr data that we are trying to store on a
    file when we encounter an ENOSPC (no space error) during ARCVM /data
    migration. This includes both the xattr data already present on the file as
    well as the new xattr we are trying to set. Reported when a migration thread
    encounters ENOSPC on setting a new xattr. This can be reported multiple
    times for a migration when multiple threads fail at around the same time.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.NotificationShownForTheFirstTime"
    enum="BooleanEnabled" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts the number of events that the notification for ARCVM /data migration
    is shown for the first first time for the user.
  </summary>
</histogram>

<histogram
    name="Arc.VmDataMigration.RemainingDays.{ArcVmDataMigrationFrontEndEvents}"
    units="days" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of days until the deadline displayed in the notification or the
    confirmation dialog of ARCVM /data migration. The value is initialized as 30
    when the notification is shown for the first time, and decremented until it
    reaches the minimum value 1. When it reaches the minimum value, it means
    that the migration should be performed in the same day and should not be
    dismissed, so the notification and the dialog become nondismissible.
    Reported when {ArcVmDataMigrationFrontEndEvents}.
  </summary>
  <token key="ArcVmDataMigrationFrontEndEvents">
    <variant name="ConfirmationDialogAccepted"
        summary="the accept button of the confirmation dialog is clicked"/>
    <variant name="ConfirmationDialogCanceled"
        summary="the cancel button of the confirmation dialog is clicked"/>
    <variant name="ConfirmationDialogShown"
        summary="the confirmation dialog is shown"/>
    <variant name="NotificationShown" summary="the notification is shown"/>
  </token>
</histogram>

<histogram
    name="Arc.VmDataMigration.RequiredFreeDiskSpaceInGB.{SatisfiedOrNot}"
    units="GB" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The size of free disk space required for the ARCVM /data migration. Reported
    each time the initial screen is shown and the free disk space requirement is
    {SatisfiedOrNot}.
  </summary>
  <token key="SatisfiedOrNot">
    <variant name="Satisfied" summary="satisfied"/>
    <variant name="Unsatisfied" summary="not satisfied"/>
  </token>
</histogram>

<histogram name="Arc.VmDataMigration.ResumeNotificationShown"
    enum="BooleanEnabled" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts how many times the notification for resuming ARCVM /data migration is
    shown while the migration is in progress. The notification is shown (and
    thus the event is reported) only when auto-resume is disabled after the
    maximum number of auto-resumes has been reached but the migration has not
    finished yet.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.ScreenEvent.On{ArcVmDataMigrationType}"
    enum="ArcVmDataMigrationScreenEvent" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records events happening in the screen flow of ARCVM /data migration.
    Recorded when an event happens during a {ArcVmDataMigrationType}.
  </summary>
  <token key="ArcVmDataMigrationType" variants="ArcVmDataMigrationType"/>
</histogram>

<histogram
    name="Arc.VmDataMigration.ScreenInitialState.On{ArcVmDataMigrationType}"
    enum="ArcVmDataMigrationScreenInitialState" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The initial state of the screen flow of ARCVM /data migration. Recorded at
    the beginning of each {ArcVmDataMigrationType}.
  </summary>
  <token key="ArcVmDataMigrationType" variants="ArcVmDataMigrationType"/>
</histogram>

<histogram
    name="Arc.VmDataMigration.ScreenSetupFailure.On{ArcVmDataMigrationType}"
    enum="ArcVmDataMigrationScreenSetupFailure" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records failures in the setup phase of the screen flow of ARCVM /data
    migration. Recorded when a failure happens during a
    {ArcVmDataMigrationType}.
  </summary>
  <token key="ArcVmDataMigrationType" variants="ArcVmDataMigrationType"/>
</histogram>

<histogram name="Arc.VmDataMigration.SetupResult"
    enum="ArcVmDataMigrationSetupResult" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of the setup of ARCVM /data migration. Reported before triggering
    the migration tool.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.StartStatus"
    enum="CrOSFileSystemMigrationStartStatus" expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The status of ARCVM /data migration when it starts. This is reported when a
    new migration or a resumed migration is started.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.TotalFiles" units="files"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total number of files to be migrated in ARCVM /data migration. Reported once
    at the beginning of a new migration.
  </summary>
</histogram>

<histogram name="Arc.VmDataMigration.TotalSizeMB" units="MB"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Total bytes to be migrated in ARCVM /data migration. Reported once at the
    beginning of a new migration.
  </summary>
</histogram>

<histogram name="Arc.VmmSwappedOut" enum="VmmSwapOutState"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the ARCVM vmm swap status (ARCVM not swapped / ARCVM has been vmm
    swapped). &quot;vmm swap&quot; means a part of the ARCVM memory lives in
    ChromeOS side disk and will be automatically swap back when vCPU access it.
    The recorded &quot;Swapped Out&quot; state means the ARCVM is in the swapped
    out state at the end of the recording interval. Collected during every
    metrics recording interval if ARCVM is running. Caveat: The metric will be
    logged in every UMA record, except the data about the previous session.
  </summary>
</histogram>

<histogram name="Arc.VpnServiceBuilderCompatApisCounter"
    enum="VpnServiceBuilderCompatApisList" expires_after="2024-09-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of times an API for adding and excluding route in VPN is
    called from ChromeOS Vpn Service Builder Compat Library.
  </summary>
</histogram>

<histogram name="Arc.Wakeup.{DeviceType}" units="ms" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Every time a {DeviceType} device wakes ARCVM up from a sleep state (e.g.
    s2idle), records how long ARCVM was in that sleep state before being woken
    up.
  </summary>
  <token key="DeviceType" variants="DeviceType"/>
</histogram>

<histogram name="Arc.WallpaperApiUsage" enum="ArcWallpaperApi"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of times an API for getting / setting wallpaper from
    Android is called.
  </summary>
</histogram>

<histogram name="Arc.Wayland.LateTiming.Duration{WaylandEventType}" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration of the Wayland client event processing time in ARC. This metric
    is recorded when the processing end time is late or the duration exceeded
    the expected timing threshold for a {WaylandEventType}.
  </summary>
  <token key="WaylandEventType" variants="WaylandEventType">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Arc.Wayland.LateTiming.Event" enum="WaylandTimingEvent"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Wayland client event message type in ARC. This metric is recorded when the
    message processing end time is late or the duration exceeded the expected
    timing threshold.
  </summary>
</histogram>

<histogram name="Arc.WindowPredictorLaunch" enum="WindowPredictorLaunchType"
    expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of ARC app ghost window launches by ArcWindowPredictor. Counted when
    user manually launches ARC app when ARC is still in boot stage.
  </summary>
</histogram>

<histogram name="Arc.WindowPredictorUseCase" enum="WindowPredictorUseCase"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of each use case of window predictor. Recorded when the
    window perdictor called to launch ARC ghost window intentionally.
  </summary>
</histogram>

<histogram name="Arc.WM.AppErrorDialog.Type" enum="AppErrorDialogType"
    expires_after="2024-12-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of each AppErrorDialogType when an app error dialog is
    shown to the user.
  </summary>
</histogram>

<histogram name="Arc.WM.WindowClosedDelayTimeV2.ArcApp" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time elapsed from a window closing operation until the window is
    destroyed. The data is collected once when a closing operation happens.
  </summary>
</histogram>

<histogram name="Arc.WM.WindowDragResizeTime" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time of handling each bounds changing request of drag resizing
    operation. The data is collected when ARC window drag resizing operation
    happens. Note that this metric might be recorded multiple times for a single
    drag operation if multiple bounds changing requests occur in one drag
    operation.
  </summary>
</histogram>

<histogram name="Arc.WM.WindowEnterTabletModeDelayTimeV2.{ChromeOSAppType}"
    units="ms" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time elapsed from entering the tablet mode until the window
    state is changed to be maximized in tablet mode. The data is only collected
    for the top window shown in tablet mode.
  </summary>
  <token key="ChromeOSAppType" variants="ChromeOSAppType"/>
</histogram>

<histogram name="Arc.WM.WindowExitTabletModeDelayTimeV2.{ChromeOSAppType}"
    units="ms" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time elapsed from exiting the tablet mode until the window state
    is changed to be normal in clamshell mode. The data is only collected for
    the top window shown in tablet mode.
  </summary>
  <token key="ChromeOSAppType" variants="ChromeOSAppType"/>
</histogram>

<histogram name="Arc.WM.WindowMaximizedDelayTimeV2.{ChromeOSAppType}"
    units="ms" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time elapsed from a window maximizing operation until the window
    state is changed to be maximized. The data is collected once when a
    maximizing operation happens.
  </summary>
  <token key="ChromeOSAppType" variants="ChromeOSAppType"/>
</histogram>

<histogram name="Arc.WM.WindowMinimizedDelayTime.{ChromeOSAppType}" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time elapsed from window minimizing operation until the window
    state is changed to be minimized. The data is collected once when a
    minimizing operation happens.
  </summary>
  <token key="ChromeOSAppType" variants="ChromeOSAppType"/>
</histogram>

<histogram name="Arc.WM.WindowRotateDelayTime.{ChromeOSAppType}" units="ms"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time elapsed from display rotates in tablet mode until the
    window bounds is changed. The data is only collected for the top maximized
    window shown in tablet mode.
  </summary>
  <token key="ChromeOSAppType" variants="ChromeOSAppType"/>
</histogram>

</histograms>

</histogram-configuration>