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

<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->

<!--
This file is used to generate a comprehensive list of Sharing histograms
along with a detailed description for each histogram.

For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md

Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->

<histogram-configuration>

<histograms>

<variants name="TextFragmentSource">
<!-- Should be synced with TextFragmentLinkOpenSource in enums.xml. -->

  <variant name=".SearchEngine" summary="the default search engine."/>
  <variant name=".Unknown" summary="unknown but not the default search engine"/>
</variants>

<histogram name="SharedHighlights.AndroidShareSheet.SharedState"
    enum="LinkGenerationSharedStatus" expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of the link generation when a user shares content using
    the feature on Android.
  </summary>
</histogram>

<histogram name="SharedHighlights.AsyncTask.Iterations" units="iterations"
    expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates number of iterations it took for AsyncFindBuffer to finish the
    search. AsyncFindBuffer is used only for validating generated text fragment
    selectors for Shared Highlighting.
  </summary>
</histogram>

<histogram name="SharedHighlights.AsyncTask.SearchDuration" units="ms"
    expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time it took in milliseconds for AsyncFindBuffer to finish the search.
    AsyncFindBuffer is used only for validating generated text fragment
    selectors for Shared Highlighting.
  </summary>
</histogram>

<histogram name="SharedHighlights.Desktop.CopiedLinkType"
    enum="LinkGenerationCopiedLinkType" expires_after="2024-05-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the type of shared highlighting link the user copied on desktop.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated.Error"
    enum="LinkGenerationError" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records errors that caused text fragment selector generation to fail.
    Recorded for all the failed link generation runs. This histogram is a
    superset of |SharedHighlights.LinkGenerated.Error.Requested|.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated.Error.Iterations"
    units="iterations" expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates number of iterations it took for the unsuccessful text fragment
    selector generation run.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated.Error.Requested"
    enum="LinkGenerationError" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records errors that caused text fragment selector generation to fail.
    Recorded only for failure cases that were requested by users.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated.Error.TimeToGenerate"
    units="ms" expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time it took in millisecons for a failed text fragment selector generation
    attempt.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated.StateAtRequest"
    enum="LinkGenerationState" expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the state of the link generation when link to text request is
    received from the browser process.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated.TimeToGenerate" units="ms"
    expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    How long it took in milliseconds to successfully generate text fragment
    selector.
  </summary>
</histogram>

<histogram name="SharedHighlights.LinkGenerated{Requested}"
    enum="BooleanSuccess" expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Indicates whether text fragment selector generation was successful for
    {Requested}.
  </summary>
  <token key="Requested">
    <variant name="" summary="all generation cases"/>
    <variant name=".Requested"
        summary="all cases when generated selector is requested."/>
    <variant name=".RequestedAfterReady"
        summary="cases when selector is requested after its ready."/>
    <variant name=".RequestedBeforeReady"
        summary="cases when selector is requested before its ready."/>
  </token>
</histogram>

<histogram name="SharedHighlights.LinkToTextDiagnoseStatus"
    enum="LinkToTextDiagnoseStatus" expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the status of link to text flow on Android for diagnostic purposes.
    Intended to be temporary for debug purposes.
  </summary>
</histogram>

<histogram name="SharedHighlights.ObtainReshareLink.Status"
    enum="LinkToTextReshareStatus" expires_after="2024-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records if obtaining reshare link was successful. Otherwise, it records the
    failure reason.
  </summary>
</histogram>

<histogram name="Sharing.AndroidPageSummary.SheetEvents"
    enum="PageSummarySheetEvents" expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records ocurrences of various UI events related to the page summary sharing
    sheet (open sheet, dismiss sheet, send feedback, etc.). Recorded based on
    user actions (See enum definitions for more details).
  </summary>
</histogram>

<histogram name="Sharing.AnyShareStarted" enum="ShareSourceAndroid"
    expires_after="never">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <improvement direction="HIGHER_IS_BETTER"/>
  <summary>
    The UI surface that started any share attempt. Android only.

    This is a vital metric for the sharing team; please do not remove it or
    change its behavior without consulting the metric owners.
  </summary>
</histogram>

<histogram name="Sharing.AnyShareStartedDesktop" enum="ShareSourceDesktop"
    expires_after="never">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <improvement direction="HIGHER_IS_BETTER"/>
  <summary>
    The UI surface that started any share attempt. Desktop only.

    This is a vital metric for the sharing team; please do not remove it or
    change its behavior without consulting the metric owners.
  </summary>
</histogram>

<histogram name="Sharing.ClickToCallDevicesToShow" units="devices"
    expires_after="2022-10-23">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of available devices that are about to be shown in a UI for
    picking a device to start a phone call on. Desktop only.
  </summary>
</histogram>

<histogram name="Sharing.ClickToCallDialerPresent" enum="BooleanPresent"
    expires_after="2023-06-25">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged when we try to fire a dial intent in click to call. Distinguishes
    between if the user has an app that can handle dial intent or not. Android
    only.
  </summary>
</histogram>

<histogram name="Sharing.ClickToCallDialogShown" enum="SharingDialogType"
    expires_after="2021-10-25">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged whenever a dialog is shown for the Click to Call feature. Desktop
    only.
  </summary>
</histogram>

<histogram name="Sharing.ClickToCallSelectedAppIndex" units="index"
    expires_after="2023-03-05">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The index of the app selected by the user for Click to Call. Zero based.
    Desktop only.
  </summary>
</histogram>

<histogram name="Sharing.ClickToCallSelectedDeviceIndex" units="index"
    expires_after="2024-03-24">
<!-- Name completed by histogram_suffixes name="SharingClickToCallUi" -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The index of the device selected by the user for Click to Call. Zero based.
    Desktop only.
  </summary>
</histogram>

<histogram name="Sharing.DefaultSharesheetAndroid.Opened" enum="ShareOrigin"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the origin of the share that opened the default sharesheet. Recorded
    when the sharesheeet is opened.
  </summary>
</histogram>

<histogram name="Sharing.LocalSharingTargetInfoSupportsSync" enum="Boolean"
    expires_after="2025-03-27">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records whether the local device contains sharing information to use sync
    (as opposed to FCM) from other devices. Recorded during device registration
    on every browser startup or after sync reset.
  </summary>
</histogram>

<histogram name="Sharing.MessageReceivedType" enum="SharingMessageType"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The type of SharingMessage (aka the PayloadCase). This is logged when a
    message is received through FCM by the handler in the Sharing service. All
    platforms.
  </summary>
</histogram>

<histogram name="Sharing.PreparePreviewFaviconDuration" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    The time to download the favicon as the image preview for sharing an link
    using Android share sheet. Recorded when sharing a link with Android share
    sheet only.
  </summary>
</histogram>

<histogram name="Sharing.QRCodeGeneration.Duration" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The end-to-end time to encode a QR image.

    This metric captures end-to-end time which may include the overhead of
    spawning a utility process as well as the time needed to translate input
    bytes into QR pixels (see also the &quot;BytesToQrPixels2&quot; metric) and
    into QR image (see also the &quot;QrPixelsToQrImage2&quot; metric).

    Recorded whenever `chrome/services/qrcode_generator` generates a QR code.
    For example: when using the omnibox to share the URL via QR code, when using
    WebAuthn, or when generating an RMA.
  </summary>
</histogram>

<histogram name="Sharing.QRCodeGeneration.Duration.BytesToQrPixels2"
    units="microseconds" expires_after="2024-11-24">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time to translate the sequence of input bytes into a vector of QR pixels
    (this is not a QR _image_ just yet - see &quot;QrPixelsToQrImage2&quot;
    metric for that).

    Recorded whenever `chrome/services/qrcode_generator` generates a QR code.
    For example: when using the omnibox to share the URL via QR code, when using
    WebAuthn, or when generating an RMA.

    The metric is reported for only clients with high-resolution clocks (i.e.
    excludes a small percentage of Windows users population). This is okay,
    because we are mostly interested in comparing C++ vs Rust and it seems okay
    to assume that such comparison would give similar results for the filtered
    and non-filtered population.
  </summary>
</histogram>

<histogram name="Sharing.QRCodeGeneration.Duration.QrPixelsToQrImage2"
    units="microseconds" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time to translate QR pixels (a vector of light/dark QR pixels) into a QR
    image (an upscaled `SkBitmap` with an optional Dino painted in the middle).

    Recorded whenever `chrome/services/qrcode_generator` generates a QR code.
    For example: when using the omnibox to share the URL via QR code, when using
    WebAuthn, or when generating an RMA.

    The metric is reported for only clients with high-resolution clocks (i.e.
    excludes a small percentage of Windows users population). This is okay,
    because we are mostly interested in comparing C++ vs Rust and it seems okay
    to assume that such comparison would give similar results for the filtered
    and non-filtered population.
  </summary>
</histogram>

<histogram name="Sharing.Screenshot.Action" enum="SharingScreenshotAction"
    expires_after="2023-11-19">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Logged when actions are taken in the sharing screenshot image editing
    feature.
  </summary>
</histogram>

<histogram name="Sharing.ScreenshotFallback.Action"
    enum="SharingScreenshotFallbackAction" expires_after="2022-12-25">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Logged when actions are taken in the sharing screenshot fallback feature.
  </summary>
</histogram>

<histogram name="Sharing.ScrollCapture.BitmapGeneratorStatus"
    enum="SharingScrollCaptureBitmapGenerationStatus"
    expires_after="2025-04-01">
  <owner>[email protected]</owner>
  <owner>src/components/paint_preview/OWNERS</owner>
  <summary>
    Records the status of the Bitmap Generator when capturing scroll capture
    long screenshot. Recorded after the page capture request is sent to the
    paint_preview capture service and compositor, when the service is no longer
    busy. This metric is only emitted on Android S+.
  </summary>
</histogram>

<histogram name="Sharing.ScrollCapture.SuccessfulCaptureDuration" units="ms"
    expires_after="2025-04-01">
  <owner>[email protected]</owner>
  <owner>src/components/paint_preview/OWNERS</owner>
  <summary>
    Records the total time spent capturing a long screenshot of a page using
    scroll capture. It is recorded when a scroll capture request successfully
    finishes. This metric is only emitted on Android S+.
  </summary>
</histogram>

<histogram name="Sharing.SendMessageResult" enum="SharingSendMessageResult"
    expires_after="2025-01-26">
<!-- Name completed by histogram_suffixes SharingChannelType,
    SharingDevicePlatform, SharingMessage, and SharingPulseInterval. -->

  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Result of sending a SharingMessage by the Sharing service. Logged after the
    send message callback is run. Not logged for sending ack messages. All
    platforms.
  </summary>
</histogram>

<histogram name="Sharing.SendMessageUsingSync" enum="Boolean"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records whether a SharingMessage is being sent over sync. Recorded for all
    messages before sending them. Recorded for all platforms.
  </summary>
</histogram>

<histogram name="Sharing.SendMessageWithSyncAckFcmConfiguration" enum="Boolean"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records whether a SharingMessage contains data required to send Ack message
    using sync. Recorded for non-ack messages before sending them.
  </summary>
</histogram>

<histogram name="Sharing.SendTabToSelf.NotificationStatus"
    enum="SendTabToSelfNotificationStatus" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Status of STTS notifications. Recorded whenever a target device is chosen, a
    recieved notification is shown, or an action is taken on the notification.
  </summary>
</histogram>

<histogram name="Sharing.SharedClipboardDevicesToShow" units="devices"
    expires_after="M88">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of available devices that are about to be shown in a UI for
    picking a device to share the clipboard with. On desktop, it gets recorded
    when the user right clicks on selected text. On Android, it gest recorded
    when the user does long press, share and &quot;Send text to Your
    Devices&quot;.
  </summary>
</histogram>

<histogram name="Sharing.SharedClipboardDialogShown" enum="SharingDialogType"
    expires_after="M88">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logged whenever a dialog is shown for the Shared Clipboard feature.
  </summary>
</histogram>

<histogram name="Sharing.SharedClipboardSelectedDeviceIndex" units="index"
    expires_after="M88">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The index of the device selected by the user for Shared Clipboard gets
    recorded when the user chooses the destination device for sharing text. Zero
    based.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.CustomAction"
    enum="ShareCustomAction" expires_after="2024-10-22">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the custom action when the user clicked one on the share sheet.
    Recorded for both Chrome's sharing hub and Android's share sheet on U+.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.Opened" enum="ShareOrigin"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the origin of the share that opened the sharing hub. Recorded when
    the sharing hub is opened.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.ThirdPartyAppUsage"
    enum="SharingHubBottomRowIndex" expires_after="2024-07-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the index of the third party app selected from the bottom row of the
    sharing hub.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.TimeToCustomAction" units="ms"
    expires_after="2024-10-22">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the amount of time taken for the user to select a custom action
    after initiating a share. Can record multiple times if the custom action
    redirect the user back to the share sheet, but each time only record the
    duration between share sheet shown until user click an action. Recorded for
    both Chrome's sharing hub and Android's share sheet on U+.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.TimeToShare" units="ms"
    expires_after="2024-12-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the amount of time taken for the user to select a share target after
    initiating a share.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.TimeToShowShareSheet" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records the amount of time taken for the custom share sheet to open after a
    share was initiated.
  </summary>
</histogram>

<histogram name="Sharing.SharingHubAndroid.{DetailedContentType}.{ShareStatus}"
    enum="LinkToggleState" expires_after="2024-07-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records what the link toggle state is when a share of a
    {DetailedContentType} is {ShareStatus}.
  </summary>
  <token key="DetailedContentType">
    <variant name="Gif"/>
    <variant name="HighlightedText"/>
    <variant name="Image"/>
    <variant name="LightweightReaction"/>
    <variant name="NotSpecified"/>
    <variant name="Screenshot"/>
    <variant name="Webnotes"/>
  </token>
  <token key="ShareStatus">
    <variant name="Completed"/>
    <variant name="InProgress"/>
  </token>
</histogram>

<histogram name="Sharing.SharingHubDesktop.CrOSSharesheetResult"
    enum="SharingHubSharesheetResult" expires_after="2024-09-22">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    Records whether the user selects a share target after opening the Chrome OS
    sharesheet.
  </summary>
</histogram>

<histogram name="Sharing.SmsFetcherAvailableDeviceCount" units="devices"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>src/content/browser/sms/OWNERS</owner>
  <summary>
    The number of available devices when making a request on desktop which is
    triggered by calling the WebOTP API. This is logged once per API call.
    Desktop only.
  </summary>
</histogram>

<histogram name="Sharing.SmsFetcherClientNameIsEmpty" enum="BooleanEmpty"
    expires_after="2024-11-17">
  <owner>[email protected]</owner>
  <owner>src/content/browser/sms/OWNERS</owner>
  <summary>
    Records whether the remote client name is empty. This could happen on early
    version of Chrome. This is logged once per notification when asking for user
    permission to submit the one-time-passwords on the remote device.
  </summary>
</histogram>

<histogram name="Sharing.SmsFetcherScreenOnAndUnlocked" enum="Boolean"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>src/content/browser/sms/OWNERS</owner>
  <summary>
    Records whether the phone is on and unlocked when we show the notification
    to users. False if either the phone is locked or the phone does not have a
    screen lock but the screen is off. This is logged once per notification.
  </summary>
</histogram>

<histogram name="Sharing.SmsFetcherTapWithChromeDestroyed" enum="Boolean"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>src/content/browser/sms/OWNERS</owner>
  <summary>
    Records whether a user taps/dismisses the notification after Chrome is
    destroyed. This could happen if the user manually swipes away Chrome from
    the task switcher or the OS decides to destroy Chrome due to lack of memory
    etc. This is logged once per user action on the notification.
  </summary>
</histogram>

<histogram name="Sharing.WebRtc.IceConfigFetched" units="ice_servers"
    expires_after="2022-04-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of ice servers fetched by network traversal API call. Logged after
    receiving response of API call.
  </summary>
</histogram>

<histogram name="Sharing.{ShareSurface}.ShareContentType"
    enum="SharingContentTypeAndroid" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>src/chrome/browser/share/OWNERS</owner>
  <summary>
    The content type being shared when using a share sheet. Recorded when share
    is sent to share sheet for {ShareSurface}. Android only.
  </summary>
  <token key="ShareSurface">
    <variant name="DefaultSharesheetAndroid" summary="System share sheet"/>
    <variant name="SharingHubAndroid" summary="Chrome's sharing hub"/>
  </token>
</histogram>

<histogram name="TextFragmentAnchor.LinkOpenSource"
    enum="TextFragmentLinkOpenSource" expires_after="2024-09-29">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded for every navigation to a link with a valid text fragment selector
    (e.g. #:=:text=SELECTOR). Indicates source type that navigation originated
    from. It only know about search engines that come from the pre-populated
    list installed with Chrome. If the user uses a search engine not on the
    list, it will be recorded as Unknown. This is even true if the user have a
    custom search engine. These custom search engines can be created by hand or
    auto-generated. In either case, it's not going to count as a search engine.
    Also, it only checks to see if the *referrer* is from a domain associated
    with search engine. If someone posts a link somewhere on a web site that
    happens to have a search engine known to Google and that links includes the
    fragment tokens, then if a user clicks that link, it'll look like it came
    from a search engine even thought they did not.
  </summary>
</histogram>

<histogram name="TextFragmentAnchor{TextFragmentSource}.AmbiguousMatch"
    enum="Boolean" expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether we found multiple matches for a selector. Recorded when
    TextFragmentAnchor finishes searching once the page is loaded.

    Recorded from text fragment links followed from {TextFragmentSource}.
  </summary>
  <token key="TextFragmentSource" variants="TextFragmentSource"/>
</histogram>

<histogram name="TextFragmentAnchor{TextFragmentSource}.MatchRate" units="%"
    expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The percentage of selectors for which a match was found in the document.
    Recorded when TextFragmentAnchor finishes searching once the page is loaded.

    Recorded from text fragment links followed from {TextFragmentSource}.
  </summary>
  <token key="TextFragmentSource" variants="TextFragmentSource"/>
</histogram>

<histogram name="TextFragmentAnchor{TextFragmentSource}.TimeToScrollIntoView"
    units="ms" expires_after="2024-06-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time between creating the TextFragmentAnchor (i.e. when it is parsed)
    and scrolling the target into view. Only recorded if there is a match and we
    tried to scroll it into view (it may already have been in view). Recorded
    when TextFragmentAnchor finishes searching once the page is loaded.

    Recorded from text fragment links followed from {TextFragmentSource}.
  </summary>
  <token key="TextFragmentSource" variants="TextFragmentSource"/>
</histogram>

</histograms>

</histogram-configuration>