<!--
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 NewTabPage 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>

<histogram name="NewTabPage.ActionAndroid2" enum="NewTabPageActionAndroid2"
    expires_after="2024-02-25">
  <owner>twellington@chromium.org</owner>
  <owner>finkm@chromium.org</owner>
  <summary>
    Actions taken from the new tab page on Android. These actions may navigate
    away from the NTP (e.g. searching in the omnibox or opening a bookmark), but
    can also happen without navigating away from the NTP (e.g. opening a content
    suggestion in a new tab).
  </summary>
</histogram>

<histogram name="NewTabPage.ActioniOS" enum="NewTabPageActioniOS"
    expires_after="2024-01-28">
  <owner>justincohen@chromium.org</owner>
  <owner>gambard@chromium.org</owner>
  <summary>
    Actions taken by users from the new tab page on iOS. These actions may
    navigate away from the NTP (e.g. searching in the omnibox or opening a
    bookmark), but can also happen without navigating away from the NTP (e.g.
    opening a bookmark in a new tab).
  </summary>
</histogram>

<histogram name="NewTabPage.AppsPageDragSource" enum="AppsPageDragSource"
    expires_after="2018-08-30">
  <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
  <summary>
    Histogram for the source of app page drags. For any succesful drop onto an
    apps pane of the NTP, this logs where the drag originated.
  </summary>
</histogram>

<histogram name="NewTabPage.AsHomeSurface" enum="Boolean"
    expires_after="2024-02-04">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Records total impressions of a NTP showing as the home surface, including at
    startup when users haven't used Chrome for 8 hours and via back operations.
    Only records true if shows. This histogram is recorded on tablets only.
  </summary>
</histogram>

<histogram name="NewTabPage.AsHomeSurface.ShownAtStartup" enum="Boolean"
    expires_after="2024-02-25">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Records impressions of a NTP is showing as the home surface at a cold or
    warm startup when users haven't used Chrome for 8 hours, and only records
    true if shows. This histogram is recorded on tablets only.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundImageSource"
    enum="NTPBackgroundImageSource" expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the type of background image that is set. Only recorded once per
    NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Collections.RequestLatency"
    units="ms" expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The time it took until a request from the New Tab Page for Backdrop
    Collections was served.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Images.Headers.ErrorDetected"
    enum="NTPImageType" expires_after="2024-03-03">
  <owner>pauladedeji@google.com</owner>
  <owner>danpeng@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records image's type when an error is detected via its URL headers.

    Logged every time Chrome encounters an error when verifying background
    images.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Images.Headers.RequestLatency"
    units="ms" expires_after="2024-03-03">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The time it takes to download an image's URL headers.

    Logged every time Chrome encounters an error when verifying background
    images.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Images.Headers.StatusCode"
    units="HttpResponseCode" expires_after="2024-03-03">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the HTTP response status code of New Tab Page image URL header
    requests.

    Logged every time Chrome encounters an error when verifying background
    images.
  </summary>
</histogram>

<histogram name="NewTabPage.BackgroundService.Images.RequestLatency" units="ms"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The time it took until a request from the New Tab Page for Backdrop Images
    was served.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.AppliedDiscount" units="count"
    expires_after="2023-11-06">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when discount is encoded successfully into the navigation url. This
    histogram always logs a 1 and this value has no meaning other than this
    occurence happended. Only logged on the 1P NTP. Note that even if the user
    has Google as their default search engine, Incognito and Guest mode NTPs are
    not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.CartCount" units="count"
    expires_after="2024-02-11">
  <owner>wychen@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created. The value is equal to the initial
    number of carts within the module (could be zero).
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.CartImageCount" units="count"
    expires_after="2024-03-17">
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created and is recorded once for every cart.
    It records the number of product images in this cart (could be zero). This
    is not logged when welcome surface is showing. Only logged on the 1P NTP.
    Note that even if the user has Google as their default search engine,
    Incognito and Guest mode NTPs are not considered 1P and don't log this
    histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.ClickCart" units="index"
    expires_after="2023-11-20">
  <owner>wychen@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when a user clicks on a cart in the cart module. The value is equal
    to the index of the cart.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.ClickCart.HasDiscount"
    enum="BooleanHasDiscount" expires_after="2024-02-11">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when a user clicks on a cart in the cart module. It records whether
    the clicked cart has a discount or not. Only logged on the 1P NTP. Note that
    even if the user has Google as their default search engine, Incognito and
    Guest mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.DataRequest" enum="CartDiscountDataType"
    expires_after="2024-03-17">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Records the discount data associated with the cart module. Logged when the
    chrome cart module makes a data request to a Chrome-external backend. Only
    logged on the 1P NTP. Note that even if the user has Google as their default
    search engine, Incognito and Guest mode NTPs are not considered 1P and don't
    log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.DiscountAt" units="index"
    expires_after="2024-02-04">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created and if there is at least one
    abandoned cart. It records the index of the discounted cart within the cart
    module. Only logged on the 1P NTP. Note that even if the user has Google as
    their default search engine, Incognito and Guest mode NTPs are not
    considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.DiscountConsentShow" units="count"
    expires_after="2022-11-30">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged every time the consent for Rule-based Discount shows in the cart
    module. We only show the consent when there are abandoned carts from partner
    merchants. This histogram always logs a 1 and this value has no meaning
    other than that an occurrence happended. Only logged on the 1P NTP. Note
    that even if the user has Google as their default search engine, Incognito
    and Guest mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.DiscountConsentStatusAtLoad"
    enum="CartDiscountConsentStatus" expires_after="2024-02-05">
  <owner>yuezhanggg@chromium.org</owner>
  <owner>wychen@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created and if there is at least one
    abandoned cart. &quot;Accept&quot; and &quot;Decline&quot; to record
    interaction result for users who have acted on the consent;
    &quot;IGNORED&quot; for users who have seen the consent before but never
    acted on it, and the consent is showing now; &quot;No show&quot; for users
    who have seen the consent before but never acted on it, and the consent is
    not showing now; &quot;Never shown&quot; for users who have never seen the
    consent. Only logged on the 1P NTP. Note that even if the user has Google as
    their default search engine, Incognito and Guest mode NTPs are not
    considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.DiscountConsentStatusAtLoad.{ConsentState}"
    enum="CartDiscountConsentVariation" expires_after="2024-02-20">
  <owner>meiliang@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created and if there is at least one
    abandoned cart. It {ConsentState}. Only logged on the 1P NTP. Note that even
    if the user has Google as their default search engine, Incognito and Guest
    mode NTPs are not considered 1P and don't log this histogram.
  </summary>
  <token key="ConsentState">
    <variant name="AcceptedIn"
        summary="keeps track of which variation the user has accepted the
                 consent in."/>
    <variant name="DismissedIn"
        summary="keeps track of which variation the user has rejected the
                 consent in. Only the Inline and Dialog variation has an
                 option to dismiss the consent."/>
    <variant name="IgnoredIn"
        summary="keeps track of which variation the user has ignored the
                 consent in. Ignored means when the user has seen the consent
                 but they did not accept/reject/dismiss it, or did not show
                 any interests(click the continue button, but no following
                 action)."/>
    <variant name="InterestedButNoActionIn"
        summary="keeps track of which variation the user has shown interest
                 but no further action in (e.g. tapped &quot;Continue&quot;
                 in the 2-step NTP consent.) Only the Inline and Dialog
                 variation applies."/>
    <variant name="NeverShownIn"
        summary="keeps track of which variation the consent has never shown
                 in. Never shown means the user has never seen the consent
                 before"/>
    <variant name="NoShowHasFinalized"
        summary="keeps track if the user has accepted or rejected the consent
                 before in another variation, hence no show when the cart is
                 loaded. Finalized means user has accepted or rejected the
                 consent in another variation."/>
    <variant name="NoShowIn"
        summary="keeps track of which variation the consent is not showing.
                 No show means the user has seen the consent before but did
                 not accept/reject the consent, and the consent is not
                 showing now."/>
    <variant name="RejectedIn"
        summary="Keeps track of which variation the user has rejected the
                 consent in."/>
    <variant name="ShownIn"
        summary="Keeps track of which variation is shown. This is recorded
                 when consent is shown."/>
  </token>
</histogram>

<histogram name="NewTabPage.Carts.DiscountCountAtLoad" units="count"
    expires_after="2024-03-17">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created and if there is at least one
    abandoned cart. It records the number of carts with discount (could be
    zero). Only logged on the 1P NTP. Note that even if the user has Google as
    their default search engine, Incognito and Guest mode NTPs are not
    considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Carts.NonDiscountCountAtLoad" units="count"
    expires_after="2024-01-14">
  <owner>meiliang@chromium.org</owner>
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <summary>
    Logged when the cart module is created. It records the number of carts
    without discount (could be zero). Only logged on the 1P NTP. Note that even
    if the user has Google as their default search engine, Incognito and Guest
    mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.ChromeWebStoreOpen" enum="NTPChromeWebStoreOpen"
    expires_after="2023-11-18">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs where a user opened the Chrome Web Store link from in Customize Chrome.
    Only logged on the 1P NTP. Note that even if the user has Google as their
    default search engine, Incognito and Guest mode NTPs are not considered 1P
    and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Click" enum="NTPElement" expires_after="2024-03-17">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when the NTP was clicked. Only logged on the 1P NTP. Be aware that
    this may undercount clicks on nested OGB iframes. Note that even if the user
    has Google as their default search engine, Incognito and Guest mode NTPs are
    not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Collections.IdOnLoad" enum="NTPCollectionId"
    expires_after="2024-03-17">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The collection id of user's background image on the NTP. Only recorded once
    per NTP. Note that even if the user has Google as their default search
    engine, Incognito and Guest mode NTPs are not considered 1P and don't log
    this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.ConcretePage" enum="NewTabPageConcretePage"
    expires_after="2023-12-24">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the concrete page loaded when navigating to chrome://newtab.
    Recorded on every NTP load.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.ArticlesListVisible"
    enum="BooleanVisible" expires_after="2024-02-25">
  <owner>freedjm@chromium.org</owner>
  <owner>feed@chromium.org</owner>
  <summary>
    Android: Whether article suggestions on New Tab Page are set visible by user
    on startup and when the visibility is changed.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Opened" units="index"
    expires_after="never">
<!-- expires-never: key feature metric.  We will need the Opened
     metric as long as we have a feed, and it will be removed with the
     feed code if the feed is ever removed. -->

  <owner>freedjm@chromium.org</owner>
  <owner>feed@chromium.org</owner>
  <summary>
    Android: The position of the For-You card on the NTP, that is clicked
    through to the host website of the content. We track the position the card
    had in the list when it was first seen by the user. This tracked position
    can be different from the position observed by the user, e.g. when the user
    dismissed some suggestions from the list or requested more that got inserted
    in the middle of the feed.

    iOS: Reported per click on card in the feed. Does not include position
    information and thus can only be used as a total count of clicks.
  </summary>
</histogram>

<histogram name="NewTabPage.ContentSuggestions.Shown" units="index"
    expires_after="never">
<!-- expires-never: key feature metric.  We will need the Shown
       metric as long as we have a feed, and it will be removed with
       the feed code if the feed is ever removed. -->

  <owner>freedjm@chromium.org</owner>
  <owner>feed@chromium.org</owner>
  <summary>
    Android: The position of a For-You card that was shown on the NTP. A card is
    considered shown when at least 2/3 of its height is visible on the screen.
    For each card, at most one impression is recorded per NTP instance. We track
    the position the card had in the list when it was first seen by the user.
    This tracked position can be different from the position observed by the
    user, e.g. when the user dismissed some suggestions from the list or
    requested more that got inserted in the middle of the feed.
  </summary>
</histogram>

<histogram name="NewTabPage.CryptidRenderResult" enum="CryptidRenderResult"
    expires_after="2022-01-23">
  <owner>tmartino@chromium.org</owner>
  <owner>chrome-creation@google.com</owner>
  <summary>
    Tracks the outcome of Probabilistic Cryptid Rendering (succeeded, failed, or
    was disabled because preconditions were not met).
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeAction" enum="NTPCustomizeAction"
    expires_after="M86">
  <obsolete>
    Last logged in M86. Removed 2022-10.
  </obsolete>
  <owner>dbeam@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-analysis-team@google.com</owner>
  <summary>
    Customization actions performed by the user on the New Tab Page; logged as
    each interaction occurs. This may indicate popularity of a particular
    customization type.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeChromeBackgroundAction"
    enum="NTPCustomizeChromeBackgroundAction" expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Captures the actions performed when configuring a 'Chrome background' image
    on the New Tab Page. Since most actions are sequential, this may indicate
    steps in the configuration process where users drop off.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeChromeOpened"
    enum="NTPCustomizeChromeEntryPoint" expires_after="2024-02-04">
  <owner>pauladedeji@google.com</owner>
  <owner>danpeng@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Captures calls to open Customize Chrome on the NTP. Calls can be made to
    open Customize Chrome while it is already open. Opening Customize Chrome
    from inside the side panel is tracked by
    &quot;SidePanel.CustomizeChrome.ShowTriggered&quot;.
  </summary>
</histogram>

<histogram name="NewTabPage.Customized" enum="NTPCustomizedFeatures"
    expires_after="2024-02-25">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The New Tab Page features that have been customized by the user; logged per
    NTP load.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizedShortcuts"
    enum="NTPCustomizedShortcutSettings" expires_after="2024-02-25">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The New Tab Page shortcut settings that can be customized by the user,
    including shortcut type (i.e. most visited vs custom links) and visibility;
    logged per NTP load.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeLocalImageBackgroundAction"
    enum="NTPCustomizeLocalImageBackgroundAction" expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Captures the actions performed when uploading a local image as the
    background on the New Tab Page. Since most actions are sequential, this may
    indicate steps in the configuration process where users drop off.
  </summary>
</histogram>

<histogram name="NewTabPage.CustomizeShortcutAction"
    enum="NTPCustomizeShortcutAction" expires_after="2024-03-03">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Captures the actions performed when configuring shortcuts on the New Tab
    Page.
  </summary>
</histogram>

<histogram name="NewTabPage.Drive.FileClick" units="index"
    expires_after="2024-03-17">
  <owner>tiborg@chromium.org</owner>
  <owner>aee@chromium.org</owner>
  <owner>andrevincent@google.com</owner>
  <summary>
    Logged when a user clicks on a file within the Drive Module. The index is
    equal to the index of the file.
  </summary>
</histogram>

<histogram name="NewTabPage.Drive.FileCount" units="count"
    expires_after="never">
<!-- expires-never: Used for Chirp monitoring. -->

  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the number of files returned by ItemSuggest. Logged every time the
    Drive module successfully processed an ItemSuggest response.
  </summary>
</histogram>

<histogram name="NewTabPage.Drive.ItemSuggestRequestResult"
    enum="ItemSuggestRequestResult" expires_after="never">
<!-- expires-never: Used for Chirp monitoring. -->

  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the result of a request to the ItemSuggest API. Logged every time the
    Drive module makes an ItemSuggest request.
  </summary>
</histogram>

<histogram name="NewTabPage.FailToShowHomeSurfaceUI"
    enum="FailToShowHomeSurfaceReason" expires_after="2024-02-25">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Records the reason of why failed to show a home surface UI on the chosen
    NTP. Logged in cold or warm startup when failed to show the home surface UI.
    This histogram is recorded on tablets only.
  </summary>
</histogram>

<histogram name="NewTabPage.FeedPositionSegmentationResult"
    enum="FeedPositionSegmentationResult" expires_after="2023-09-10">
  <owner>hanxi@chromium.org</owner>
  <owner>ssid@chromium.org</owner>
  <summary>
    Logs the result from segmentation platform that determines whether the user
    is a Feed active user or a non-Feed user. Recorded three times when a new
    tab page is shown and Feed position (target) experiment is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HasCredentials" enum="BooleanYesNo"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs whether Chrome has valid user credentials for the profile the NTP is
    loading in. Logged when the NTP starts loading. Only logged on the 1P NTP.
    Note that even if the user has Google as their default search engine,
    Incognito and Guest mode NTPs are not considered 1P and don't log this
    histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Height" units="pixels" expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Height of the NTP viewport in CSS pixels. Logged when the NTP loads. Only
    logged on the 1P NTP. Note that even if the user has Google as their default
    search engine, Incognito and Guest mode NTPs are not considered 1P and don't
    log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.CartAssociationStatus"
    enum="NTPHistoryClustersModuleCartAssociationStatus"
    expires_after="2024-02-11">
  <owner>yuezhanggg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the association status of every abandoned cart to history clusters when
    history clusters are loaded and ranked to be shown in the NTP History
    Cluster Module. Logged at module UI creation time when determining if there
    is necessary data to display the module. Only logged on the 1P NTP and when
    the history clusters module is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.DismissReason"
    enum="NTPHistoryClustersDismissReason" expires_after="2024-03-01">
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the dismissal reason for a NTP History Clusters module instance.
    Logged when the user interacts with a module instance dismissal action
    button. Only logged on the 1P NTP when the history clusters module is
    enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.DisplayLayout"
    enum="NTPHistoryClustersModuleDisplayLayout" expires_after="2024-02-11">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the layout selected and displayed for the NTP History Clusters
    module. Logged at module UI creation time when determining if there is
    necessary data to display the module. Only logged on the 1P NTP when the
    history clusters module is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.HasCartForTopCluster"
    enum="Boolean" expires_after="2024-02-11">
  <owner>yuezhanggg@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs whether there is at least one ChromeCart related to the top cluster.
    Being related is defined as whether there is a ChromeCart for the domain of
    any visit in this cluster, Only logged on the 1P NTP when both the history
    clusters module and ChromeCart is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.HasClusterToShow" enum="Boolean"
    expires_after="2024-02-11">
  <owner>sophiechang@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs whether there is at least one cluster that can be shown in the history
    clusters module that matches the desired filtering criteria configurable via
    Finch. Only logged on the 1P NTP and the history clusters module is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.HasDiscount" enum="Boolean"
    expires_after="2024-02-11">
  <owner>yuezhanggg@chromium.org</owner>
  <owner>chrome-shopping@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs whether the Cluster showing in the module contains a visible discount,
    i.e. at least one visible visit has an associated discount. Logged when the
    NewTabPage is rendering the enabled modules. Only logged in 1P NTP with the
    history clusters module and Discount feature enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.ImageLoadSuccess" enum="Boolean"
    expires_after="2024-02-11">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs whether loading an image for a quests tile succeeded or failed (true
    for success and false for failure). This is determined by whether or not we
    get a URL back from the ImageService for a visit that we expected to have an
    image for. Only logged in 1P NTP with the history clusters module enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.IneligibleReason"
    enum="NTPHistoryClustersIneligibleReason" expires_after="2024-02-11">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the reason why the last candidate cluster of a list of of ineligible
    candidate clusters was identified as such, resulting in the module not being
    displayed. Logged when the NewTabPage is rendering the enabled modules. Only
    logged on the 1P NTP and the history clusters module is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.Layout{LayoutNum}.Click"
    enum="NTPHistoryClustersElementType" expires_after="2024-02-20">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the element type that was activated by the user on the NTP history
    clusters module. Logged when a user clicks on an actionable element of the
    module, such as a tile or button. Only logged on the 1P NTP when the history
    clusters module is enabled.
  </summary>
  <token key="LayoutNum">
    <variant name="1"/>
    <variant name="2"/>
    <variant name="3"/>
  </token>
</histogram>

<histogram
    name="NewTabPage.HistoryClusters.Layout{LayoutNum}.ImageDisplayState"
    enum="NTPHistoryClustersImageDisplayState" expires_after="2024-02-20">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the overall image absence or presence on the visit tiles displayed in
    the NTP history clusters module. Logged at page unload time. Only logged on
    the 1P NTP and when the history clusters module is enabled.
  </summary>
  <token key="LayoutNum">
    <variant name="1"/>
    <variant name="2"/>
    <variant name="3"/>
  </token>
</histogram>

<histogram
    name="NewTabPage.HistoryClusters.Layout{LayoutNum}.{Type}Tile.ClickIndex"
    units="index" expires_after="2024-02-20">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the index of a clicked URL visit or suggestion tile for a given
    displayed layout of the NTP history clusters module. Logged on clicking a
    tile element of the module. Only logged on the 1P NTP and when the history
    clusters module is enabled.
  </summary>
  <token key="LayoutNum">
    <variant name="1"/>
    <variant name="2"/>
    <variant name="3"/>
  </token>
  <token key="Type">
    <variant name="Suggest"/>
    <variant name="Visit"/>
  </token>
</histogram>

<histogram name="NewTabPage.HistoryClusters.NumClusterCandidates"
    units="counts" expires_after="2024-02-11">
  <owner>sophiechang@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the number of clusters that match the desired filtering criteria
    configurable via Finch for the history clusters module. Only logged on the
    1P NTP and the history clusters module is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.NumRelatedSearches" units="counts"
    expires_after="2023-12-10">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the number of related searches present in the candidate cluster that
    might be rendered by the NTP history clusters module. Logged at module UI
    creation time when determining if there is necessary data to display the
    module. Only logged on the 1P NTP and when the history clusters module is
    enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.HistoryClusters.NumVisits" units="counts"
    expires_after="2024-02-11">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the number of URL visits present in the candidate cluster that might be
    rendered by the NTP history clusters module. Logged at module UI creation
    time when determining if there is necessary data to display the module. Only
    logged on the 1P NTP and when the history clusters module is enabled.
  </summary>
</histogram>

<histogram name="NewTabPage.Images.ShownTime{ImageType}" units="ms"
    expires_after="2024-02-25">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The elapsed time between when {ImageType} is requested by the NTP frontend
    and when it is loaded.

    NewTabPage.Images.ShownTime.BackgroundImage is only logged when the NTP
    loads with a background image. It is recorded once per NTP.

    Other {ImageType} metrics are logged every time that {ImageType} is shown.
  </summary>
  <token key="ImageType">
    <variant name=".BackgroundImage"
        summary="background image set when user opens NTP"/>
    <variant name=".CollectionPreviewImage"
        summary="collection preview image in Customize Chrome"/>
    <variant name=".ThemePreviewImage"
        summary="theme preview image in Customize Chrome"/>
  </token>
</histogram>

<histogram name="NewTabPage.Languages.UILanguageRatioInTwoTopLanguages"
    units="%" expires_after="M77">
  <owner>jkrcal@chromium.org</owner>
  <summary>
    Android: Percentage of how much in browsing is the UI language of Chrome
    used compared to overall use of the two top languages that are reported to
    Chrome content suggestion server.
  </summary>
</histogram>

<histogram name="NewTabPage.Lens.UploadDialog.DialogAction"
    enum="NewTabPageLensUploadDialogActions" expires_after="2024-03-17">
  <owner>nguyenbryan@google.com</owner>
  <owner>yowakita@google.com</owner>
  <owner>bbonnet@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Actions that take place on the Lens upload dialog on the new tab page. These
    may indicate user actions (interactions with the form) or the results of
    user actions (e.g. successful submission or showing an error message). Only
    logged on the 1P NTP. Note that even if the user has Google as their default
    search engine, Incognito and Guest mode NTPs are not considered 1P and don't
    log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Lens.UploadDialog.DialogError"
    enum="NewTabPageLensUploadDialogErrors" expires_after="2023-11-19">
  <owner>nguyenbryan@google.com</owner>
  <owner>yowakita@google.com</owner>
  <owner>bbonnet@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Errors that occur during use of the Lens upload dialog on the new tab
    page.These may indicate user error (e.g. an unusable file or URL) or
    external errors (e.g. a network error). Only logged on the 1P NTP. Note that
    even if the user has Google as their default search engine, Incognito and
    Guest mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.LoadTime" units="ms" expires_after="2024-02-04">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time, in milliseconds, it took for the NTP to load all of
    its tiles since navigation start.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoClick" enum="NewTabPageLogoClick"
    expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->

  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-analysis-team@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of clicks on the static/call-to-action/animated logo on the NTP.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoDownloadOutcome"
    enum="NewTabPageLogoDownloadOutcome" expires_after="2024-01-14">
  <owner>tiborg@chromium.org</owner>
  <owner>danpeng@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Outcome of downloading search provider's logos. It measures whether
    download/parsing is successful, revalidation and parsing work properly, etc.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoDownloadTime" units="ms"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The amount of time it took to download the static logo. This includes
    requests where there was no logo, or where an existing logo was revalidated
    (so no new image data was downloaded), but it does not include failed
    requests.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoImageDownloaded" enum="BooleanFromHTTPCache"
    expires_after="2024-01-14">
  <owner>tiborg@chromium.org</owner>
  <owner>danpeng@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    A logo image (static or CTA) was downloaded. Recorded only when the image
    was downloaded and decoded without errors.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoShown" enum="NewTabPageLogoShown"
    expires_after="2024-01-14">
  <owner>tiborg@chromium.org</owner>
  <owner>danpeng@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of static logos and animated logos shown to users. Note that the
    base version of this histogram is recorded both for logos from the cache and
    for fresh logos, so it can be recorded twice per NTP impression.
  </summary>
</histogram>

<histogram name="NewTabPage.LogoShownTime2" units="ms"
    expires_after="2024-01-14">
  <owner>tiborg@chromium.org</owner>
  <owner>danpeng@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The amount of time between opening an NTP and the logo appearing. Only
    recorded when there is a logo, and only recorded once per NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.MainUi.ShownTime" units="ms"
    expires_after="2024-03-17">
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the time until the top-level ntp-app Custom Element's |ready|
    callback is called. The intention is to measure how quickly the contents of
    new_tab_page.rollup.js (main JS bundle) are rendered.
  </summary>
</histogram>

<histogram name="NewTabPage.MobileIsUserOnline" enum="Boolean"
    expires_after="M85">
  <obsolete>
    Removed in April 2023.
  </obsolete>
  <owner>fserb@chromium.org</owner>
  <owner>zmin@chromium.org</owner>
  <summary>
    Record the network status when a new tab page is opened. True if user is
    online and false for offline.
  </summary>
</histogram>

<histogram name="NewTabPage.Module.Click" enum="ModuleTypeOnStartAndNTP"
    expires_after="2024-03-17">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Record the total count of clicks on different modules of the New tab page.
    For most visited tiles: is recorded when 1) user clicks on most visited
    tiles; 2) long press on most visited tiles to open in a new tab or open in a
    new tab in group or a new incognito tab or to download the link. This is
    consistent with MobileNTPMostVisited. For feeds: is recorded when 1) user
    clicks on feeds; 2) long press on feeds to open in a new tab or open in a
    new incognito tab or check about this source and topic; 3) click the learn
    more button on the top of the feeds section. For omnibox: is recorded every
    time when user uses Omnibox or voice search on Omnibox to navigate. This is
    consistent with MobileOmniboxUse. For tab switcher button: is recorded every
    time when user clicks on the tab switcher button. For home button: is
    recorded when user clicks on the home button. For profile button: is
    recorded when user clicks on the profile button. For doodle logo: is
    recorded every time when user clicks on the doodle and navigates to another
    website. For menu button: is recorded when user clicks on the menu button.
    The histogram is logged on New tab page and is Android-only.
  </summary>
</histogram>

<histogram name="NewTabPage.Module.LongClick" enum="ModuleTypeOnStartAndNTP"
    expires_after="2024-01-14">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Record the total count of long clicks on different modules of the New tab
    page. For home button: is recorded when user long presses on home button to
    edit homepage. The histogram is logged on New tab page and is Android-only.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.DataRequest" enum="NtpModules"
    expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records hashes associated with NTP modules. Logged when an NTP module makes
    a data request to a Chrome-external backend. Only logged on the 1P NTP. Note
    that even if the user has Google as their default search engine, Incognito
    and Guest mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.Disabled{Interaction}" enum="NtpModules"
    expires_after="2024-01-31">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when a module was disabled by {Interaction}. Only logged on the 1P
    NTP.

    Note: If the user has Google as their default search engine, Incognito and
    Guest mode NTPs are not considered 1P and don't log this histogram.

    Note: NewTabPage.Modules.Disabled.Customize is not recorded for pre-M116
    users of Panorama.
  </summary>
  <token key="Interaction">
    <variant name="" summary="any interaction"/>
    <variant name=".Customize" summary="the customize dialog"/>
    <variant name=".ModuleRequest"
        summary="a module request (e.g. action menu in header)"/>
  </token>
</histogram>

<histogram name="NewTabPage.Modules.Dismissed" units="count"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the dismissed modules. This is recorded when the user explicitly
    dismisses a module via the module remove button on the New Tab Page. Every
    dismissal emits a 1 which has no inherent meaning aside from a dismissal
    occurred.
  </summary>
</histogram>

<histogram base="true" name="NewTabPage.Modules.EnabledOnNTPLoad"
    enum="BooleanEnabled" expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs for each NTP module whether it was enabled after the NTP has
    instantiated the modules. Only logged on the 1P NTP. Note that even if the
    user has Google as their default search engine, Incognito and Guest mode
    NTPs are not considered 1P and don't log this histogram.

    Note: In M110, the output of the metric was accidentally modified to record
    all modules whose descriptors where loaded. This was subsequently corrected
    in M114.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.Enabled{Interaction}" enum="NtpModules"
    expires_after="2024-01-31">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when a module was enabled by {Interaction}. Only logged on the 1P
    NTP.

    Note: If the user has Google as their default search engine, Incognito and
    Guest mode NTPs are not considered 1P and don't log this histogram.

    Note: NewTabPage.Modules.Enabled.Customize is not recorded for pre-M116
    users of Panorama.
  </summary>
  <token key="Interaction">
    <variant name="" summary="any interaction"/>
    <variant name=".Customize" summary="the customize dialog"/>
    <variant name=".Toast" summary="clicking undo on the module disable toast"/>
  </token>
</histogram>

<histogram name="NewTabPage.Modules.FreExplicitOptIn" units="count"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs how many time a user saw the FRE when they opt in. Only logged on the
    1P NTP. Note that even if the user has Google as their default search
    engine, Incognito and Guest mode NTPs are not considered 1P and don't log
    this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.FreImplicitOptIn" enum="BooleanEnabled"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs when user is opted in to FRE without taking action. Only logged on the
    1P NTP. Note that even if the user has Google as their default search
    engine, Incognito and Guest mode NTPs are not considered 1P and don't log
    this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.FreImpression" enum="BooleanEnabled"
    expires_after="2024-02-20">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs if Modular NTP Desktop v1 First Run Experience is set to be visible and
    on user's screen. Only logged on the 1P NTP. Note that even if the user has
    Google as their default search engine, Incognito and Guest mode NTPs are not
    considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.FreLoaded" enum="BooleanEnabled"
    expires_after="2024-02-20">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs if Modular NTP Desktop v1 First Run Experience is set to be visible
    whether or not it is on the user's screen. Only logged on the 1P NTP. Note
    that even if the user has Google as their default search engine, Incognito
    and Guest mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.FreOptOut" units="count"
    expires_after="2024-02-25">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs how many time a user saw the FRE when they opt out. Only logged on the
    1P NTP. Note that even if the user has Google as their default search
    engine, Incognito and Guest mode NTPs are not considered 1P and don't log
    this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.Hover" enum="NtpModules"
    expires_after="2024-03-17">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when the user hovers on a module. Only logged once per NTP and
    module. Only logged on the 1P NTP. Note that even if the user has Google as
    their default search engine, Incognito and Guest mode NTPs are not
    considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.Impression" units="ms"
    expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took until
    an NTP module header is mostly visible in the window's content area
    (viewport). If the module header is mostly below the page fold, the time
    delta will include the time it takes for the user to scroll the module into
    view.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.ImpressionRatio" units="perdecage"
    expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the maximum amount that any (base histogram) or a particular (sub
    histograms) module was visible in the NTP content's area between load and
    unload of an NTP. The amount is recorded as the perdecage (x/10th) of the
    module's total size. Logged when the NTP unloads, such as via navigating
    somewhere else or closing the tab (switching tabs does not cause an unload).
    Logs a value into the base histogram and the corresponding sub histogram for
    each module that is present. Only logged on the 1P NTP. Note that even if
    the user has Google as their default search engine, Incognito and Guest mode
    NTPs are not considered 1P and don't log these histograms. It is possible
    for this histogram to log a value of 0 if, for instance, the module was
    always more than 90% below the fold.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.InfoButtonClicked" enum="NtpModules"
    expires_after="2024-03-17">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the module's id when a user clicks the info button in the module's
    header. Only logged on the 1P NTP. Note that even if the user has Google as
    their default search engine, Incognito and Guest mode NTPs are not
    considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.InstanceCount" units="count"
    expires_after="2024-01-14">
  <owner>danpeng@google.com</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of rendered module instances on the NTP. Only logged on the 1P
    NTP. Note that even if the user has Google as their default search engine,
    Incognito and Guest mode NTPs are not considered 1P and don't log this
    histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.LoadDuration" units="ms"
    expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time in milliseconds it took for an NTP module to load.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.Loaded" units="ms"
    expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took until
    an NTP module loaded.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.LoadedModulesCount" units="count"
    expires_after="2024-01-14">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of rendered modules in the NTP. Only logged on the 1P NTP. Note
    that even if the user has Google as their default search engine, Incognito
    and Guest mode NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.LoadedWith.{NtpModule}" enum="NtpModules"
    expires_after="2024-01-31">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    This records the what other modules are loaded with {NtpModule} together.
    Logged when the module is loaded. Only logged on the 1P NTP. Note that even
    if the user has Google as their default search engine, Incognito and Guest
    mode NTPs are not considered 1P and don't log this histogram.
  </summary>
  <token key="NtpModule">
    <variant name="chrome_cart" summary="the Chrome Cart module"/>
    <variant name="drive" summary="the Drive module"/>
    <variant name="history_clusters" summary="the History clusters module"/>
    <variant name="photos" summary="the Photos module"/>
    <variant name="recipe_tasks" summary="the Recipe module"/>
    <variant name="shopping_tasks" summary="the Shopping Tasks module"/>
  </token>
</histogram>

<histogram name="NewTabPage.Modules.Restored" units="count"
    expires_after="2024-02-04">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the restord modules. This is recorded when the user explicitly
    restores a previously dismissed module via the toast on the New Tab Page.
    Every restoral emits a 1 which has no inherent meaning aside from a restoral
    occurred.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.ShownTime" units="ms"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took until
    the modules showed up on the NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.Usage" units="count"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Emitted each time a user action within an NTP module launches a module's
    feature. Every usage emits a 1 which has no inherent meaning aside from a
    usage occurred.

    Note for the Journeys module: Pre-M115, we only considered visit and
    suggestion clicks as usage. Since M115, we consider visit, suggestion,
    &quot;Show all&quot; and &quot;Open all in tab group&quot; as usage.
  </summary>
</histogram>

<histogram name="NewTabPage.Modules.VisibleOnNTPLoad" enum="BooleanVisible"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>Logs whether the NTP modules are visible at NTP load.</summary>
</histogram>

<histogram name="NewTabPage.MostVisited" enum="MostVisitedTileIndex"
    expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->

  <owner>justincohen@chromium.org</owner>
  <owner>mastiz@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-analysis-team@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram for user clicks of the most visited tile. The value is equal to
    the index of the tile.

    For special types of results:

    * Clicks on the &quot;Add Shortcut&quot; tile are not counted.

    * Clicks on the Explore Sites tile on Android are counted.

    The user action NewTabPage.MostVisited.Clicked is also logged at the same
    time as this histogram.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
</histogram>

<histogram name="NewTabPage.MostVisitedMigratedDefaultAppType"
    enum="TypeOfDeletedMostVisitedApp" expires_after="2024-01-28">
  <owner>dibyapal@chromium.org</owner>
  <owner>desktop-pwas-team@google.com</owner>
  <summary>
    This records the type of most visited app on the ntp-tile, whether it is
    from a default app or a custom link. Triggered as soon as a migrated default
    app or custom link is deleted.
  </summary>
</histogram>

<histogram name="NewTabPage.NumberOfTiles" units="units"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of tiles that are on the NTP, no matter if they are thumbnails,
    gray tiles, or external tiles. Recorded before reloading the suggestions,
    navigating to a URL, switching tabs, changing the active window or closing
    the tab/shutting down Chrome. The sum of this histogram does not have to
    equal to the total count of tile impressions (such as the total count in
    NewTabPage.TileType). The reason is that not all tiles have to be impressed
    initially (e.g., the second row of tiles may be initially out of sight on
    iOS).
  </summary>
</histogram>

<histogram name="NewTabPage.OneGoogleBar.RequestLatency" units="ms"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The time it took until a request from the New Tab page for the OneGoogleBar
    script was served. Recorded only on the local NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.OneGoogleBar.ShownTime" units="ms"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took until
    the OneGoogleBar showed up on the NTP. Recorded only on the local NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.Photos.DataRequest"
    enum="PhotosModuleRequestResult" expires_after="2023-06-04">
  <owner>jerem@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the state of Photos module API requests. Only logged on the 1P NTP.
    Note that even if the user has Google as their default search engine,
    Incognito and Guest mode NTPs are not considered 1P and don't log this
    histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Photos.DataResponseCount" units="count"
    expires_after="2023-06-04">
  <owner>jerem@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs the number of memories in the photos module response. Only logged on
    the 1P NTP. Note that even if the user has Google as their default search
    engine, Incognito and Guest mode NTPs are not considered 1P and don't log
    this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Photos.ImageLoad" enum="BooleanSuccess"
    expires_after="2023-03-19">
  <owner>tiborg@chromium.org</owner>
  <owner>jerem@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged every time we try to load an image in the photos module. This
    histogram logs 'Success' when loading was successful and 'Failure' when
    there was an error. Only logged on the 1P NTP. Note that even if the user
    has Google as their default search engine, Incognito and Guest mode NTPs are
    not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Photos.ModuleShown" enum="BooleanPhotosOptedIn"
    expires_after="2023-06-04">
  <owner>tiborg@chromium.org</owner>
  <owner>jerem@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged every time the photos module is shown to the user. This histogram
    logs 'Not opted-in' when the opt-in screen was shown and 'Opted-in' when
    memories were shown. Only logged on the 1P NTP. Note that even if the user
    has Google as their default search engine, Incognito and Guest mode NTPs are
    not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Photos.UserOptIn" enum="NtpPhotosModuleOptInStatus"
    expires_after="2023-03-19">
  <owner>tiborg@chromium.org</owner>
  <owner>jerem@google.com</owner>
  <owner>mplg@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged every time the user changes the opt-in status of the photos module
    (OptIn/SoftOptOut/HardOptOut). Only logged on the 1P NTP. Note that even if
    the user has Google as their default search engine, Incognito and Guest mode
    NTPs are not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Promos.DismissAction" enum="NtpPromoDismissAction"
    expires_after="2024-02-20">
  <owner>danpeng@google.com</owner>
  <owner>pauladedeji@google.com</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs when action is taken on promo e.g. dismissal or restoration. Only
    logged on the 1P NTP. Note that even if the user has Google as their default
    search engine, Incognito and Guest mode NTPs are not considered 1P and don't
    log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.Promos.LinkClicked" units="count"
    expires_after="never">
<!-- expires-never: part of top-line metric (internal: go/chrome-browser-nsm) -->

  <owner>dbeam@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-analysis-team@google.com</owner>
  <summary>
    Emitted each time a promo linked is clicked on the local NTP.

    This histogram is of special interest to the chrome-analysis-team@. Do not
    change its semantics or retire it without talking to them first.
  </summary>
</histogram>

<histogram name="NewTabPage.Promos.PromoBrowserCommand"
    enum="PromoBrowserCommandEnum" expires_after="2023-10-21">
  <owner>mahmadi@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logs how many times various promo browser commands are executed. Triggered
    when a supported and enabled promo browser command is sent via the New Tab
    Page promos and is executed by the PromoBrowserCommandHandler.
  </summary>
</histogram>

<histogram name="NewTabPage.Promos.RequestLatency2" units="ms"
    expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The time it took until a request from the New Tab page for the middle slot
    promo script was served. Recorded on the local and WebUI NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.Promos.ShownTime" units="ms"
    expires_after="2024-02-20">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram of the time, in milliseconds since navigation start, it took until
    a middle slot promo showed up on the NTP. Recorded on the local and WebUI
    NTP.
  </summary>
</histogram>

<histogram name="NewTabPage.Realbox.CharTypedToRepaintLatency.ToPaint"
    units="ms" expires_after="2023-08-08">
  <obsolete>
    Deprecated in M114 in favor of Realbox.CharTypedToRepaintLatency.ToPaint.
  </obsolete>
  <owner>mahmadi@chromium.org</owner>
  <owner>tommycli@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the time taken between a keystroke being typed in the NTP realbox
    and the time when we're ready to render the results in the DOM. If there are
    multiple keystrokes before the results are rendered, logs the time since the
    earliest one. This is most comparable to Omnibox's
    Omnibox.CharTypedToRepaintLatency.ToPaint as it does not take into account
    the time the DOM change task spends in the message loop nor its duration.
  </summary>
</histogram>

<histogram name="NewTabPage.RecipeTasks.RecipeClick" units="index"
    expires_after="2024-02-20">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when a user clicked on a recipe in the recipe tasks module. The value
    is equal to the index of the recipe.
  </summary>
</histogram>

<histogram name="NewTabPage.RecipeTasks.RecipesDownloadCount" units="recipes"
    expires_after="2024-01-31">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of recipe search links in the primary shopping task (top-ranked,
    recipe, search journey). The recipe search links are rendered with a name,
    image and URL. This metric is logged after the recipe tasks are successfuly
    retrieved.
  </summary>
</histogram>

<histogram name="NewTabPage.RecipeTasks.RelatedSearchClick" units="index"
    expires_after="2024-01-31">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when a user clicked on a related search pill in the recipe tasks
    module. The value is equal to the index of the pill.
  </summary>
</histogram>

<histogram name="NewTabPage.RecipeTasks.RelatedSearchDownloadCount"
    units="count" expires_after="2024-01-31">
  <owner>romanarora@chromium.org</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The number of related search links in the primary recipe task (top-ranked,
    recipe, search journey). The related search links are rendered with a name
    and URL. This metric is logged after the recipe tasks are successfuly
    retrieved.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchAvailableLoadTime2.ColdStart" units="ms"
    expires_after="2022-02-20">
  <obsolete>
    Removed in April 2023.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>ender@google.com</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The time until the search box became available on the NTP in a cold start.
    It's a cold start if the native library is not already loaded and
    initialized at the time the activity is created. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchAvailableLoadTime2.WarmStart" units="ms"
    expires_after="2021-10-10">
  <obsolete>
    Removed in April 2023.
  </obsolete>
  <owner>fgorski@chromium.org</owner>
  <owner>ender@google.com</owner>
  <owner>yyushkina@chromium.org</owner>
  <summary>
    The time until the search box became available on the NTP in a warm start.
    It's a warm start if the native library is already loaded and initialized at
    the time the activity is created. This might happen if for example a service
    was already running. Only measured on Android.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchResumptionModule.NotShown"
    enum="SearchResumptionModule.ModuleNotShownReason"
    expires_after="2024-01-14">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Logs the reason why the search resumption module is enabled but not shown on
    the NTP. Recorded when NewTabPage is created and the search resumption
    module fails to show.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchResumptionModule.Show"
    enum="SearchResumptionModule.ModuleShowStatus" expires_after="2023-11-19">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Logs whether the search resumption module is expanded or collapsed when the
    module is shown on the NTP. Recorded when the NewTabPage is created and the
    search resumption module is shown.
  </summary>
</histogram>

<histogram name="NewTabPage.SearchResumptionModule.Show.Cached"
    enum="SearchResumptionModule.ModuleShowStatus" expires_after="2023-12-24">
  <owner>hanxi@chromium.org</owner>
  <owner>xinyiji@chromium.org</owner>
  <summary>
    Logs whether the search resumption module is expanded or collapsed when the
    module is shown on the NTP using cached results. Recorded when the
    NewTabPage is created and the search resumption module is shown.
  </summary>
</histogram>

<histogram name="NewTabPage.Snippets.IncompleteSnippetsAfterFetch"
    enum="Boolean" expires_after="M85">
  <owner>maybelle@chromium.org</owner>
  <summary>
    Whether we discarded any of the snippets after fetching them due to having
    incomplete metadata.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestionsImpression" enum="MostVisitedTileIndex"
    expires_after="2024-03-17">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Histogram for impressions on the various most visited tiles. The value is
    equal to the index of the thumbnail.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestTiles.DeletedTileType"
    enum="SuggestTileType" expires_after="2024-02-11">
  <owner>ender@google.com</owner>
  <owner>mahmadi@chromium.org</owner>
  <owner>chrome-omnibox-team@google.com</owner>
  <summary>
    Records the type of the SuggestTile that the user deleted. Most Visited URLs
    record a URL, and Organic Repeatable Queries record a Search type.

    Recorded every time the user initiates deletion of a suggest tile, that
    results with tile removal. Not recorded if the user chooses to cancel the
    action.
  </summary>
</histogram>

<histogram name="NewTabPage.SuggestTiles.SelectedTileType"
    enum="SuggestTileType" expires_after="2024-02-11">
  <owner>ender@google.com</owner>
  <owner>mahmadi@chromium.org</owner>
  <owner>chrome-omnibox-team@google.com</owner>
  <summary>
    Records the type of the SuggestTile that the user interacted with. Most
    Visited URLs record a URL, and Organic Repeatable Queries record a Search
    type.

    Recorded every time the user selects the tile to initiate navigation, even
    if the navigation could not be completed (eg. target site did not load).
  </summary>
</histogram>

<histogram name="NewTabPage.TasksSurface.TimeSpentBeforeDismissLens" units="ms"
    expires_after="M97">
  <owner>yusuyoutube@google.com</owner>
  <owner>benwgold@google.com</owner>
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <owner>lens-chrome@google.com</owner>
  <summary>
    Logs the elapsed time between the time when user enters the Google Lens and
    the time when user dismisses Lens and returns to Chrome. Only logged on
    Android.
  </summary>
</histogram>

<histogram name="NewTabPage.TileTitle" enum="NTPTileTitleSource"
    expires_after="2024-03-17">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the source of the title for each most visited tiled displayed when
    an NTP is opened, e.g. a short_name from a manifest, or the page title.
  </summary>
</histogram>

<histogram name="NewTabPage.TileTitleClicked" enum="NTPTileTitleSource"
    expires_after="2024-02-04">
  <owner>danielms@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the source for the name a most visited tile showed when the user
    clicked it, e.g. a URL, or the page title.
  </summary>
</histogram>

<histogram name="NewTabPage.TileType" enum="NTPTileVisualType"
    expires_after="2024-03-17">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The visual type of each most visited tile displayed on the new tab page,
    e.g. actual thumbnail or placeholder thumbnail. This is recorded for each
    most visited item when the NTP is opened.
  </summary>
</histogram>

<histogram name="NewTabPage.TileTypeClicked" enum="NTPTileVisualType"
    expires_after="2024-03-17">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    The visual type of the most visited item that the user clicked on, e.g.
    actual thumbnail or placeholder thumbnail.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeSinceLastNTP" units="ms"
    expires_after="2024-03-24">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Logged when a 1P NTP starts loading. Logs the time since the last time a 1P
    NTP in the same profile started loading. Note the following: (a) The first
    NTP load ever is not counted. (b) This value is computed using a client-side
    clock and stored in prefs. As such, (i) it works across sessions and (ii) it
    can show strange values if a user changes their clock. (c) Even if the user
    has Google as their default search engine, Incognito and Guest mode NTPs are
    not considered 1P and don't log this histogram.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeSpent" units="ms" expires_after="2024-02-25">
  <owner>freedjm@chromium.org</owner>
  <owner>feed@chromium.org</owner>
  <owner>olivierrobin@chromium.org</owner>
  <summary>
    The time spent on the new tab page as measured from when it was loaded or
    last brought to the foreground until it was navigated away from or hidden.
    Only measured on Android and iOS.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeSpentBeforeDismissLens" units="ms"
    expires_after="2022-06-19">
  <owner>yusuyoutube@google.com</owner>
  <owner>benwgold@google.com</owner>
  <owner>fgorski@chromium.org</owner>
  <owner>wylieb@chromium.org</owner>
  <owner>lens-chrome@google.com</owner>
  <summary>
    Logs the elapsed time between the time when user enters the Google Lens and
    the time when user dismisses Lens and returns to Chrome. Only logged on
    Android.
  </summary>
</histogram>

<histogram name="NewTabPage.TimeToFirstDraw2" units="ms"
    expires_after="2021-07-01">
  <obsolete>
    Removed in April 2023.
  </obsolete>
  <owner>freedjm@chromium.org</owner>
  <owner>feed@chromium.org</owner>
  <summary>
    The time from when a new tab page is created until the first pre-draw call
    on the root view containing the search provider logo (if available), fake
    search box, most visited tiles, articles etc. More specifically, this is the
    time between NewTabPage's constructor and the first pre-draw pass on this
    root view. This typically means that the fixed UI elements are shown to the
    user, but the articles below are not filled in yet.
  </summary>
</histogram>

<histogram name="NewTabPage.URLState" enum="NewTabURLState"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Records the status of the New Tab page URL when an NTP is opened.
  </summary>
</histogram>

<histogram name="NewTabPage.UserClassifier.AverageHoursToUseSuggestions"
    units="hours" expires_after="2022-01-09">
  <owner>freedjm@chromium.org</owner>
  <owner>feed@chromium.org</owner>
  <summary>
    Android: The estimated average number of hours between two successive times
    when the user opens a content suggestion or clicks on the &quot;More&quot;
    button. Recorded after each time a suggestion or a More button is clicked
    (and after updating the model used for the estimate).
  </summary>
</histogram>

<histogram name="NewTabPage.VoiceActions" enum="NewTabPageVoiceAction"
    expires_after="2024-03-17">
  <owner>tiborg@chromium.org</owner>
  <owner>yyushkina@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Actions taken by users of Voice Search on the local New Tab Page on Desktop.
    These actions may navigate away from the NTP (e.g. submitting a speech
    query), but can also happen without navigating away from the NTP (e.g.
    initiating or retrying Voice Search).
  </summary>
</histogram>

<histogram name="NewTabPage.VoiceErrors" enum="NewTabPageVoiceError"
    expires_after="2024-01-31">
  <owner>tiborg@chromium.org</owner>
  <owner>romanarora@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Errors that occur during Voice Search use on the local New Tab Page on
    Desktop. These may be user-induced (e.g. the user's utterance could not be
    recognized - no match), or resulting from external circumstances (e.g.
    offline, lack of microphone permission).
  </summary>
</histogram>

<histogram name="NewTabPage.Width" units="pixels" expires_after="2024-02-11">
  <owner>danpeng@google.com</owner>
  <owner>tiborg@chromium.org</owner>
  <owner>chrome-desktop-ntp@google.com</owner>
  <summary>
    Width of the NTP viewport in CSS pixels. Logged when the NTP loads. Only
    logged on the 1P NTP. Note that even if the user has Google as their default
    search engine, Incognito and Guest mode NTPs are not considered 1P and don't
    log this histogram.
  </summary>
</histogram>

</histograms>

</histogram-configuration>
