blob: 0b3d2dd986b8fdac5274d009c009ce2fdb41d471 [file] [log] [blame]
<!--
Copyright 2020 The Chromium Authors. All rights reserved.
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 Omnibox histograms
along with a detailed description for each histogram.
For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md
Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
chromium-metrics-reviews@google.com.
-->
<histogram-configuration>
<histograms>
<variants name="NavigationOrSuggestionPrefetch">
<variant name="NavigationPrefetch"
summary="Recorded for prefetches where Chrome is relatively confident
an omnibox navigation is about to occur (i.e. the user
selected a search suggestion). These prefetches allow Chrome
to kickstart the request without waiting until before unload
handlers or other navigation pre-processing mechanisms in
Chrome."/>
<variant name="SuggestionPrefetch"
summary="Recorded for prefetches where an omnibox suggestion from the
suggestion server recommends a prefetch of a suggestion
results page."/>
</variants>
<variants name="NavigationPrefetchOnly">
<variant name="NavigationPrefetch"
summary="Recorded for prefetches where Chrome is relatively confident
an omnibox navigation is about to occur (i.e. the user
selected a search suggestion). These prefetches allow Chrome
to kickstart the request without waiting until before unload
handlers or other navigation pre-processing mechanisms in
Chrome."/>
</variants>
<variants name="OmniboxAutocompleteUpdateSlice">
<variant name=""
summary="This slice measures match changes for all updates, regardless
of whether it or the previous update were asynchronous or
synchronous. Logged exactly once per update; 0, 1, or multiple
times per input. The count here will be the sum of the counts
for the other 2 slices."/>
<variant name=".Async"
summary="This slice measures match changes between the last update for
the current input, whether it be asynchronous or synchronous,
and the current asynchronous, i.e. non-first, update of the
current input. Logged exactly once per asynchronous update; 0,
1, or multiple times per input."/>
<variant name=".CrossInput"
summary="This slice measures match changes between the last update for
the previous input, whether it be asynchronous or synchronous,
and the synchronous, i.e. first, update of the current input.
Logged exactly once per synchronous update; at most once per
input."/>
</variants>
<variants name="OmniboxProviders">
<variant name="Bookmark"/>
<variant name="Builtin"/>
<variant name="Clipboard"/>
<variant name="Contact"/>
<variant name="Document"/>
<variant name="ExtensionApp"/>
<variant name="HistoryCluster"/>
<variant name="HistoryContents"/>
<variant name="HistoryFuzzy"/>
<variant name="HistoryQuick"/>
<variant name="HistoryURL"/>
<variant name="Keyword"/>
<variant name="LocalHistoryZeroSuggest"/>
<variant name="MostVisitedSites"/>
<variant name="OnDeviceHead"/>
<variant name="OpenTab"/>
<variant name="QueryTile"/>
<variant name="Search"/>
<variant name="Shortcuts"/>
<variant name="VerbatimMatch"/>
<variant name="VoiceSuggest"/>
<variant name="ZeroSuggest"/>
</variants>
<variants name="SearchPrefetch">
<variant name="SearchPrefetch"
summary="Search Prefetch issues results page requests in response to
either the suggestion server or the Omnibox client being
confident that the user will navigate to a specific search
suggestion. These requests are then served instantly to the
user when the user navigates to a search suggestion with the
same search terms. These requests can have mismatching query
params as the Omnibox client updates the search navigation URL
as the user types more into the Omnibox. The suggestion server
issues prefetch hints along with the suggestion request.
Additionally, the Omnibox client decides to prefetch when the
user has chosen (or likely chosen) a search suggestion to
initiate the search suggestion navigation earlier."/>
</variants>
<variants name="SuggestionPrefetchOnly">
<variant name="SuggestionPrefetch"
summary="Recorded for prefetches where an omnibox suggestion from the
suggestion server recommends a prefetch of a suggestion
results page."/>
</variants>
<histogram name="Omnibox.AcceptedKeywordSuggestion"
enum="OmniboxEnteredKeywordMode2" expires_after="2023-01-15">
<owner>yoangela@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Records number of accepted keyword searches enumerated by how the user
entered the keyword mode. See also Omnibox.EnteredKeywordMode2 for the total
number of times a user enters keyword mode whether or not the keyword
suggestion was accepted. Note that this only records when a user accepts a
search suggestion for the keyword search engine and does not record for URL
suggestions even if the user is in keyword mode.
</summary>
</histogram>
<histogram name="Omnibox.AnswerParseSuccess" enum="BooleanSuccess"
expires_after="2023-01-15">
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
For each answer received in suggest responses, the number that are
well-formed and contain all the required elements.
</summary>
</histogram>
<histogram name="Omnibox.AnswerParseType" enum="SuggestionAnswerType"
expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of times each omnibox suggestion answer type (e.g., weather,
sports score) was received and parsed successfully. Can be normalized with
the count of emits to Omnibox.SuggestRequest.Success.GoogleResponseTime,
which counts all successful suggest responses from Google, not just those
with answers attached. Note that GoogleResponseTime is technically off given
that it will still count cases where we fail to extract, deserialize, or
parse the response. But these cases are rare to non-existent.
</summary>
</histogram>
<histogram name="Omnibox.AssistedQueryStats.Length" units="chars"
expires_after="2022-08-14">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Records the length of the aqs= param in the Search Result Page request URLs.
Recorded every time a Search Result Page URL is generated in the
omnibox/realbox. This happens either when the user selects a suggestion in
order to load Search Result Page or when a proactive request is made to
prefetch the Search Result Page.
</summary>
</histogram>
<histogram
name="Omnibox.AsyncAutocompletionTime.Provider.{Provider}{Completed}"
units="ms" expires_after="2022-12-01">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
When the user focuses or types into the omnibox, the dropdown results can be
updated multiple times per input (i.e. when focused, per char typed,
backspace, etc).
Specifically, the set of events that trigger dropdown updates are:
- synchronous suggestions
- asynchronous suggestions. Can trigger multiple times per input. These are
often generated on different threads.
- expiring copied matches
- interruptions e.g. additional user input changes or closing the dropdown
A sample flow looks like:
1) User types a character.
2) 10ms later, update results with synchronous suggestions.
3) 50ms later, update results with some asynchronous suggestions.
4) 50ms later, update results with more asynchronous suggestions.
5) 400ms later, update results by removing copied matches from the previous
input.
6) 50 later, update results with the last batch of asynchronous suggestions.
The 'Provider.*' slices measure the time between the input change and the
last async update of that provider is done or interrupted. Includes async
updates that have no user visible change (i.e. that do not produce async
matches or produce only async matches that get deduped, culled, or are the
same as the existing match in its position). Only logged for asynchronous
providers. Emitted exactly once per input per asynchronous provider;
additionally emits to exactly one of the 'Completed' and 'Interrupted'
slices per input per asynchronous provider.
{Completed}
</summary>
<token key="Provider" variants="OmniboxProviders"/>
<token key="Completed">
<variant name=""/>
<variant name=".Completed"
summary="The 'Completed' slice only includes inputs that completed;
i.e. the last async update completed without interruption
by, e.g., closing the omnibox dropdown."/>
<variant name=".Interrupted"
summary="The 'Interrupted' slice only includes inputs that were
interrupted; i.e. the last async update was interrupted by,
e.g., closing the omnibox dropdown before completing. It can
be misleading to interpret this slice, as neither an
increase or decrease is necessarily good."/>
</token>
</histogram>
<histogram name="Omnibox.AsyncAutocompletionTime.{Change}{Completed}"
units="ms" expires_after="2022-12-01">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
When the user focuses or types into the omnibox, the dropdown results can be
updated multiple times per input (i.e. when focused, per char typed,
backspace, etc).
Specifically, the set of events that trigger dropdown updates are:
- synchronous suggestions
- asynchronous suggestions. Can trigger multiple times per input. These are
often generated on different threads.
- expiring copied matches
- interruptions e.g. additional user input changes or closing the dropdown
A sample flow looks like:
1) User types a character.
2) 10ms later, update results with synchronous suggestions.
3) 50ms later, update results with some asynchronous suggestions.
4) 50ms later, update results with more asynchronous suggestions.
5) 400ms later, update results by removing copied matches from the previous
input.
6) 50 later, update results with the last batch of asynchronous suggestions.
{Change}
{Completed}
</summary>
<token key="Change">
<variant name="Done"
summary="The 'Done' slice measures the time between input change and
the last async update is done or interrupted. Includes async
updates that have no user visible change (i.e. that do not
produce async matches or produce only async matches that get
deduped, culled, or are the same as the existing match in
its position). Emitted exactly once per input; additionally
emits to exactly one of the 'Completed' and 'Interrupted'
slices per input."/>
<variant name="LastChange"
summary="The 'LastChange' slice measures the time between input
change and the last async update that made at least 1 change
to the results. Updates that produce only async matches that
get deduped, culled, or are the same as the existing match
in its position are not included. Emitted exactly once per
input; additionally emits to exactly one of the 'Completed'
and 'Interrupted' slices per input."/>
<variant name="LastDefaultChange"
summary="The 'LastDefaultChange' slice measures the time between
input change and the last async update that changed the
default suggestion. Updates that produce an async default
match that is the same as the existing default match are not
included. Emitted exactly once per input; additionally emits
to exactly one of the 'Completed' and 'Interrupted' slices
per input."/>
</token>
<token key="Completed">
<variant name=""/>
<variant name=".Completed"
summary="The 'Completed' slice only includes inputs that completed;
i.e. the last async update completed without interruption
by, e.g., closing the omnibox dropdown."/>
<variant name=".Interrupted"
summary="The 'Interrupted' slice only includes inputs that were
interrupted; i.e. the last async update was interrupted by,
e.g., closing the omnibox dropdown before completing. It can
be misleading to interpret this slice, as neither an
increase or decrease is necessarily good."/>
</token>
</histogram>
<histogram name="Omnibox.BitmapFetchLatency" units="ms"
expires_after="2022-09-11">
<obsolete>
3/2022; feature launched.
</obsolete>
<!-- Name completed by histogram_suffixes name="Omnibox.BitmapFetchLatencyCacheSplit" -->
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The time elapsed between the ChromeOmniboxClient requesting a suggestion's
image to receiving the image. This includes both uncached and cached
requests. See BitmapFetcher.Fetch and BitmapFetcher.Decode for what
contributes to uncached images latency; however, the sum of those metrics
can be greater than this metric as image prefetching begins before the
ChromeOmniboxClient requests an image.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency" units="ms"
expires_after="2023-01-15">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>asvitkine@chromium.org</owner>
<summary>
Records the time taken between a keystroke being typed in the omnibox and
the text being painted. If there are multiple keystrokes before a paint,
logs the time since the earliest one.
This duration is composed of three parts:
a) the time spent processing the initial input event
b) the time spent for the repaint task to be scheduled on the message loop
c) the time spent painting the Omnibox
d) (on views platforms) the time until the pixels are actually composited
There's a number of breakdown metrics to help diagnose a regression. First,
Omnibox.CharTypedToRepaintLatency.ToPaint measures the combined time of (a)
and (b). Omnibox.QueryTime2 is a good proxy for just (a). And there's also
Omnibox.PaintTime that corresponds to (c). We don't have a direct metric for
(d), but if neither Omnibox.CharTypedToRepaintLatency.ToPaint nor
Omnibox.PaintTime regressed, then the regression must be in (d).
Note: The semantics of this metric on views platforms changed in M62, as
previously time (d) was not included in the metric.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.InsertToPresent" units="ms"
expires_after="2023-01-01">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
A refinement of Omnibox.CharTypedToRepaintLatency metric. It measures the
time between the first character insertion in a series that happen during a
frame, to the time the compositor reports the text was rendered on-screen.
Compositor-provided timestamps are used for this version of the metric, so
it is expected to be more accurate: the baseline CharTypedToRepaintLatency
uses now() from when the subsequent has-processed notification arrives back
on the UI thread, which may overestimate user-visible latency.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.PaintToPresent" units="ms"
expires_after="2021-06-30">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Records the time between when OnPaint() is called to the time the compositor
reports pixels were successfully drawn to the screen. This a subset of the
time reported in Omnibox.CharTypedToRepaintLatency.InsertToPresent.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.ToPaint" units="ms"
expires_after="2023-01-01">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Records the time taken between a keystroke being typed in the omnibox and
the time when we're ready to paint the omnibox. This is a breakdown
diagnostic metric for Omnibox.CharTypedToRepaintLatency, to help diagnose
regressions in that metric. See that metric's description for more info.
</summary>
</histogram>
<histogram name="Omnibox.ClipboardSuggestionRemovedAge" units="ms"
expires_after="2022-09-11">
<owner>gangwu@chromium.org</owner>
<owner>fgorski@chromium.org</owner>
<summary>
Recorded every time the clipboard suggestion is removed from omnibox
suggestion list and the system clipboard. The value indicates the estimated
age of the clipboard.
</summary>
</histogram>
<histogram name="Omnibox.ClipboardSuggestionShownAge" units="ms"
expires_after="2022-11-27">
<owner>gangwu@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Recorded every time the omnibox is focussed and recent content from the
user's clipboard is suggested. The value indicates the estimated age of the
clipboard. (If Chrome observed the clipboard modification, this age is
exact. If Chrome did not observe the modification, then it's a conservative
estimate: the last time Chrome observed a clipboard modification, which is
certainly older than the current clipboard. If Chrome never observed a
clipboard modification, no clipboard suggestion is shown, meaning this
histogram will never be emitted to.)
Intended to be compared with MobileOmnibox.PressedClipboardSuggestionAge.
</summary>
</histogram>
<histogram name="Omnibox.ClipboardSuggestionShownNumTimes" units="units"
expires_after="2022-12-04">
<owner>gangwu@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Recorded every time the omnibox is focussed and a recent content from the
user's clipboard is suggested. The number emitted is the number of times the
clipboard content has been suggested within the same session including the
current time. Thus, the third time it is shown, we'll emit a three to this
histogram, and this histogram will have previously seen emits of one and
two. If the clipboard content was the same during a previous run of Chrome
and this clipboard content was suggested during that run, those impressions
are not counted. Also, if the clipboard content changes during a particular
run of Chrome to other content, the omnibox is focused and that clipboard
content is suggested, then content changes back and Chrome starts suggesting
the older clipboard content again, the counts start again from scratch.
Chrome only remembers the number of times the clipboard content was shown
consecutively.
This value is useful to compare with the number of times a clipboard
suggestion has been shown when it is clicked. This value can be obtained
from OmniboxEvent records in which the selected suggestion is from Clipboard
provider. In those cases, look in the Clipboard provider's ProviderInfo
field for |times_returned_results_in_session|. Note that at the time of this
writing that OmniboxEvent logs aren't recorded in incognito whereas
histograms are. Thus, the total counts will not be comparable, though the
distributions should be.
</summary>
</histogram>
<histogram name="Omnibox.ClipboardSuggestionShownWithCurrentURL"
enum="BooleanPresent" expires_after="2022-10-01">
<owner>gangwu@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Recorded every time the omnibox is focussed and a recent content from the
user's clipboard is suggested. The value indicates whether the current URL
was shown (which would appear above the clipboard suggestion) or was absent
(which ought to only happen when the omnibox is empty / the user is on the
NTP).
On Android, the total count for this histogram can be usefully compared with
the count of the user action FocusLocation in order to determine the rate at
which a clipboard suggestion is shown in the omnibox. To determine the same
rate on iOS, one needs to compare this histogram's count with the sum of the
user actions MobileFocusedOmniboxOnNtp, MobileFocusedFakeboxOnNtp, and
MobileFocusedOmniboxNotOnNtp.
Furthermore, on either platform, this histogram's count can be usefully
compared with the count in the clipboard bucket of the
Omnibox.SuggestionUsed.Provider histogram to determine the clickthrough rate
on these suggestions.
</summary>
</histogram>
<histogram name="Omnibox.CutOrCopyAllText" units="count"
expires_after="2022-12-25">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of cut or copy commands on all selected text in the omnibox.
Gathered on desktop platforms (Win, Mac, Linux, Chrome OS).
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.Requests"
enum="OmniboxDocumentSuggestRequests" expires_after="2022-12-18">
<owner>manukh@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>skare@chromium.org</owner>
<summary>
Counts the number of document suggest requests the omnibox sent, were
invalidated, and were completed successfully.
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.RequestTime" units="ms"
expires_after="2023-01-15">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures the duration between when the async backend request was sent and
response received.
Recorded exactly once per backend request. This will be a subset of times
document suggestions were requested, as 1) the provider is debounced, 2) the
provider may be interrupted (e.g. due to a new input) before the request is
sent (i.e. before the oauth token is ready), and 3) some provider requests
are filtered (e.g. input too short).
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.RequestTime.Interrupted" units="ms"
expires_after="2023-01-15">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures the duration between when the async backend request was sent and
response received.
Recorded at most once per backend request. This will be a subset of times
document suggestions were requested, as 1) the provider is debounced, 2) the
provider may be interrupted (e.g. due to a new input) before the request is
sent (i.e. before the oauth token is ready), and 3) some provider requests
are filtered (e.g. input too short).
Only recorded if the backend request was invalidated; i.e., the provider was
interrupted before the response was received.
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.RequestTime.NotInterrupted" units="ms"
expires_after="2023-01-15">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures the duration between when the async backend request was sent and
response received.
Recorded at most once per backend request. This will be a subset of times
document suggestions were requested, as 1) the provider is debounced, 2) the
provider may be interrupted (e.g. due to a new input) before the request is
sent (i.e. before the oauth token is ready), and 3) some provider requests
are filtered (e.g. input too short).
Only recorded if the backend request was not invalidated; i.e., the provider
was not interrupted before the response was received.
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.ResultCount" units="count"
expires_after="2022-12-18">
<owner>manukh@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>skare@chromium.org</owner>
<summary>
Number of results returned in each document suggestion reply. Logged for
successful requests where the provider returned a parseable result set.
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.TotalTime" units="ms"
expires_after="2023-01-15">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures the duration between when the provider begins (after a debouncing
delay) and ends.
Recorded exactly once per processed provider request. This will be a subset
of times document suggestions were requested, as 1) the provider is
debounced, and 2) some provider requests are filtered (e.g. input too
short).
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.TotalTime.Interrupted" units="ms"
expires_after="2023-01-15">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures the duration between when the provider begins (after a debouncing
delay) and ends.
Recorded at most once per processed provider request. This will be a subset
of times document suggestions were requested, as 1) the provider is
debounced, and 2) some provider requests are filtered (e.g. input too
short).
Only recorded if the provider was interrupted (e.g. due to a new input).
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.TotalTime.NotInterrupted" units="ms"
expires_after="2023-01-15">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures the duration between when the provider begins (after a debouncing
delay) and ends.
Recorded at most once per processed provider request. This will be a subset
of times document suggestions were requested, as 1) the provider is
debounced, and 2) some provider requests are filtered (e.g. input too
short).
Only recorded if the provider was not interrupted (e.g. due to a new input).
</summary>
</histogram>
<histogram name="Omnibox.EnteredKeywordMode2" enum="OmniboxEnteredKeywordMode2"
expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The new enumeration of how many times users enter keyword hint mode
&quot;Search ___ for:&quot; and how. Note that we don't recognize the
changing of the keyword itself as entering keyword mode, if the user never
left keyword mode e.g. if the user was arrowing around the suggestions, so
we'll preserve the original keyword mode entry method in this case.
</summary>
</histogram>
<histogram name="Omnibox.Escape" enum="OmniboxEscapeAction"
expires_after="2022-12-11">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
When the omnibox is focused and escape is pressed, the 1st of the following
occurs:
1) If there is temporary text (i.e. a non default suggestion is selected),
it is cleared.
2) If the popup is open and the `kClosePopupWithEscape` feature is enabled,
the popup is closed.
3) If the popup is open, which is considered as user input in progress, then
the popup is closed and user input is cleared.
4) If user input is in progress, it is cleared. This state (i.e. input in
progress with the popup closed) typically occurs when input was in progress,
then the omnibox was blurred, and then it was refocused.
5) If the `kBlurWithEscape` feature is enabled, it is blurred.
6) Otherwise, omnibox state is unchanged. This doesn't mean the escape did
nothing; e.g., it may have stopped a navigation. Some of the cases,
including case (6), may also select the omnibox's entire text, but this
isn't recorded.
This histogram records which of the above occurred.
It is recorded every time escape is pressed with the omnibox focused. With
the `kBlurWithEscape` feature disabled, pressing escape e.g. 10 times will
emit the metric 10 times; but with the feature enabled, it emits at most 4
times until the omnibox is blurred.
</summary>
</histogram>
<histogram name="Omnibox.FocusResultedInNavigation" enum="BooleanNavigated"
expires_after="2022-12-18">
<owner>ender@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>tommycli@chromium.org</owner>
<summary>
This records whether user initiated navigation after focusing the Omnibox
versus switches focus elsewhere without navigating. This metric includes
accidental focus-then-losing-focus events, including brief ones. It also
includes ones in which the user did not type any text or otherwise engage
with the Omnibox. E.g., the user tabbing through all top Chrome UI controls
will cause this metric to be recorded. If the user switches focus from the
Chrome window to another window while the Omnibox is focussed, that also
counts as a loss of focus.
This metric is not recorded for the Realbox interactions.
Recorded every time the Omnibox focus is cleared.
</summary>
</histogram>
<histogram name="Omnibox.FocusToEditTime" units="ms" expires_after="2022-06-30">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time between when a user focused on the omnibox and first
modifies the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.FocusToOpenTimeAnyPopupState3" units="ms"
expires_after="2023-01-15">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time between when a user focused on the omnibox and opened an
omnibox match (which could be what they typed or a suggestion). This is
recorded regardless of whether the omnibox dropdown (a.k.a. popup) is open.
It is not recorded if a match is opened without triggering a focus event,
e.g., when a user drags a URL to the omnibox to navigate.
To know how common this last condition is, compare the total count of this
histogram to the total number of omnibox events.
</summary>
</histogram>
<histogram name="Omnibox.HistoryFuzzy.MatchConversion.{SubProvider}"
units="counts" expires_after="M115">
<owner>orinj@chromium.org</owner>
<owner>jdonnelly-team@google.com</owner>
<summary>
Fuzzy match conversion produces modified matches from other synchronous
autocomplete providers (sub-providers) using alternative inputs: what the
user might have typed, the automatic corrections. This metric is logged once
per sub-provider per omnibox input if and only if the fuzzy provider runs a
search (not all omnibox inputs result in search) and finds any corrections
(this includes the zero case where corrections are found but produce no
matches). Logs for each fuzzy sub-provider the number of correction matches
converted to fuzzy provider matches for a single omnibox input. This
measures how many 'best' matches (among all the sub-provider's matches for a
specific correction) are converted from this sub-provider, summed for the
various corrections of a single user input (will not exceed
`provider_max_matches_` even in unlikely extreme cases). This is useful in
evaluating the efficacy of various sub-providers for fuzzy matching.
</summary>
<token key="SubProvider">
<variant name="Bookmark" summary="Bookmark conversion count"/>
<variant name="HistoryQuick" summary="HistoryQuick conversion count"/>
</token>
</histogram>
<histogram name="Omnibox.HistoryFuzzy.Precision" enum="Boolean"
expires_after="M115">
<owner>orinj@chromium.org</owner>
<owner>jdonnelly-team@google.com</owner>
<summary>
When a fuzzy match was offered at the moment the user opened a match, this
measures whether a fuzzy suggestion was taken. This is only recorded when at
least one fuzzy match is in the result set, so it is useful to measure total
presence and engagement with fuzzy URL suggestions. It can be interpreted as
a click through rate for fuzzy match presentation as a whole: given that any
fuzzy matches were presented at the moment a match was selected by the user,
how often was the selected match a fuzzy URL suggestion?
Context: Fuzzy match conversion produces modified matches from other
synchronous autocomplete providers (sub-providers) using alternative inputs:
what the user might have typed, the automatic corrections.
</summary>
</histogram>
<histogram name="Omnibox.HistoryFuzzy.SearchDuration" units="ms"
expires_after="M115">
<owner>orinj@chromium.org</owner>
<owner>jdonnelly-team@google.com</owner>
<summary>
The time taken by HistoryFuzzyProvider to search for fuzzy input
corrections. This is measured if and only if a search is performed, so many
input states will not result in recording this metric (for example if the
input contains a space, that's taken as a hint that the user may be
searching instead of typing a domain name so no fuzzy search is performed).
It is useful to distinguish portions of the total time taken by the
provider, particularly as separate from sub-provider match gathering, so
that if there are any pathological cases in the search algorithm then they
will be apparent here.
Context: Fuzzy match conversion produces modified matches from other
synchronous autocomplete providers (sub-providers) using alternative inputs:
what the user might have typed, the automatic corrections.
</summary>
</histogram>
<histogram name="Omnibox.HoverTime" units="ms" expires_after="2021-10-31">
<owner>estark@chromium.org</owner>
<owner>carlosil@chromium.org</owner>
<summary>
The time duration that the user hovers the mouse over the omnibox before
exiting the hover or focusing the omnibox. Whenever the user's mouse enters
the omnibox, this histogram is recorded when the mouse next exits or the
omnibox is focused, whichever comes first. The recorded value is a delta
from a timestamp noted when the user's mouse first entered the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.InputType" enum="OmniboxInputType"
expires_after="2022-12-18">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The kind of input the user provided when using the omnibox to go somewhere.
The type can be misleading. For example if the user typed 'http:/', it gets
marked as a query because it cannot be opened as a URL even though the user
probably wanted and selected a URL from the list of suggestions.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.IsPasteAndGo" enum="Boolean"
expires_after="2022-05-01">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Whether an omnibox interaction is a paste-and-search/paste-and-go action.
(This histogram records both of these in the &quot;True&quot; bucket for
this histogram because both of these are referred to as paste-and-go in the
code.) These typically involve right-clicking in the omnibox and selecting
that option from the dropdown.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.IsPopupOpen" enum="Boolean" expires_after="2022-01-02">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Whether the omnibox popup (a.k.a. dropdown) is open at the time the user
used the omnibox to go somewhere. It can be closed if, for instance, the
user clicked in the omnibox and hit return to reload the same page. Also,
because paste-and-search/paste-and-go actions ignore the current content of
the omnibox dropdown (if it is open) when they happen, we pretend the
dropdown is closed when logging these.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.JustDeletedText" enum="Boolean"
expires_after="2022-12-18">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Whether the user deleted text immediately before selecting an omnibox
suggestion. This is usually the result of pressing backspace or delete.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryPrefixSuggest.SearchTermsExtractedCount"
units="counts" expires_after="2022-12-18">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of search terms extracted from the database to produce local
prefix search suggestions. Emitted when prefix search suggestions are
requested as a result of the user typing into the Omnibox or the Realbox on
the NTP.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryPrefixSuggest.SearchTermsExtractionTime"
units="ms" expires_after="2022-12-18">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time it takes to extract search terms from the database and
sort them by recency (if needed) to produce local prefix search suggestions.
Emitted when prefix search suggestions are requested as a result of the user
typing into the Omnibox or the Realbox on the NTP.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.AsyncDeleteTime" units="ms"
expires_after="2022-12-18">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time it takes for the corresponding URLs that would produce a
deleted match to be queried asynchronously and deleted. Emitted when user
deletes a local history zero-prefix suggestion.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.SearchTermsExtractedCount"
units="counts" expires_after="2022-12-18">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of search terms extracted from the database to produce local
zero-prefix suggestions. Emitted when zero-prefix suggestions are requested
as a result of the user focusing into the Omnibox or the Realbox on the NTP.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.SearchTermsExtractionTime"
units="ms" expires_after="2022-12-18">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time it takes to extract search terms from the database and
sort them by frecency to produce local zero-prefix suggestions. Emitted when
zero-prefix suggestions are requested as a result of the user focusing into
the Omnibox or the Realbox on the NTP. In M103, this was changed to no
longer include the construction of the AutocompleteMatch values.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.SyncDeleteTime" units="ms"
expires_after="2022-12-18">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time it takes to handle the deletion request for a match and
to update the list of provider matches synchronously. Emitted when user
requests to delete a local history zero-prefix suggestion.
</summary>
</histogram>
<histogram
name="Omnibox.MatchStability.MatchChangeInAnyPosition{OmniboxAutocompleteUpdateSlice}"
enum="BooleanChanged" expires_after="2022-12-04">
<owner>tommycli@chromium.org</owner>
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
This tracks how unstable omnibox matches are.
Typically, each input change is followed by a single synchronous update, and
then approximately 3 asynchronous updates. There may be more or less
asynchronous updates depending on which providers are enabled for the
particular platform/user, the input (e.g. some providers don't run for
0-length inputs), and how quickly the input changes occur (e.g. if the
inputs update rapidly, slower async providers won't have time to provide
updates before they're aborted by newer inputs).
For each autocomplete update, this histogram logs whether any match position
changes. If 1 or more matches changed, logs true once; otherwise false once.
When the number of matches changes, matches that are removed are considered
a 'change', while matches that are appended are less disruptive to the user
and not considered a 'change'. This is because this metric is primarily
interested in how many times the user could be looking at a match with the
intention of selecting it, and then it surprisingly goes away.
Note that merely adding a new provider will increase these counts. That's
intentional. Swapping matches out annoys users, and to avoid this, we should
do some things like: caching, update coalescing, update deferral until next
keystroke, provider timeouts, etc.
This metric is designed to be normalized by the True count of
Omnibox.Start.WantAsyncMatches, which will yield the number of match changes
per keystroke or other user gesture.
There're the related Omnibox.MatchStability.InAnyPosition.* slices for
tracking match instability for all, asynchronous, and synchronous updates.
This histogram can be considered a boolean analogue to the
Omnibox.MatchStability.Index.* histogram which tracks which matches changed.
{OmniboxAutocompleteUpdateSlice}
</summary>
<token key="OmniboxAutocompleteUpdateSlice"
variants="OmniboxAutocompleteUpdateSlice"/>
</histogram>
<histogram
name="Omnibox.MatchStability.MatchChangeIndex{OmniboxAutocompleteUpdateSlice}"
units="position" expires_after="2022-12-04">
<owner>tommycli@chromium.org</owner>
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
This tracks how unstable omnibox matches are.
Typically, each input change is followed by a single synchronous update, and
then approximately 3 asynchronous updates. There may be more or less
asynchronous updates depending on which providers are enabled for the
particular platform/user, the input (e.g. some providers don't run for
0-length inputs), and how quickly the input changes occur (e.g. if the
inputs update rapidly, slower async providers won't have time to provide
updates before they're aborted by newer inputs).
For each match change, this histogram logs the index of the match change.
Match changes occur when any match position changes; i.e. is set to a new
match different from the old match in that position, even if the new match
was contained in the old matches set. If multiple matches change in a single
autocomplete update, logs each. If none change in a single autocomplete
update, this histogram is not logged.
We primarily care about the default match, which is logged at index 0. All
indices matter though, so we track the other indices too.
When the number of matches changes, matches that are removed are considered
a 'change', while matches that are appended are less disruptive to the user
and not considered a 'change'. This is because this metric is primarily
interested in how many times the user could be looking at a match with the
intention of selecting it, and then it surprisingly goes away.
Note that merely adding a new provider will increase these counts. That's
intentional. Swapping matches out annoys users, and to avoid this, we should
do some things like: caching, update coalescing, update deferral until next
keystroke, provider timeouts, etc.
This metric is designed to be normalized by the True count of
Omnibox.Start.WantAsyncMatches, which will yield the number of match changes
per keystroke or other user gesture.
There're the related Omnibox.MatchStability.Index.* slices for tracking
match instability for all, asynchronous, and synchronous updates.
There's the related Omnibox.MatchStability.InAnyPosition histogram for
tracking whether any match changed per autocomplete update.
{OmniboxAutocompleteUpdateSlice}
</summary>
<token key="OmniboxAutocompleteUpdateSlice"
variants="OmniboxAutocompleteUpdateSlice"/>
</histogram>
<histogram name="Omnibox.NumEvents" enum="UsedOmnibox"
expires_after="2023-07-13">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of times users used the omnibox to go somewhere.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.NumTypedTerms" units="terms"
expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of terms in the text the user entered in the omnibox when they
used the omnibox to go somewhere. Terms are defined by splitting on
whitespace. All values larger than 6 are recorded in bucket 6.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.OnDeviceHeadSuggest.AsyncQueryTime" units="ms"
expires_after="2021-12-12">
<owner>cch@chromium.org</owner>
<owner>suggest-2g@google.com</owner>
<summary>
Time it takes for omnibox on device head provider to fulfill the
asynchronous suggest request.
</summary>
</histogram>
<histogram name="Omnibox.OnDeviceHeadSuggest.ResultCount" units="count"
expires_after="2021-12-12">
<owner>cch@chromium.org</owner>
<owner>suggest-2g@google.com</owner>
<summary>
The number of results returned by the on device head model which matches the
user input. Note all numbers greater than 5 are recorded in bucket 5.
</summary>
</histogram>
<histogram name="Omnibox.PaintTime" units="ms" expires_after="2022-12-04">
<owner>asvitkine@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Records the time to paint the omnibox contents. This is a subcomponent of
Omnibox.CharTypedToRepaintLatency. Implemented on desktop platforms.
</summary>
</histogram>
<histogram name="Omnibox.Paste" units="count" expires_after="2022-01-02">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of paste commands on the text in the omnibox. Reported every time
a paste command is done.
</summary>
</histogram>
<histogram name="Omnibox.PedalShown" enum="SuggestionPedalType"
expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>orinj@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts the type (concept ID) of omnibox pedals shown when the user used the
omnibox to go somewhere.
Pedals are a button attached to a search suggestion that either navigate to
a chrome:// URL or trigger a Chrome action (for example, opening the page
translation dialog or opening a new window in Incognito mode).
Note that, while it is uncommon, it is possible for multiple pedals to be
shown at one time so this can't be used as a count of how many times a pedal
or pedals were present.
This histogram is related to Omnibox.SuggestionUsed.Pedal.
</summary>
</histogram>
<histogram name="Omnibox.ProviderTime2.{OmniboxProvider}" units="ms"
expires_after="2022-12-25">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The length of time taken by the {OmniboxProvider}Provider's synchronous
pass.
</summary>
<token key="OmniboxProvider" variants="OmniboxProviders"/>
</histogram>
<histogram name="Omnibox.QueryTime2" units="ms" expires_after="2023-01-15">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Time it takes for the omnibox to become responsive to user input after the
user has typed N characters. This measures the time it takes to start all
autocomplete providers (but not wait for the asynchronous ones to finish).
</summary>
</histogram>
<histogram name="Omnibox.ResumeJourneyShown" units="position"
expires_after="2022-12-25">
<owner>tommycli@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Emits the position of any &quot;Resume Journey&quot; omnibox actions shown
in the popup. The position index is 0-based, so an action shown in the
topmost match is logged as value 0, consistent with
Omnibox.SelectedPosition.
Note that these are emitted when the user uses the omnibox to go somewhere.
When that happens, one count is emitted per action visible in the popup.
These are NOT emitted per-keystroke, in order to make this a suitable
denominator for Omnibox.SuggestionUsed.ResumeJourney.
</summary>
</histogram>
<histogram name="Omnibox.ResumeJourneyShown.ClusterKeywordScore" units="count"
expires_after="2022-12-10">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Emits the score of matched cluster keyword of any &quot;Resume Journey&quot;
omnibox actions shown in the popup.
Note that these are emitted when the user uses the omnibox to go somewhere.
When that happens, one keyword type is emitted per action visible in the
popup. These are NOT emitted per-keystroke, in order to make this a suitable
denominator for Omnibox.SuggestionUsed.ResumeJourney.ClusterKeywordScore.
</summary>
</histogram>
<histogram name="Omnibox.ResumeJourneyShown.ClusterKeywordType"
enum="HistoryClusterKeywordType" expires_after="2022-12-10">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Emits the type of the matched cluster keyword of any &quot;Resume
Journey&quot; omnibox actions shown in the popup. The types indicate the
sources from which the keywords are generated in the history clustering
backend.
Note that these are emitted when the user uses the omnibox to go somewhere.
When that happens, one keyword type is emitted per action visible in the
popup. These are NOT emitted per-keystroke, in order to make this a suitable
denominator for Omnibox.SuggestionUsed.ResumeJourney.ClusterKeywordType.
</summary>
</histogram>
<histogram name="Omnibox.ResumeJourneyShown.PageEntityCollection"
enum="OptimizationGuidePageEntityCollection" expires_after="2022-12-08">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Emits the top entity collection of any &quot;Resume Journey&quot; omnibox
actions shown in the popup. The collections are high-level verticals the
keywords belong to.
Note that these are emitted when the user uses the omnibox to go somewhere.
When that happens, one collection is emitted per action visible in the
popup. These are NOT emitted per-keystroke, in order to make this a suitable
denominator for Omnibox.SuggestionUsed.ResumeJourney.PageEntityCollection.
</summary>
</histogram>
<histogram name="Omnibox.RichAutocompletion.Triggered"
enum="OmniboxRichAutocompletionType" expires_after="2022-12-08">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the number of sessions for which each type of rich autocompletion
triggered; does not measure the number of times each type of rich
autocompletion triggered.
As the user types into the omnibox, the omnibox suggestions are updated.
Some of those suggestions may have rich autocompletion. No suggestion may
have multiple types of rich autocompletion. A type of rich autocompletion is
considered triggered only if the default suggestion has rich autocompletion.
If a non-default suggestion has rich autocompletion, does not suffice. If
any input during the session triggered a rich autocompletion type, that type
is considered triggered for the entire session.
Recorded multiple times per omnibox session (i.e. per user selecting a
suggestion). Recorded once for each type of rich autocompletion that
triggered during the session (i.e. while the user was typing their input).
If a rich autocompletion type triggered multiple times during the session
(very common), it will be logged exactly once. Hence, it's impossible for
any single bucket's count to be larger than the count of omnibox sessions or
Omnibox.RichAutocompletion.Triggered.Any. If multiple rich autocompletion
types triggered during the session (less common), each will be logged.
Hence, it's possible for the total count of this histogram to be larger than
the count of omnibox sessions.
</summary>
</histogram>
<histogram name="Omnibox.RichAutocompletion.Triggered.Any" units="Boolean"
expires_after="2022-12-08">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the number of sessions for which any type of rich autocompletion
triggered.
As the user types into the omnibox, the omnibox suggestions are updated.
Some of those suggestions may have rich autocompletion. No suggestion may
have multiple types of rich autocompletion. A type of rich autocompletion is
considered triggered only if the default suggestion has rich autocompletion.
If a non-default suggestion has rich autocompletion, does not suffice. If
any input during the session triggered a rich autocompletion type, that type
is considered triggered for the entire session.
The related &quot;Omnibox.RichAutocompletion.Triggered&quot; histogram
breaks down the trigger count for each rich autocompletion type.
Recorded exactly once per omnibox session (i.e. per user selecting a
suggestion).
</summary>
</histogram>
<histogram name="Omnibox.Search.OffTheRecord" enum="BooleanOffTheRecord"
expires_after="2023-02-02">
<owner>roagarwal@chromium.org</owner>
<owner>chrome-incognito@google.com</owner>
<summary>
This histogram records the number of searches done from omnibox using
default search engine on desktop and android devices, sliced based on being
in regular mode or private modes.
</summary>
</histogram>
<histogram name="Omnibox.SearchboxStats.Length" units="chars"
expires_after="2022-08-14">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Records the length of the gs_lcrp= param in the Search Result Page request
URLs. Recorded every time a Search Result Page URL is generated in the
omnibox/realbox. This happens either when the user selects a suggestion in
order to load Search Result Page or when a proactive request is made to
prefetch the Search Result Page.
</summary>
</histogram>
<histogram name="Omnibox.SearchEngineType" enum="OmniboxSearchEngineType"
expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The type of search engine associated with a match opened from the omnibox.
</summary>
</histogram>
<histogram
name="Omnibox.SearchPrefetch.SearchWhatYouTypedWasAlsoSuggested.{HistoryOrSuggest}"
units="boolean" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Records whether a &quot;search what you type&quot; omnibox navigation was
also a {HistoryOrSuggest} type. Recorded when the user navigates to a search
via typing the full query into the omnibox.
</summary>
<token key="HistoryOrSuggest">
<variant name="History" summary="history"/>
<variant name="HistoryOrSuggest" summary="history or suggest"/>
<variant name="Suggest" summary="suggest"/>
</token>
</histogram>
<histogram name="Omnibox.SearchProviderMatches" units="units"
expires_after="2022-09-11">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of matches returned by SearchProvider. Emitted on every call to
SearchProvider::Start(), which effectively means every key stroke in the
omnibox.
</summary>
</histogram>
<histogram name="Omnibox.SelectedPosition" units="position"
expires_after="2023-01-01">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The index of the item that the user selected in the omnibox popup (a.k.a.
dropdown) list. 0 means the inline suggestion shown within the omnibox. This
is also the same suggestion shown as the top item in the dropdown. The
second item in the dropdown will be recorded as bucket 1. The selected
position is always set to 0 when the popup is closed at the time of
navigation or if the user did a paste-and-search or paste-and-go action.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.Start.WantAsyncMatches" enum="Boolean"
expires_after="2022-12-04">
<owner>tommycli@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Whether asynchronous matches are requested. Recorded every time
AutocompleteController::Start() is called.
False counts roughly correspond to non-interactive invocations of
AutocompleteController - like when we are classifying user text as a Search
or URL.
True counts roughly correspond to keystrokes or on-focus events, and can be
used as a normalizer for per-user-gesture metrics.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.AnswerInSuggest"
enum="SuggestionAnswerOptionalType" expires_after="2022-12-25">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts how often omnibox suggestions are used, and in the case an Answer
suggestion was selected - records the type of an answer. This histogram is
useful because there is no distinct suggestion type recorded for answers so
their use is not recorded by Omnibox.SuggestionUsed.ProviderAndResultType.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.OfferedTabMatch" enum="BooleanOffered"
expires_after="2022-12-11">
<owner>gangwu@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures whether the suggestion that was selected by the user offered a tab
match. A tab match occurs when the URL specified by the suggestion matches
the URL navigated to by another tab in the browser, within the margin of our
URL stripping scheme.
This metric typically only makes sense with respect to
Omnibox.SuggestionUsed.OfferedTabMatch. Only recent versions of the browser
send the metric. Therefore, other metrics may include datapoints not covered
by this metric (unless one narrows the data by version.)
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.Pedal" enum="SuggestionPedalType"
expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>orinj@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts how often omnibox pedals are used and records the type (concept ID)
of the pedal used.
Pedals are a button attached to a search suggestion that either navigate to
a chrome:// URL or trigger a Chrome action (for example, opening the page
translation dialog or opening a new window in Incognito mode).
This histogram is related to Omnibox.PedalShown.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.ResumeJourney" units="position"
expires_after="2022-12-25">
<owner>tommycli@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Logs the position of &quot;Resume Journey&quot; omnibox actions actually
selected by the user. The position index is 0-based, so a selected action in
the topmost match is logged as value 0, consistent with
Omnibox.SelectedPosition.
This can be combined with Omnibox.ResumeJourneyShown to compute the Usage
(or CTR) of the &quot;Resume Journey&quot; omnibox action on a per-position
basis.
It's safe to compare the total count of this metric to the total count of
Omnibox.ResumeJourneyShown because within a single popup, only zero or one
&quot;Resume Journey&quot; can be shown. If multiple actions start being
shown in the popup, comparing to the total count becomes misleading to
interpret as a CTR.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.ResumeJourney.ClusterKeywordScore"
units="count" expires_after="2022-12-10">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Logs the score of the matched cluster keyword of &quot;Resume Journey&quot;
omnibox actions actually selected by the user.
This can be combined with Omnibox.ResumeJourneyShown.ClusterKeywordScore to
compute the precision (or CTR) of the &quot;Resume Journey&quot; omnibox
action on a keyword score bucket.
It's safe to compare the total count of this metric to the total count of
Omnibox.ResumeJourneyShown.ClusterKeywordScore because within a single
popup, only zero or one &quot;Resume Journey&quot; can be shown. If multiple
actions start being shown in the popup, comparing to the total count becomes
misleading to interpret as a CTR.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.ResumeJourney.ClusterKeywordType"
enum="HistoryClusterKeywordType" expires_after="2022-12-10">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Logs the type of the matched cluster keyword of &quot;Resume Journey&quot;
omnibox actions actually selected by the user.
This can be combined with Omnibox.ResumeJourneyShown.ClusterKeywordType to
compute the precision (or CTR) of the &quot;Resume Journey&quot; omnibox
action on a keyword type basis.
It's safe to compare the total count of this metric to the total count of
Omnibox.ResumeJourneyShown.ClusterKeywordType because within a single popup,
only zero or one &quot;Resume Journey&quot; can be shown. If multiple
actions start being shown in the popup, comparing to the total count becomes
misleading to interpret as a CTR.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.ResumeJourney.ClusterKeywordType.{ClusterKeywordTypeLabel}.CTR"
enum="BooleanSelected" expires_after="2022-12-10">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Emitted when the user uses the omnibox to go somewhere AND the &quot;Resume
Journey&quot; chip triggered by {ClusterKeywordTypeLabel} was offered in any
position.
This metric records &quot;Selected&quot; if the offered action chip was
selected, and records &quot;Not Selected&quot; if the offered action chip
was not selected.
Therefore the &quot;Selected&quot; bucket proportion is the CTR of the
action chip. Higher is better. The count of this bucket matches the
{ClusterKeywordTypeLabel} bucket of
Omnibox.SuggestionUsed.ResumeJourney.ClusterKeywordType.
The total count of both buckets is how many times we've offered the chip
triggered by {ClusterKeywordTypeLabel} in total, and matches the
{ClusterKeywordTypeLabel} bucket of
Omnibox.ResumeJourneyShown.ClusterKeywordType.
</summary>
<token key="ClusterKeywordTypeLabel">
<variant name="Entity"/>
<variant name="EntityAlias"/>
<variant name="EntityCategory"/>
<variant name="SearchTerms"/>
<variant name="Unknown"/>
</token>
</histogram>
<histogram name="Omnibox.SuggestionUsed.ResumeJourney.PageEntityCollection"
enum="OptimizationGuidePageEntityCollection" expires_after="2022-12-08">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Logs the top entity collection of &quot;Resume Journey&quot; omnibox actions
actually selected by the user.
This can be combined with Omnibox.ResumeJourneyShown.PageEntityCollection to
compute the precision (or CTR) of the &quot;Resume Journey&quot; omnibox
action on a per-collection basis.
It's safe to compare the total count of this metric to the total count of
Omnibox.ResumeJourneyShown.PageEntityCollection because within a single
popup, only zero or one &quot;Resume Journey&quot; can be shown. If multiple
actions start being shown in the popup, comparing to the total count becomes
misleading to interpret as a CTR.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.ResumeJourney.PageEntityCollection.{CollectionLabel}.CTR"
enum="BooleanSelected" expires_after="2022-12-08">
<owner>junzou@chromium.org</owner>
<owner>chrome-intelligence-core@google.com</owner>
<summary>
Emitted when the user uses the omnibox to go somewhere AND the &quot;Resume
Journey&quot; chip triggered by {CollectionLabel} was offered in any
position.
This metric records &quot;Selected&quot; if the offered action chip was
selected, and records &quot;Not Selected&quot; if the offered action chip
was not selected.
Therefore the &quot;Selected&quot; bucket proportion is the CTR of the
action chip. Higher is better. The count of this bucket matches the
{CollectionLabel} bucket of
Omnibox.SuggestionUsed.ResumeJourney.PageEntityCollection.
The total count of both buckets is how many times we've offered the chip
triggered by {CollectionLabel} in total, and matches the {CollectionLabel}
bucket of Omnibox.ResumeJourneyShown.PageEntityCollection.
</summary>
<token key="CollectionLabel">
<variant name="Accommodations"/>
<variant name="Actors"/>
<variant name="Airports"/>
<variant name="AnatomicalStructures"/>
<variant name="Artworks"/>
<variant name="Athletes"/>
<variant name="Authors"/>
<variant name="BookEditions"/>
<variant name="BusinessOperations"/>
<variant name="Cars"/>
<variant name="CausesOfDeath"/>
<variant name="CelestialObjectWithCoordinateSystems"/>
<variant name="ChemicalCompounds"/>
<variant name="ConsumerProducts"/>
<variant name="Cuisines"/>
<variant name="CulinaryMeasures"/>
<variant name="Currencies"/>
<variant name="Diets"/>
<variant name="DiseaseOrMedicalConditions"/>
<variant name="EducationalInstitutions"/>
<variant name="Employers"/>
<variant name="Events"/>
<variant name="FictionalCharacters"/>
<variant name="FilmActors"/>
<variant name="Films"/>
<variant name="FilmScreeningVenues"/>
<variant name="FilmSeries"/>
<variant name="Foods"/>
<variant name="Garments"/>
<variant name="GeoBusinessChain"/>
<variant name="GeoEstablishment"/>
<variant name="GeoLocality"/>
<variant name="GeoNaturalFeature"/>
<variant name="GeoPolitical"/>
<variant name="Holidays"/>
<variant name="HumanLanguages"/>
<variant name="JobTitles"/>
<variant name="LiterarySeries"/>
<variant name="LocalShoppingBuyables"/>
<variant name="Materials"/>
<variant name="MedicalTreatments"/>
<variant name="Models"/>
<variant name="MusicalAlbums"/>
<variant name="MusicalArtists"/>
<variant name="MusicalGenres"/>
<variant name="MusicalGroups"/>
<variant name="MusicalRecordings"/>
<variant name="MusicalReleases"/>
<variant name="MusicGroupMembers"/>
<variant name="Musicians"/>
<variant name="OrganismClassifications"/>
<variant name="Organizations"/>
<variant name="People"/>
<variant name="Periodicals"/>
<variant name="Politicians"/>
<variant name="RecordingClusters"/>
<variant name="Religions"/>
<variant name="Restaurants"/>
<variant name="RideOfferingServices"/>
<variant name="ShoppingCenters"/>
<variant name="SocialNetworkServiceWebsites"/>
<variant name="Software"/>
<variant name="Sports"/>
<variant name="SportsTeams"/>
<variant name="Structures"/>
<variant name="TouristAttractions"/>
<variant name="TravelDestinations"/>
<variant name="TvActors"/>
<variant name="TvEpisodes"/>
<variant name="TvPrograms"/>
<variant name="Unknown"/>
<variant name="Venues"/>
<variant name="VideoGames"/>
<variant name="Websites"/>
<variant name="WrittenWorks"/>
</token>
</histogram>
<histogram name="Omnibox.SuggestionUsed.ResumeJourneyCTR"
enum="BooleanSelected" expires_after="2022-12-01">
<owner>tommycli@chromium.org</owner>
<owner>chrome-journeys@google.com</owner>
<summary>
Emitted when the user uses the omnibox to go somewhere AND the &quot;Resume
Journey&quot; chip was offered in any position.
This metric records &quot;Selected&quot; if the offered action chip was
selected, and records &quot;Not Selected&quot; if the offered action chip
was not selected.
Therefore the &quot;Selected&quot; bucket proportion is the CTR of the
action chip. Higher is better. The count of this bucket matches the sum of
Omnibox.SuggestionUsed.ResumeJourney.
The total count of both buckets is how many times we've offered the chip
total, and matches the sum of Omnibox.ResumeJourneyShown.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.RichAutocompletion"
enum="OmniboxRichAutocompletionType" expires_after="2022-12-08">
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the number of sessions for which each type of rich autocompletion
was used.
As the user types into the omnibox, the omnibox suggestions are updated.
Some of those suggestions may have rich autocompletion. No suggestion may
have multiple types of rich autocompletion. A type of rich autocompletion is
considered triggered only if the default suggestion has rich autocompletion.
If a non-default suggestion has rich autocompletion, does not suffice. If
any input during the session triggered a rich autocompletion type, that type
is considered triggered for the entire session.
Recorded exactly once per omnibox session (i.e. per user selecting a
suggestion).
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.Search.Experimental.NavigationToFirstMeaningfulPaint"
units="ms" expires_after="2022-12-11">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first meaningful paint. Only
recorded for a search query suggestion selected from the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.Search.InputToNavigationStart"
units="ms" expires_after="2022-12-01">
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from the user selecting the omnibox suggestion and the
navigation start time getting ticked. Only recorded for a search query
suggestion selected from the omnibox.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.Search.NavigationToFirstContentfulPaint"
units="ms" expires_after="2023-01-15">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first contentful paint. Only
recorded for a search query suggestion selected from the omnibox.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.Search.NavigationToLargestContentfulPaint2"
units="ms" expires_after="2022-11-27">
<owner>asamidoi@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to largest contentful paint
(https://github.com/w3c/largest-contentful-paint). Only recorded for a
search query suggestion selected from the omnibox.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.Search.NavigationToLargestContentfulPaint2Above2s"
units="ms" expires_after="2023-05-01">
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation to the time the first largest contentful
paint candidate
(https://github.com/w3c/largest-contentful-paint#the-last-candidate) above 2
seconds. Only recorded for a search query suggestion selected from the
omnibox. Note that this histogram is most useful for use with Chrometto in
order to record a high LCP trace as soon as it happens (rather than only
once the slow page loads gets discarded).
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.SelectedTabMatch"
enum="BooleanSelected" expires_after="2022-12-11">
<owner>gangwu@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Measures whether the suggestion that was selected by the user offered a tab
match and specifically that the user chose the tab match over normal
navigation. A tab match occurs when the URL specified by the suggestion
matches the URL navigated to by another tab in the browser, within the
margin of our URL stripping scheme. By selecting the tab match, the browser
simply switches focus to the matching tab.
This metric typically only makes sense with respect to
Omnibox.SuggestionUsed.OfferedTabMatch. Only recent versions of the browser
send the metric. Therefore, other metrics may include datapoints not covered
by this metric (unless one narrows the data by version.)
This metric should be stricly less than
Omnibox.SuggestionUsed.OfferedTabMatch, and is typically used to discover
the percentage of offered tab matches that the user accepts.
In M-74 and earlier, this was only recorded if the user had no incognito
windows open. In M-75 and later, it records all omnibox interactions
regardless, in order to be consistent with how user actions and histograms
are handled.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.URL.Experimental.NavigationToFirstMeaningfulPaint"
units="ms" expires_after="2023-01-01">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first meaningful paint. Only
recorded for a URL suggestion selected from the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.URL.InputToNavigationStart" units="ms"
expires_after="2022-12-01">
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from the user selecting the omnibox suggestion and the
navigation start time getting ticked. Only recorded for a URL suggestion
selected from the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.URL.NavigationToFirstContentfulPaint"
units="ms" expires_after="2022-12-18">
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to first contentful paint. Only
recorded for a URL suggestion selected from the omnibox.
</summary>
</histogram>
<histogram
name="Omnibox.SuggestionUsed.URL.NavigationToLargestContentfulPaint2"
units="ms" expires_after="2022-11-27">
<owner>asamidoi@chromium.org</owner>
<owner>chrome-prerendering@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Measures the time from navigation start to largest contentful paint. Only
recorded for a URL suggestion selected from the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.SuggestRequest.Failure.GoogleResponseTime" units="ms"
expires_after="2023-01-15">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>cch@chromium.org</owner>
<summary>
The time elapsed between the sending of a suggest request to Google until
the time the request was returned with status==failed. Ignores requests that
were canceled before being returned.
</summary>
</histogram>
<histogram name="Omnibox.SuggestRequest.Success.GoogleResponseTime" units="ms"
expires_after="2023-01-15">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>cch@chromium.org</owner>
<summary>
The time elapsed between the sending of a suggest request to Google until
the time the request was returned with status==success. Ignores requests
that were canceled before being returned.
</summary>
</histogram>
<histogram name="Omnibox.SuggestRequest.Success.PrefetchImagesCount"
units="count" expires_after="2022-05-01">
<obsolete>
3/2022; feature launched.
</obsolete>
<owner>manukh@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The number of images prefetched by the search provider on retrieving a
successful search response.
</summary>
</histogram>
<histogram name="Omnibox.SuggestRequests" enum="OmniboxSuggestRequests"
expires_after="2023-01-15">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>cch@chromium.org</owner>
<summary>
Counts about the number of suggest requests the omnibox sent, invalidated,
and replies received.
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.DeletedTilePosition" units="position"
expires_after="2023-06-01">
<owner>ender@google.com</owner>
<owner>mahmadi@chromium.org</owner>
<summary>
The index of the item in the MostVisited carousel that the user deleted.
Zero-based: the first item in the carousel is recorded in bucket 0, second
in bucket 1 and so on. Items beyond 16 will be stored in the overflow bucket
(15).
Recorded every time the user initiates deletion of a suggest tile, even if
the operation is later canceled.
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.DeletedTileType" enum="SuggestTileType"
expires_after="2023-06-01">
<owner>ender@google.com</owner>
<owner>mahmadi@chromium.org</owner>
<summary>
Records the type of the SuggestTile that the user deleted. Most Visited URLs
record a URL, and Organic Repeatable Queries record a Search type.
Recorded every time the user initiates deletion of a suggest tile, that
results with tile removal. Not recorded if the user chooses to cancel the
action.
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.SelectedTilePosition" units="position"
expires_after="2023-06-01">
<owner>ender@google.com</owner>
<owner>mahmadi@chromium.org</owner>
<summary>
The index of the item in the MostVisited carousel that the user opened.
Zero-based: the first item in the carousel is recorded in bucket 0, second
in bucket 1 and so on. Items beyond 16 will be stored in the overflow bucket
(15).
Recorded every time the user selects the tile to initiate navigation, even
if the navigation could not be completed (eg. target site did not load).
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.SelectedTileType" enum="SuggestTileType"
expires_after="2023-06-01">
<owner>ender@google.com</owner>
<owner>mahmadi@chromium.org</owner>
<summary>
Records the type of the SuggestTile that the user interacted with. Most
Visited URLs record a URL, and Organic Repeatable Queries record a Search
type.
Recorded every time the user selects the tile to initiate navigation, even
if the navigation could not be completed (eg. target site did not load).
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.TileTypeCount.{SuggestTileType}"
units="count" expires_after="2023-06-01">
<owner>ender@google.com</owner>
<owner>mahmadi@chromium.org</owner>
<summary>
Total count of offered {SuggestTileType} tile types.
Recorded every time the current context is eligible to receive
MostVisitedTiles, even if there were no tiles of any kind to show.
</summary>
<token key="SuggestTileType">
<variant name="Search"/>
<variant name="URL"/>
</token>
</histogram>
<histogram name="Omnibox.TabMatchTime" units="microseconds"
expires_after="2022-12-25">
<owner>gangwu@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>mpearson@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
This histogram reports the amount of time it takes to match one set of
suggestions against all open tabs. This metric is collected once for every
time a new set of suggestions is received. This includes the Omnibox Focus
event (when zero-prefix suggestions are offered) and every subsequent key
stroke, including deletion, backspace etc.
Each keystroke produces multiple events offering autocomplete matches: a)
one synchronous, when Start() is called. b) any number of intermediate
events, depending on whether Providers request the update. c) one at the
end, when the process completes.
Since these are produced about 3 times per keystroke, the total time
consumed per Omnibox interaction is - optimistically -
3*Omnibox.TypedLength*TabMatchTime. this excludes all the time spent
formulating the query, such as correcting the input. This metric does not
express the cumulative time spent matching the tabs (because we do not have
a metric that counts the number of suggestions the user actually fetched -
eg. we do not count the number of suggestions received when user pressed the
backspace key).
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Omnibox.TimeSpentBeforeDismissLens" units="ms"
expires_after="2022-06-26">
<owner>yusuyoutube@google.com</owner>
<owner>benwgold@google.com</owner>
<owner>fgorski@chromium.org</owner>
<owner>wylieb@chromium.org</owner>
<owner>lens-chrome@google.com</owner>
<summary>
Logs the elapsed time between the time when user enters the Google Lens and
the time when user dismisses Lens and returns to Chrome. Only logged on
Android.
</summary>
</histogram>
<histogram name="Omnibox.ToggleSuggestionGroupId.Off" enum="SuggestionGroupId"
expires_after="2023-01-01">
<owner>mahmadi@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts the number of times a suggestion group ID is prevented form appearing
in the results. This is recorded when the user hides a set of grouped
suggestions, such as proactive zero-suggest, in the omnibox UI using the
control in the grouped suggestions' header.
</summary>
</histogram>
<histogram name="Omnibox.ToggleSuggestionGroupId.On" enum="SuggestionGroupId"
expires_after="2023-01-15">
<owner>mahmadi@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts the number of times a suggestion group ID is permitted to appear in
the results. This is recorded when the user makes a set of previously hidden
grouped suggestions, such as proactive zero-suggest, visible in the omnibox
UI using the control in the grouped suggestions' header.
</summary>
</histogram>
<histogram name="Omnibox.URLNavigationScheme" enum="NavigationScheme"
expires_after="2023-01-15">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
The scheme of the destination URL for the selected omnibox suggestion. This
could be a what-you-typed suggestion (if the user fully typed a URL), an
inline autocompletion, or something in the dropdown, anything as long as
it's a URL navigation, not a search query. Excludes omnibox URL navigations
that are effectively reloads as well as cut-and-pastes of URLs. Also does
not take into account any redirects that destination URL may do before
finally serving a page. In other words, it's the scheme of the first request
in a possible chain.
Due to a bug, recorded paste-and-go actions through M-88 (inclusive).
Excluded in M-89+.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggest.Eligible.OnFocusV2"
enum="ZeroSuggestEligibleOnFocus" expires_after="2022-12-25">
<owner>mpearson@chromium.org</owner>
<owner>jdonnelly@chromium.org</owner>
<summary>
Whether the user has settings configured so that the current page URL can be
sent to the suggest server to request contextual suggestions. For example,
this is only supported for users who have Google as their default search
engine (unmodified version of Google), have search suggest enabled, are
signed-in and syncing without a custom passphrase, and don't have an
incognito window open. There are other criteria too. Recorded on focus in
the omnibox if there is default search provider and we've constructed a
suggest URL.
Some additional guidelines: if an incognito window is open, all focus events
will go into the &quot;generally ineligible&quot; bucket. Likewise, if the
current page is a search results page, we don't allow contextual suggestions
either so focus events on those pages go in the &quot;generally
ineligible&quot; bucket. The difference between &quot;eligible&quot; and
&quot;generally eligible but not this time&quot; depends only the properties
of the current URL.
Recorded regardless of whether contextual or non-contextual zero suggest is
currently enabled on the user's platform. However, if zero suggest (in all
forms) is entirely disabled, the user will be perpetually ineligible.
This histogram captures all scenarios that are generally ineligible for zero
suggest suggestions (including incognito mode), and reports eligibility for
suggestions even if kOmniboxPopupShortcutIconsInZeroState is enabled
(meaning: suggestions are not shown, but current URL is eligible).
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestProvider.{ResultType}.{RequestType}"
enum="ZeroSuggestProviderEvent" expires_after="2022-12-11">
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Enumerates the events in the ZeroSuggestProvider as a result of
{RequestType} for {ResultType} (i.e., suggestions shown when the user has
focused or cleared the omnibox but has not typed in yet).
</summary>
<token key="ResultType">
<variant name="NoURL"
summary="zero-prefix suggestions not based on the current page URL"/>
<variant name="URLBased"
summary="zero-prefix suggestions based on the current page URL"/>
</token>
<token key="RequestType">
<variant name="NonPrefetch" summary="user-initiated requests"/>
<variant name="Prefetch" summary="non-user-initiated proactive requests"/>
</token>
</histogram>
<histogram name="Omnibox.ZeroSuggestRequests.NonPrefetch"
enum="OmniboxZeroSuggestRequests" expires_after="2022-12-11">
<obsolete>
Obsolete as of M105.
</obsolete>
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts the number of non-prefetch zero suggest requests (requests for
suggestions when the user has focused but not modified the omnibox) the
omnibox sent, requests that were invalidated, responses that were received,
the subset of responses that were loaded from HTTP cache, and finally the
subset of responses that ended up updating the displayed results.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestRequests.NonPrefetch.RoundTripTime"
units="ms" expires_after="2022-12-11">
<obsolete>
Obsolete as of M105.
</obsolete>
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Records the time elapsed between non-prefetch zero suggest requests
(requests for suggestions when the user has focused but not modified the
omnibox) sent and the responses received; whether or not the response is
loaded from HTTP cache.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestRequests.Prefetch"
enum="OmniboxZeroSuggestRequests" expires_after="2022-12-11">
<obsolete>
Obsolete as of M105.
</obsolete>
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Counts the number of prefetch zero suggest requests (requests for
suggestions when the user opens a new tab or brings one to foreground) the
omnibox sent, requests that were invalidated, responses that were received,
the subset of responses that were loaded from HTTP cache, and finally the
subset of responses that ended up updating the displayed results.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestRequests.Prefetch.RoundTripTime" units="ms"
expires_after="2022-12-11">
<obsolete>
Obsolete as of M105.
</obsolete>
<owner>mahmadi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
Records the time elapsed between prefetch zero suggest requests (requests
for suggestions when the user opens a new tab or brings one to foreground)
sent and the responses received; whether or not the response is loaded from
HTTP cache.
</summary>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.ClickToNavigationIntercepted.{NavigationPrefetchOnly}"
units="ms" expires_after="2023-05-02">
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
Measures the time between the user clicks the Omnibox suggestion and the
moment the navigation is intercepted by the Search Prefetch code.
{NavigationPrefetchOnly}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="NavigationPrefetchOnly" variants="NavigationPrefetchOnly"/>
</histogram>
<histogram name="Omnibox.{SearchPrefetch}.FetchResult.{SuggestionPrefetchOnly}"
enum="BooleanSuccess" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
Whether a search prefetch request finished with a success status or a status
that could be served. Recorded when prefetch requests receive headers.
{SuggestionPrefetchOnly}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="SuggestionPrefetchOnly" variants="SuggestionPrefetchOnly"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.NavigationInterceptedToForwardingComplete"
units="ms" expires_after="2023-05-02">
<owner>spelchat@chromium.org</owner>
<owner>chrome-brapp-loading@google.com</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
Measures the time between the navigation is intercepted by the Search
Prefetch code and the moment the Search Prefetch URL loader has finished
forwarding the whole response to the navigation URL loader. This time
includes finishing fetching the Search response and any queuing delays in
the UI thread preventing the Search Prefetch URL loader from forwarding
bytes to the navigation code.
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.NavigationURLMatches.NavigationPrefetch.{NavigationPrefetchOnly}"
enum="Boolean" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
Whether the prefetch URL and the navigation URL are an exact match including
query params in the URL. Recorded upon navigation to a matching search term.
{NavigationPrefetchOnly}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="NavigationPrefetchOnly" variants="NavigationPrefetchOnly"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.PrefetchEligibilityReason.{NavigationOrSuggestionPrefetch}"
enum="SearchPrefetchEligibilityReason" expires_after="2023-05-02">
<obsolete>
This is deprecated as of 07/2022. Please use
Omnibox.SearchPrefetch.PrefetchEligibilityReason2.{NavigationOrSuggestionPrefetch}.
</obsolete>
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
The reason that a search prefetch request issued when a user navigates to a
suggestion was not eligible to be prefetched (or 'Prefetched' if it was
prefetched).
{NavigationOrSuggestionPrefetch}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="NavigationOrSuggestionPrefetch"
variants="NavigationOrSuggestionPrefetch"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.PrefetchEligibilityReason2.{NavigationOrSuggestionPrefetch}"
enum="SearchPrefetchEligibilityReason" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
The reason that a search prefetch request issued when a user navigates to a
suggestion was not eligible to be prefetched (or 'Prefetched' if it was
prefetched).
{NavigationOrSuggestionPrefetch}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="NavigationOrSuggestionPrefetch"
variants="NavigationOrSuggestionPrefetch"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.PrefetchFinalStatus.{NavigationOrSuggestionPrefetch}"
enum="SearchPrefetchStatus" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
The status of a Search Prefetch request when it is deleted by expiration or
by serving the request.
{NavigationOrSuggestionPrefetch}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="NavigationOrSuggestionPrefetch"
variants="NavigationOrSuggestionPrefetch"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.PrefetchServingReason2{PrerenderOrNavigation}"
enum="SearchPrefetchServingReason" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>lingqi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
{SearchPrefetch}
The reason that a navigation request could or could not serve a search
prefetch request.
{PrerenderOrNavigation}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="PrerenderOrNavigation">
<variant name="" summary="Recorded for typical navigations."/>
<variant name=".Prerender"
summary="Recorded for prerender navigations that might consume the
prefetch response."/>
</token>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.PrefetchServingReason{PrerenderOrNavigation}"
enum="SearchPrefetchServingReason" expires_after="2023-05-02">
<obsolete>
This is deprecated as of 08/2022. Please use
Omnibox.SearchPrefetch.PrefetchServingReason2{PrerenderOrNavigation}.
</obsolete>
<owner>ryansturm@chromium.org</owner>
<owner>lingqi@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<owner>chrome-prerendering@google.com</owner>
<summary>
{SearchPrefetch}
The reason that a navigation request could or could not serve a search
prefetch request.
{PrerenderOrNavigation}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="PrerenderOrNavigation">
<variant name="" summary="Recorded for typical navigations."/>
<variant name=".Prerender"
summary="Recorded for prerender navigations that might consume the
prefetch response."/>
</token>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.ReceivedServableResponse.{FallbackOrInitial}.{NavigationOrSuggestionPrefetch}"
units="ms" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
This histogram records whether an activated (i.e., served) prefetch URL
Loader receives a servabled response from the server.
{FallbackOrInitial}
{NavigationOrSuggestionPrefetch}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="FallbackOrInitial">
<variant name="Fallback"
summary="Recorded for the fallback request after the prefetch fails."/>
<variant name="Initial"
summary="Recorded for the initial prefetch request."/>
</token>
<token key="NavigationOrSuggestionPrefetch"
variants="NavigationOrSuggestionPrefetch"/>
</histogram>
<histogram name="Omnibox.{SearchPrefetch}.StartTime.{NavigationPrefetchOnly}"
units="ms" expires_after="2023-05-02">
<owner>ryansturm@chromium.org</owner>
<owner>chrome-omnibox-team@google.com</owner>
<summary>
{SearchPrefetch}
The amount of time it takes to start a prefetch request.
{NavigationPrefetchOnly}
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
<token key="NavigationPrefetchOnly" variants="NavigationPrefetchOnly"/>
</histogram>
</histograms>
</histogram-configuration>