chromium/tools/metrics/histograms/metadata/apps/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 Apps 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>

<!-- LINT.IfChange(AshDisplayModes) -->

<variants name="AppDisplayModes">
  <variant name="ClamshellMode" summary="Clamshell mode"/>
  <variant name="TabletMode" summary="Tablet mode"/>
</variants>

<!-- LINT.ThenChange(//tools/metrics/histograms/metadata/ash/histograms.xml:AshDisplayModes) -->

<variants name="AppInstallSurface">
  <variant name="" summary="All surfaces"/>
  <variant name=".AppInstallUriGetit" summary="URI navigation from Getit"/>
  <variant name=".AppInstallUriLauncher"
      summary="URI navigation from Launcher"/>
  <variant name=".AppInstallUriMall" summary="URI navigation from Mall"/>
  <variant name=".AppInstallUriPeripherals"
      summary="URI navigation from peripherals"/>
  <variant name=".AppInstallUriShowoff" summary="URI navigation from Showoff"/>
  <variant name=".AppInstallUriUnknown" summary="URI navigation from unknown"/>
  <variant name=".AppPreloadServiceDefault" summary="Default preload"/>
  <variant name=".AppPreloadServiceOem" summary="OEM preload"/>
  <variant name=".OobeAppRecommendations" summary="OOBE app recommendations"/>
</variants>

<variants name="AppType">
  <variant name="Arc" summary="Android apps"/>
  <variant name="Borealis" summary="Borealis apps"/>
  <variant name="Bruschetta" summary="Bruschetta apps"/>
  <variant name="BuiltIn" summary="BuiltIn apps"/>
  <variant name="ChromeApp" summary="Chrome apps"/>
  <variant name="ChromeBrowser" summary="Chrome browsers"/>
  <variant name="Crostini" summary="Crostini apps"/>
  <variant name="Extension" summary="Browser extensions"/>
  <variant name="PluginVm" summary="Plugin VM app"/>
  <variant name="RemoteApp" summary="Remote apps"/>
  <variant name="StandaloneBrowser" summary="Standalone browsers"/>
  <variant name="StandaloneBrowserChromeApp"
      summary="Chrome apps hosted by lacros."/>
  <variant name="StandaloneBrowserExtension"
      summary="Extension hosted by lacros."/>
  <variant name="StandaloneBrowserWebApp" summary="Web apps hosted by lacros."/>
  <variant name="SystemWebApp" summary="System web apps"/>
  <variant name="WebApp" summary="Web apps"/>
</variants>

<variants name="AppTypeV2">
  <variant name="Arc" summary="Android apps"/>
  <variant name="Borealis" summary="Borealis apps"/>
  <variant name="Bruschetta" summary="Bruschetta apps"/>
  <variant name="BuiltIn" summary="BuiltIn apps"/>
  <variant name="ChromeAppTab" summary="Chrome apps opened in tabs"/>
  <variant name="ChromeAppWindow"
      summary="Chrome apps opened in standalone windows"/>
  <variant name="ChromeBrowser" summary="Chrome browsers"/>
  <variant name="Crostini" summary="Crostini apps"/>
  <variant name="Extension" summary="Browser extensions"/>
  <variant name="PluginVm" summary="Plugin VM app"/>
  <variant name="RemoteApp" summary="Remote apps"/>
  <variant name="StandaloneBrowser" summary="Standalone browsers"/>
  <variant name="StandaloneBrowserChromeApp"
      summary="Chrome apps hosted by lacros."/>
  <variant name="StandaloneBrowserChromeAppTab"
      summary="Chrome apps opened in Standalone browser tabs."/>
  <variant name="StandaloneBrowserChromeAppWindow"
      summary="Chrome apps opened in Standalone browser windows."/>
  <variant name="StandaloneBrowserExtension"
      summary="Extension hosted by lacros."/>
  <variant name="StandaloneBrowserWebAppTab"
      summary="Web apps opened in Standalone browser tabs."/>
  <variant name="StandaloneBrowserWebAppWindow"
      summary="Web apps opened in Standalone browser windows."/>
  <variant name="SystemWebApp" summary="System web apps"/>
  <variant name="WebAppTab" summary="Web apps opened in tabs"/>
  <variant name="WebAppWindow" summary="Web apps opened in standalone windows"/>
</variants>

<variants name="AppUIComponent">
  <variant name=".AppsCollections" summary="Apps Collections"/>
  <variant name=".Desktop" summary="Desktop"/>
  <variant name=".ProductivityLauncherAppGrid"
      summary="App - Productivity Launcher"/>
  <variant name=".ProductivityLauncherRecentApp"
      summary="Recent App, Productivity Launcher"/>
  <variant name=".Shelf" summary="Shelf"/>
  <variant name=".ShelfButton" summary="ShelfButton"/>
</variants>

<variants name="HomeLauncherVisibility">
  <variant name=".ClamshellMode.LauncherHidden"
      summary="Home Launcher was hidden during this animation on clamshell
               mode."/>
  <variant name=".ClamshellMode.LauncherVisible"
      summary="Home Launcher was visible during this animation on clamshell
               mode."/>
  <variant name=".TabletMode.LauncherHidden"
      summary="Home Launcher was hidden during this animation on tablet mode."/>
  <variant name=".TabletMode.LauncherVisible"
      summary="Home Launcher was visible during this animation on tablet
               mode."/>
</variants>

<variants name="InstallReason">
  <variant name="CommandLine" summary="Installed by a command line argument"/>
  <variant name="Kiosk" summary="Installed by Kiosk on Chrome OS"/>
  <variant name="Oem" summary="Installed by an OEM"/>
  <variant name="Policy" summary="Installed by policy"/>
  <variant name="Preload" summary="Preinstalled by default"/>
  <variant name="SubApp" summary="Installed by SubApp API"/>
  <variant name="Sync" summary="Installed by sync"/>
  <variant name="System" summary="Installed with the system"/>
  <variant name="Unknown" summary="Installed with unknown source"/>
  <variant name="User" summary="Installed by user"/>
</variants>

<variants name="LauncherSearchEntryPoint">
  <variant name="HomeButton"
      summary="Open launcher by activationg home button"/>
  <variant name="Others" summary="Open launcher using a source we don't track"/>
  <variant name="Scroll" summary="Open launcher by scrolling on the shelf"/>
  <variant name="SearchKey" summary="Open launcher by pressing search key"/>
  <variant name="Swipe" summary="Open launcher by swiping on the shelf"/>
</variants>

<!-- LINT.IfChange(LauncherSearchSessionConclusion) -->

<variants name="LauncherSearchSessionConclusionVariants">
  <variant name="" summary="All variants"/>
  <variant name=".AnswerCardSeen"
      summary="An answer card makes an impression then launcher is dismissed"/>
  <variant name=".Launch" summary="A result is launched"/>
  <variant name=".Quit" summary="Launcher is dismissed"/>
</variants>

<!-- LINT.ThenChange(//ash/public/cpp/app_list/app_list_metrics.cc:SearchSessionConclusion) -->

<variants name="LauncherUISurface">
  <variant name=".AppsSearch" summary="App tiles search"/>
  <variant name=".AppsZeroState" summary="App tiles zero-state"/>
  <variant name=".Chip" summary="Suggestion chips"/>
  <variant name=".ListSearch" summary="Results list search"/>
  <variant name=".ListZeroState" summary="Results list zero-state"/>
</variants>

<variants name="SearchAction">
  <variant name="Abandon" summary="abandon"/>
  <variant name="Ignore" summary="ignore"/>
  <variant name="Impression" summary="impression"/>
  <variant name="Launch" summary="launch"/>
</variants>

<variants name="SearchCategory">
  <variant name="Apps" summary="installed apps"/>
  <variant name="AppShortcut" summary="shortcut for installed apps"/>
  <variant name="Files" summary="local and Google Drive files"/>
  <variant name="Games" summary="system settings"/>
  <variant name="Helps" summary="help articles"/>
  <variant name="Images" summary="image results"/>
  <variant name="PlayStore" summary="play store suggestions"/>
  <variant name="Web" summary="webpages"/>
</variants>

<variants name="SearchFileExtension">
  <variant name="Jpeg" summary="jpeg"/>
  <variant name="Jpg" summary="jpg"/>
  <variant name="Png" summary="png"/>
  <variant name="Total" summary="total number of files"/>
  <variant name="Webp" summary="webp"/>
</variants>

<variants name="SearchView">
  <variant name="AnswerCard" summary="answer card"/>
  <variant name="AppsSearch" summary="app tiles search"/>
  <variant name="AppsZeroState" summary="app tiles zero-state"/>
  <variant name="Chip" summary="suggestion chips"/>
  <variant name="Continue" summary="continue section"/>
  <variant name="Image" summary="local image search"/>
  <variant name="ListSearch" summary="results list search"/>
  <variant name="ListZeroState" summary="results list zero-state"/>
  <variant name="RecentApps" summary="recent apps row"/>
</variants>

<variants name="TabletOrClamshellMode">
  <variant name=".ClamshellMode" summary="Clamshell Mode Enabled"/>
  <variant name=".TabletMode" summary="Tablet Mode Enabled"/>
</variants>

<histogram name="AppManagement.AppDetailViews" enum="AppManagementUserAction"
    expires_after="2025-01-26">
<!-- Name completed by histogram_suffixes name="AppType" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The actions taken by the user when they are viewing the app details of an
    app in App Management (chrome://os-settings/app-management). On
    Windows/Linux/MacOS AppManagement.AppDetailViews.WebApp is the view on
    chrome://app-settings page.
  </summary>
</histogram>

<histogram name="AppManagement.EntryPoints" enum="AppManagementEntryPoint"
    expires_after="2024-05-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The ways the user opens up the App Management interface.</summary>
</histogram>

<histogram name="AppPreloadService.FirstLoginFlowTime.{Status}" units="ms"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time it takes for the first login flow of the App Preload service to
    complete with the final status of {Status}.

    This metric is recorded when the user logs in for the first time on a device
    and the App Preload service kicks off the first login flow.
  </summary>
  <token key="Status">
    <variant name="Failure" summary="First login flow completed in failure"/>
    <variant name="Success" summary="First login flow completed successfully"/>
  </token>
</histogram>

<histogram name="AppPreloadService.ServerResponseCodes"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-12-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The combined http and net error codes the App Provisioning Server responds
    with after a request is made.
  </summary>
</histogram>

<histogram name="Apps.ActivatedCount.{AppType}" units="units"
    expires_after="2022-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded the app window activated times for {AppType} in Chrome OS. This is
    logged when more than 24 hours pass after last log, or during the system
    startup phase if more than 24 hours passed after last log.
  </summary>
  <token key="AppType" variants="AppType"/>
</histogram>

<histogram name="Apps.AppDiscovery.MallUsageTime" units="ms"
    expires_after="2025-03-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the Mall running duration in Chrome OS for the last 2 hours. This is
    logged every 2 hours, and on shutdown.
  </summary>
</histogram>

<histogram name="Apps.AppDiscovery.Uninstall" enum="AppType"
    expires_after="2025-03-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records when an app is uninstalled, grouped by app type.</summary>
</histogram>

<histogram name="Apps.AppDiscovery.{InstallReason}.Install" enum="AppType"
    expires_after="2025-03-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records when an app is installed for InstallReason {InstallReason}, grouped
    by app type.
  </summary>
  <token key="InstallReason" variants="InstallReason"/>
</histogram>

<histogram name="Apps.AppInfoDialog.CreateWebAppShortcutSuccess" enum="Boolean"
    expires_after="2024-02-11">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of creating shortcuts for a WebApp, specifically from the
    user clicking on &quot;Create Shortcut&quot; on the chrome://apps page, in
    the right click menu of the respective WebApp icon.
  </summary>
</histogram>

<histogram name="Apps.AppInstallParentWindowFound" enum="Boolean"
    expires_after="2025-01-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of attempting to find a parent window for the spawned
    AppInstallDialog when attempting to install an app from an almanac:// URL in
    Lacros.
  </summary>
</histogram>

<histogram name="Apps.AppInstallService.AppInstallResult{AppInstallSurface}"
    enum="AppInstallResult" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of a request to install an app via AppInstallService for
    a given install surface.
  </summary>
  <token key="AppInstallSurface" variants="AppInstallSurface"/>
</histogram>

<histogram
    name="Apps.AppInstallService.ArcAppInstaller.InstallResult{AppInstallSurface}"
    enum="ArcAppInstallResultCode" expires_after="2025-01-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The overall result of installing an arc app through the App Install Service
    for a given install surface.
  </summary>
  <token key="AppInstallSurface" variants="AppInstallSurface"/>
</histogram>

<histogram
    name="Apps.AppInstallService.WebAppInstaller.CommandResultCode{AppInstallSurface}"
    enum="WebAppInstallResultCode" expires_after="2025-01-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result code of the web app install command used to install a web app
    through the App Install Service for a given install surface. This gives
    specific detail about errors within the web apps system.
  </summary>
  <token key="AppInstallSurface" variants="AppInstallSurface"/>
</histogram>

<histogram
    name="Apps.AppInstallService.WebAppInstaller.InstallResult{AppInstallSurface}"
    enum="WebAppInstallResultCode" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The overall result of installing a web app through the App Install Service
    for a given install surface.
  </summary>
  <token key="AppInstallSurface" variants="AppInstallSurface"/>
</histogram>

<histogram name="Apps.AppLaunch" enum="AppLaunch" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times v2 packaged apps are launched grouped by
    extension_misc::AppLaunchBuckets. See also Extensions.AppLaunch.
  </summary>
</histogram>

<histogram name="Apps.AppLaunchPerAppType" enum="AppType"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records an app launch grouped by app type. This is recorded when an app is
    launched.
  </summary>
</histogram>

<histogram name="Apps.AppLaunchPerAppTypeV2" enum="AppTypeV2"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records an app launch grouped by app type V2. This is recorded when an app
    is launched.
  </summary>
</histogram>

<histogram name="Apps.AppLaunchSource" enum="LaunchSource"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records an app launch grouped by launch source.</summary>
</histogram>

<histogram name="Apps.AppList.AggregatedMlAppRankFail" units="units"
    expires_after="M92">
  <owner>[email protected]</owner>
  <summary>
    The number of apps the were not able to be ranked by the Aggregated ML app
    ranker (Top Cat).
  </summary>
</histogram>

<histogram name="Apps.AppList.AggregatedMlAppRankSuccess" units="units"
    expires_after="M92">
  <owner>[email protected]</owner>
  <summary>
    The number of apps successfully ranked by the Aggregated ML app ranker (Top
    Cat).
  </summary>
</histogram>

<histogram name="Apps.AppList.AggregatedSearchRankerError"
    enum="AggregatedSearchRankerError" expires_after="2020-12-01">
  <owner>[email protected]</owner>
  <summary>
    The type of errors that occur during the inference of Search Ranking
    aggregated model.
  </summary>
</histogram>

<histogram name="Apps.AppList.AnnotationStorage.DatabaseSize" units="MB"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the size of the SQLite database in MB. Emitted when tha database
    initialization is complete.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnnotationStorage.ImageAnnotationWorker.ImageContentAnnotator.NumberOfRetries"
    units="count" expires_after="2024-10-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of retries that has taken place before ICA DLC is ready.
    Reported once each time the ICA DLC is successfully loaded.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnnotationStorage.ImageAnnotationWorker.ImageContentAnnotator.Status"
    enum="ImageContentAnnotatorStatus" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    To track the errors that may occur during the DLC installation. Logged once
    per installation.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnnotationStorage.ImageAnnotationWorker.IndexingStatus"
    enum="ImageAnnotationWorkerIndexingStatus" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records status of image annotation worker indexing. Logged when the indexing
    starts and when it succeeds. The bucket proportion is not meaningful as
    there is overlapping between ICA and OCR processing. Instead, the bucket
    ratio can be used to calculate the DLC processing success rate.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnnotationStorage.ImageAnnotationWorker.QueueNumberOfObjectsToProcess"
    units="units" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of objects in the queue at the moment of poping the top. The max
    value is 100k. It is usefull to check for the upper bound.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnnotationStorage.ImageAnnotationWorker.QueueProcessingTime"
    units="ms" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time passed to process the whole image queue. The max value is 1h, 100
    buckets.
  </summary>
</histogram>

<histogram name="Apps.AppList.AnnotationStorage.ImageAnnotationWorker.Status"
    enum="ImageAnnotationWorkerStatus" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of errors that occur in the annotation worker. Logged once per
    error.
  </summary>
</histogram>

<histogram name="Apps.AppList.AnnotationStorage.SqlDatabase.Status"
    enum="SqlDatabaseStatus" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of errors that occur in the SQLite. Logged once per error.
  </summary>
</histogram>

<histogram name="Apps.AppList.AnnotationStorage.Status"
    enum="AnnotationStorageStatus" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of errors that occur in storage. Logged once per error.
  </summary>
</histogram>

<histogram name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerLoadingTime"
    units="ms" expires_after="2021-03-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending an answer card request and receiving the
    notification that answer card has finished loading.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerNavigationTime"
    units="ms" expires_after="2021-04-04">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending an answer card request and receiving the
    notification navigation has been finished with a valid answer card.
  </summary>
</histogram>

<histogram name="Apps.AppList.AppListSortDiscoveryDurationAfterActivation"
    units="ms" expires_after="2023-06-25">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time duration between the earliest user session activation with the app
    list sort enabled and the first sort usage. This metric is recorded when app
    list sort is triggered.
  </summary>
</histogram>

<histogram name="Apps.AppList.AppsCollections.DismissedReason"
    enum="AppsCollectionsDismissedReason" expires_after="2025-03-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The different reasons why the apps collections view is dismissed for a user.
    Recorded when a user dismisses the Apps Collections page either by clicking
    the Dismiss Nudge or by Sorting the app list.
  </summary>
</histogram>

<histogram name="Apps.AppList.AppSearchProvider.QueryTime" units="ms"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending a non-empty query to AppSearchProvider and
    receiving results back.
  </summary>
</histogram>

<histogram name="Apps.AppList.AppSearchProvider.ZeroStateLatency" units="ms"
    expires_after="2022-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending an empty query to AppSearchProvider and receiving
    Zero State recommendation results back.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.CardifiedStateAnimation.AnimationSmoothness{EnterOrExitCardifiedState}"
    units="%" expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relative smoothness of animations of entering or exiting the cardified state
    in the apps grid. 100% represents ideally smooth 60 frames per second. 50%
    represents only 30 frames per second is achieved during the animations. 0%
    should not happen. This metric is recorded one time per apps grid page each
    time we enter or exit cardified state in the apps grid.
    {EnterOrExitCardifiedState}
  </summary>
  <token key="EnterOrExitCardifiedState">
    <variant name=""/>
    <variant name=".EnterCardifiedState"
        summary="Triggered by entering cardified state in the app list"/>
    <variant name=".ExitCardifiedState"
        summary="Triggered by exiting cardified state in the app list"/>
  </token>
</histogram>

<histogram name="Apps.AppList.ContinueIsDriveEnabled" enum="BooleanEnabled"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded once upon login, records the state of the Disconnect Google Drive
    Account setting.
  </summary>
</histogram>

<histogram name="Apps.AppList.ContinueSectionHiddenByUser{TabletOrClamshell}"
    enum="Boolean" expires_after="2024-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the user has manually hidden the productivity launcher
    &quot;continue where you left off&quot; section. Recorded once per launcher
    open. Split by clamshell vs. tablet mode.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.DriveSearchProvider.DriveFSLatency" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    How long it takes DriveFS to return search results. This is the first half
    of the I/O logic of the Drive provider. Logged once per Drive search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.DriveSearchProvider.FileInfoLatency" units="ms"
    expires_after="2024-02-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    How long it takes to generate on-disk file paths for search results. This is
    the second half of the I/O logic of the Drive provider. Logged once per
    Drive search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.DriveSearchProvider.Latency" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Latency in milliseconds from the beginning of a launcher search query to
    Drive file results being returned. Logged once per Drive search query. This
    should roughly equal DriveFSLatency + FileInfoLatency for each query.
  </summary>
</histogram>

<histogram name="Apps.AppList.DriveSearchProvider.Relevance" units="score"
    expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relevance score for a Drive file result that was returned in response to a
    search query. Logged once for each file per search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.DriveSearchProvider.Status"
    enum="DriveSearchProviderStatus" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The outcome of a query for Drive file results. Logged once per Drive search
    query.
  </summary>
</histogram>

<histogram name="Apps.AppList.DriveZeroStateProvider.Latency" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending a zero state query and receiving file
    recommendations back from DriveZeroStateProvider.
  </summary>
</histogram>

<histogram name="Apps.AppList.FileResult.DefaultRelevanceUsed"
    enum="BooleanUsage" expires_after="2024-11-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether or not the default relevance was used when calculating the relevance
    score between a filename and the search query. The default relevance is used
    as a fallback whenever the relevance calculation fails. Logged once per
    relevance calculation.
  </summary>
</histogram>

<histogram name="Apps.AppList.FileResult.ThumbnailLoadedError"
    enum="PlatformFileError" expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Result of requesting a thumbnail icon for some types of file results in the
    Chrome OS launcher. Emitted on each attempt to load a thumbnail, if it
    results in an error.
  </summary>
</histogram>

<histogram name="Apps.AppList.FileSearchProvider.Latency" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Latency in milliseconds from the beginning of a launcher search query to
    local file results being returned. Logged once per file search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.FileSearchProvider.Relevance" units="score"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relevance score for a local file result that was returned in response to a
    search query. Logged once for each file per search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.FileSearchProvider.TimedOut"
    enum="BooleanTimedOut" expires_after="2025-09-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether or not local file search was exited early due to a time out. Logged
    once per file search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.GameProvider.SearchStatus"
    enum="GameProviderSearchStatus" expires_after="2025-09-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The outcome of a query for game results. Logged once per game search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.GameProvider.UpdateStatus" enum="DiscoveryError"
    expires_after="2024-11-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The outcome of an index update from the Discovery service. Logged once per
    update.
  </summary>
</histogram>

<histogram name="Apps.AppList.GameResult.IconLoadStatus" enum="DiscoveryError"
    expires_after="2025-02-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The outcome of the icon load from the Discovery service. Logged once per
    icon loaded in game result.
  </summary>
</histogram>

<histogram name="Apps.AppList.HelpAppProvider.ListSearchResultState"
    enum="HelpAppProviderListSearchResultState" expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The end result of list searches by the provider for the help app in the CrOS
    launcher. Logged once per time a list search finishes. Not logged if the
    search is canceled by a new search starting. Not logged for the help app
    provider's suggestion chips. Chrome OS only.
  </summary>
</histogram>

<histogram name="Apps.AppList.HelpAppProvider.QueryTime" units="ms"
    expires_after="2025-01-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The latency of a search in the HelpAppProvider. Recorded each time a search
    is completed, even if it returns no results. Not recorded if the query is
    too short to perform a search at all. Chrome OS only.
  </summary>
</histogram>

<histogram name="Apps.AppList.ItemSuggestCache.ResponseSize" units="bytes"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the size of a response from the ItemSuggest API. Reported once per
    successful response. Will not be reported if the response exceeds the
    maximum size, instead check Apps.AppList.ItemSuggestCache.Status.
  </summary>
</histogram>

<histogram name="Apps.AppList.ItemSuggestCache.Status"
    enum="ItemSuggestCacheStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the outcome of a call to ItemSuggest. Reported once per call to
    UpdateCache that passes the minimum time between udpates check.
  </summary>
</histogram>

<histogram name="Apps.AppList.ItemSuggestCache.UpdateCacheLatency" units="ms"
    expires_after="2024-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the latency from the start of a call to UpdateCache to the time when
    results are finalised. Reported once each time results are successfully
    obtained, which corresponds to a kOk status being recorded in
    Apps.AppList.ItemSuggestCache.Status.
  </summary>
</histogram>

<histogram name="Apps.AppList.Keyword.NumberOfKeywordsInQuery" units="count"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of keyword tokens that are detected in a user query.
    Reported once each time for each query generated.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.LaunchedResultInNewUsersFirstSearch{TabletOrClamshell}"
    enum="AppListSearchResult" expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Type of the result that a user opened during their first launcher search in
    their first user session on the device. It includes a bucket for the case
    the user does not launch any results.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.LocalImageSearchProvider.Latency" units="ms"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Latency in milliseconds from the beginning of a launcher search query to
    local results being returned. Logged once per search query.
  </summary>
</histogram>

<histogram name="Apps.AppList.NumberOfApps" units="count"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of apps which exist within the launcher app list. This number
    also includes apps within folders. This metric is recorded every 30 minutes.
  </summary>
</histogram>

<histogram name="Apps.AppList.NumberOfAppsInNonSystemFolders" units="count"
    expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total number of apps in folders ignoring system-created folders like the
    OEM folder and the Linux apps folder. Recorded every 30 minutes.
  </summary>
</histogram>

<histogram name="Apps.AppList.NumberOfFolders" units="count"
    expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of folders that users have in their Launcher. Includes
    system-created folders like the OEM folder and the Linux apps folder.
    Recorded every 30 minutes.
  </summary>
</histogram>

<histogram name="Apps.AppList.NumberOfNonSystemFolders" units="count"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of folders that users have in their launcher. Does not include
    system-created folders like the OEM folder and the Linux apps folder.
    Recorded every 30 minutes. Warning: this histogram was expired from
    2023-10-08 to 2025-02-22; data may be missing.
  </summary>
</histogram>

<histogram name="Apps.AppList.NumberOfRootLevelItems" units="count"
    expires_after="2023-06-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of items which exist within the root level of the app list. This
    number includes both app items and folder items. Apps within folders are not
    included. This metric is recorded every 30 minutes.
  </summary>
</histogram>

<histogram name="Apps.AppList.OmniboxProvider.QueryTime" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending an non-empty query and receiving search results
    back from OmniboxProvider which queries chrome AutocompelteController's
    search providers to get the results.
  </summary>
</histogram>

<histogram name="Apps.AppList.OsSettingsProvider.Error"
    enum="OsSettingsProviderStatus" expires_after="2025-01-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Various error states of the provider for OS settings in the cros launcher.
    Emitted either the case of an unexpected error or an successful non-empty
    query search. The bucket proportion is not meaningful as overlaps can occur
    among errors. Instead, the ratio between each error bucket and the
    successful query search can be used to calculate the accurate error rate.
  </summary>
</histogram>

<histogram name="Apps.AppList.OsSettingsProvider.IconLoadStatus"
    enum="OsSettingsProviderIconLoadStatus" expires_after="2025-01-14">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Various states of the icon related parameters for OS settings in the cros
    launcher. Emitted at each branch to help investigate the cause of icon load
    failures. The bucket proportion is not meaningful as overlaps can occur
    among status. Instead, the ratio between states can be used to calculate how
    the flow is divided into sub-branches.
  </summary>
</histogram>

<histogram name="Apps.AppList.OsSettingsProvider.QueryTime" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The latency of a search in the OsSettingsProvider. Recorded each time a
    search is completed, even if it returns no results. Not recorded if the
    query is too short to perform a search at all. Chrome OS only.
  </summary>
</histogram>

<histogram name="Apps.AppList.PersistentProto.ReadStatus"
    enum="PersistentProtoReadStatus" expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Various error states on reading a backing file from disk, in the score
    normalizer used by the Chrome OS launcher. Emitted once when a persistent
    proto initially reads from disk. Some number of Missing values are expected,
    eg. because it is logged for each new user added to a device.
  </summary>
</histogram>

<histogram name="Apps.AppList.PersistentProto.WriteStatus"
    enum="PersistentProtoWriteStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Various error states on writing a backing file to disk, in the score
    normalizer used by the Chrome OS launcher. Emitted each time a persistent
    proto writes to disk.
  </summary>
</histogram>

<histogram name="Apps.AppList.PersonalizationProvider.QueryTime" units="ms"
    expires_after="2023-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The latency of a search in the PersonalizationProvider. Recorded each time a
    search is completed, even if it returns no results. Not recorded if the
    query is too short to perform a search at all. Chrome OS only.
  </summary>
</histogram>

<histogram name="Apps.AppList.RemovedResultsProto.SizeInKB" units="KB"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the size of the removed results proto in KB. Emitted when the proto
    initialization completes.
  </summary>
</histogram>

<histogram name="Apps.AppList.Scoring.ScoreAboveBestMatchThreshold{Type}"
    enum="BooleanHit" expires_after="2025-09-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of the results above the BestMatch threshold with {Type} case.
    Recorded once per result's score above the BestMatch threshold.
  </summary>
  <token key="Type">
    <variant name="WithKeywordRanking"
        summary="Count of results above BestMatch threshold with Keyword
                 Ranking"/>
    <variant name="WithoutKeywordRanking"
        summary="Count of results above BestMatch threshold without Keyword
                 Ranking"/>
  </token>
</histogram>

<histogram
    name="Apps.AppList.Search.Continue.FileSuggestionType.{SearchAction}"
    enum="AppListContinueFileSuggestionType" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks launches, impressions, abandons, and ignores for search result sub
    types in the launcher continue section. These metrics are all emitted once
    for each unique displayed search result sub type, for results that have a
    subtype defined.

    For example, if we show the user three recently modified drive files and two
    recently viewed drive files, and the user clicks a recently modified drive
    file, then we would record: one impression for each of recently modified
    drive file and recently viewed drive file, one launch for recently modified
    drive file, and one abandon for recently viewed drive file.

    Launch. Emitted after an impression, if the user launches a result.

    Abandon. Emitted after an impression, if the user closes the launcher or
    moves to a different view.

    Ignore. Emitted after an impression, if the user then launched a different
    result.

    Impression. Emitted if either a) a set of results is displayed for 2 seconds
    or b) the user interacted with a result, eg. by clicking it.
  </summary>
  <token key="SearchAction" variants="SearchAction"/>
</histogram>

<histogram name="Apps.AppList.Search.ContinueResultCount.{Type}" units="count"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when the user has seen the zero-state launcher. Records the number
    of {Type} results shown.
  </summary>
  <token key="Type">
    <variant name="Drive" summary="Count of Drive results"/>
    <variant name="HelpApp" summary="Count of results from help app"/>
    <variant name="Local" summary="Count of local file results"/>
    <variant name="Total" summary="Count of all results"/>
  </token>
</histogram>

<histogram name="Apps.AppList.Search.ContinueResultRemoved"
    enum="LauncherContinueSectionResultType" expires_after="2025-05-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the type of a zero-state result when it is removed from the Continue
    section. Recorded once every time a result is removed. Chrome OS only.

    Warning: this histogram was expired from 2024-04-28 to 2024-05-16; data may
    be missing.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.ContinueSectionFilesRemovedPerSession"
    units="files" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Represents the number of file suggestions removed per user per session in
    the in ChromeOS launcher UI. Recorded every time the user removes a
    suggestion. Each bucket represents the total number of suggestions removed
    within the user session at the time the histogram is recorded. If the user
    removes total of n files, histogram will have recorded all of 1, 2, 3, ...,
    n values. We also record 0 count during session end if no suggestions have
    been removed.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.DriveContinueResultsShown"
    enum="BooleanShown" expires_after="2025-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when the user has seen the zero-state launcher. Records whether or
    not the user would have seen any Drive files. This is equivalent to
    Apps.AppList.Search.ContinueResultCount.Drive greater than 0.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Error" enum="AppListUserEventError"
    expires_after="2025-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records errors in processing other Apps.AppList.Search.* metrics. These are
    expected to be rare and bucket proportion is not meaningful.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Federated.Actions"
    enum="AppListFederatedActions" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted on usage of launcher search. Records overall impressions, launches,
    abandons, and ignores, for the query list view when federated analytics is
    enabled.

    Impression. Emitted if either a) the view is displayed for 2 seconds or b)
    the user interacted with a result, eg. by clicking it.

    Launch. Emitted after an impression, if a result is clicked in the query
    list view.

    Abandon. Emitted after an impression, if the user closes the launcher or
    moves to another UI view.

    Ignore. Emitted after an impression, if the user launches a result from a
    different currently visible UI view.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Federated.InitStatus"
    enum="AppListFederatedInitStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records status in initialization of federated analytics. These are expected
    to be rare, and the bucket proportion is not meaningful.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Federated.QueryLengthOnStorageSuccess"
    units="characters" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the length of launcher query strings which are successfully reported
    to on-device (Federated Service) storage.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Federated.ReportStatus"
    enum="AppListFederatedReportStatus" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records status in reporting of federated analytics examples. These are
    expected to be rare, and the bucket proportion is not meaningful.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Federated.SearchSessionConclusion"
    enum="AppListFederatedSearchSessionConclusion" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the conclusion of each search session starting from the search box.
    Records launcher dismissals (&quot;quit&quot;), launches, and viewings of
    answer card results, for the query list view when federated analytics is
    enabled.

    Quit. Emitted if the user dismisses search without launching a result or
    seeing an answer card.

    Launch. Emitted if the user launches a search result.

    AnswerCardSeen. Emitted if an answer card is displayed for some threshold
    period of time, and the user then dismisses the launcher without launching a
    result.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.Search.SearchCategoriesEnableState.{SearchCategory}"
    enum="AppListSearchCategoryState" expires_after="2025-01-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the enable state for each SearchCategory when the states are
    commited by closing the search category filter menu and the search is
    refreshed. The total counts of the states are the same across all search
    categories so comparing the enabling proportion makes sense.

    Not Available: The category is not available for users, which means that
    users can not see search results that belong to this category and neither
    see this option in the search category filter menu.

    Enabled: The category is available and enabled for users. This is the
    default value if users don't toggle the category option in the menu.

    Disabled: The category is available but manually disabled by users.
  </summary>
  <token key="SearchCategory" variants="SearchCategory"/>
</histogram>

<histogram name="Apps.AppList.Search.SearchCategoryFilterMenuOpenedCount"
    units="count" expires_after="2025-01-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how many times users open the search category filter menu in
    launcher search. Emitted when users open the menu. Note that only bucket
    &quot;1&quot; is used for the counting and other buckets should be 0.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Session2.Error"
    enum="AppListUserEventError" expires_after="2024-01-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records errors in processing other Apps.AppList.Search.Session2.* metrics.
    These are expected to be rare and bucket proportion is not meaningful.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.Session2.QueryLength{SessionConclusion}"
    units="characters" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the length of a query at the conclusion of a launcher search
    session.

    A search session is started when a query is entered into the bubble launcher
    search box or when the tablet mode device enters the kFullscreenSearch
    AppListViewState. Each search session must conclude one of following ways:

    Quit: Recorded when ending a search session without launching a result and
    no answer card was shown long enough to have made an impression.

    Launch: Recorded when a search session is ended by launching a result. An
    answer card may or may not have been shown long enough to make an
    impression.

    AnswerCardImpression: An answer card was shown long enough to the user to
    have made an impression at some point during the search session. The answer
    card may or may not be shown at the moment the search session ended.
  </summary>
  <token key="SessionConclusion"
      variants="LauncherSearchSessionConclusionVariants"/>
</histogram>

<histogram name="Apps.AppList.Search.Session2.{LauncherSearchEntryPoint}"
    enum="LauncherSearchSessionConclusion" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks search result launches, answer card impressions, and search session
    abandons for launcher search sessions.

    A search session is started when a query is entered into the bubble launcher
    search box or when the tablet mode device enters the kFullscreenSearch
    AppListViewState. Each search session must conclude one of following ways:

    Quit: Recorded when ending a search session without launching a result and
    no answer card was shown long enough to have made an impression.

    Launch: Recorded when a search session is ended by launching a result. An
    answer card may or may not have been shown long enough to make an
    impression.

    AnswerCardImpression: An answer card was shown long enough to the user to
    have made an impression at some point during the search session. The answer
    card may or may not be shown at the moment the search session ended.
  </summary>
  <token key="LauncherSearchEntryPoint" variants="LauncherSearchEntryPoint"/>
</histogram>

<histogram name="Apps.AppList.Search.{SearchView}" enum="AppListSearchAction"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted on a usage of launcher search, and records overall impressions,
    launches, abandons, and ignores for the {SearchView} view.

    Launch. Emitted after an impression, if a result is clicked in the
    {SearchView} view.

    Abandon. Emitted after an impression, if the user closes the launcher or
    moves to another UI view.

    Ignore. Emitted after an impression, if the user launches a result from a
    different currently visible UI view.

    Impression. Emitted if either a) the view is displayed for 2 seconds or b)
    the user interacted with a result, eg. by clicking it.

    The bucket proportion is not meaningful, because impressions are a superset
    of the other buckets. Instead, the ratio between buckets is meaningful.
  </summary>
  <token key="SearchView" variants="SearchView"/>
</histogram>

<histogram name="Apps.AppList.Search.{SearchView}.LaunchIndex" units="index"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted when launching a search result. Records the index of the launched
    result in the {SearchView} view. The top-most result is index zero.
  </summary>
  <token key="SearchView" variants="SearchView"/>
</histogram>

<histogram name="Apps.AppList.Search.{SearchView}.{SearchAction}"
    enum="AppListSearchResult" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks launches, impressions, abandons, and ignores for search result types
    in the launcher. This histogram is specific to the {SearchView} view. These
    metrics are all emitted once for each unique displayed search result type,
    and records that search result type.

    For example, if we show the user three files and two apps, and the user
    clicks a file, then we would record: one file impression and one app
    impression, one file launch, and one app ignore.

    Launch. Emitted after an impression, if the user launches a result.

    Abandon. Emitted after an impression, if the user closes the launcher or
    moves to a different view.

    Ignore. Emitted after an impression, if the user then launched a different
    result.

    Impression. Emitted if either a) a set of results is displayed for 2 seconds
    or b) the user interacted with a result, eg. by clicking it.
  </summary>
  <token key="SearchView" variants="SearchView"/>
  <token key="SearchAction" variants="SearchAction"/>
</histogram>

<histogram name="Apps.AppList.SearchFileScan.ExecutionTime" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The time spent for the whole file scan process.</summary>
</histogram>

<histogram name="Apps.AppList.SearchFileScan.{SearchFileExtension}"
    units="units" expires_after="2024-12-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks the total number of files within user's local directory, and the
    total number of files with the extensions that we are interested in. They
    are required by the power team to help estimatie the power influence of
    certain launcher search features. Emitted at most once per user per device
    per week. It's triggered at user login, and do a quick file scan to get the
    metrics.
  </summary>
  <token key="SearchFileExtension" variants="SearchFileExtension"/>
</histogram>

<histogram name="Apps.AppList.SearchQueryLength.Apps" units="characters"
    expires_after="2025-09-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The length of the query that resulted in an app launch from search box. This
    metric only records non-empty queries.
  </summary>
</histogram>

<histogram name="Apps.AppList.SearchResultRemovalDecision"
    enum="AppListResultRemovalConfirmation" expires_after="2024-05-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The decision of the user whether to remove a search result from search
    results UI when productivity launcher is enabled. When productivity launcher
    is enabled, the user has an option to remove subset of omnibox results from
    search results. When removing the result, the user is shown a dialog to
    confirm or cancel result removal. This histogram record the user action in
    that dialog.
  </summary>
</histogram>

<histogram name="Apps.AppList.SearchSuccess.Apps" enum="AppListLaunchedFrom"
    expires_after="2025-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of app launches from the search box with non-empty queries. This
    was updated in 12/2022 to include more result types that were apps.
  </summary>
</histogram>

<histogram name="Apps.AppList.SortDiscoveryDurationAfterEducationNudge"
    units="ms" expires_after="2023-07-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time duration between showing the app list sort education nudge and the
    first sort usage. This metric is recorded when app list sort is triggered
    after the sort nudge is shown.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.SortDiscoveryDurationAfterEducationNudgeV2.{TabletOrClamshell}"
    units="ms" expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time duration between showing the app list sort education nudge and the
    first sort usage. This metric is recorded when app list sort is triggered
    after the sort nudge is shown. The collected data are separated by the
    tablet mode state under which the sort nudge is shown. In detail, if the
    sort nudge shows initially in tablet (or clamshell), then the discovery
    duration is reported using the histogram for tablet (or clamshell).
  </summary>
  <token key="TabletOrClamshell" variants="AppDisplayModes"/>
</histogram>

<histogram name="Apps.AppList.SortOrderOnSessionStart.{TabletOrClamshell}"
    enum="AppListSortOrder" expires_after="2024-11-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The app list sort order preserved in the pref service. Triggered when the
    pref service for the new session is ready.
  </summary>
  <token key="TabletOrClamshell" variants="AppDisplayModes"/>
</histogram>

<histogram
    name="Apps.AppList.SuccessfulFirstUsageByNewUsers{TabletOrClamshell}"
    enum="Boolean" expires_after="2025-02-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether the user successfully used the launcher when they opened it for the
    first time. Successful usage entails launching an app, or search result from
    the launcher UI. Only recorded in user session started after creating a new
    account on the device. Split by whether the launcher was first shown in
    clamshell or tablet mode. Warning: this histogram was expired from
    2023-06-19 to 2025-02-22; data may be missing.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.SuggestedContent.Enabled" enum="BooleanEnabled"
    expires_after="2025-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether or not the user has enabled Suggested Content in the launcher. This
    is logged once per UMA upload, and only for any user that has the Suggested
    Content toggle feature flag enabled. Warning: this histogram was expired
    from 2023-06-04 to 2023-08-18; data may be missing.
  </summary>
</histogram>

<histogram
    name="Apps.AppList.SystemInfoProvider.CrosHealthdProbeError.{ProbeErrorSourceStruct}"
    enum="CrosDiagnosticsCrosHealthdProbeError" expires_after="2025-05-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the ProbeError::ErrorType returned on request for
    {ProbeErrorSourceStruct}. Recorded on the event a request to cros_healthd
    probe service returns a ProbeError. This can occur when a request is made to
    the CrosHealthdProbeService within the System Info Provider.
  </summary>
  <token key="ProbeErrorSourceStruct">
    <variant name="BatteryInfo"/>
    <variant name="CpuInfo"/>
    <variant name="MemoryInfo"/>
  </token>
</histogram>

<histogram name="Apps.AppList.SystemInfoProvider.Error.{ErrorSource}"
    enum="CrosDiagnosticsDataError" expires_after="2025-05-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records error type such as no data error, not a number error and expectation
    not met error when receiving system information including battery info,
    network info and system info. All errors are recorded.
  </summary>
  <token key="ErrorSource">
    <variant name="Battery"/>
    <variant name="Network"/>
  </token>
</histogram>

<histogram name="Apps.AppList.TimeToUserAction{TabletOrClamshell}" units="ms"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Amount of time passed from when the launcher was shown to the user
    performing a launcher workflow action, which includes launching an app from
    the apps grid, launching an app from recent apps section, opening a search
    result, or opening a task in continue section. Logged when the user performs
    an action. Recorded for {TabletOrClamshell}. Warning: this histogram was
    expired from 2023-06-19 to 2025-02-22; data may be missing.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.UserAction{TabletOrClamshell}"
    enum="LauncherUserAction" expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks different launcher worflow actions the user performs in the launcher.
    Logged when the user performs an action. Recorded for {TabletOrClamshell}.
    Warning: this histogram was expired from 2023-06-19 to 2025-02-22; data may
    be missing.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.UserEvent.Query" enum="Boolean"
    expires_after="2023-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emits true when the user enters a query into the Chrome OS launcher search
    box. Entering any number of characters is considered only one query, but
    deleting the contents of the search box and starting again is recorded as a
    new query.

    This metric stopped collecting data in November 2021, but has not yet been
    marked obsolete because the historical data is still being used for
    analysis.
  </summary>
</histogram>

<histogram name="Apps.AppList.UserEvent.TypeAbandon{LauncherUISurface}"
    enum="AppListSearchResult" expires_after="2023-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted after an impression, if the user then closes the launcher or moves
    to a different view without launching any search result. This is emitted
    once per abandon, per displayed result. Records the displayed result's type.
    See Apps.AppList.UserEvent.TypeImpression for more details.

    This metric is completed by a histogram suffix describing which UI surface
    the results are recorded from. {LauncherUISurface}

    This metric stopped collecting data in November 2021, but has not yet been
    marked obsolete because the historical data is still being used for
    analysis.
  </summary>
  <token key="LauncherUISurface" variants="LauncherUISurface">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Apps.AppList.UserEvent.TypeImpression{LauncherUISurface}"
    enum="AppListSearchResult" expires_after="2023-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    When a set of results is displayed for 2 seconds and the user has probably
    seen it, or the user interacted with the results and has definitely seen it,
    we consider it an impression.

    Emitted once per impression for each displayed result. Records the type of
    the displayed result, eg. native app or omnibox bookmark.

    The Apps.AppList.UserEvent.Type* metrics are directly comparable
    per-result-type. So, for example, (launches / impressions) for a result type
    gives an accurate CTR.

    This metric is completed by a histogram suffix describing which UI surface
    the results are recorded from. {LauncherUISurface}

    This metric stopped collecting data in November 2021, but has not yet been
    marked obsolete because the historical data is still being used for
    analysis.
  </summary>
  <token key="LauncherUISurface" variants="LauncherUISurface">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Apps.AppList.UserEvent.TypeLaunch{LauncherUISurface}"
    enum="AppListSearchResult" expires_after="2023-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted after an impression, if the user launches a result. Records the type
    of the launched result. See Apps.AppList.UserEvent.TypeImpression for more
    details.

    This metric is completed by a histogram suffix describing which UI surface
    the results are recorded from. {LauncherUISurface}

    This metric stopped collecting data in November 2021, but has not yet been
    marked obsolete because the historical data is still being used for
    analysis.
  </summary>
  <token key="LauncherUISurface" variants="LauncherUISurface">
    <variant name=""/>
  </token>
</histogram>

<histogram name="Apps.AppList.ZeroStateDriveProvider.Relevance" units="score"
    expires_after="2023-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relevance score for a zero state Drive result in the results list. Logged
    whenever ItemSuggest is queried, once for each zero-state result created.
  </summary>
</histogram>

<histogram name="Apps.AppList.ZeroStateFileProvider.Latency" units="ms"
    expires_after="2025-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between sending a zero state query and receiving file
    recommendations back from the ZeroStateFileProvider.
  </summary>
</histogram>

<histogram name="Apps.AppList.ZeroStateFileProvider.Relevance" units="score"
    expires_after="2023-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relevance score for a zero state file result in suggestion chips or the
    results list. Logged once each time zero state is loaded.
  </summary>
</histogram>

<histogram name="Apps.AppList.ZeroStateResults.LaunchedItemType"
    enum="ZeroStateResultType" expires_after="2025-07-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of item that was launched from a zero state launcher search result.
  </summary>
</histogram>

<histogram name="Apps.AppList.ZeroStateSuggestionOpenType"
    enum="AppListSearchResult" expires_after="2021-03-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of the app list suggestion that was opened by user in zero state.
  </summary>
</histogram>

<histogram name="Apps.AppListAppLaunchedV2{AppListState}"
    enum="AppListLaunchedFrom" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of apps launched from the launcher and shelf for each launcher
    state. This is incremented each time an app is launched. Each bucket
    represents where in the launcher or shelf the app was launched from.
    {AppListState}
  </summary>
  <token key="AppListState">
    <variant name=""/>
    <variant name=".BubbleAllApps" summary=""/>
    <variant name=".Closed" summary=""/>
    <variant name=".FullscreenAllApps" summary=""/>
    <variant name=".FullscreenSearch" summary=""/>
    <variant name=".HomecherAllApps" summary=""/>
    <variant name=".HomecherClosed" summary=""/>
    <variant name=".HomecherSearch" summary=""/>
  </token>
</histogram>

<histogram name="Apps.AppListAppMovingType" enum="AppListAppMovingType"
    expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The different ways to move an app in app list's apps grid. Logged when the
    app moving succeeds.
  </summary>
</histogram>

<histogram name="Apps.AppListAppTypeClicked" enum="AppListAppType"
    expires_after="2023-04-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of app clicked in the launcher on ChromeOS, recorded after the icon
    is clicked, before it is launched.
  </summary>
</histogram>

<histogram
    name="Apps.AppListBubble.{AppListPage}.AppLaunchesByCategory{ExperimentalArm}"
    enum="AppListAppCollections" expires_after="2025-03-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of apps launched from Apps Collection divided by category. This
    is incremented each time an app is launched. Each bucket represents a
    different category.
  </summary>
  <token key="AppListPage">
    <variant name="AppsCollectionsPage" summary=""/>
    <variant name="AppsPage" summary=""/>
  </token>
  <token key="ExperimentalArm">
    <variant name="" summary=""/>
    <variant name=".Counterfactual" summary=""/>
    <variant name=".Enabled" summary=""/>
    <variant name=".ModifiedOrder" summary=""/>
  </token>
</histogram>

<histogram
    name="Apps.AppListBubble.{AppListPage}.AppLaunchesByEntity{ExperimentalArm}"
    enum="AppListEntity" expires_after="2025-03-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of apps launched from the bubble launcher for each apps page.
    This is incremented each time an app is launched. Each bucket represents the
    entity that the apps belongs to (Default apps or Third-Party apps).
  </summary>
  <token key="AppListPage">
    <variant name="AppsCollectionsPage" summary=""/>
    <variant name="AppsPage" summary=""/>
  </token>
  <token key="ExperimentalArm">
    <variant name="" summary=""/>
    <variant name=".Counterfactual" summary=""/>
    <variant name=".Enabled" summary=""/>
    <variant name=".ModifiedOrder" summary=""/>
  </token>
</histogram>

<histogram
    name="Apps.AppListBubble.{AppListPage}.AppLaunchesByVisibility.{Visibility}{ExperimentalArm}"
    enum="DefaultAppName" expires_after="2025-05-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records when a user attempts to launch a particular Chrome OS app from the
    App List Bubble's {AppListPage}. The metric represents that the app is
    located {Visibility} Each bucket records a particular default app. The
    launcher fold is defined as the lower limit of the apps grid view default
    visibility. For a scrollable launcher, an item view would be above the fold
    if it were visible when the apps grid view is not scrolled.
  </summary>
  <token key="AppListPage">
    <variant name="AppsCollectionsPage" summary="Apps Collections page"/>
    <variant name="AppsPage" summary="Apps page"/>
  </token>
  <token key="ExperimentalArm">
    <variant name="" summary=""/>
    <variant name=".Counterfactual" summary=""/>
    <variant name=".Enabled" summary=""/>
    <variant name=".ModifiedOrder" summary=""/>
  </token>
  <token key="Visibility">
    <variant name="AboveTheFold" summary="above the launcher fold"/>
    <variant name="BelowTheFold" summary="below the launcher fold"/>
  </token>
</histogram>

<histogram
    name="Apps.AppListBubble.{AppListPage}.AppVisibilityOnLauncherShown.{Visibility}{ExperimentalArm}"
    enum="DefaultAppName" expires_after="2025-05-06">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records when a user opens the App List Bubble in clamshell mode. The metric
    represents that the app is located {Visibility} at launch moment. Each
    bucket records a particular default app.
  </summary>
  <token key="AppListPage">
    <variant name="AppsCollectionsPage" summary="Apps Collections page"/>
    <variant name="AppsPage" summary="Apps page"/>
  </token>
  <token key="ExperimentalArm">
    <variant name="" summary=""/>
    <variant name=".Counterfactual" summary=""/>
    <variant name=".Enabled" summary=""/>
    <variant name=".ModifiedOrder" summary=""/>
  </token>
  <token key="Visibility">
    <variant name="AboveTheFold" summary="above the launcher fold"/>
    <variant name="BelowTheFold" summary="below the launcher fold"/>
  </token>
</histogram>

<histogram name="Apps.AppListBubbleAppMovingType" enum="AppListAppMovingType"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The different ways to move an app in app list's apps grid, specifically for
    the scrollable apps grid in bubble launcher. Logged when the app moving
    succeeds. Warning: this histogram was expired from 2023-12-17 to 2025-02-22;
    data may be missing.
  </summary>
</histogram>

<histogram name="Apps.AppListBubbleCreationTime" units="ms"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time it takes to build the app list bubble UI. This is logged
    each time the app list bubble gets shown.. Warning: this histogram was
    expired from 2023-12-17 to 2025-02-22; data may be missing.
  </summary>
</histogram>

<histogram name="Apps.AppListBubbleShowSource" enum="AppListShowSource"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the different sources for showing the bubble app list
    are used. This is logged when the bubble app list is shown, which only
    exists in clamshell mode. See sister metric
    &quot;Apps.AppListShowSource&quot; for tablet mode and fullscreen app list
    metrics.
  </summary>
</histogram>

<histogram name="Apps.AppListContinueTaskOpenType" enum="AppListSearchResult"
    expires_after="2025-02-22">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of app list continue search result that was opened by the user.
    This is gathered per continue section task opened. Warning: this histogram
    was expired from 2023-08-08 to 2025-02-22; data may be missing.
  </summary>
</histogram>

<histogram name="Apps.AppListCreationTime" units="ms"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The amount of time it takes to build the app list UI. This is logged each
    time the app list is built from scratch. Warning: this histogram was expired
    from 2023-05-25 to 2025-02-22; data may be missing.
  </summary>
</histogram>

<histogram name="Apps.AppListDefaultSearchResultOpenType"
    enum="AppListSearchResult" expires_after="2023-04-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of the default result opened by user by pressing ENTER key.
    Launcher UI shows suggested apps, recent queries, etc when user activates
    the search box, or shows matched apps (installed apps, play store app
    results, etc.) and other results (query suggestions, web site, bookmark,
    files, etc) when user types a query. It will set the focus on the first
    result as the default. User can open the default result by simply pressing
    ENTER key. This metrics logs the type of the default result (installed app,
    play store result, query suggestion, etc) opened by user pressing ENTER key.
  </summary>
</histogram>

<histogram name="Apps.AppListFolder.ShowHide.AnimationSmoothness" units="%"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relative smoothness of animations of showing and hiding app list folder.
    100% represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user starts the folder
    animation in the launcher.

    Warning: this histogram was expired from 2021-08-29 to 2021-09-28 and from
    2023-09-10 to 2025-02-22; data may be missing.
  </summary>
</histogram>

<histogram base="true" name="Apps.AppListFolderNameLength" units="characters"
    expires_after="2024-07-21">
<!-- Name completed by histogram_suffixes
     name="TabletOrClamshellMode" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The folder name length in characters when an app list folder gets renamed.
    Logged when the folder name is changed and the texfield is no longer in
    focus.
  </summary>
</histogram>

<histogram name="Apps.AppListFolderOpened" enum="AppListFolderOpened"
    expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times folders are opened in the app list. This is logged when
    the folder is clicked.
  </summary>
</histogram>

<histogram name="Apps.AppListHide.InputLatency" units="ms"
    expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the input event to hide the launcher UI. This is logged
    each time the launcher is dismissed by pressing search key, clicking shelf
    button, or focusing out side of the launcher. Warning: this histogram was
    expired from 2023-06-01 to 2025-02-22; data may be missing.
  </summary>
</histogram>

<histogram name="Apps.AppListLauncherClickedSearchQueryLength"
    units="characters" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs the length of user typed queries that result in launcher clicks.
    Emitted each time the user opens a launcher search result after typing a
    query.
  </summary>
</histogram>

<histogram name="Apps.AppListLauncherIssuedSearchQueryLength"
    units="characters" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The UMA histogram that logs the length of user typed queries app list
    launcher issues to the search providers.
  </summary>
</histogram>

<histogram name="Apps.AppListOpenTime.{OpenMethod}" units="ms"
    expires_after="2023-06-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/ash/app_list/OWNERS</owner>
  <summary>
    The time a user spends with the AppList open after opening it using the
    {OpenMethod} method.
  </summary>
  <token key="OpenMethod">
    <variant name="HomeButton"
        summary="User activated the home button on the shelf"/>
    <variant name="Others"
        summary="Opened by a source we don't intend to track."/>
    <variant name="Scroll" summary="User scrolled on the shelf"/>
    <variant name="SearchKey" summary="User pressed search key"/>
    <variant name="Swipe" summary="User swiped on the shelf"/>
  </token>
</histogram>

<histogram name="Apps.AppListPageSwitcherSource"
    enum="AppListPageSwitcherSource" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The source used to switch pages in the app list's app grid. Logged when the
    page switch succeeds.
  </summary>
</histogram>

<histogram name="Apps.AppListPlayStoreQueryState"
    enum="AppListPlayStoreQueryState" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The state of a Play Store app search request.</summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse"
    enum="ReinstallResponseParseResult" expires_after="2022-01-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Response when parsing the recommended app list from Play Store for candidate
    app list, recorded every time a response from the play store is parsed in
    client.
  </summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse.Count" units="units"
    expires_after="2022-02-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of responses from server in Apps.AppListRecommendedResponse.count
    when fetching appListRecommendded GetAppReinstallCandidates.
  </summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse.Latency" units="ms"
    expires_after="2022-02-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Milliseconds elapsed to fetch appListRecommended GetAppReinstallCandidates.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchAutocomplete" enum="SearchBoxTextMatch"
    expires_after="2024-04-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The outcome of app list search attempting to autocomplete queries by
    matching user entered text with search result text. This metric is split by
    prefix match, substring match, and no match. This is gathered each time app
    list attempts to perform an autocomplete.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchQueryLengthV2{TabletOrClamshell}"
    units="characters" expires_after="2023-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The length of the app list search query when a result is opened. This is
    gathered per click of a search result in launcher search results UI.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppListSearchResultOpenTypeV2" enum="AppListSearchResult"
    expires_after="2025-01-05">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of app list search result that was opened by the user. This is
    gathered per SearchResult opened. Only recorded for search results shown in
    the search result page of the launcher (suggestion chips are not recorded).
  </summary>
</histogram>

<histogram name="Apps.AppListShow.InputLatency" units="ms"
    expires_after="2024-03-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Elapsed time from the input event to show the launcher UI. This is logged
    each time the app list is shown by pressing search key, clicking shelf
    button, or swiping from shelf.
  </summary>
</histogram>

<histogram name="Apps.AppListShowSource" enum="AppListShowSource"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the different sources for showing the app list are used.
    This is logged when the app list is shown. Does not count the app list shown
    when the last window is closed in tablet mode. This is not the total number
    of times the app list is shown to the user; for that consult the user action
    AppList_WindowFocused.
  </summary>
</histogram>

<histogram name="Apps.AppsCount.{AppType}" units="Apps"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <component>Platform&gt;Apps&gt;Foundation</component>
  <summary>
    The total number of installed {AppType} for each app type in Chrome OS. This
    is logged when more than 24 hours pass after last log, or during the system
    startup phase if more than 24 hours passed after last log. This histogram is
    capped at 1000; values above this go into the overflow bucket.
  </summary>
  <token key="AppType" variants="AppType"/>
</histogram>

<histogram name="Apps.AppsCountPerInstallReason.{AppType}.{InstallReason}"
    units="Apps" expires_after="2025-02-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <component>Platform&gt;Apps&gt;Foundation</component>
  <summary>
    The total number of installed {AppType} for each app type {InstallReason} in
    Chrome OS. This is logged when more than 24 hours pass after last log, or
    during the system startup phase if more than 24 hours passed after last log.
    This histogram is capped at 1000; values above this go into the overflow
    bucket.
  </summary>
  <token key="AppType" variants="AppType"/>
  <token key="InstallReason" variants="InstallReason"/>
</histogram>

<histogram name="Apps.AppShimSignatureValidationResult"
    enum="WebAppShimSignatureValidationResult" expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of validating the code signature of a web app shim
    connecting to the browser on macOS.
  </summary>
</histogram>

<histogram name="Apps.ArcGhostWindowLaunch" enum="Boolean"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether the ARC ghost window is launched when the ARC app are
    restored during the system startup phase.
  </summary>
</histogram>

<histogram name="Apps.ClamshellLauncher.AnimationSmoothness.{Transition}"
    units="%" expires_after="never">
<!-- expires-never: These metrics are required
     by Tast tests to monitor performance. We should
     keep these metrics alive until we stop monitoring
     performance of home launcher animations -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted when the clamshell launcher {Transition} animation completes.
    Reports the smoothness of this animation. 100% represents the ideally smooth
    60 frames per second.
  </summary>
  <token key="Transition">
    <variant name="Close" summary="close launcher"/>
    <variant name="HideAppsPage"
        summary="switch away from apps page to another page"/>
    <variant name="Open" summary="open launcher"/>
    <variant name="OpenAppsPage" summary="open launcher to apps page"/>
    <variant name="ShowAppsPage"
        summary="switch to apps page from another page"/>
  </token>
</histogram>

<histogram name="Apps.ContextMenuExecuteCommand{ContextMenuFromApp}"
    enum="ChromeOSUICommands" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times a certain command was executed by a context menu, split
    by whether the context menu came from an app, or another part of the system
    UI. {ContextMenuFromApp}
  </summary>
  <token key="ContextMenuFromApp">
    <variant name=".FromApp"
        summary="The source of the context menu was an app."/>
    <variant name=".NotFromApp"
        summary="The source of the context menu was shelf or wallpaper."/>
  </token>
</histogram>

<histogram
    name="Apps.ContextMenuShowSourceV2{AppUIComponent}{TabletOrClamshellMode}"
    enum="MenuSourceType" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The show source (touch, mouse, keyboard, etc) for a context menu. Split by
    the component from which the context menu originated. {AppUIComponent}
  </summary>
  <token key="AppUIComponent" variants="AppUIComponent"/>
  <token key="TabletOrClamshellMode" variants="TabletOrClamshellMode"/>
</histogram>

<histogram
    name="Apps.ContextMenuUserJourneyTimeV2{AppUIComponent}{TabletOrClamshellMode}"
    units="ms" expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user journey time for a ContextMenu, defined as the time between
    launching a context menu and the context menu's close callback being
    activated. {AppUIComponent}
  </summary>
  <token key="AppUIComponent" variants="AppUIComponent"/>
  <token key="TabletOrClamshellMode" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.CreateShortcutIcon.Linux.Result"
    enum="WebAppCreateShortcutIconLinuxResult" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of creating shortcut image for web app on Linux. Note
    that this metric was expired between 2023-10-01 and 2024-05-03, so some data
    might be missing.
  </summary>
</histogram>

<histogram name="Apps.CreateShortcuts.Linux.Result"
    enum="WebAppCreateShortcutLinuxResult" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of creating shortcut for web app on Linux. Note that this
    metric was expired between 2024-01-14 and 2024-05-03, so some data might be
    missing.
  </summary>
</histogram>

<histogram name="Apps.CreateShortcuts.Mac.Result2"
    enum="WebAppCreateShortcutMacResult" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of creating shortcut for web app on MacOS.
  </summary>
</histogram>

<histogram name="Apps.DefaultAppLaunch{DefaultAppLaunchSource}"
    enum="DefaultAppName" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <component>Platform&gt;Apps&gt;Foundation</component>
  <summary>
    Records when a user attempts to launch a particular Chrome OS app.
    {DefaultAppLaunchSource}
  </summary>
  <token key="DefaultAppLaunchSource">
    <variant name=".FromAppListGrid" summary="From app list grid."/>
    <variant name=".FromAppListGridContextMenu"
        summary="From app list grid context menu."/>
    <variant name=".FromAppListQuery" summary="From app list query."/>
    <variant name=".FromAppListQueryContextMenu"
        summary="From app list query context menu."/>
    <variant name=".FromAppListRecommendation"
        summary="From app list recommendation."/>
    <variant name=".FromArc" summary="From ARC."/>
    <variant name=".FromChromeInternal" summary="From Chrome Internal."/>
    <variant name=".FromDiscoverTabNotification"
        summary="From Discover Tab notification."/>
    <variant name=".FromFileManager" summary="From FileManager."/>
    <variant name=".FromFirstRun" summary="From first run."/>
    <variant name=".FromFocusMode"
        summary="From quick setting Focus Mode panel."/>
    <variant name=".FromFullRestore" summary="From full restore."/>
    <variant name=".FromInstalledNotification"
        summary="From installed notification."/>
    <variant name=".FromInstaller" summary="From Intallation UI."/>
    <variant name=".FromIntentUrl" summary="From Intent Url."/>
    <variant name=".FromKeyboard" summary="From keyboard shortcut."/>
    <variant name=".FromKiosk" summary="From Kiosk."/>
    <variant name=".FromLink" summary="From Link."/>
    <variant name=".FromLockScreen" summary="From lock screen app launcher."/>
    <variant name=".FromManagementApi" summary="From management API."/>
    <variant name=".FromMenu" summary="From menu."/>
    <variant name=".FromNewTabPage" summary="From new tab page."/>
    <variant name=".FromOmnibox" summary="From Omnibox."/>
    <variant name=".FromOsLogin" summary="Run on OS login."/>
    <variant name=".FromOtherApp" summary="From another app."/>
    <variant name=".FromProtocolHandler" summary="From protocol handler."/>
    <variant name=".FromReleaseNotesNotification"
        summary="From Release Notes notification."/>
    <variant name=".FromSharesheet" summary="From sharesheet."/>
    <variant name=".FromShelf" summary="From shelf."/>
    <variant name=".FromSmartTextContextMenu"
        summary="From Smart text selection context menu."/>
    <variant name=".FromSparky" summary="From Sparky."/>
    <variant name=".FromSysTrayCalendar" summary="From system tray Calendar."/>
    <variant name=".FromUrlHandler" summary="From URL handler."/>
    <variant name=".FromWelcomeTour" summary="From Welcome Tour."/>
  </token>
</histogram>

<histogram name="Apps.FileHandler.Registration.Linux.Result"
    enum="FileHandlerRegistrationLinuxResult" expires_after="M110">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of MIME info database update when enabling an app's use
    of the PWA File Handling API
  </summary>
</histogram>

<histogram name="Apps.FileHandler.Registration.Win.Result"
    enum="FileHandlerRegistrationWinResult" expires_after="2023-07-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of file handler registration for PWA on Windows
  </summary>
</histogram>

<histogram name="Apps.FileHandler.Unregistration.Linux.Result"
    enum="FileHandlerRegistrationLinuxResult" expires_after="M110">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of MIME info database update when disabling an app's use
    of the PWA File Handling API
  </summary>
</histogram>

<histogram name="Apps.FullRestoreTabCount" units="count"
    expires_after="2025-03-25">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of tabs restored by full restore. Note that this is not
    recorded for lacros browsers.
  </summary>
</histogram>

<histogram name="Apps.FullRestoreWindowCount2" units="count"
    expires_after="2025-03-25">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of windows restored by full restore. Records 0 if the
    full restore file is empty, but we chose the always or ask every time
    options. Records nothing if the do not restore option was picked.
  </summary>
</histogram>

<histogram
    name="Apps.HomeLauncherTransition.AnimationSmoothness{AppListTabletModeTransition}"
    units="%" expires_after="never">
<!-- expires-never: These metrics are required
     by Tast tests to monitor performance. We should
     keep these metrics alive until we stop monitoring
     performance of home launcher animations -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relative smoothness of animations of launcher transitions in tablet mode.
    100% represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user triggers launcher
    animation in tablet mode. {AppListTabletModeTransition}
  </summary>
  <token key="AppListTabletModeTransition">
    <variant name=""/>
    <variant name=".EnterFullscreenAllApps"
        summary="Enter kFullScreenAllApps state in tablet"/>
    <variant name=".EnterFullscreenSearch"
        summary="Enter kFullscreenSearch state in tablet"/>
    <variant name=".EnterOverview" summary="Enter overview mode in tablet"/>
    <variant name=".ExitOverview" summary="Exit overview mode in tablet"/>
    <variant name=".FadeInOverview"
        summary="Fade in overview from home in tablet"/>
    <variant name=".FadeOutOverview"
        summary="Fade out of overview to home in tablet"/>
    <variant name=".HideLauncherForWindow"
        summary="Active a window to hide the app list"/>
    <variant name=".PressAppListButtonShow"
        summary="Press the AppList button to show the app list"/>
  </token>
</histogram>

<histogram name="Apps.IconLoadingMethod" enum="IconLoadingMethod"
    expires_after="2024-10-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Records the app icon loading method when loading app icons.</summary>
</histogram>

<histogram name="Apps.Launcher.AppListSortClearAction.{TabletOrClamshell}"
    enum="AppListOrderUpdateEvent" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The events that reset the app list pref sort order. Triggered when the pref
    sort order is reset.
  </summary>
  <token key="TabletOrClamshell" variants="AppDisplayModes"/>
</histogram>

<histogram
    name="Apps.Launcher.DragReorderAnimationSmoothness.{TabletOrClamshell}"
    units="%" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted when an app list drag reorder animation completes. Reports the
    smoothness of this animation. 100% represents the ideally smooth 60 frames
    per second.
  </summary>
  <token key="TabletOrClamshell" variants="AppDisplayModes"/>
</histogram>

<histogram name="Apps.Launcher.ProductivityReorderAction.{TabletOrClamshell}"
    enum="AppListSortOrder" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user-set sort order of the productivity launcher. Triggered when the
    launcher is set with a new order.
  </summary>
  <token key="TabletOrClamshell" variants="AppDisplayModes"/>
</histogram>

<histogram
    name="Apps.Launcher.ProductivityReorderAnimationSmoothness.{TabletOrClamshell}"
    units="%" expires_after="M125">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Emitted when the app list sort reorder animation completes. Reports the
    smoothness of this animation. 100% represents the ideally smooth 60 frames
    per second.
  </summary>
  <token key="TabletOrClamshell" variants="AppDisplayModes"/>
</histogram>

<histogram name="Apps.MediaApp.Load.OtherOpenWindowCount" units="windows"
    expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of other media app windows that exist when a new media app window
    is created. Counts windows open with any supported file type, or in the
    &quot;zero state&quot; (with no open file).
  </summary>
</histogram>

<histogram name="Apps.NewUserFirstLauncherAction{TabletOrClamshell}"
    enum="AppListLaunchedFrom" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records which launcher action a new user takes for the first time within a
    session. Launcher actions include the following: activating a launcher app,
    opening a search result from either a launcher suggestion chip or the search
    box, or triggering an app from the continue section. The metric is recorded
    when a launcher action performs on a new user's session for the first time.
    Split depending on whether the first launcher action occurred in clamshell
    or tablet mode.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.NoteTakingApp.DefaultLaunchResult"
    enum="NoteTakingAppLaunchResult" expires_after="2024-10-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of attempting to launch a default note-taking app on Chrome OS.
    Only reported if the preferred app was unspecified or failed to launch.
  </summary>
</histogram>

<histogram name="Apps.NoteTakingApp.PreferredLaunchResult"
    enum="NoteTakingAppLaunchResult" expires_after="2024-08-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of attempting to launch the user-specified preferred note-taking
    app, if any, on Chrome OS.
  </summary>
</histogram>

<histogram name="Apps.NumberOfPages" units="page(s)" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of pages that users have in the top level apps grid of their
    Launcher. This metric is recorded every time the launcher is shown.
  </summary>
</histogram>

<histogram name="Apps.OobeAppRecommendationsService.ServerResponseCodes"
    enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The combined http and net error codes the Almanac server responds with after
    a request is made during the Onboarding flow in ChromeOS OOBE when user
    enters the Device Use-Case screen.
  </summary>
</histogram>

<histogram
    name="Apps.OpenedAppListSearchResultFromSearchBoxV2.{AnyNonAppBrowserWindowOpenAndNotMinimized}"
    enum="AppListSearchResult" expires_after="2023-12-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the opened launcher search results from the search box. Data is
    gathered when a search result is opened from the search box.
    {AnyNonAppBrowserWindowOpenAndNotMinimized} denotes whether there is any
    non-app browser window open and not minimized when a search result is
    opened.
  </summary>
  <token key="AnyNonAppBrowserWindowOpenAndNotMinimized">
    <variant name="ExistNonAppBrowserWindowOpenAndNotMinimized"
        summary="there exists at least one non-app browser window which is
                 open and not minimized"/>
    <variant name="NonAppBrowserWindowsEitherClosedOrMinimized"
        summary="there is no open non-app browser windows or all open non-app
                 browser windows are minimized"/>
  </token>
</histogram>

<histogram name="Apps.PaginationTransition.AnimationSmoothness.TabletMode"
    units="%" expires_after="2024-04-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relative smoothness of animations of launcher pagination transitions. 100%
    represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user starts the pagination
    transition animation of the launcher.
  </summary>
</histogram>

<histogram base="true"
    name="Apps.PaginationTransition.DragScroll.PresentationTime" units="ms"
    expires_after="2023-06-25">
<!-- Name completed by histogram_suffixes
     name="TabletOrClamshellMode" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Presentation time for the apps grid scrolling operation. This starts when
    drag starts by gesture and ends before the patination animation starts. The
    smoothness of the pagination animation is recorded in
    Apps.PaginationTransition.AnimationSmoothness.{TabletMode|ClamshellMode}.
  </summary>
</histogram>

<histogram base="true"
    name="Apps.PaginationTransition.DragScroll.PresentationTime.MaxLatency"
    units="ms" expires_after="2023-12-17">
<!-- Name completed by histogram_suffixes
     name="TabletOrClamshellMode" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Maximum latecy reported during one drag to scroll operation on apps grid.
  </summary>
</histogram>

<histogram name="Apps.PreferredApps.EntryCount" units="entries"
    expires_after="2023-07-09">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of entries in the preferred apps list that was stored on
    the disk. The preferred apps list is a vector that identifies the preferred
    app for an intent filter. This value is recorded every time on user login
    and we read the stored data from the disk.
  </summary>
</histogram>

<histogram name="Apps.PromiseApp.LifecycleEvent"
    enum="PromiseAppLifecycleEvent" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how often each key lifecycle event occurs across all promise apps. A
    promise app is a temporary item in the Launcher/ Shelf which represents an
    app installation, and critical app installation stages will trigger an
    update to this histogram under their relevant event category.
  </summary>
</histogram>

<histogram name="Apps.PromiseApp.PromiseAppIconType" enum="PromiseAppIconType"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records how often placeholder icons (as opposed to real app icons) are used
    across all promise apps. A promise app is a temporary item in the Launcher/
    Shelf which represents an app installation, and some promise apps will have
    an icon available while others will have no icons and need to fallback on a
    placeholder.
  </summary>
</histogram>

<histogram name="Apps.PromiseApp.PromiseAppType" enum="PromiseAppType"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records what app type a promise app is when the app installation
    successfully finishes. A promise app is a temporary item in the Launcher/
    Shelf which represents an app installation, and this metric tracks which app
    type is installed most frequently and additionally indicates which platform
    the installation was triggered from.
  </summary>
</histogram>

<histogram name="Apps.QuickAppIconLoadTime" units="ms"
    expires_after="2024-05-19">
  <owner>[email protected]</owner>
  <owner>src/ash/app_list/OWNERS</owner>
  <summary>
    The amount of time it takes for a quick app's icon to be loaded (The quick
    app is an app icon button that, when set, appears directly next to the home
    button). This is logged any time an icon is null and gets loaded for a newly
    set quick app.
  </summary>
</histogram>

<histogram name="Apps.RestoreArcAppsResult" enum="RestoreResult"
    expires_after="2024-10-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether all Arc app windows have been restored. This is logged when
    the restoration process finishes during the system startup phase.
  </summary>
</histogram>

<histogram name="Apps.RestoreArcAppStates" enum="ArcRestoreState"
    expires_after="2024-10-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records restoration result states of Arc apps. This is logged when the
    restoration process finishes during the system startup phase.
  </summary>
</histogram>

<histogram name="Apps.RestoreArcWindowCount" units="units"
    expires_after="2024-12-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of restored ARC app windows in Chrome OS. This is logged
    during the system startup phase. This histogram is capped at 100; values
    above this go into the overflow bucket.
  </summary>
</histogram>

<histogram name="Apps.RestoreBrowserResult" enum="RestoreTabResult"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the browser restore result, whether tabs can be restored, when the
    browser is restored during the system startup phase.
  </summary>
</histogram>

<histogram name="Apps.RestoredAppLaunch" enum="AppType"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of app launching restored grouped by app type, when the
    system startup.
  </summary>
</histogram>

<histogram name="Apps.RestoreForCrashNotification" enum="RestoreAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records user actions on the full restore for crash notification, when the
    notification is closed.
  </summary>
</histogram>

<histogram name="Apps.RestoreInitSetting" enum="RestoreSetting"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the restore apps and pages preference setting, when a profile is
    loaded.
  </summary>
</histogram>

<histogram name="Apps.RestoreNotification" enum="RestoreAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records user actions on the full restore notification, when the notification
    is closed.
  </summary>
</histogram>

<histogram name="Apps.RestoreSetting" enum="RestoreSetting"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the restore apps and pages preference setting, when the preference
    setting is changed.
  </summary>
</histogram>

<histogram name="Apps.RunningDuration.{AppType}" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <component>Platform&gt;Apps&gt;Foundation</component>
  <summary>
    Recorded the app running duration for {AppType} in Chrome OS. This is logged
    when more than 24 hours pass after last log, or during the system startup
    phase if more than 24 hours passed after last log.
  </summary>
  <token key="AppType" variants="AppType"/>
</histogram>

<histogram name="Apps.RunningPercentage.{AppType}" units="%"
    expires_after="2022-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded the app running duration percentage for {AppType} in Chrome OS.
    This is logged when more than 24 hours pass after last log, or during the
    system startup phase if more than 24 hours passed after last log.
  </summary>
  <token key="AppType" variants="AppType"/>
</histogram>

<histogram
    name="Apps.ScrollableShelf.AnimationSmoothness{HomeLauncherVisibility}"
    units="%" expires_after="2025-05-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Relative smoothness of animations of the scrollable shelf when scrolling.
    100% represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user scrolls over the
    scrollable shelf. {HomeLauncherVisibility}

    Warning: this histogram was expired from 2023-06-14 to 2024-05-16; data may
    be missing.
  </summary>
  <token key="HomeLauncherVisibility" variants="HomeLauncherVisibility">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Apps.ScrollableShelf.Drag.PresentationTime.MaxLatency{HomeLauncherVisibility}"
    units="ms" expires_after="2025-05-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Maximum latency of the presentation time of the drag scroll in the
    scrollable shelf. {HomeLauncherVisibility}

    Warning: this histogram was expired from 2023-06-06 to 2024-05-16; data may
    be missing.
  </summary>
  <token key="HomeLauncherVisibility" variants="HomeLauncherVisibility"/>
</histogram>

<histogram
    name="Apps.ScrollableShelf.Drag.PresentationTime{HomeLauncherVisibility}"
    units="ms" expires_after="2025-05-15">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Presentation time of the drag scroll in the scrollable shelf in
    milliseconds.

    Warning: This histogram was expired from 2021-01-10 to 2022-06-02; data may
    be missing. {HomeLauncherVisibility}

    Warning: this histogram was expired from 2023-06-02 to 2024-05-16; data may
    be missing.
  </summary>
  <token key="HomeLauncherVisibility" variants="HomeLauncherVisibility"/>
</histogram>

<histogram name="Apps.SessionRestoreExitResult" enum="SessionRestoreExitResult"
    expires_after="2024-10-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the last session restore exit result. This is logged when the
    restoration process finishes during the system startup phase.
  </summary>
</histogram>

<histogram name="Apps.SessionRestoreWindowCount"
    enum="SessionRestoreWindowCount" expires_after="2024-09-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the restored browser window count from session restore. This is
    logged when the restoration process finishes during the system startup
    phase.
  </summary>
</histogram>

<histogram name="Apps.Shortcut.LaunchSource" enum="ShortcutActionSource"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether a shortcut is launched from the Launcher or Shelf. Emitted
    when the user activates the shortcut by clicking on the shortcut item in the
    Launcher or Shelf. Activating a shortcut will launch its linked parent app
    to land on a specific page or screen.
  </summary>
</histogram>

<histogram name="Apps.Shortcut.PinAction" enum="ShortcutPinAction"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records when the user pins or unpins a shortcut in the shelf. Pinning or
    unpinning can be triggered via the context menu of the shortcut item in the
    launcher or shelf.
  </summary>
</histogram>

<histogram name="Apps.Shortcut.RemovalSource" enum="ShortcutActionSource"
    expires_after="2024-12-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records whether a shortcut is removed via the Launcher or Shelf. Emitted
    when the user removes a shortcut via the Launcher or Shelf context menu.
    Shortcuts are items in the Launcher/ Shelf that link to an installed app.
  </summary>
</histogram>

<histogram name="Apps.StateTransition.AnimationSmoothness" units="%"
    expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/ash/app_list/OWNERS</owner>
  <summary>
    Relative smoothness of animations of tablet mode launcher state transitions.
    100% represents ideally smooth 60 frames per second. 50% represents only 30
    frames per second is achieved during the animations. 0% should not happen.
    This metric is recorded exactly once when the user switches states of the
    launcher.
  </summary>
</histogram>

<histogram name="Apps.TimeBetweenAppInstallAndLaunch{TabletOrClamshell}"
    units="ms" expires_after="2025-02-22">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time between when an app is installed and when the user launches the app.
    Recorded the first time the user launches the app. The clamshell or tablet
    mode state is the state when the app is launched. Warning: this histogram
    was expired from M120 to M122; data may be missing.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram
    name="Apps.TimeBetweenNewUserSessionActivationAndFirstLauncherAction{TabletOrClamshell}"
    units="ms" expires_after="2024-04-17">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time duration between session activation and the first launcher action
    on a new user session. Launcher actions include the following: activating a
    launcher app and opening a search result from either a launcher suggestion
    chip or the search box. This metric is recorded when a new user triggers the
    launcher action for the first time.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram
    name="Apps.TimeDurationBetweenNewUserSessionActivationAndAppsCollectionShown"
    units="ms" expires_after="2025-03-27">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time duration between session activation and opening the Launcher with
    Apps Collections for the first time on a new user session. This metric is
    recorded when a new user opens the launcher for the first time and only if
    the Apps Collections view is shown instead of the regular app launcher.
  </summary>
</histogram>

<histogram
    name="Apps.TimeDurationBetweenNewUserSessionActivationAndFirstLauncherOpening{TabletOrClamshell}"
    units="ms" expires_after="2024-12-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time duration between session activation and opening the Launcher for
    the first time on a new user session. This metric is recorded when a new
    user opens the laucnher for the first time.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.UsageTime.{AppType}" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <component>Platform&gt;Apps&gt;Foundation</component>
  <summary>
    Records the amount of time that {AppType} were used in the last five minutes
    on Chrome OS. This is logged every five minutes.
  </summary>
  <token key="AppType" variants="AppType"/>
</histogram>

<histogram name="Apps.UsageTimeV2.{AppTypeV2}" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <component>Platform&gt;Apps&gt;Foundation</component>
  <summary>
    Records the amount of time that {AppTypeV2} were used in the last five
    minutes on Chrome OS. This is logged every five minutes.
  </summary>
  <token key="AppTypeV2" variants="AppTypeV2"/>
</histogram>

</histograms>

</histogram-configuration>