<!--
Copyright 2022 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 ChromeOS clipboard-related
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>
<histogram name="Ash.Clipboard.ConsecutiveCopies" units="times"
expires_after="2024-06-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of consecutive copies in the user session. Recorded when a paste
occurs.
Warning: This histogram was expired from 2021-09-01 to 2022-01-05; data may
be missing.
</summary>
</histogram>
<histogram name="Ash.Clipboard.ConsecutivePastes" units="times"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of consecutive pastes in the user session. Includes pastes from
clipboard history. Recorded when a copy occurs.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ConsecutivePastes" units="times"
expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of consecutive pastes from the clipboard history menu in the user
session. Recorded at the time of a copy or a paste that is not through the
clipboard history menu, such as pressing Ctrl+V or using a context menu's
Paste option.
Warning: This histogram was expired from 2022-01-02 to 2022-01-05; data may
be missing.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.DisplayFormatDeleted"
enum="ClipboardHistoryDisplayFormat" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The data format of an item deleted from the clipboard history menu. Recorded
when the user deletes an item.
Note: Prior to M112, this histogram erroneously recorded two samples when an
item was deleted by clicking the delete button. Deleting an item using the
Backspace key correctly recorded one sample.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.DisplayFormatPasted"
enum="ClipboardHistoryDisplayFormat" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The data format of an item pasted from the clipboard history menu. Recorded
when the user pastes an item.
Note: Prior to M112, this histogram erroneously recorded samples only when
an item was pasted by clicking or pressing Enter with an item selected.
Other methods of pasting, such as toggling the menu closed or using the
virtual keyboard, were not counted at all.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.DisplayFormatShown"
enum="ClipboardHistoryDisplayFormat" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The data format of an item shown in the clipboard history menu. Recorded
when the item's view is created.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.MenuOptionSelected"
units="index" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The index of a clipboard history menu item selected by the user. Recorded
when the item is selected.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.NumberOfItemsShown"
units="Items Shown" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of items shown in the clipboard history menu. Recorded each time
the menu is shown.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.ShowMenu"
enum="ClipboardHistoryTriggerType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The way a user made the clipboard history menu show. Recorded each time the
menu is shown.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ContextMenu.UserJourneyTime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The length of time between the user opening the clipboard history menu and
the menu closing. Recorded every time the clipboard history menu is closed,
regardless of whether the user selected one of the menu's options.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ControlToVDelayV2" units="ms"
expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between a user's Ctrl key press and the user's V key press when
pasting via keyboard. Recorded when V is pressed. Only recorded for the
first V press in a sequence. Sample scenario: User holds Ctrl, waits 200ms,
presses V (histogram entry recorded), and presses V again without releasing
Ctrl (no histogram entry recorded).
Note: Version 1 of this histogram incorrectly recorded the Ctrl pressed time
in some cases such that it seemed closer to the V pressed time than it
really was. This histogram's entries are more accurate.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ControlVHeldTime" units="ms"
expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time between a user's V key press in a Ctrl+V sequence and the end of
the paste. Recorded when Ctrl is released, V is released, or a different key
is pressed.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ImageModelRequest.Lifetime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The lifetime of a request created by the clipboard image model factory. This
factory reuses one request object for disinct logical requests until no new
rendering requests are issued for some period of time, at which point the
request object is deemed idle and destroyed. Recorded when a request object
is destroyed, either because it was idle or the system is shutting down.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ImageModelRequest.Runtime" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay between the issue time of a request to render a clipboard history
item preview and the request's completion time. Recorded when a rendering
request finishes.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ImageModelRequest.StopReason"
enum="RequestStopReason" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The end result of a request to render an image preview for the clipboard
history menu. Recorded when a request finishes, whether successful or not.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.Nudges.{NudgeType}.ShownCount"
enum="BooleanHit" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of times the clipboard history {NudgeType} has been shown.
Recorded when the {NudgeType} is shown.
This histogram can be used in conjunction with the ToFeatureOpen and
ToFeaturePaste histograms to understand a nudge's efficacy in getting users
to engage with the feature.
</summary>
<token key="NudgeType">
<variant name="DuplicateCopyNudge" summary="duplicate copy nudge"/>
<variant name="OnboardingNudge" summary="onboarding nudge"/>
<variant name="ScreenshotNotificationNudge"
summary="screenshot notification nudge"/>
<variant name="ZeroStateNudge" summary="zero state nudge"/>
</token>
</histogram>
<histogram
name="Ash.ClipboardHistory.Nudges.{NudgeType}.ToFeature{Action}TimeV2"
units="seconds" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The delay between the user being shown the clipboard history {NudgeType} and
the user's {Action} action. Recorded at the time of the {Action}.
Note: Version 1 of this histogram counted opening the clipboard history menu
via context menu as an "open" action. However, the nudges suggest
opening clipboard history via accelerator; they do not mention a context
menu option. This histogram only records opens that the nudge may have
actually led to.
</summary>
<token key="NudgeType">
<variant name="DuplicateCopyNudge" summary="duplicate copy nudge"/>
<variant name="OnboardingNudge" summary="onboarding nudge"/>
<variant name="ScreenshotNotificationNudge"
summary="screenshot notification nudge"/>
<variant name="ZeroStateNudge" summary="zero state nudge"/>
</token>
<token key="Action">
<variant name="Open" summary="opening the clipboard history menu"/>
<variant name="Paste" summary="pasting from the clipboard history menu"/>
</token>
</histogram>
<histogram name="Ash.ClipboardHistory.Operation"
enum="ClipboardHistoryOperation" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
An operation such as a copy or paste detected by clipboard history. Recorded
after any duplicate clipboard operations are debounced in clipboard history.
The total number of copies and pastes in this histogram differ from the
Clipboard.Write and Clipboard.Read histograms, respectively, because
clipboard history debounces operations before emitting to this histogram. As
a result, clipboard history avoids recording programmatic clipboard reads
and writes that do not correspond to user actions.
Warning: This histogram was expired from 2022-01-02 to 2022-01-05; data may
be missing.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.PasteSource"
enum="ClipboardHistoryTriggerType" expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The way a user made the clipboard history menu show before selecting an item
from that menu to paste. Recorded when an item is pasted from clipboard
history.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.PasteType"
enum="ClipboardHistoryPasteType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type (plain vs. rich text) and input source of a clipboard history
paste. Recorded when an item is pasted from clipboard history.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.ReorderType"
enum="ClipboardHistoryReorderType" expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The operation (copy or paste) initiating a clipboard history reorder.
Recorded each time the clipboard history list is reordered.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.UrlTitleFetcher.IsPrimaryProfileActive"
enum="BooleanActive" expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the primary user profile is also the active user profile. Recorded
when the primary profile is retrieved for the purpose of querying its
browsing history.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.UrlTitleFetcher.NumProfiles"
units="count" expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of user profiles added to the current session. Recorded when the
primary profile is retrieved for the purpose of querying its browsing
history.
</summary>
</histogram>
<histogram name="Ash.ClipboardHistory.UrlTitleFetcher.UrlFound"
enum="BooleanHit" expires_after="2024-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether the primary user has a browsing history entry for a piece of text
that they copied. Recorded on retrieval of a result from the history service
API, after already verifying that the current session has exactly one user.
</summary>
</histogram>
</histograms>
</histogram-configuration>