chromium/tools/metrics/histograms/metadata/input/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 Input 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="Input.Digitizer.MaxTouchPoints.{PointerDigitizerType}"
    units="maximum allowed touch points" expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the maximum number of active touch points allowed for each pointer
    digitizer found at startup or connected following startup, grouping results
    by {PointerDigitizerType}. Currently this metric is only available on
    Windows. This is logged once for every pointer digitizer discovered when
    initializing the singleton `TouchUiController` during startup, and once for
    each pointer digitizer that's connected afterwards in response to OS
    specific events.
  </summary>
  <token key="PointerDigitizerType">
    <variant name="DirectPen" summary="pen digitizer integrated into display"/>
    <variant name="IndirectPen" summary="pen digitizer not display integrated"/>
    <variant name="Touch" summary="touch digitizer"/>
    <variant name="TouchPad" summary="touchpad digitizer"/>
    <variant name="Unknown" summary="unknown digitizer type"/>
  </token>
</histogram>

<histogram name="Input.Digitizer.MaxTouchPointsSupportedBySystemAtStartup"
    units="maximum supported contacts" expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record the maximum number of simultaneous contacts supported by the pointer
    digitizer that supports the most simultaneous contacts among all pointer
    digitizers available to the system at startup. e.g, If the system only has
    single-touch digitizers, the recorded value is 1. If the system has
    multi-touch digitizers, the recorded value is the maximum number of contacts
    supported by the multi-touch digitizer that supports the most contacts.
    Currently this metric is only available on Windows. This is logged only once
    per browser session, when initializing the singleton `TouchUiController` at
    startup.
  </summary>
</histogram>

<histogram name="Input.Digitizer.{Interaction}" enum="PointerDigitizerType"
    expires_after="2025-03-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Record each pointer digitizer found at startup, and each pointer digitizer
    connected or disconnected following startup, grouping by {Interaction}.
    Currently this metric is only available on Windows.

    OnConnected: Logged once for each pointer digitizer that's been connected
    after initialization, in response to OS specific events.

    OnDisconnected: Logged once for each pointer digitizer that's been
    disconnected after initialization, in response to OS specific events.

    OnStartup : Logged only once per browser session for each pointer digitizer
    discovered when initializing the singleton `TouchUiController` at startup.
  </summary>
  <token key="Interaction">
    <variant name="OnConnected" summary="connected following startup"/>
    <variant name="OnDisconnected" summary="disconnected following startup"/>
    <variant name="OnStartup" summary="connected at startup"/>
  </token>
</histogram>

<histogram name="Input.PointerTypePrimary" enum="PrimaryPointerType"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the primary pointer type reported to the webpage. Recorded once per
    tab creation and again for each tab anytime preferences are changed. This is
    often used as the authoritative pointer type to style the page for.
  </summary>
</histogram>

<histogram name="Input.PointerTypesAll" enum="AllPointerTypes"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records all available pointer types reported to the webpage. Recorded once
    per tab creation and again for each tab anytime preferences are changed.
    These can be observed by a webpage by using the any-pointer media query to
    style the page based on the expected input types.
  </summary>
</histogram>

<histogram name="Input.ToolType.Android" units="tool type"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records tool type values which are sent to Chrome or WebView from Android
    when a touch event happens. This includes both valid and invalid tool types
    and can be used both to see which invalid tool types are being sent and the
    proportion of touch events that are sent with invalid tool types.
  </summary>
</histogram>

<histogram name="InputMethod.ActiveCount" units="units"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of enabled input methods. Recorded when the user logs in to
    Chrome OS or each cold start of Chrome on Android. The enabled input methods
    are selected by user in the language settings page on Chrome OS and in
    system language settings on Android. NOTE: 'Active' in the metric name is a
    legacy misnomer; 'active' should refer to just the single current aka.
    activated input method that is one of the enabled input methods whose total
    count is being tracked by this metric.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Autocorrect.Actions"
    enum="IMEAutocorrectActions" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The actions taken by assistive autocorrect, such as underlining a word.
    Recorded after an action is performed.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Autocorrect.Actions.VK"
    enum="IMEAutocorrectActions" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2022-12 to 2023-11; data may be
    missing. The actions taken by assistive autocorrect, such as underlining a
    word. Recorded after an action is performed when the Virtual Keyboard is
    visible.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Autocorrect.Count"
    enum="IMETextInputClient" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks when assistive autocorrect is performed by a text input client.
    Recorded when autocorrect is triggered by users with the feature enabled
    using a text input client that's being tracked.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Autocorrect.Delay" units="ms"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks time between when autocorrect occurs and user clicks to undo the
    autocorrect.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Actions.PK"
    enum="IMEAutocorrectActions" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records assistive autocorrect actions such as showing,
    reverting, rejecting and accepting an autocorrect suggestion. The actions
    are recorded after they are performed on Physical Keyboard inputs.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Actions.PK.EnabledByDefault"
    enum="IMEAutocorrectActions" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records assistive autocorrect actions such as showing,
    reverting, rejecting and accepting an autocorrect suggestion. The actions
    are recorded after they are performed on Physical Keyboard inputs if
    autocorrect was enabled by default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Actions.VK"
    enum="IMEAutocorrectActions" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records assistive autocorrect actions such as showing,
    reverting, rejecting and accepting an autocorrect suggestion. The actions
    are recorded after they are performed on Virtual Keyboard inputs.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Distance.OriginalLengthVsLevenshteinDistance.{Keyboard}{Interaction}"
    units="Distance" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records the length of the original word alligned with distance between
    the original and suggested new word in the form of a flattened 2d array. The
    two variables are stored as '(length-1)*MAX_LENGTH + (distance-1)'. The data
    is expected to be fairly sparse and it is guaranteed that all values will be
    in the range (0, 1000) (assuming MAX_LENGTH is not increased over 31). The
    metric is recorded once an autocorrect is accepted or rejected by user
    interactions.
  </summary>
  <token key="Keyboard">
    <variant name="Pk" summary="physical keyboard"/>
    <variant name="Vk" summary="virtual keyboard"/>
  </token>
  <token key="Interaction">
    <variant name="Accepted" summary="accepted"/>
    <variant name="Rejected" summary="rejected"/>
  </token>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Distance.SuggestedLength.{Keyboard}{Interaction}"
    units="chars" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records the length of the word suggested by autocorrect. The metric is
    recorded once an autocorrect is accepted or rejected by user interactions.
  </summary>
  <token key="Keyboard">
    <variant name="Pk" summary="physical keyboard"/>
    <variant name="Vk" summary="virtual keyboard"/>
  </token>
  <token key="Interaction">
    <variant name="Accepted" summary="accepted"/>
    <variant name="Rejected" summary="rejected"/>
  </token>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Internal.PkState"
    enum="IMEAutocorrectInternalStates" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records different internal states that autocorrect encounters
    while physical keyboard is used. These states include errors such as bad
    arguments, null input context, problems preventing from showing or hiding
    undo window. Also, events such as accepting suggestion, rejecting
    suggestion, showing/hiding/highlighting undo window, underlining suggestions
    and handling autocorrect suggestions, focusing on a text field, bluring a
    text field and having a suggestion in a text field. It recoreds the states
    everytime that HandleAutocorrect, OnBlur, OnFocus, and
    OnSurroundingTextChanged events are triggered while physical keyboard is
    visible.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Internal.PkState.EnabledByDefault"
    enum="IMEAutocorrectInternalStates" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records different internal states that autocorrect encounters
    while physical keyboard is used. These states include errors such as bad
    arguments, null input context, problems preventing from showing or hiding
    undo window. Also, events such as accepting suggestion, rejecting
    suggestion, showing/hiding/highlighting undo window, underlining suggestions
    and handling autocorrect suggestions, focusing on a text field, bluring a
    text field and having a suggestion in a text field. It recoreds the states
    everytime that HandleAutocorrect, OnBlur, OnFocus, and
    OnSurroundingTextChanged events are triggered while physical keyboard is
    visible if autocorrect was enabled by default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Internal.VkState"
    enum="IMEAutocorrectInternalStates" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records different internal states that autocorrect encounters
    while virtual keyboard is used. These states include errors such as bad
    arguments, null input context, problems preventing from showing or hiding
    undo window. Also, events such as accepting suggestion, rejecting
    suggestion, showing/hiding/highlighting undo window, underlining suggestion
    and handling autocorrect suggestion, focusing on a text field, bluring a
    text field and having a suggestion in a text field. It records the states
    everytime that HandleAutocorrect, OnBlur, OnFocus, and
    OnSurroundingTextChanged events are called while virtual keyboard is
    visible.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Latency.Accept" units="ms"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks duration between providing an autocorrect suggestion to its
    acceptance. It is recorded every time that an autocorrect suggestion is
    implicitly accepted.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Latency.Accept.EnabledByDefault"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks duration between providing an autocorrect suggestion to its
    acceptance. It is recorded every time that an autocorrect suggestion is
    implicitly accepted if autocorrect was enabled by default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Latency.ExitField"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks time between providing an autocorrect suggestion to exiting the text
    field. It is recorded every time that a user leaves a text field while
    having a pending autocorrect.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Latency.ExitField.EnabledByDefault"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks time between providing an autocorrect suggestion to exiting the text
    field. It is recorded every time that a user leaves a text field while
    having a pending autocorrect if autocorrect was enabled by default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Latency.PkPending"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks duration of pending autocorrect suggestions for physical keyboard
    inputs. The duration is measured from the time of showing an autocorrect
    underline to the time of clearing it. It is recorded every time that an
    action such as reject, accept, exit field or an internal error resolves a
    pending autocorrect suggestion for physical keyboard inputs.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Latency.Reject" units="ms"
    expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks time between providing an autocorrect suggestion to its implicit
    rejection or undone. It is recorded every time that an autocorrect
    suggestion is implicitly rejected or undone.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Latency.Reject.EnabledByDefault"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks time between providing an autocorrect suggestion to its implicit
    rejection or undone. It is recorded every time that an autocorrect
    suggestion is implicitly rejected or undone if autocorrect was enabled by
    default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Latency.VkPending"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks duration of pending autocorrect suggestions for virtual keyboard
    inputs. The duration is measured from the time of showing an autocorrect
    underline to the time of clearing it. It is recorded every time that an
    action such as reject, accept, exit field or an internal error resolves a
    pending autocorrect suggestion for virtual keyboard inputs.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.PkUserPreference.{Language}"
    enum="IMEAutocorrectPreference" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram records the value of the user's physical keyboard autocorrect
    preference once when an input method is activated. The metric is broken down
    into two extra buckets, English and All languages. When a user has an
    english based input method enabled, the metric will be recorded twice, once
    for the English bucket and once for the All bucket. All other input methods
    will be recorded once in the All bucket.
  </summary>
  <token key="Language">
    <variant name="All" summary="All languages"/>
    <variant name="English" summary="English language only"/>
  </token>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Quality.PkAccepted"
    enum="IMEAutocorrectQualityBreakdown" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records charactersitics of original text and suggested text
    for an accepted autocorrect suggestion on Virtual Keyboard. These
    measurements highlight the changes applied by autocorrect on the original
    text such as changing accent, lower casing, capitalizing or mutating
    characters. It records everytime that an autocorrect suggestion is accepted
    by user interactions.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Quality.PkAccepted.EnabledByDefault"
    enum="IMEAutocorrectQualityBreakdown" expires_after="2025-02-16">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records charactersitics of original text and suggested text
    for an accepted autocorrect suggestion on Virtual Keyboard. These
    measurements highlight the changes applied by autocorrect on the original
    text such as changing accent, lower casing, capitalizing or mutating
    characters. It records everytime that an autocorrect suggestion is accepted
    by user interactions if autocorrect was enabled by default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Quality.PkRejected"
    enum="IMEAutocorrectQualityBreakdown" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records charactersitics of original text and suggested text
    for a rejected autocorrect suggestion on Virtual Keyboard. These
    measurements highlight the changes applied by autocorrect on the original
    text such as changing accent, lower casing, capitalizing or mutating
    characters. It records everytime that an autocorrect suggestion is rejected
    or undone by user interactions.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.Quality.PkRejected.EnabledByDefault"
    enum="IMEAutocorrectQualityBreakdown" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records charactersitics of original text and suggested text
    for a rejected autocorrect suggestion on Virtual Keyboard. These
    measurements highlight the changes applied by autocorrect on the original
    text such as changing accent, lower casing, capitalizing or mutating
    characters. It records everytime that an autocorrect suggestion is rejected
    or undone by user interactions if autocorrect was enabled by default.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Quality.VkAccepted"
    enum="IMEAutocorrectQualityBreakdown" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records charactersitics of original text and suggested text
    for an accepted autocorrect suggestion on Virtual Keyboard. These
    measurements highlight the changes applied by autocorrect on the original
    text such as changing accent, lower casing, capitalizing or mutating
    characters. It records everytime that an autocorrect suggestion is accepted
    by user interactions.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Quality.VkRejected"
    enum="IMEAutocorrectQualityBreakdown" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records charactersitics of original text and suggested text
    for a rejected autocorrect suggestion on Virtual Keyboard. These
    measurements highlight the changes applied by autocorrect on the original
    text such as changing accent, lower casing, capitalizing or mutating
    characters. It records everytime that an autocorrect suggestion is rejected
    or undone by user interactions.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.Rejection.{Keyboard}"
    enum="IMEAutocorrectRejectionBreakdown" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram records the different interactions used to reject or revert an
    autocorrect suggestion. These interactions include selecting undo with or
    without the keyboard or deleting some or all of the word.
  </summary>
  <token key="Keyboard">
    <variant name="PK" summary="physical keyboard"/>
    <variant name="VK" summary="virtual keyboard"/>
  </token>
</histogram>

<histogram name="InputMethod.Assistive.AutocorrectV2.SuggestionProvider.Pk"
    enum="IMEAutocorrectSuggestionProvider" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is recorded whenever a user focuses on a new text input and the
    IME service is connected and ready to provide autocorrect suggestions. This
    is only recorded once per input focused.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.UndoWindow.LearnMoreButtonShown"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is recorded when the learn more button is shown in a unique
    undo window. The button will only be shown on the first 10 undo windows for
    each user.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.UserPrefChange.{Language}.{Type}"
    enum="IMEAutocorrectPrefStateTransition" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram is recorded whenever the user changes their preference for
    the autocorrect level enabled. Metrics are split between VK and PK, and
    English versus non English languages.
  </summary>
  <token key="Type">
    <variant name="PK" summary="Physical Keyboard"/>
    <variant name="VK" summary="Virtual Keyboard"/>
  </token>
  <token key="Language">
    <variant name="All" summary="All languages"/>
    <variant name="English" summary="English language only"/>
  </token>
</histogram>

<histogram
    name="InputMethod.Assistive.AutocorrectV2.UserPrefChange.{Type}.{Language}"
    enum="IMEAutocorrectPrefStateTransition" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    DEPRECATED: This metric name is incorrect and deviates from the string used
    when recorded in code. To save the data emitted from clients we add a new
    metric below with the correct string. This histogram is recorded whenever
    the user changes their preference for the autocorrect level enabled. Metrics
    are split between VK and PK, and English versus non English languages.
  </summary>
  <token key="Type">
    <variant name="PK" summary="Physical Keyboard"/>
    <variant name="VK" summary="Virtual Keyboard"/>
  </token>
  <token key="Language">
    <variant name="All" summary="All languages"/>
    <variant name="English" summary="English language only"/>
  </token>
</histogram>

<histogram name="InputMethod.Assistive.CandidateGenerationTime.MultiWord"
    units="ms" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the time taken to generate multi word suggestions candidates. The
    metric is recorded after a request for candidates has been resolved by the
    machine learning service.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Coverage" enum="IMEAssistiveAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times each assistive action is triggered. Recorded when
    assistive actions are triggered.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Disabled" enum="IMEAssistiveAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times each assistive action could be triggered according to
    the surrounding text but was not triggered because the user turned off the
    feature. Recorded when the surrounding text could trigger assistive actions
    but the corresponding feature was disabled.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Disabled.Emoji"
    enum="IMEAssistiveDisabledReason" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2023-08 to 2023-11; data may be
    missing. The reason for emoji suggestions not being shown to users. Recorded
    when the surrounding text could trigger emoji suggestions but the feature
    was disabled. Only the first applicable reason in IMEAssistiveDisabledReason
    enum is recorded per occurrence.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Disabled.MultiWord"
    enum="IMEAssistiveDisabledReason" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The reason for multi word suggestions not being shown to users. Recorded
    when the surrounding text could trigger multi word suggestions but the
    feature was disabled. Only the first applicable reason in
    IMEAssistiveDisabledReason enum is recorded per occurrence.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.DismissedAccuracy.MultiWord" units="%"
    expires_after="2022-05-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the accuracy of a suggestion that was dismissed by the user.
    Accuracy is measured as the number of chars correctly predicted by the
    suggestion, divided by the total number of chars in the suggestion. This is
    recorded when the user dismisses the suggestion.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.EmojiSuggestAddition.AcceptanceIndex"
    units="times" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2022-05 to 2023-11; data may be
    missing. The number of times an emoji suggest addition is accepted at a
    given index. Recorded when an user accepts an emoji suggestion appeared
    after typing an emoji-triggered word.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Grammar.Actions"
    enum="IMEGrammarActions" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The actions taken by on-device grammar checker, such as underlining a word.
    Recorded after a grammar checker action is performed.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Grammar.Count" enum="IMETextInputClient"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Tracks when assistive grammar is performed by a text input client. Recorded
    when grammar is triggered by users with the feature enabled using a text
    input client that's being tracked.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Match" enum="IMEAssistiveAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times each assistive action could be triggered according to
    the surrounding text. This includes cases in InputMethod.Assistive.Coverage,
    and also includes cases when the feature is turned off or there is
    insufficient data. Recorded when the surrounding text could trigger
    assistive actions.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.CandidatesGenerated"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records when a candidate generation response is returned from the multi
    word suggestion engine and the response contains some candidates. This is
    recorded exactly once per response.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.CouldPossiblyShowSuggestion"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    DEPRECATED, please see
    InputMethod.Assistive.MultiWord.SuggestionOpportunity. This histogram
    records when the current text context could possibly show a suggestion. This
    does not necessarily mean a suggestion was shown, only that the current text
    context fulfills all constraints needed to trigger an attempt to generate
    and display suggestions. It is recorded exactly once per surrounding text
    update.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.EmptyCandidate"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram records when an empty completion candidate is added to a
    suggestion generation request to the machine learning service. An empty
    completion candidate in this context means a candidate with an empty string.
    This is an invalid state and should never happen. The metric is recorded
    once per empty candidate found.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.ImplicitAcceptance"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is recorded when a user implicitly accepts a multi word
    suggestion that is shown to them. Implicit acceptance here means the user
    has fully typed the suggestion shown to them, without explicitly accepting
    the suggestion through the ui shown.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.ImplicitRejection"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is recorded when a user implicitly rejects a multi word
    suggestion that is shown to them. Implicit rejection here means the user has
    typed some text that does not match the suggestion shown to them.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.InputState"
    enum="IMEAssistiveTextInputState" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records the state of an assistive feature in relation to a particular
    input field. The feature could be enabled or disabled for a number of
    reasons and this metric captures that information. The metric is recorded
    once when a user focuses on a new input field.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.PrecedingTextLength"
    units="chars" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records the preceding text given in a request to generate candidates
    from the multi word suggestion engine. It is recorded exactly once per
    request.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.RequestCandidates"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records when a request to generate suggestion candidates is made to the
    multi word suggestion engine. It records the type of suggestion requested.
    It is recorded exactly once per request.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.SuggestionLength"
    units="chars" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This records the length of a multi word suggestion shown to a user in chars.
    The metric is recorded once when a suggestion visually appears in front of a
    user.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.SuggestionOpportunity"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram records when the current text context could possibly show a
    suggestion. This does not necessarily mean a suggestion was shown, only that
    the current text context fulfills all constraints needed to trigger an
    attempt to generate and display suggestions. It is recorded exactly once per
    surrounding text update.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.MultiWord.SuggestionState.{Type}"
    enum="IMEAssistiveMultiWordSuggestionType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This histogram records when a new suggestion is found and the system
    attempts to reconcile it with the text found in the currently focused text
    input. The histogram records the state of the reconciliation process. This
    metric is recorded exactly once for every suggestion that goes through this
    process.
  </summary>
  <token key="Type">
    <variant name="Completion" summary="CompletionSuggestion"/>
    <variant name="Prediction" summary="PredictionSuggestion"/>
  </token>
</histogram>

<histogram name="InputMethod.Assistive.NotAllowed" enum="IMEAssistiveAction"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times each assistive action could be triggered but is blocked
    because the text is not in the allowed websites or apps. Recorded when the
    assistive action is blocked because the text is not in the allowed websites
    or apps. Expired in May 2023, and revived in June (M116). Data may be
    incomplete for M113 to M115, inclusively.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.Success" enum="IMEAssistiveAction"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times each assistive action is accepted. Recorded when
    assistive actions are accepted by the users.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.TimeToAccept.MultiWord" units="ms"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration from when a multi word suggestion is shown to a user, to the
    time the user accepts that suggestion. The metric is recorded when the user
    accepts the suggestion.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.TimeToDismiss.MultiWord" units="ms"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The duration from when a multi word suggestion is shown to a user, to the
    time the user dimisses that suggestion. The metric is recorded when the user
    dismisses the suggestion.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.UserPref.Emoji" enum="BooleanEnabled"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2023-02 to 2023-11; data may be
    missing. The user's preference for emoji suggestions. Recorded when
    AssistiveSuggester is initialised. &quot;Enabled&quot; is logged as the
    default value if the user didn't explicitly set it.
  </summary>
</histogram>

<histogram name="InputMethod.Assistive.UserPref.MultiWord"
    enum="BooleanEnabled" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user's preference for predictive writing suggestions. Recorded when the
    user is logged in and the AssistiveSuggester is initialised.
    &quot;Enabled&quot; is logged as the default value if the user didn't
    explicitly set it.
  </summary>
</histogram>

<histogram
    name="InputMethod.Assistive.UserPref.PhysicalKeyboardDiacriticsOnLongpress"
    enum="BooleanEnabled" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user's preference for diacritics. Recorded when the user is logged in
    and the AssistiveSuggester is initialised. &quot;Enabled&quot; is logged as
    the default value if the user didn't explicitly set it.
  </summary>
</histogram>

<histogram name="InputMethod.AutoCorrectLevel" enum="IMECorrectionLevel"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The auto-correction level for suggestion engine.</summary>
</histogram>

<histogram name="InputMethod.Category" enum="InputMethodCategory"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The breakdown of input method usage by input method category. Recorded when
    the system changes the current input method.
  </summary>
</histogram>

<histogram name="InputMethod.CharactersPerSession{InputModality}"
    units="characters" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of characters entered in a single user session on ChromeOS. A user
    session consists of a user typing 10+ characters for 1+ seconds where there
    is no period of time where the user is inactive for more than 3 seconds for
    the input type. This gets recorded when we detect user input and it has been
    more than 3 seconds since the last input by the user and also when a change
    in the Engine or Text field selected is detected.
  </summary>
  <token key="InputModality">
    <variant name="" summary="aggregate"/>
    <variant name=".hwt" summary="handwriting"/>
    <variant name=".voice" summary="voice"/>
  </token>
</histogram>

<histogram name="InputMethod.Commit.Index" units="units"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The suggestion index (1-based) of the suggestion list item which user
    chooses to commit.
  </summary>
</histogram>

<histogram name="InputMethod.Commit.Type2" enum="IMECommitType2"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The suggestion accuracy type which the user chooses to commit.
  </summary>
</histogram>

<histogram name="InputMethod.CommitLength" units="characters"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from M95 to M121; data may be missing.
    The number of characters committed with composition text.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.Actions" enum="ImeHandwritingActions"
    expires_after="2022-04-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Types of actions performed by the user during
    handwriting, recorded when the user performs a gesture action.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.AlternateMultiToSingle" units="index"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] TWarning: this histogram was expired from 2022-03
    to 2023-11; data may be missing. The index of the selected suggestion from
    the handwriting alternative suggestion menu. This metric is recorded when
    the handwriting text highlighted is multiple words, and the selected
    suggestion is a single word.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.AlternateSelected" units="index"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Warning: this histogram was expired from 2022-03
    to 2023-11; data may be missing. The index of the selected suggestion from
    the handwriting alternative suggestion menu. The metric is recorded when the
    suggestion is selected.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.AlternateSingleToMulti" units="index"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Warning: this histogram was expired from 2022-03
    to 2023-11; data may be missing. The index of the selected suggestion from
    the handwriting alternative suggestion menu. This metric is recorded when
    the handwriting text highlighted is a single word, and the selected
    suggestion is mutliple words.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.CharsEdited10s" units="chars"
    expires_after="2023-02-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Number of characters written in a 10 second
    interval, recorded every 10s while the handwriting keyboard is active.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.CharsEdited5s" units="chars"
    expires_after="2023-02-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Number of characters written in a 5 second
    interval, recorded every 5s while the handwriting keyboard is active.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.CharsEdited60s" units="chars"
    expires_after="2022-02-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Number of characters written in a 60 second
    interval, recorded every 60s while the handwriting keyboard is active.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.LanguageModelLoadTime" units="ms"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Non-Longform VK Handwriting] The number of milliseconds taken to load the
    language model required for the handwriting input method. Recorded every
    time a new language model is loaded for the handwriting input method.
  </summary>
</histogram>

<histogram name="InputMethod.Handwriting.LanguagePackState"
    enum="LanguagePackState" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Non-Longform VK Handwriting] The state of the requested language pack on
    initialization of the required handwriting service connection. Recorded once
    whenever a new handwriting service connection is requested.
  </summary>
</histogram>

<histogram name="InputMethod.ID2" enum="InputMethodID2"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Breakdown of input method usage by input method IDs. Recorded for an input
    method ID when the system's 'active input method' is switched to the input
    method with that ID. Note: In this context, 'input method ID' refers to the
    'global' input method IDs, i.e. tuple of the extension ID the input method
    belongs to and the extension-local ID of the input method.
  </summary>
</histogram>

<histogram name="InputMethod.ImeMenu.EmojiHandwritingVoiceButton"
    enum="ImeMenuButtonType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2022-05 to 2023-11; data may be
    missing. The number of times users click emoji, handwriting or voice button
    in opt-in IME menu.
  </summary>
</histogram>

<histogram name="InputMethod.ImeSwitch" enum="IMESwitchType"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>The trigger type of input method switches by user.</summary>
</histogram>

<histogram name="InputMethod.KeyEventLatency" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Time taken by the engine to handle a key event.</summary>
</histogram>

<histogram name="InputMethod.Manta.Orca.CharactersInserted.{Mode}"
    units="characters" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts the number of characters inserted by the editor. This metric is
    recorded at the time an insertion is performed.
  </summary>
  <token key="Mode">
    <variant name="Elaborate"
        summary="The user initiated Copyeditor by trying to elaborate their
                 text"/>
    <variant name="Emojify"
        summary="The user initiated Copyeditor by trying to emojify their
                 text"/>
    <variant name="Formalize"
        summary="The user initiated Copyeditor by trying to formalize their
                 text"/>
    <variant name="FreeformRewrite"
        summary="The user initiated Copyeditor by trying to rewrite their
                 text with a freeform prompt"/>
    <variant name="Proofread"
        summary="The user initiated Copyeditor by trying to proofread their
                 text"/>
    <variant name="Rephrase"
        summary="The user initiated Copyeditor by trying to rephrase their
                 text"/>
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Shorten"
        summary="The user initiated Copyeditor by trying to shorten their
                 text"/>
    <variant name="Unknown"
        summary="The user initiated Copyeditor with an unknown method
                 (potentially a new prompt)"/>
    <variant name="Unset" summary="The user hasn't yet chosen a tone"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.CharactersSelectedForInsert.{Mode}"
    units="characters" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts the number of characters selected for insertion. This metric is
    recorded at the time an insertion is performed.
  </summary>
  <token key="Mode">
    <variant name="Elaborate"
        summary="The user initiated Copyeditor by trying to elaborate their
                 text"/>
    <variant name="Emojify"
        summary="The user initiated Copyeditor by trying to emojify their
                 text"/>
    <variant name="Formalize"
        summary="The user initiated Copyeditor by trying to formalize their
                 text"/>
    <variant name="FreeformRewrite"
        summary="The user initiated Copyeditor by trying to rewrite their
                 text with a freeform prompt"/>
    <variant name="Proofread"
        summary="The user initiated Copyeditor by trying to proofread their
                 text"/>
    <variant name="Rephrase"
        summary="The user initiated Copyeditor by trying to rephrase their
                 text"/>
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Shorten"
        summary="The user initiated Copyeditor by trying to shorten their
                 text"/>
    <variant name="Unknown"
        summary="The user initiated Copyeditor with an unknown method
                 (potentially a new prompt)"/>
    <variant name="Unset" summary="The user hasn't yet chosen a tone"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.FreeFormCharactersForInsert.{Mode}"
    units="characters" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts the number of characters in a freeform request (if any) for an
    insert. This metric is recorded at the time an insertion is performed.
  </summary>
  <token key="Mode">
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.IndexOfInsertedResponse.{Mode}"
    units="units" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the index of the response that is selected by the user to be
    inserted. This metric is recorded at the time an insertion is performed.
  </summary>
  <token key="Mode">
    <variant name="Elaborate"
        summary="The user initiated editor by trying to elaborate their text"/>
    <variant name="Emojify"
        summary="The user initiated editor by trying to emojify their text"/>
    <variant name="Formalize"
        summary="The user initiated editor by trying to formalize their text"/>
    <variant name="FreeformRewrite"
        summary="The user initiated editor by trying to rewrite their text
                 with a freeform prompt"/>
    <variant name="Proofread"
        summary="The user initiated editor by trying to proofread their text"/>
    <variant name="Rephrase"
        summary="The user initiated editor by trying to rephrase their text"/>
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Shorten"
        summary="The user initiated editor by trying to shorten their text"/>
    <variant name="Unknown"
        summary="The user initiated editor with an unknown method
                 (potentially a new prompt)"/>
    <variant name="Unset" summary="The user hasn't yet chosen a tone"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.LengthOfLongestResponse.{Mode}"
    units="characters" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the number of characters found in the longest response returned from
    the server. This metric is recorded at the time a response with multiple
    text suggestion candidates is received from the server.
  </summary>
  <token key="Mode">
    <variant name="Elaborate"
        summary="The user initiated Copyeditor by trying to elaborate their
                 text"/>
    <variant name="Emojify"
        summary="The user initiated Copyeditor by trying to emojify their
                 text"/>
    <variant name="Formalize"
        summary="The user initiated Copyeditor by trying to formalize their
                 text"/>
    <variant name="FreeformRewrite"
        summary="The user initiated Copyeditor by trying to rewrite their
                 text with a freeform prompt"/>
    <variant name="Proofread"
        summary="The user initiated Copyeditor by trying to proofread their
                 text"/>
    <variant name="Rephrase"
        summary="The user initiated Copyeditor by trying to rephrase their
                 text"/>
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Shorten"
        summary="The user initiated Copyeditor by trying to shorten their
                 text"/>
    <variant name="Unknown"
        summary="The user initiated Copyeditor with an unknown method
                 (potentially a new prompt)"/>
    <variant name="Unset" summary="The user hasn't yet chosen a tone"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.NumResponses.{Mode}" units="units"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Counts the number of responses for each request to the server. This metric
    is recorded at the time a response is received from the server.
  </summary>
  <token key="Mode">
    <variant name="Elaborate"
        summary="The user initiated Copyeditor by trying to elaborate their
                 text"/>
    <variant name="Emojify"
        summary="The user initiated Copyeditor by trying to emojify their
                 text"/>
    <variant name="Formalize"
        summary="The user initiated Copyeditor by trying to formalize their
                 text"/>
    <variant name="FreeformRewrite"
        summary="The user initiated Copyeditor by trying to rewrite their
                 text with a freeform prompt"/>
    <variant name="Proofread"
        summary="The user initiated Copyeditor by trying to proofread their
                 text"/>
    <variant name="Rephrase"
        summary="The user initiated Copyeditor by trying to rephrase their
                 text"/>
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Shorten"
        summary="The user initiated Copyeditor by trying to shorten their
                 text"/>
    <variant name="Unknown"
        summary="The user initiated Copyeditor with an unknown method
                 (potentially a new prompt)"/>
    <variant name="Unset" summary="The user hasn't yet chosen a tone"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.States.{Mode}" enum="IMEEditorStates"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram captures user interactions with the editor, focusing on key
    actions providing a high level funel of interaction. These actions include
    the initiation of a new request, content insertion, display of the native
    UI, dismissal of the editor, a refining request, errors from the backend,
    receiving a successful responses from the backend or a user toggling the
    thumbs up and down buttons.
  </summary>
  <token key="Mode">
    <variant name="Elaborate"
        summary="The user initiated Copyeditor by trying to elaborate their
                 text"/>
    <variant name="Emojify"
        summary="The user initiated Copyeditor by trying to emojify their
                 text"/>
    <variant name="Formalize"
        summary="The user initiated Copyeditor by trying to formalize their
                 text"/>
    <variant name="FreeformRewrite"
        summary="The user initiated Copyeditor by trying to rewrite their
                 text with a freeform prompt"/>
    <variant name="InvalidInput"
        summary="The user is triggering from an invalid input"/>
    <variant name="NotAllowed"
        summary="The user is not allowed to use the feature"/>
    <variant name="Proofread"
        summary="The user initiated Copyeditor by trying to proofread their
                 text"/>
    <variant name="Rephrase"
        summary="The user initiated Copyeditor by trying to rephrase their
                 text"/>
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Shorten"
        summary="The user initiated Copyeditor by trying to shorten their
                 text"/>
    <variant name="Unknown"
        summary="The user initiated Copyeditor with an unknown method
                 (potentially a new prompt)"/>
    <variant name="Unset" summary="The user hasn't yet chosen a tone"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.{Language}.CharactersInserted.{Mode}"
    units="characters" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is segmented by &quot;input language&quot;, where input language
    is derived heuristically from the active input method. The metric counts the
    number of characters inserted by the editor. This metric is recorded at the
    time an insertion is performed.
  </summary>
  <token key="Mode">
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
  <token key="Language">
    <variant name="English" summary="English input method is enabled"/>
    <variant name="French" summary="French input method is enabled"/>
    <variant name="German" summary="German input method is enabled"/>
    <variant name="Japanese" summary="Japanese input method is enabled"/>
    <variant name="Other" summary="Other input method is enabled"/>
  </token>
</histogram>

<histogram
    name="InputMethod.Manta.Orca.{Language}.CharactersSelectedForInsert.{Mode}"
    units="characters" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is segmented by &quot;input language&quot;, where input language
    is derived heuristically from the active input method. The metric counts the
    number of characters selected for insertion. This metric is recorded at the
    time an insertion is performed.
  </summary>
  <token key="Mode">
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
  <token key="Language">
    <variant name="English" summary="English input method is enabled"/>
    <variant name="French" summary="French input method is enabled"/>
    <variant name="German" summary="German input method is enabled"/>
    <variant name="Japanese" summary="Japanese input method is enabled"/>
    <variant name="Other" summary="Other input method is enabled"/>
  </token>
</histogram>

<histogram
    name="InputMethod.Manta.Orca.{Language}.LengthOfLongestResponse.{Mode}"
    units="characters" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is segmented by &quot;input language&quot;, where input language
    is derived heuristically from the active input method. The metric records
    the number of characters found in the longest response returned from the
    server. This metric is recorded at the time a response with multiple text
    suggestion candidates is received from the server.
  </summary>
  <token key="Mode">
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
  <token key="Language">
    <variant name="English" summary="English input method is enabled"/>
    <variant name="French" summary="French input method is enabled"/>
    <variant name="German" summary="German input method is enabled"/>
    <variant name="Japanese" summary="Japanese input method is enabled"/>
    <variant name="Other" summary="Other input method is enabled"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.{Language}.NumResponses.{Mode}"
    units="units" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    This metric is segmented by &quot;input language&quot;, where input language
    is derived heuristically from the active input method. The metric counts the
    number of responses for each request to the server. This metric is recorded
    at the time a response is received from the server.
  </summary>
  <token key="Mode">
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
  <token key="Language">
    <variant name="English" summary="English input method is enabled"/>
    <variant name="French" summary="French input method is enabled"/>
    <variant name="German" summary="German input method is enabled"/>
    <variant name="Japanese" summary="Japanese input method is enabled"/>
    <variant name="Other" summary="Other input method is enabled"/>
  </token>
</histogram>

<histogram name="InputMethod.Manta.Orca.{Language}.States.{Mode}"
    enum="IMEEditorStates" expires_after="2025-02-02">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The histogram captures user interactions with the editor segmented by
    &quot;input language&quot;. To complete this segmentation we rely on the
    currently enabled input method as a heuristic. These user interactions are
    focusing on key actions providing a high level funnel of interaction. These
    actions include the initiation of a new request, content insertion, display
    of the native UI, dismissal of the editor, a refining request, errors from
    the backend, receiving a successful responses from the backend or a user
    toggling the thumbs up and down buttons.
  </summary>
  <token key="Mode">
    <variant name="Rewrite"
        summary="There is selected text and the user is rewriting it with the
                 editor"/>
    <variant name="Write" summary="The editor is in freeform write mode"/>
  </token>
  <token key="Language">
    <variant name="Afrikaans" summary="Afrikaans input method is enabled"/>
    <variant name="Danish" summary="Danish input method is enabled"/>
    <variant name="Dutch" summary="Dutch input method is enabled"/>
    <variant name="English" summary="English input method is enabled"/>
    <variant name="Finnish" summary="Finnish input method is enabled"/>
    <variant name="French" summary="French input method is enabled"/>
    <variant name="German" summary="German input method is enabled"/>
    <variant name="Italian" summary="Italian input method is enabled"/>
    <variant name="Japanese" summary="Japanese input method is enabled"/>
    <variant name="Norwegian" summary="Norwegian input method is enabled"/>
    <variant name="Other" summary="Other input method is enabled"/>
    <variant name="Polish" summary="Polish input method is enabled"/>
    <variant name="Portugese" summary="Portugese input method is enabled"/>
    <variant name="Spanish" summary="Spanish input method is enabled"/>
    <variant name="Swedish" summary="Swedish input method is enabled"/>
  </token>
</histogram>

<histogram name="InputMethod.NextWordPrediction" enum="BooleanEnabled"
    expires_after="2021-12-19">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether next word prediction is enabled for a user. Recorded when a specific
    language settings page is updated or when the input extension is activated.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.OnFocusMigratedToSystemPk"
    enum="Boolean" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs whether user is using SystemPK (if true) or legacy extension (if false)
    mozc when any input is focused on.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.AutoSwitchToHalfwidth"
    enum="Boolean" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the
    AutomaticallySwitchToHalfWidth setting is set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.DisablePersonalizedSuggestions"
    enum="Boolean" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the
    DisablePersonalizedSuggestions setting is set to.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.Japanese.Settings.InputMode"
    enum="JpSettingsInputMode" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the InputMode setting is
    set to.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.Japanese.Settings.KeymapStyle"
    enum="JpSettingsKeymapStyle" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the KeymapStyle setting is
    set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.NumberOfSuggestions"
    units="suggestions" expires_after="2023-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the NumberOfSuggestions
    setting is set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.PunctuationStyle"
    enum="JpSettingsPunctuationStyle" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the PunctuationStyle
    setting is set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.SelectionShortcut"
    enum="JpSettingsSelectionShortcut" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the SelectionShortcut
    setting is set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.ShiftKeyModeStyle"
    enum="JpSettingsShiftKeyModeStyle" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the ShiftKeyModeStyle
    setting is set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.SpaceInputStyle"
    enum="JpSettingsSpaceInputStyle" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the SpaceInputStyle
    setting is set to.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.Japanese.Settings.SymbolStyle"
    enum="JpSettingsSymbolStyle" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the SymbolStyle setting is
    set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.UseInputHistory"
    enum="Boolean" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the UseInputHistory
    setting is set to.
  </summary>
</histogram>

<histogram
    name="InputMethod.PhysicalKeyboard.Japanese.Settings.UseSystemDictionary"
    enum="Boolean" expires_after="2025-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Logs (On IME activation or settings changed) what the UseSystemDictionary
    setting is set to.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.Japanese.StartupAction"
    enum="JapaneseStartupAction" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Action performed on IME startup with respect to Japanese data. This will
    primarily be used to indicate if a user has migrated their data for JP SYS
    PK or not.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.KeyboardShortcut"
    enum="PhysicalKeyboardShortcut" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Keyboard shortcut performed by user on physical IME. This signal should only
    be sent on key down.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.Korean.Action"
    enum="KoreanAction" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Action performed on the Korean IME. Recorded whenever one of the actions is
    performed.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.Korean.MultipleSyllables"
    enum="Boolean" expires_after="2023-08-08">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether multiple syllables is enabled by the Korean IME. Recorded when the
    user focuses on a new input field.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.LongpressDiacritics.AcceptedChar"
    enum="IMEPKLongpressDiacriticUnicodeCharacterCode"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The unicode character code for the diacritic and character variant accepted
    by a user using longpress diacritics on physical keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.LongpressDiacritics.Action"
    enum="IMEPKLongpressDiacriticAction" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Action related to the longpress diacritics window on physical keyboard.
    These actions are recorded in LongpressDiacriticsSuggester functions:
    SHOW_WINDOW in TrySuggestOnLongpress, ACCEPT in AcceptSuggestion, and
    DISMISS in DismissSuggestion.
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseTelex.FlexibleTyping"
    enum="Boolean" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether flexible typing is enabled by the Vietnamese Telex IME. Recorded on
    IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseTelex.ModernToneMark"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether modern tone mark is enabled by the Vietnamese Telex IME. Recorded on
    IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseTelex.ShowUnderline"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether show underline setting is enabled by the Vietnamese Telex IME.
    Recorded on IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseTelex.UODoubleHorn"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether UO double horn shortcut is enabled by the Vietnamese Telex IME.
    Recorded on IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseTelex.WForUHorn"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether W for U Horn shortcut is enabled by the Vietnamese Telex IME.
    Recorded on IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseVNI.FlexibleTyping"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether flexible typing is enabled by the Vietnamese VNI IME. Recorded on
    IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseVNI.ModernToneMark"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether modern tone mark is enabled by the Vietnamese VNI IME. Recorded on
    IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseVNI.ShowUnderline"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether show underline setting is enabled by the Vietnamese VNI IME.
    Recorded on IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PhysicalKeyboard.VietnameseVNI.UODoubleHorn"
    enum="Boolean" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether UO double horn shortcut is enabled by the Vietnamese VNI IME.
    Recorded on IME activation (settings change or changing IME).
  </summary>
</histogram>

<histogram name="InputMethod.PkCommit.Index" units="units"
    expires_after="2023-05-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The suggestion index (1-based) of the suggestion list item which user
    chooses to commit for physical keyboard autocorrect.
  </summary>
</histogram>

<histogram name="InputMethod.PkCommit.Type" enum="IMECommitType2"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2023-05 to 2023-11; data may be
    missing. The suggestion accuracy type which the user chooses to commit for
    physical keyboard autocorrect.
  </summary>
</histogram>

<histogram name="InputMethod.SessionDuration" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The average length of user sessions on ChromeOS. This can be combined with
    characters per session to determine characters per minute. A user session
    consists of a user typing 10+ characters for 1+ seconds where there is no
    period of time where the user is inactive for more than 3 seconds. This gets
    recorded when we detect user input and it has been more than 3 seconds since
    the last input by the user and also when a change in the Engine or Text
    field selected is detected.
  </summary>
</histogram>

<histogram name="InputMethod.StylusHandwriting.Gesture"
    enum="StylusHandwritingGesture" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded when a user on Android is interacting with a text field using a
    stylus device and the IME recognises that interaction as a gesture (such as
    selecting or deleting text).
  </summary>
</histogram>

<histogram name="InputMethod.StylusHandwriting.GestureResult"
    enum="StylusHandwritingGestureResult" expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the result of a gesture which is sent back to Android.
  </summary>
</histogram>

<histogram name="InputMethod.StylusHandwriting.GestureTime2" units="ms"
    expires_after="2025-02-10">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The time taken to process and complete a gesture. More specifically, the
    time between being sent a gesture from Android and getting the gesture
    result from Blink. This is recorded once per gesture.
  </summary>
</histogram>

<histogram name="InputMethod.StylusHandwriting.Triggered"
    enum="StylusHandwritingApi" expires_after="2025-01-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    When an Android user is interacting with a text field using a stylus and
    there is an available API on the device, we trigger stylus handwriting. This
    histogram records which API is available (plain Android or DirectWriting)
    and when it is triggered.
  </summary>
</histogram>

<histogram name="InputMethod.SystemEmojiPicker.Delay" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2023-09 to 2023-11; data may be
    missing. Time between when emoji picker shown and when the emoji is inserted
  </summary>
</histogram>

<histogram name="InputMethod.SystemEmojiPicker.InsertionLatency" units="ms"
    expires_after="2024-12-31">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time between when emoji is clicked and when the emoji is successfully
    inserted (fallback coping to clipboard does not count here). The metric is
    recorded every time when emoji / image insertion is successfully finished in
    System Emoji Picker.
  </summary>
</histogram>

<histogram name="InputMethod.SystemEmojiPicker.LoadTime" units="ms"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time between when emoji picker is opened and when UI is completely loaded.
    Used to monitor performance of emoji picker. Recorded once the ChromeOS
    emoji picker finishes loading.
  </summary>
</histogram>

<histogram name="InputMethod.SystemEmojiPicker.SearchLength" units="characters"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2023-02 to 2023-11; data may be
    missing. Length of search string in emoji picker when emoji was inserted.
  </summary>
</histogram>

<histogram name="InputMethod.SystemEmojiPicker.TriggerType"
    enum="VirtualKeyboardEmojiTriggerType" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>How emojis were inserted.</summary>
</histogram>

<histogram name="InputMethod.TouchSelection.DragType"
    enum="TouchSelectionDragType" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Type of dragging gesture used to adjust the selection or cursor position on
    ChromeOS. Recorded at the end of the drag.
  </summary>
</histogram>

<histogram name="InputMethod.TouchSelection.MenuAction"
    enum="TouchSelectionMenuAction" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Action requested by a ChromeOS user from the touch selection menu. Recorded
    when the menu button is pressed.
  </summary>
</histogram>

<histogram
    name="InputMethod.TouchSelection.{TouchSelectionResult}Session.TouchDownCount"
    units="units" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of touch down movements made by a user in a 'successful'
    {TouchSelectionResult} session. A session starts from the first touch down
    that activates touch selection and ends 'successfully' if an editing action
    occurs after {TouchSelectionResult}, e.g. typing a character or using the
    menu cut, copy or paste actions. The touch down count is recorded at the end
    of a successful session (and is not recorded for sessions that end due to
    the window closing, timing out after 10s of inactivity, etc.).
  </summary>
  <token key="TouchSelectionResult">
    <variant name="Cursor" summary="cursor placement"/>
    <variant name="Selection" summary="text selection"/>
  </token>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.BackspaceCount" units="units"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of times the backspace key was pressed on the virtual keyboard,
    while the virtual keyboard was alive. Recorded when the virtual keyboard is
    closed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.CharactersCommitted" units="units"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The total number of characters committed. Recorded when the virtual keyboard
    is closed.
  </summary>
</histogram>

<histogram
    name="InputMethod.VirtualKeyboard.CharactersPerMinute{InputModality}"
    units="charactersPerMinute" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Typing speed in each user session on ChromeOS when using the virtual
    keyboard. A user session consists of a user typing 10+ characters for 1+
    seconds where there is no period of time where the user is inactive for more
    than 3 seconds. This gets recorded when we detect user input and it has been
    more than 3 seconds since the last input by the user and also when a change
    in the Engine or Text field selected is detected.
  </summary>
  <token key="InputModality">
    <variant name="" summary="aggregate"/>
    <variant name=".hwt" summary="handwriting"/>
    <variant name=".voice" summary="voice"/>
  </token>
</histogram>

<histogram
    name="InputMethod.VirtualKeyboard.CharactersPerSession{InputModality}"
    units="characters" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Number of characters entered in a single user session on ChromeOS when using
    the virtual keyboard. A user session consists of a user typing 10+
    characters for 1+ seconds where there is no period of time where the user is
    inactive for more than 3 seconds. This gets recorded when we detect user
    input and it has been more than 3 seconds since the last input by the user
    and also when a change in the Engine or Text field selected is detected.
  </summary>
  <token key="InputModality">
    <variant name="" summary="aggregate"/>
    <variant name=".hwt" summary="handwriting"/>
    <variant name=".voice" summary="voice"/>
  </token>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.ContainerBehavior"
    enum="VirtualKeyboardContainerType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Chrome OS histogram that counts the number of times each virtual keyboard
    display mode is used. Recorded when the virtual keyboard is opened or a user
    changes the keyboard mode from UI in the virtual keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Duration" units="seconds"
    expires_after="2022-10-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>How long the virtual keyboard was visible.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Emoji.Delay" units="ms"
    expires_after="M110">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time between when emoji shown in VK and when the emoji is inserted.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Emoji.TriggerType"
    enum="VirtualKeyboardEmojiTriggerType" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>How emojis were inserted.</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.ErrorType"
    enum="VirtualKeyboardErrorTypeHashes" expires_after="2022-02-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>Errors from the virtual keyboard extension</summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.FocusedByStylus" enum="Boolean"
    expires_after="M100">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether an input field was focused by a stylus or not. Recorded when an
    input field is focused.
  </summary>
</histogram>

<histogram
    name="InputMethod.VirtualKeyboard.Handwriting.KeyboardContainerOnCommit"
    enum="VirtualKeyboardContainerType" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Warning: this histogram was expired from 2021-12
    to 2023-11; data may be missing. What type of container was the virtual
    keyboard in when text was committed from the handwriting input method.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Handwriting.KeyboardWidthOnCommit"
    units="px" expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    [Longform VK Handwriting] Warning: this histogram was expired from 2021-12
    to 2023-11; data may be missing. How wide was the keyboard container when
    text was committed from the handwriting input method.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.InitLatency.KeyboardShownLongTail"
    units="ms" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time to show the on-screen keyboard in milliseconds. Similar to
    InputMethod.VirtualKeyboard.KeyboardShown but with a larger maximum to
    capture more of the distribution.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.InitLatency{IMEVKLatency}"
    units="ms" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The on-screen keyboard initialization latency in milliseconds.
    {IMEVKLatency}. Warning: this histogram was expired from M95 to 2024-02;
    data may be missing.
  </summary>
  <token key="IMEVKLatency">
    <variant name=""/>
    <variant name=".BackgroundSettingsFetched"
        summary="Latency for settings fetched from background"/>
    <variant name=".HtmlLoaded" summary="Latency for the page is loaded"/>
    <variant name=".KeyboardCreated"
        summary="Latency for the keyboard is created"/>
    <variant name=".KeyboardShown" summary="Latency for keyboard is shown"/>
    <variant name=".KeysetLoaded"
        summary="Latency for keyset config is loaded"/>
    <variant name=".LayoutLoaded"
        summary="Latency for layout definition is loaded"/>
  </token>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Layout" enum="IMEVKLayout"
    expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The layout of the on-screen keyboard. Logged when the specific layout is
    shown.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Multipaste.Actions"
    enum="IMEMultipasteAction" expires_after="2022-04-03">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The user actions taken in multipaste virtual keyboard, such as pasting a
    clipboard item. Recorded after a user action is performed in multipaste
    virtual keyboard.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Paprika.Actions"
    enum="IMEPaprikaActions" expires_after="M110">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Type of action performed by the user in Paprika. Recorded when the action is
    performed. Only for Chrome OS
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.Paprika.StartedWritingAfterEdu"
    enum="Boolean" expires_after="M105">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Did the user start handwriting in Paprika after dismissing the Edu dialog?
    Recorded when Paprika is closed.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.PreferredLayoutForStylus"
    enum="IMEVKLayout" expires_after="2021-12-12">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The layout of the virtual keyboard that is shown when the user focuses on an
    input field with a stylus. Recorded when the layout is shown after a focus.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.ResizableWindowInitWidth"
    units="px" expires_after="2022-02-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The width of the virtual keyboard window, in pixels, when the floating
    keyboard is initialized. This is recorded only once on startup, when the
    virtual keyboard is initialized in floating mode.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.ResizableWindowWidth" units="px"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2021-09 to 2023-11; data may be
    missing. The width of the virtual keyboard window, in pixels, after a user
    has completed resizing the virtual keyboard. This is recorded when the user
    lifts their finger at the end of a drag that initiates a resize.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.SessionDuration" units="ms"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The average length of user sessions on ChromeOS when using the virtual
    keyboard. This can be combined with characters per session to determine NSM.
    A user session consists of a user typing 10+ characters for 1+ seconds where
    there is no period of time where the user is inactive for more than 3
    seconds. This gets recorded when we detect user input and it has been more
    than 3 seconds since the last input by the user and also when a change in
    the Engine or Text field selected is detected.
  </summary>
</histogram>

<histogram name="InputMethod.VirtualKeyboard.SwitchMode" enum="IMEVKMode"
    expires_after="2024-11-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Warning: this histogram was expired from 2023-08 to 2023-11; data may be
    missing. The count of user actions to switch keyboard mode (floating,
    docked). Recorded when the user clicks in the docked/floating keyboard menu
    option.
  </summary>
</histogram>

<histogram name="TextInputClient.CharacterIndex" units="ms"
    expires_after="2024-08-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded per call from a browser process thread to query
    GetCharacterIndexAtPoint on a renderer process. The call is effectively
    synchronous, blocking all other tasks from running on the browser thread.

    Only recorded on macOS.

    Warning: this histogram was missing its entry until 2024-01; data may be
    missing.
  </summary>
</histogram>

<histogram name="TextInputClient.FirstRect" units="ms"
    expires_after="2025-02-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Recorded per call from a browser process thread to query
    GetFirstRectForRange on a renderer process. The call is effectively
    synchronous, blocking all other tasks from running on the browser thread.

    Only recorded on macOS.

    Warning: this histogram was missing its entry until 2024-01; data may be
    missing.
  </summary>
</histogram>

<histogram name="TextInputClient.LockWait" units="ms"
    expires_after="2024-08-18">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Time took to acquire TextInputClient mutex lock on the browser process
    thread, recorded per attempt. The histogram is useful to understand how much
    of the TextInputClient.FirstRect and TextInputClient.CharacterIndex latency
    are due to acquring browser-side lock.

    Only recorded on macOS.

    Warning: this histogram was missing its entry until 2024-01; data may be
    missing.
  </summary>
</histogram>

<histogram name="Untrusted.InputMethod.PhysicalKeyboard.VietnameseActions"
    enum="VietnameseActions" expires_after="2025-01-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Actions used by the Vietnamese engine to compose text. Since this is logged
    from a sandboxed service so it has to be in the untrusted namespace.
  </summary>
</histogram>

<!--
These viewport metrics are in input/ since they're related to pinch-zoom, which
is owned by the Blink input team.
-->

<histogram name="Viewport.MetaTagType" enum="MetaTagTypeEnum"
    expires_after="2025-03-23">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The viewport meta tag type seen on each page load. Only recorded on Android.
    Recorded when the page finishes loading.
  </summary>
</histogram>

</histograms>

</histogram-configuration>