<!--
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
chromium-metrics-reviews@google.com.
-->

<histogram-configuration>

<histograms>

<variants name="AppDisplayModes">
<!-- Should be kept in sync with variants DisplayModes in
  tools/metrics/histograms/metadata/ash/histograms.xml.
-->

  <variant name="ClamshellMode" summary="Clamshell mode"/>
  <variant name="TabletMode" summary="Tablet mode"/>
</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="MacOs" summary="MacOs apps"/>
  <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="MacOs" summary="MacOs apps"/>
  <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=".AppGrid" summary="App - Fullscreen Launcher"/>
  <variant name=".Desktop" summary="Desktop"/>
  <variant name=".ProductivityLauncherAppGrid"
      summary="App - Productivity Launcher"/>
  <variant name=".ProductivityLauncherRecentApp"
      summary="Recent App, Productivity Launcher"/>
  <variant name=".SearchResult" summary="Launcher App Search Result"/>
  <variant name=".Shelf" summary="Shelf"/>
  <variant name=".ShelfButton" summary="ShelfButton"/>
  <variant name=".SuggestedAppFullscreen"
      summary="Suggested App, Fullscreen Launcher"/>
</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>

<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="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="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="2024-03-01">
<!-- Name completed by histogram_suffixes name="AppType" -->

  <owner>sharminzaman@google.com</owner>
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <owner>desktop-pwas-team@google.com</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-03-01">
  <owner>sharminzaman@google.com</owner>
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <summary>The ways the user opens up the App Management interface.</summary>
</histogram>

<histogram name="AppPreloadService.FirstLoginFlowTime.{Status}" units="ms"
    expires_after="2024-06-20">
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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-06-20">
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <summary>
    The combined http and net error codes the App Provisioning Server responds
    with after a request is made.
  </summary>
</histogram>

<histogram name="AppPreloadService.ServerRoundTripTimeForFirstLogin" units="ms"
    expires_after="2024-06-20">
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <summary>
    The time between request and response made by the App Preload Service to the
    APS endpoint for the initial request which is performed the first time a
    user logs in. This is only recorded if the response is successful.
  </summary>
</histogram>

<histogram name="AppPreloadService.WebAppInstall.CommandResultCode"
    enum="WebAppInstallResultCode" expires_after="2024-06-20">
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <summary>
    The result code of the web app install command used to install a web app
    through the App Preload Service. This gives specific detail about errors
    within the web apps system. Recorded every time the App Preload Service
    attempts to install a web app (e.g. during OOBE).
  </summary>
</histogram>

<histogram name="AppPreloadService.WebAppInstall.InstallResult"
    enum="AppPreloadServiceWebAppInstallResult" expires_after="2024-06-20">
  <owner>tsergeant@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <summary>
    The overall result of installing a web app through the App Preload Service.
    Recorded every time the App Preload Service attempts to install a web app
    (e.g. during OOBE).
  </summary>
</histogram>

<histogram name="Apps.ActivatedCount.{AppType}" units="units"
    expires_after="2022-07-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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.AppInfoDialog.CreateWebAppShortcutSuccess" enum="Boolean"
    expires_after="2024-02-11">
  <owner>dmurph@chromium.org</owner>
  <owner>desktop-pwas-team@google.com</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.AppLaunch" enum="AppLaunch" expires_after="2024-02-11">
  <owner>tapted@chromium.org</owner>
  <owner>benwells@chromium.org</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <summary>Records an app launch grouped by launch source.</summary>
</histogram>

<histogram name="Apps.AppList.AggregatedMlAppRankFail" units="units"
    expires_after="M92">
  <owner>pdyson@chromium.org</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>pdyson@chromium.org</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>thanhdng@chromium.org</owner>
  <summary>
    The type of errors that occur during the inference of Search Ranking
    aggregated model.
  </summary>
</histogram>

<histogram name="Apps.AppList.AnswerCardSearchProvider.SearchAnswerLoadingTime"
    units="ms" expires_after="2021-03-15">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</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>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</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.AppLaunched{TabletOrClamshell}"
    enum="AppListLaunchedFrom" expires_after="2023-06-19">
  <owner>gzadina@google.com</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The number of apps launched from different parts of the launcher (apps grid,
    search results UI, recent apps), and the shelf. Values are incremented each
    time the user launches an app. Each bucket represents where in the launcher
    or shelf the app was launched from. Recorded for {TabletOrClamshell}.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.AppListSortDiscoveryDurationAfterActivation"
    units="ms" expires_after="2023-06-25">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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.AppSearchProvider.QueryTime" units="ms"
    expires_after="2024-03-17">
  <owner>laurencom@chromium.org</owner>
  <owner>tbarzic@chromium.org</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>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</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-02-20">
  <owner>anasalazar@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2024-02-25">
  <owner>tby@chromium.org</owner>
  <owner>gzadina@chromium.org</owner>
  <summary>
    Recorded once upon login, records the state of the Disconnect Google Drive
    Account setting.
  </summary>
</histogram>

<histogram name="Apps.AppList.ContinueResultCount.{Type}" units="count"
    expires_after="2023-02-09">
  <obsolete>
    Deprecated Feb 2022 in favor of
    Apps.AppList.Search.ContinueResultCount.Type. This histogram was recorded in
    the wrong place to be useful for counting how many Continue results the user
    sees, vs. how many the search backend is prepared to show.
  </obsolete>
  <owner>amandadeacon@chromium.org</owner>
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <summary>
    Recorded on the first publication of zero-state results when opening the
    launcher. Records the number of {Type} results that are ready for display.
  </summary>
  <token key="Type">
    <variant name="Drive" summary="Count of Drive results"/>
    <variant name="Local" summary="Count of local file results"/>
    <variant name="Total" summary="Count of all results"/>
  </token>
</histogram>

<histogram name="Apps.AppList.ContinueResultRemoved"
    enum="LauncherContinueSectionResultType" expires_after="2023-02-14">
  <obsolete>
    Deprecated April 2022 in favor of
    Apps.AppList.Search.ContinueResultRemoved.Type. This histogram was recorded
    wrongly with the missing Search prefic. It is missing data for drive backed
    files.
  </obsolete>
  <owner>anasalazar@chromium.org</owner>
  <owner>tbarzic@chromium.org</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.
  </summary>
</histogram>

<histogram name="Apps.AppList.ContinueSectionHiddenByUser{TabletOrClamshell}"
    enum="Boolean" expires_after="2024-02-20">
  <owner>jamescook@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2024-02-01">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-02-01">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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-02-04">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-02-04">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-02-20">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <summary>
    The time between sending a zero state query and receiving file
    recommendations back from DriveZeroStateProvider.
  </summary>
</histogram>

<histogram name="Apps.AppList.DriveZeroStateProvider.Status"
    enum="DriveZeroStateProviderStatus" expires_after="2023-05-30">
  <obsolete>
    Deprecated September 2022, now that it's replaced by
    Ash.Search.DriveFileSuggestDataValidation.Status
  </obsolete>
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <summary>
    The outcome of a query for search results from DriverZeroStateProvider.
    Recorded once per zero-state query.
  </summary>
</histogram>

<histogram name="Apps.AppList.FileResult.DefaultRelevanceUsed"
    enum="BooleanUsage" expires_after="2023-11-30">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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-02-04">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-02-04">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2023-12-04">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-07-30">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2024-03-17">
  <owner>laurencom@chromium.org</owner>
  <owner>amandadeacon@chromium.org</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="2023-11-12">
  <owner>laurencom@chromium.org</owner>
  <owner>amandadeacon@chromium.org</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="2024-02-28">
  <owner>amandadeacon@chromium.org</owner>
  <owner>chenjih@chromium.org</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-02-11">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <owner>zufeng@google.com</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="2023-11-30">
  <owner>thanhdng@chromium.org</owner>
  <owner>tby@chromium.org</owner>
  <owner>zufeng@google.com</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-02-01">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-02-01">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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-02-01">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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-02-20">
  <owner>laurencom@chromium.org</owner>
  <owner>amandadeacon@chromium.org</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-02-20">
  <owner>tbarzic@chromium.org</owner>
  <owner>gzadina@google.com</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.NumberOfApps" units="count"
    expires_after="2024-02-11">
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>gzadina@google.com</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-02-04">
  <owner>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>mmourgos@chromium.org</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-02-11">
  <owner>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>mmourgos@chromium.org</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="2023-10-08">
  <owner>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</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.
  </summary>
</histogram>

<histogram name="Apps.AppList.NumberOfRootLevelItems" units="count"
    expires_after="2023-06-01">
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>gzadina@google.com</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="2024-02-20">
  <owner>laurencom@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2024-01-14">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-01-14">
  <owner>tby@chromium.org</owner>
  <owner>chenjih@chromium.org</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="2024-02-11">
  <owner>thanhdng@chromium.org</owner>
  <owner>tby@chromium.org</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-02-20">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-06-30">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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>cowmoo@google.com</owner>
  <owner>assistive-eng@google.com</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="2024-02-04">
  <owner>andrewxu@chromium.org</owner>
  <owner>tby@chromium.org</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}"
    units="BooleanHit" expires_after="2024-02-25">
  <owner>amandadeacon@chromium.org</owner>
  <owner>laurencom@chromium.org</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.ContinueResultCount.{Type}" units="count"
    expires_after="2024-09-14">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2024-02-11">
  <owner>anasalazar@chromium.org</owner>
  <owner>tbarzic@chromium.org</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.
  </summary>
</histogram>

<histogram name="Apps.AppList.Search.ContinueSectionFilesRemovedPerSession"
    units="files" expires_after="2024-02-11">
  <owner>anasalazar@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2024-02-25">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2024-02-20">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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-02-01">
  <owner>amandadeacon@chromium.org</owner>
  <owner>alanlxl@chromium.org</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="2024-02-01">
  <owner>amandadeacon@chromium.org</owner>
  <owner>alanlxl@chromium.org</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.ReportStatus"
    enum="AppListFederatedReportStatus" expires_after="2024-02-01">
  <owner>amandadeacon@chromium.org</owner>
  <owner>alanlxl@chromium.org</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="2024-02-01">
  <owner>amandadeacon@chromium.org</owner>
  <owner>tby@chromium.org</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.Session2.Error"
    enum="AppListUserEventError" expires_after="2024-01-31">
  <owner>yulunwu@chromium.org</owner>
  <owner>tby@chromium.org</owner>
  <owner>tbarzic@chromium.org</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.{LauncherSearchEntryPoint}"
    enum="LauncherSearchSessionConclusion" expires_after="2024-01-31">
  <owner>yulunwu@chromium.org</owner>
  <owner>tby@chromium.org</owner>
  <owner>tbarzic@chromium.org</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 make 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="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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.SearchQueryLength.Apps" units="characters"
    expires_after="2024-03-17">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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-03-17">
  <owner>tbarzic@chromium.org</owner>
  <owner>gzadina@google.com</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="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2023-12-17">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="M125">
  <owner>andrewxu@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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="2023-06-19">
  <owner>gzadina@google.com</owner>
  <owner>tbarzic@chromium.org</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.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.SuggestedContent.Enabled" enum="BooleanEnabled"
    expires_after="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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="2024-02-25">
  <owner>laurencom@google.com</owner>
  <owner>tby@google.com</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="2024-06-15">
  <owner>laurencom@google.com</owner>
  <owner>tby@google.com</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="2023-06-19">
  <owner>gzadina@google.com</owner>
  <owner>tbarzic@chromium.org</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}.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.UserAction{TabletOrClamshell}"
    enum="LauncherUserAction" expires_after="2023-06-19">
  <owner>gzadina@google.com</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Tracks different launcher worflow actions the user performs in the launcher.
    Logged when the user performs an action. Recorded for {TabletOrClamshell}.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppList.UserEvent.LaunchIndex{LauncherUISurface}"
    units="index" expires_after="2023-07-31">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <summary>
    Emitted on a usage of the launcher, and records overall impressions,
    launches, and abandons for a launcher UI view. The bucket proportion is not
    meaningful for this metric, because impressions are a superset of launches
    and abandons. Instead, the ratio between buckets can be used to calculate
    accurate overall CTR. {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.Overall{LauncherUISurface}"
    enum="AppListUserEvent" expires_after="2023-07-31">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <summary>
    Emitted on a usage of the launcher, and records overall impressions,
    launches, and abandons for a launcher UI view. The bucket proportion is not
    meaningful for this metric, because impressions are a superset of launches
    and abandons. Instead, the ratio between buckets can be used to calculate
    accurate overall CTR. {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.Query" enum="Boolean"
    expires_after="2023-07-31">
  <owner>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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>tby@chromium.org</owner>
  <owner>thanhdng@chromium.org</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="2024-07-31">
  <owner>dgrebenyuk@google.com</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chromeos-launcher-search@google.com</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>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</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="2024-02-20">
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>newcomer@chromium.org</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-02-25">
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>newcomer@chromium.org</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>charleszhao@chromium.org</owner>
  <owner>pdyson@chromium.org</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.AppListBubbleAppMovingType" enum="AppListAppMovingType"
    expires_after="2023-12-17">
  <owner>tbarzic@chromium.org</owner>
  <owner>wcwang@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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.
  </summary>
</histogram>

<histogram name="Apps.AppListBubbleCreationTime" units="ms"
    expires_after="2023-12-17">
  <owner>tbarzic@chromium.org</owner>
  <owner>wcwang@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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.
  </summary>
</histogram>

<histogram name="Apps.AppListBubbleShowSource" enum="AppListShowSource"
    expires_after="2024-02-20">
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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="2023-08-08">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->

  <owner>anasalazar@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    The type of app list continue search result that was opened by the user.
    This is gathered per continue section task opened.
  </summary>
</histogram>

<histogram name="Apps.AppListCreationTime" units="ms"
    expires_after="2023-06-25">
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</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.
  </summary>
</histogram>

<histogram name="Apps.AppListDefaultSearchResultOpenType"
    enum="AppListSearchResult" expires_after="2023-04-17">
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</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="2023-09-10">
  <owner>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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; data may
    be missing.
  </summary>
</histogram>

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

  <owner>mmourgos@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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-02-04">
  <owner>mmourgos@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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="2023-06-01">
  <owner>newcomer@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</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.
  </summary>
</histogram>

<histogram name="Apps.AppListLauncherClickedSearchQueryLength"
    units="characters" expires_after="2024-03-17">
  <owner>laurencom@chromium.org</owner>
  <owner>tby@chromium.org</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="2024-02-11">
  <owner>jennyz@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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>angusmclean@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2024-02-04">
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>mmourgos@chromium.org</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.AppListPlayStoreAppLaunchedIndex" units="indices"
    expires_after="2021-12-31">
  <obsolete>
    Deprecated in M108. Tiled app results are no longer shown.
  </obsolete>
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The index of the app within all play store apps displayed when it is
    launched.
  </summary>
</histogram>

<histogram name="Apps.AppListPlayStoreQueryState"
    enum="AppListPlayStoreQueryState" expires_after="2024-02-20">
  <owner>tby@chromium.org</owner>
  <owner>ypitsishin@google.com</owner>
  <owner>chrome-knowledge-eng@google.com</owner>
  <summary>The state of a Play Store app search request.</summary>
</histogram>

<histogram name="Apps.AppListPlayStoreSearchAppsDisplayed" units="apss"
    expires_after="2021-12-31">
  <obsolete>
    Deprecated in M108. Tiled app results are no longer shown.
  </obsolete>
  <owner>jennyz@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    Deprecated in Oct 2022. The number of the play store apps displayed to user
    as tile items for a query.
  </summary>
</histogram>

<histogram name="Apps.AppListRecommendedResponse"
    enum="ReinstallResponseParseResult" expires_after="2022-01-02">
  <owner>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <owner>thanhdng@chromium.org</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>napper@chromium.org</owner>
  <owner>robsc@chromium.org</owner>
  <owner>thanhdng@chromium.org</owner>
  <summary>
    Milliseconds elapsed to fetch appListRecommended GetAppReinstallCandidates.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchAutocomplete" enum="SearchBoxTextMatch"
    expires_after="2024-02-20">
  <owner>yulunwu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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.AppListSearchQueryLength" units="characters"
    expires_after="2022-08-01">
  <obsolete>
    Deprecated in July 2022. Replaced with Apps.AppListSearchQueryLenghtV2,
    which, unlike this histogram, only records query length for results from
    launcher search results UI. Apps.AppListSearchQueryLength was recording
    query length when launching results from continue section.
  </obsolete>
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->

  <owner>yulunwu@chromium.org</owner>
  <owner>calamity@chromium.org</owner>
  <summary>
    The length of the app list search query when a result is opened. This is
    gathered per click of a search result.
  </summary>
</histogram>

<histogram name="Apps.AppListSearchQueryLengthV2{TabletOrClamshell}"
    units="characters" expires_after="2023-10-01">
  <owner>yulunwu@chromium.org</owner>
  <owner>calamity@chromium.org</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="2024-02-04">
<!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" -->

  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>mmourgos@chromium.org</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>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>mmourgos@chromium.org</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="2024-02-20">
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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.AppListUsageByNewUsers{TabletOrClamshell}"
    enum="AppListUsageStateByNewUsers" expires_after="2023-06-19">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <summary>
    Records the launcher usage state during the session started by a new user
    (i.e. the session completing the OOBE flow). This metric is recorded in the
    following scenarios: (1) the launcher shows and the current user is new (2)
    the launcher has never shown before launcher is destructed. Destruction can
    be triggered by loging out accounts, shuting down the device or system
    crashes and meanwhile the current user is new (3) the launcher has never
    shown when the active user has changed and the previous active user was a
    new user. Split depending on whether the device was in tablet or clamshell
    mode when the metric was recorded.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.AppsCount.{AppType}" units="Apps"
    expires_after="2024-06-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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="2024-06-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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.AppsInFolders{AppListFolderExperiment}" units="Apps"
    expires_after="2022-10-09">
  <obsolete>
    Deprecated in May 2022. Replaced with
    Apps.AppList.NumberOfAppsInNonSystemFolders, which is recorded periodically,
    for consistency with other app list metrics.
  </obsolete>
  <owner>mmourgos@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The total number of apps in folders ignoring OEM folders. This is logged
    each time the app list is initialized. The
    &quot;FullscreenAppListDisabled&quot; suffix has been deprecated.
    {AppListFolderExperiment}
  </summary>
  <token key="AppListFolderExperiment">
    <variant name=""/>
    <variant name=".FullscreenAppListDisabled"
        summary="Peeking Launcher Disabled"/>
    <variant name=".FullscreenAppListEnabled"
        summary="Peeking Launcher Enabled"/>
  </token>
</histogram>

<histogram name="Apps.ArcGhostWindowLaunch" enum="Boolean"
    expires_after="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sstan@chromium.org</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>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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="2023-06-30">
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>mmourgos@chromium.org</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="2023-12-01">
  <owner>wcwang@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2023-12-01">
  <owner>wcwang@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>tbarzic@chromium.org</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. Not recorded whenever the context menu is not for an app icon on
    the shelf. {AppUIComponent}
  </summary>
  <token key="AppUIComponent" variants="AppUIComponent"/>
  <token key="TabletOrClamshellMode" variants="TabletOrClamshellMode"/>
</histogram>

<histogram name="Apps.CreateShortcutIcon.Linux.Result"
    enum="WebAppCreateShortcutIconLinuxResult" expires_after="2023-10-01">
  <owner>estade@chromium.org</owner>
  <owner>desktop-pwas-team@google.com</owner>
  <summary>
    Records the result of creating shortcut image for web app on Linux.
  </summary>
</histogram>

<histogram name="Apps.CreateShortcuts.Linux.Result"
    enum="WebAppCreateShortcutLinuxResult" expires_after="2024-01-14">
  <owner>phillis@chromium.org</owner>
  <owner>cmumford@chromium.org</owner>
  <summary>
    Records the result of creating shortcut for web app on Linux.
  </summary>
</histogram>

<histogram name="Apps.CreateShortcuts.Mac.Result"
    enum="WebAppCreateShortcutMacResult" expires_after="2024-02-04">
  <owner>phillis@chromium.org</owner>
  <owner>cmumford@chromium.org</owner>
  <summary>
    Records the result of creating shortcut for web app on MacOS.
  </summary>
</histogram>

<histogram name="Apps.DefaultAppLaunch{DefaultAppLaunchSource}"
    enum="DefaultAppName" expires_after="2024-06-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</owner>
  <owner>cros-peripherals@google.com</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=".FromFullRestore" summary="From full restore."/>
    <variant name=".FromInstalledNotification"
        summary="From installed notification."/>
    <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=".FromSysTrayCalendar" summary="From system tray Calendar."/>
    <variant name=".FromUrlHandler" summary="From URL handler."/>
  </token>
</histogram>

<histogram name="Apps.FileHandler.Registration.Linux.Result"
    enum="FileHandlerRegistrationLinuxResult" expires_after="M110">
  <owner>estade@chromium.org</owner>
  <owner>desktop-pwas-team@google.com</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>estade@chromium.org</owner>
  <owner>desktop-pwas-team@google.com</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>estade@chromium.org</owner>
  <owner>desktop-pwas-team@google.com</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.FirstLauncherActionByNewUsers{TabletOrClamshell}"
    enum="AppListLaunchedFrom" expires_after="M107">
  <obsolete>
    Deprecated in M103. Replaced with Apps.NewUserFirstLauncherAction.
  </obsolete>
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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
    and opening a search result from either a launcher suggestion chip or the
    search box. 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.FullRestoreTabCount" units="count"
    expires_after="2024-06-20">
  <owner>sammiequon@chromium.org</owner>
  <owner>fanafan@chromium.org</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.FullRestoreWindowCount" units="count"
    expires_after="2024-06-20">
  <owner>sammiequon@chromium.org</owner>
  <owner>fanafan@chromium.org</owner>
  <summary>Records the number of windows restored by full restore.</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>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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>andrewxu@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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>mmourgos@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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="M125">
  <owner>andrewxu@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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>andrewxu@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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="2024-03-24">
  <owner>tapted@chromium.org</owner>
  <owner>patricialor@chromium.org</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="2024-04-17">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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-08-29">
  <owner>glenrob@chromium.org</owner>
  <owner>tbuckley@chromium.org</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>glenrob@chromium.org</owner>
  <owner>tbuckley@chromium.org</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.NumberOfFolders" units="folder(s)"
    expires_after="2022-10-04">
  <obsolete>
    Deprecated in May 2022. Replaced with Apps.AppList.NumberOfFolders, which is
    recorded periodically, for consistency with other app list metrics.
  </obsolete>
  <owner>tbarzic@chromium.org</owner>
  <owner>mmourgos@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of folders that users have in their Launcher. Includes
    system-created folders like &quot;Linux apps&quot; or the OEM folder.
    Recorded every time the launcher is shown.
  </summary>
</histogram>

<histogram name="Apps.NumberOfNonSystemFolders" units="folder(s)"
    expires_after="2022-10-04">
  <obsolete>
    Deprecated in May 2022. Replaced with Apps.AppList.NumberOfNonSystemFolders,
    which is recorded periodically, for consistency with other app list metrics.
  </obsolete>
  <owner>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    The number of folders that users have in their launcher. Does not include
    system-created folders like &quot;Linux apps&quot; or the OEM folder.
    Recorded every time the launcher is shown.
  </summary>
</histogram>

<histogram name="Apps.NumberOfPages" units="page(s)" expires_after="2023-12-23">
  <owner>mmourgos@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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.OpenedAppListSearchResultFromSearchBoxV2.{AnyNonAppBrowserWindowOpenAndNotMinimized}"
    enum="AppListSearchResult" expires_after="2023-12-17">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <owner>wutao@chromium.org</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>omrilio@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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>omrilio@chromium.org</owner>
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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>mxcai@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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.QuickAppIconLoadTime" units="ms"
    expires_after="2024-03-17">
  <owner>mmourgos@chromium.org</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>nancylingwang@chromium.org</owner>
  <owner>sstan@chromium.org</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>nancylingwang@chromium.org</owner>
  <owner>sstan@chromium.org</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>nancylingwang@chromium.org</owner>
  <owner>sstan@chromium.org</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="2024-10-24">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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="2024-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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="2024-06-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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="2023-06-14">
  <owner>tbarzic@chromium.org</owner>
  <owner>anasalazar@chromium.org</owner>
  <owner>newcomer@chromium.org</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}
  </summary>
  <token key="HomeLauncherVisibility" variants="HomeLauncherVisibility">
    <variant name=""/>
  </token>
</histogram>

<histogram
    name="Apps.ScrollableShelf.Drag.PresentationTime.MaxLatency{HomeLauncherVisibility}"
    units="ms" expires_after="2023-06-06">
  <owner>tbarzic@chromium.org</owner>
  <owner>anasalazar@chromium.org</owner>
  <owner>newcomer@chromium.org</owner>
  <summary>
    Maximum latency of the presentation time of the drag scroll in the
    scrollable shelf. {HomeLauncherVisibility}
  </summary>
  <token key="HomeLauncherVisibility" variants="HomeLauncherVisibility"/>
</histogram>

<histogram
    name="Apps.ScrollableShelf.Drag.PresentationTime{HomeLauncherVisibility}"
    units="ms" expires_after="2023-06-02">
  <owner>tbarzic@chromium.org</owner>
  <owner>anasalazar@chromium.org</owner>
  <owner>newcomer@chromium.org</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}
  </summary>
  <token key="HomeLauncherVisibility" variants="HomeLauncherVisibility"/>
</histogram>

<histogram name="Apps.SessionRestoreExitResult" enum="SessionRestoreExitResult"
    expires_after="2024-10-24">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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-02-25">
  <owner>nancylingwang@chromium.org</owner>
  <owner>sammiequon@chromium.org</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.StateTransition.AnimationSmoothness" units="%"
    expires_after="2024-02-11">
  <owner>tbarzic@chromium.org</owner>
  <owner>newcomer@chromium.org</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="M120">
  <owner>tbarzic@chromium.org</owner>
  <owner>jamescook@chromium.org</owner>
  <owner>chromeos-launcher@google.com</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.
  </summary>
  <token key="TabletOrClamshell" variants="TabletOrClamshellMode"/>
</histogram>

<histogram
    name="Apps.TimeBetweenNewUserSessionActivationAndFirstLauncherAction{TabletOrClamshell}"
    units="ms" expires_after="2024-04-17">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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.TimeDurationBetweenNewUserSessionActivationAndFirstLauncherOpening{TabletOrClamshell}"
    units="ms" expires_after="2024-04-17">
  <owner>andrewxu@chromium.org</owner>
  <owner>tbarzic@chromium.org</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="2024-06-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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="2024-06-01">
  <owner>nancylingwang@chromium.org</owner>
  <owner>chromeos-apps-foundation-team@google.com</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>
