<!--
Copyright 2020 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This file is used to generate a comprehensive list of 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
[email protected].
-->
<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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.ActionInSuggest.UsageByType.{Type}"
enum="BooleanUsage" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For action of type "{Type}", captures whether the user interacted
with this action to complete the interaction with the omnibox.
The histogram is captured only if the action "{Type}" was
presented to the user when the interaction with the omnibox completed. The
sum of "Used" and "Not Used" indicates the sum of all
impressions of a given action.
Action in Suggest are the Omnibox Action chips attached to a search
suggestion.
</summary>
<token key="Type">
<variant name="Call"/>
<variant name="Directions"/>
<variant name="Reviews"/>
</token>
</histogram>
<histogram name="Omnibox.ActionInSuggest.{ShownOrUsed}"
enum="ActionInSuggestType" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how often Omnibox Action in Suggest are {ShownOrUsed} and records the
type (Omnibox Action in Suggest Type) of every {ShownOrUsed} action.
Recorded once at the end of the interaction with the Omnibox Suggestions for
every Action presented to the user. Not recorded for Suggestions that are
annotated with Action in Suggest, where the Action in Suggest row was not
shown to the user.
Action in Suggest are the Omnibox Action chips attached to a search
suggestion.
</summary>
<token key="ShownOrUsed">
<variant name="Shown" summary="shown"/>
<variant name="Used" summary="used"/>
</token>
</histogram>
<histogram name="Omnibox.AnswerAction.UsageByType.{AnswerType}"
enum="BooleanUsage" expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For action associated with type "{AnswerType}", captures whether
the user interacted with this action to complete the interaction with the
omnibox.
The histogram is captured only if the action "{AnswerType}" was
presented to the user when the interaction with the omnibox completed. The
sum of "Used" and "Not Used" indicates the sum of all
impressions of a given action.
Answer Actions are the Omnibox Action chips attached to an answer
suggestion.
</summary>
<token key="AnswerType">
<variant name="Currency"/>
<variant name="Dictionary"/>
<variant name="Finance"/>
<variant name="Invalid"/>
<variant name="KnowledgeGraph"/>
<variant name="Local"/>
<variant name="LocalTime"/>
<variant name="PlayInstall"/>
<variant name="Sports"/>
<variant name="Sunrise"/>
<variant name="Translation"/>
<variant name="Weather"/>
<variant name="WhenIs"/>
</token>
</histogram>
<histogram name="Omnibox.AnswerAction.{ShownOrUsed}"
enum="SuggestionAnswerType" expires_after="2025-05-30">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts how often Omnibox Answer Actions are {ShownOrUsed} and records the
type (SuggestionAnswer::AnswerType) of every {ShownOrUsed} action.
Recorded once at the end of the interaction with the Omnibox Suggestions for
every Action presented to the user. Not recorded for Suggestions that are
annotated with Answers Actions where the Answer row was not shown to the
user.
Answer Actions are the Omnibox Action chips attached to an answer
suggestion.
</summary>
<token key="ShownOrUsed">
<variant name="Shown" summary="shown"/>
<variant name="Used" summary="used"/>
</token>
</histogram>
<histogram name="Omnibox.AnswerParseSuccess" enum="BooleanSuccess"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.AsyncAutocompletionTime2.Provider.{Provider}{Completed}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.AsyncAutocompletionTime2.{Change}{Completed}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.AutocompletionTime.UpdateResult{Slice}"
units="microseconds" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The time `AutocompleteController::UpdateResult()` took.
That method is invoked, and this histogram is recorded: a) Once for the sync
autocomplete update that occurs when the omnibox input changes (e.g. the
user types a character, pastes text, focuses the omnibox, etc). b) Once for
each async autocomplete update that occurs asyncly after the omnibox input
changes and the various async providers complete. Usually occurs up to 3
times per input change. But can be less if the updates are interrupted (e.g.
the popup is closed or input changed again) or include no new suggestions.
c) Once when copied matches from the previous autocomplete pass expire. This
happens at most once per input change, but may not occur if all providers
complete or the input changes prior to the expiration.
Because this encompasses both sync and async omnibox updates, and the number
of async updates per sync update is not fixed, it's not a good
representative of how a feature effects user experienced latency. E.g., a
feature that makes users type slower will bias this metric towards async
updates. Besides, this is only a small segment of the user experienced
latency. This is only intended to measure changes in the actual
implementation of `UpdateResult()`.
{Slice}
This metric uses SCOPED_UMA_HISTOGRAM_TIMER_MICROS so clients without
high-resolution clocks will either a) be dropped, b) report 0 for very short
times, or c) be recorded as expected (depending on which comments you
believe ¯\_(ツ)_/¯).
</summary>
<token key="Slice">
<variant name=""/>
<variant name=".DeduplicateMatches"
summary="The '.DeduplicateMatches' slice measures the time
`AutocompleteResult::DeduplicateMatches()` took. When ML
ranking is enabled, this can include async calls that aren't
included in the unsliced metric. Otherwise, it's a subset of
both the unsliced metric and the sliced '.SortAndCull'
metric and is called exactly once per `SortAndCull()` call."/>
<variant name=".SortAndCull"
summary="The '.SortAndCull' slice measures the time
`AutocompleteResult::SortAndCull()` took. Besides being
called from `AutocompleteController::UpdateResult()`, this
is also called asyncly in ML ranking code paths. Therefore,
when ML ranking is enabled, not all '.SortAndCull' times are
included in the unsliced metric. `SortAndCull()` can be
called up to twice per `UpdateResult()`. For all but the
last async update, it's called twice; for the last async
update (which may not occur if interrupted), it's called
once."/>
</token>
</histogram>
<histogram name="Omnibox.CalculateVisibleHint.Duration" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time it takes to call UrlBar.calculateVisibleHint().
Recorded once per call.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Note: Compositor-provided timestamps are taken using presentation time
callbacks. Before M110 the callbacks used for this histogram might be called
even if the next submitted frame fails to present which means that the
character is not really rendered on-screen yet. From M110 onward, this is
fixed by using callbacks that are only called after the first following
successful presentation, so a slight change might be noticed in the
histogram values.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.PaintToPresent" units="ms"
expires_after="2024-12-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.
Note: Compositor-provided timestamps are taken using presentation time
callbacks. Before M110 the callbacks used for this histogram might be called
even if the next submitted frame fails to present which means that the
character is not really rendered on-screen yet. From M110 onward, this is
fixed by using callbacks that are only called after the first following
successful presentation, so a slight change might be noticed in the
histogram values.
Warning: this histogram was expired from 2021-06-30 to 2022-12-12; data may
be missing.
</summary>
</histogram>
<histogram name="Omnibox.CharTypedToRepaintLatency.ToPaint" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-01">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Note: recording gap between 2022/09 and 2023/08.
</summary>
</histogram>
<histogram name="Omnibox.ClipboardSuggestionShownAge" units="ms"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-01">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Note: recording gap between 2022/10 and 2023/08.
</summary>
</histogram>
<histogram name="Omnibox.CompanyEntityImageAblated" enum="Boolean"
expires_after="2025-08-04">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether any company entity image was ablated. This histogram is
logged to once per autocomplete pass when there exists a suggestion of
entity type. Recorded after attempting to find matching domains between a
historical URL and a company entity website URI.
</summary>
</histogram>
<histogram name="Omnibox.CutOrCopyAllText" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.HttpResponseCode"
enum="HttpResponseCode" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of responses from the document suggestion service,
bucketed by the HTTP response code. Recorded once per response received,
which is 0 or 1 times per request sent, since some requests are cancelled.
At most 1 request is sent per omnibox autocompletion cycle (in other words,
per each time the user changes the omnibox input).
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.ProviderAllowed"
enum="DocumentProviderAllowedReason" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of times the document provider's `Start` method is called
by the AutocompleteController, bucketed by the reason applied for whether or
not the provider is allowed to run (in other words, whether the profile and
session meets all the requirements to request document suggestions from the
server).
Recorded exactly once per omnibox autocompletion cycle (in other words, per
each time the user changes the omnibox input). The reason recorded is the
first reason encountered which determines that we should not run the
provider. In other words, each bucket is an undercount of whether that
reason _could have been used_ to decide not to run the provider. Therefore,
interpreting these results requires an understanding the order of the checks
in `DocumentProvider::IsDocumentProviderAllowed`.
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.Requests"
enum="DocumentSuggestRequestEvent" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of requests DocumentProvider sent, were invalidated, and
were completed successfully.
</summary>
</histogram>
<histogram name="Omnibox.DocumentSuggest.RequestTime" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The new enumeration of how many times users enter keyword hint mode
"Search ___ for:" 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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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, 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) The omnibox is blurred.
This histogram records which of the above occurred.
It is recorded every time escape is pressed with the omnibox focused.
Pressing escape repeatedly e.g. 10 times will emits at most 4 times until
the omnibox is blurred.
</summary>
</histogram>
<histogram name="Omnibox.FocusResultedInNavigation" enum="BooleanNavigated"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.FocusToOpenTimeAnyPopupState3" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.GroupId.ToggledOff" enum="GroupId"
expires_after="2025-04-29">
<owner>[email protected]</owner>
<owner>[email protected]</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 trending zero-suggest, in the omnibox UI using the
control in the grouped suggestions' header.
</summary>
</histogram>
<histogram name="Omnibox.GroupId.ToggledOn" enum="GroupId"
expires_after="2025-04-29">
<owner>[email protected]</owner>
<owner>[email protected]</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 trending zero-suggest, visible in the omnibox
UI using the control in the grouped suggestions' header.
</summary>
</histogram>
<histogram name="Omnibox.HistoryFuzzy.MatchConversion.{SubProvider}"
units="counts" expires_after="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</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="M119">
<owner>[email protected]</owner>
<owner>[email protected]</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="2024-11-03">
<owner>[email protected]</owner>
<owner>[email protected]</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.InputType" enum="OmniboxInputType"
expires_after="2025-01-21">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.IPv4AddressPartsCount" units="count"
expires_after="2024-01-14">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of IPv4 address parts input by the user. The histogram is used to
verify whether shortened IPv4 addresses like 127.1 are still used. This
histogram is recorded when the user fully types the URL in the omnibox and
the URL uses an IPv4 address or IPv4 embedded IPv6 address as the host.
</summary>
</histogram>
<histogram name="Omnibox.IsPasteAndGo" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether an omnibox interaction is a paste-and-search/paste-and-go action.
(This histogram records both of these in the "True" 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.JustDeletedText" enum="Boolean"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.KeywordModeUsageByEngineType.{Usage}"
enum="OmniboxBuiltinEngineType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records number of times users use keyword mode enumerated by the type of
search engine (whether the engine is "built-in").
{Usage}
</summary>
<token key="Usage">
<variant name="Accepted"
summary="Logged when a user accepts a keyword suggestion while in
keyword mode. Not logged if a user enters keyword mode but
doesn't complete a search. Not logged if a user enters
keyword mode, but selects a URL suggestion or a search
suggestion that is not for the keyword mode search engine."/>
<variant name="Activated"
summary="Logged each time a search engine's active status is switched
from inactive to active by the user. Not logged if the
search engine is switched to active automatically based on
prior usage."/>
<variant name="ActiveOnStartup"
summary="Counts the number of search engines that are active at load
time (usually on start up). Only gets logged once each time
the search engines are loaded from the database. If a user
changes the active status of a search engine during the same
browser session, this does not get logged again."/>
<variant name="Deactivated"
summary="Logged each time a search engine's active status is switched
from active to inactive by the user. Not logged when a new
search engine is added in a default-inactive state."/>
<variant name="Entered"
summary="Logged each time the user enters keyword mode. If a user
enters, then leaves, then re-enters keyword mode during the
same session (i.e. without selecting a navigation), this is
logged twice. If the user doesn't accept the keyword
suggestion, this is still logged."/>
<variant name="InactiveOnStartup"
summary="Counts the number of search engines that are inactive at
load time (usually on start up). Only gets logged once each
time the search engines are loaded from the database. If a
user changes the active status of a search engine during the
same browser session, this does not get logged again."/>
</token>
</histogram>
<histogram name="Omnibox.LocalHistoryPrefixSuggest.SearchTermsExtractionTimeV2"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time it takes to extract up to the requested number of search
terms from the database for both the default and the keyword providers (if
applicable) and sort them by recency 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 NTP Realbox.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.AsyncDeleteTime" units="ms"
expires_after="2024-12-24">
<owner>[email protected]</owner>
<owner>[email protected]</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.SearchTermsExtractionTimeV2"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time it takes to extract up to the requested number of 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 NTP Realbox.
</summary>
</histogram>
<histogram name="Omnibox.LocalHistoryZeroSuggest.SyncDeleteTime" units="ms"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</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.MatchStability2.MatchChangeInAnyPosition{OmniboxAutocompleteUpdateSlice}"
enum="BooleanChanged" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.MatchStability2.InAnyPosition.* slices for
tracking match instability for all, asynchronous, and synchronous updates.
This histogram can be considered a boolean analogue to the
Omnibox.MatchStability2.Index.* histogram which tracks which matches
changed.
{OmniboxAutocompleteUpdateSlice}
</summary>
<token key="OmniboxAutocompleteUpdateSlice"
variants="OmniboxAutocompleteUpdateSlice"/>
</histogram>
<histogram
name="Omnibox.MatchStability2.MatchChangeIndex{OmniboxAutocompleteUpdateSlice}"
units="position" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.MatchStability2.Index.* slices for tracking
match instability for all, asynchronous, and synchronous updates.
There's the related Omnibox.MatchStability2.InAnyPosition histogram for
tracking whether any match changed per autocomplete update.
{OmniboxAutocompleteUpdateSlice}
</summary>
<token key="OmniboxAutocompleteUpdateSlice"
variants="OmniboxAutocompleteUpdateSlice"/>
</histogram>
<histogram name="Omnibox.NumberOfVisibleCharacters" units="characters"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of characters visible in the omnibox. Recorded once per
call to UrlBar.calculateVisibleHint().
</summary>
</histogram>
<histogram name="Omnibox.NumCalculatorMatches" units="count"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
How many calculator matches where shown. Includes matches from both the
search and calculator providers.
Logged after deduping, so duplicate matches from the search and calc
provider won't be double counted.
Logged after culling, so matches that were generated but not shown are not
counted.
Logged when the last provider calls `OnProviderUpdate()`. So autocomplete
calls with `omit_asynchronous_matches` true (i.e. classification calls)
won't log this. Likewise, interrupted autocompleted passes (i.e. when the
user is typing faster than the slowest async provider) won't log this. The
search and calculator providers are on the slow end of async providers; so
if they complete, it's likely this will be logged.
Logged once per input (whose last autocomplete pass completed). Not logged
once per autocomplete pass or once per omnibox selection.
</summary>
</histogram>
<histogram name="Omnibox.NumTypedTerms" units="terms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.PaintTime" units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Time it takes for the omnibox to become responsive to user input after the
user has typed N characters (for 'Omnibox.QueryTime2.N') or any length input
(for 'Omnibox.QueryTime2'). 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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits the position of any "Resume Journey" 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.ClusterKeywordType"
enum="HistoryClusterKeywordType" expires_after="2024-12-08">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emits the type of the matched cluster keyword of any "Resume
Journey" 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.RichAutocompletion.Triggered"
enum="OmniboxRichAutocompletionType" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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 "Omnibox.RichAutocompletion.Triggered" 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.ScrollToTLD.Duration" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Measures the amount of time it takes to call UrlBar.scrollToTLD(). Logged
once per call.
</summary>
</histogram>
<histogram name="Omnibox.Search.CtrlEnter.ResolvedAsUrl" enum="Boolean"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whenever Ctrl+Enter is used to complete an interaction with the Omnibox,
this metric captures whether the keystroke was used to initiate navigation
to a website (by affixing ".com") or execute a search query (if
affixing ".com" would not produce a valid URL).
Recorded each time Ctrl+Enter is used to complete an interaction.
</summary>
</histogram>
<histogram name="Omnibox.Search.CtrlEnter.Used" enum="BooleanUsage"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Whether Ctrl+Enter key combination was used to complete an interaction with
the Omnibox.
Recorded each time user accepts Omnibox text via Keyboard.
</summary>
</histogram>
<histogram name="Omnibox.Search.OffTheRecord" enum="BooleanOffTheRecord"
expires_after="2025-02-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</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{Population}"
enum="OmniboxSearchEngineType" expires_after="2025-02-16">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The type of search engine associated with a match opened from the omnibox.
{Population}
</summary>
<token key="Population">
<variant name="" summary="Reported for all users."/>
<variant name=".SetByEnterprisePolicy"
summary="Reported for users with search engine set by Enterprise
policy."/>
<variant name=".SetByEnterprisePolicy.DefaultSearchProvider"
summary="Reported for users with search engine set by the
DefaultSearchProvider* Enterprise policies."/>
<variant name=".SetByEnterprisePolicy.SiteSearchSettings"
summary="Reported for users with search engine set by the
SiteSearchSettings Enterprise policy."/>
</token>
</histogram>
<histogram
name="Omnibox.SearchPrefetch.SearchWhatYouTypedWasAlsoSuggested.{HistoryOrSuggest}"
enum="Boolean" expires_after="2023-05-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether a "search what you type" 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.SearchPreload.ForwardingResult.NotServedToPrerender"
enum="SearchPreloadForwardingResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when posting a task to destroy StreamingSearchPrefetchURLLoader.
Used to track whether the native forwarding works as expected. Together with
Omnibox.SearchPreload.ForwardingResult.WasServedToPrerender, these two
metrics are used to monitor whether shareable cache does not break the
forwarding logic.
</summary>
</histogram>
<histogram name="Omnibox.SearchPreload.ForwardingResult.WasServedToPrerender"
enum="SearchPreloadForwardingResult" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Recorded when posting a task to destroy StreamingSearchPrefetchURLLoader.
Together with Omnibox.SearchPreload.ForwardingResult.NotServedToPrerender,
these two metrics are used to monitor whether shareable cache does not break
the forwarding logic.
</summary>
</histogram>
<histogram name="Omnibox.SearchPreload.ResponseDataReaderFinalStatus.Prerender"
enum="SearchPrefetchResponseDataReaderStatus" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Tracks whether the StreamingSearchPrefetchURLLoader::ResponseReader can
successfully serving to prerender clients. Recorded when a
`StreamingSearchPrefetchURLLoader::ResponseReader` is destroyed.
</summary>
</histogram>
<histogram name="Omnibox.SearchSuggest.Requests"
enum="SearchSuggestRequestEvent" expires_after="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number of requests SearchProvider sent, were invalidated, and
were completed successfully.
</summary>
</histogram>
<histogram name="Omnibox.Shortcuts.NumberOfDuplicatesPerShortcutIterated"
units="matches" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each autocomplete input, the shortcut provider 1) searches its index for
all matching shortcuts, 2) dedupes them, 3) prunes them to 3, 4) and lastly
converts them to `AutocompleteMatch`s.
This metric records the number of duplicates per shortcut found in step (2).
See the related `Omnibox.Shortcuts.NumberOfUniqueShortcutsIterated`.
Recorded once per unique shortcut found each time the shortcut provider is
ran with want-async input - i.e. the user editing the omnibox text. But some
inputs (e.g. starter pack scopes) won't run the shortcut provider, and some
actions (e.g. typing in chrome://omnibox) will also run the shortcut
provider.
</summary>
</histogram>
<histogram name="Omnibox.Shortcuts.NumberOfUniqueShortcutsIterated"
units="matches" expires_after="2025-02-02">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each autocomplete input, the shortcut provider 1) searches its index for
all matching shortcuts, 2) dedupes them, 3) prunes them to 3, 4) and lastly
converts them to `AutocompleteMatch`s.
This metric records the number of unique matching shortcuts (i.e. after step
2, before step 3).
See the related `Omnibox.Shortcuts.NumberOfDuplicatesPerShortcutIterated`.
Recorded once each time the shortcut provider is ran with want-async input -
i.e. the user editing the omnibox text. But some inputs (e.g. starter pack
scopes) won't run the shortcut provider, and some actions (e.g. typing in
chrome://omnibox) will also run the shortcut provider.
</summary>
</histogram>
<histogram name="Omnibox.Start.WantAsyncMatches" enum="Boolean"
expires_after="2025-01-05">
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.ClientSummarizedResultType"
enum="ClientSummarizedResultType" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each user navigation using the omnibox, logs the selected omnibox result
as one of a limited set of result types, based on the autocomplete match.
As an example, HISTORY_URL and HISTORY_TITLE are both summarized into the
Url summarized result type.
This histogram intended to match the server-side histograms that use
OmniboxSummarizedResultType such as Omnibox.SuggestionUsed.SearchVsUrl. This
is also calculated on the client side to enable functionality that is based
on listening to local metrics at runtime.
Logged whenever a user navigates using the omnibox.
</summary>
</histogram>
<histogram name="Omnibox.SuggestionUsed.OfferedTabMatch" enum="BooleanOffered"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the position of "Resume Journey" 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 "Resume Journey" 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
"Resume Journey" 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="2024-03-17">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs the type of the matched cluster keyword of "Resume Journey"
omnibox actions actually selected by the user.
This can be combined with Omnibox.ResumeJourneyShown.ClusterKeywordType to
compute the precision (or CTR) of the "Resume Journey" 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 "Resume Journey" 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="2023-12-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted when the user uses the omnibox to go somewhere AND the "Resume
Journey" chip triggered by {ClusterKeywordTypeLabel} was offered in any
position.
This metric records "Selected" if the offered action chip was
selected, and records "Not Selected" if the offered action chip
was not selected.
Therefore the "Selected" 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.ResumeJourneyCTR"
enum="BooleanSelected" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted when the user uses the omnibox to go somewhere AND the "Resume
Journey" chip was offered in any position.
This metric records "Selected" if the offered action chip was
selected, and records "Not Selected" if the offered action chip
was not selected.
Therefore the "Selected" 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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.InputToNavigationStart2"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.1"
units="ms" expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.NavigationToLargestContentfulPaint2.1Above2s"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-26">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.InputToNavigationStart2" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.1"
units="ms" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.SuggestRequestsSent" enum="SuggestRequestType"
expires_after="2025-01-31">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Counts the number and type of requests sent by the omnibox to the Suggest
backends. These requests are emitted as the user types or in zero-suggest
context (user has focused or cleared the omnibox but has not typed in yet).
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.DeletedTileIndex" units="position"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</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.SelectedTileIndex" units="position"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</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).
Note: possible recording gap between 2023/06 and 2023/08.
</summary>
</histogram>
<histogram name="Omnibox.SuggestTiles.TileTypeCount.{SuggestTileType}"
units="count" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</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.
Note: possible recording gap between 2023/06 and 2023/08.
</summary>
<token key="SuggestTileType">
<variant name="Search"/>
<variant name="URL"/>
</token>
</histogram>
<histogram name="Omnibox.TabMatchTime" units="microseconds"
expires_after="2024-04-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.TemplateUrl.Reconciliation.Type"
enum="ReconciliationType" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Captures the type of performed reconciliation (if any).
Recorded once per Default Search Engine reconciliation event (on start + any
time the Default Search Engine is changed).
</summary>
</histogram>
<histogram name="Omnibox.TemplateUrl.Reconciliation.{ByVariant}.Result"
enum="BooleanSuccess" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Captures the outcome of TemplateURL reconciliation whenever reconciliation
takes place.
This histogram captures outcome of reconciliation {ByVariant}.
</summary>
<token key="ByVariant">
<variant name="ByDomainBasedKeyword" summary="by Domain-based Keyword"/>
<variant name="ByID" summary="by ID"/>
<variant name="ByKeyword" summary="by Keyword"/>
</token>
</histogram>
<histogram name="Omnibox.TemplateUrl.RegulatoryExtension.SearchVariant"
enum="RegulatoryExtensionVariant" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of regulatory extension used to formulate the Search URL.
Recorded for all TemplateURLs every time a Search URL is created, regardless
of whether extensions are used, or a specific extension type is populated.
</summary>
</histogram>
<histogram name="Omnibox.TemplateUrl.RegulatoryExtension.SuggestVariant"
enum="RegulatoryExtensionVariant" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the type of regulatory extension used to formulate the Suggest URL.
Recorded for all TemplateURLs every time a Suggest URL is created,
regardless of whether extensions are used, or a specific extension type is
populated.
</summary>
</histogram>
<histogram name="Omnibox.TemplateUrl.RlzPresent" enum="Boolean"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every TemplateUrl expansion, captures whether Query has an organic
nature (RLZ empty) or not (RLZ present).
Recorded once for every TemplateUrl expansion if the Template URL references
the {google:RLZ} parameter.
</summary>
</histogram>
<histogram name="Omnibox.TemplateUrl.SearchClientPresent" enum="Boolean"
expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For every TemplateUrl expansion, captures whether Query has an organic
nature (Search client empty) or not (Search client present).
Recorded once for every TemplateUrl expansion if the Template URL references
the {google:searchClient} parameter.
</summary>
</histogram>
<histogram name="Omnibox.TemplateUrl.UnrecognizedParameter"
enum="BooleanPrepopulated" expires_after="2025-09-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each TemplateUrl parameter that cannot be expanded, captures the origin
of the template url parameter. Prepopulated TemplateUrl definitions come
from `prepopulated_engines.json` file, whereas Non-prepopulated definitions
may originate from external configuration files linked to region-specific
DMA implementations (Android), user-supplied definitions (Desktop), or
device configuration (e.g. ADCP, Enterprise policies).
See go/chrome-android-dma for additional details.
Recorded once per unexpanded parameter for every TemplateUrl expansion.
Values reported by this histogram should be zero for mobile devices,
possibly also for Desktop and ChromeOS (unconfirmed).
</summary>
</histogram>
<histogram name="Omnibox.URLNavigationScheme" enum="NavigationScheme"
expires_after="2025-02-10">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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.URLScoringModelExecuted.ElapsedTime"
units="microseconds" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The amount of time it takes to execute the URL scoring model for all the
eligible matches. Emitted when all the providers are done and there is at
least one eligible match for model execution.
This histogram only records metrics on machines with high-resolution clocks.
</summary>
</histogram>
<histogram name="Omnibox.URLScoringModelExecuted.Matches" units="counts"
expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of matches the URL scoring model was executed for. Emitted when
all the providers are done and there is at least one eligible match for
model execution.
</summary>
</histogram>
<histogram name="Omnibox.URLScoringModelExecuted.MLScoreCache.CacheHit"
enum="BooleanCacheHit" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records whether there was a cache hit when attempting to fetch the ML score
associated with a given vector of scoring signals. This will be recorded for
each match that is submitted to the ML scoring service. Each omnibox input
triggers multiple autocomplete passes with each pass generating multiple
autocomplete matches. Therefore, this metric will get logged several times
for a single omnibox input.
</summary>
</histogram>
<histogram name="Omnibox.URLScoringModelExecuted.MLScoreCoverage"
units="% of matches" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the percentage of scoring-eligible autocomplete matches that were
assigned non-null scores by the ML scoring model. This will be recorded for
each batch that is submitted to the ML scoring service.
</summary>
</histogram>
<!--
Keep consistent:
- omnibox_event.proto `ScoringSignals`
- omnibox_scoring_signals.proto `OmniboxScoringSignals`
- autocomplete_scoring_model_handler.cc
`AutocompleteScoringModelHandler::ExtractInputFromScoringSignals()`
- autocomplete_match.cc `AutocompleteMatch::MergeScoringSignals()`
- autocomplete_controller.cc `RecordScoringSignalCoverageForProvider()`
- omnibox_metrics_provider.cc `GetScoringSignalsForLogging()`
- omnibox.mojom `struct Signals`
- omnibox_page_handler.cc `TypeConverter<AutocompleteMatch::ScoringSignals,
mojom::SignalsPtr>`
- omnibox_page_handler.cc `TypeConverter<mojom::SignalsPtr,
AutocompleteMatch::ScoringSignals>`
- omnibox_util.ts `signalNames`
- omnibox/histograms.xml
`Omnibox.URLScoringModelExecuted.ScoringSignalCoverage`
-->
<histogram
name="Omnibox.URLScoringModelExecuted.ScoringSignalCoverage.{ProviderType}.{ScoringSignalType}"
enum="BooleanNonNull" expires_after="2025-02-23">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
For each ML eligible match generated by the autocomplete provider of type
{ProviderType}, records the number of null/non-null values logged by client
code for the ML scoring signal of type {ScoringSignalType}.
</summary>
<token key="ScoringSignalType">
<variant name="allowed_to_be_default_match"
summary="True if url can be default match."/>
<variant name="elapsed_time_last_shortcut_visit_sec"
summary="Elapsed time since last shortcut visit for this profile on
this device."/>
<variant name="elapsed_time_last_visit_secs"
summary="Elapsed time since last visit for this profile on this
device."/>
<variant name="first_bookmark_title_match_position"
summary="Position of the first matched bookmark title term."/>
<variant name="first_url_match_position"
summary="Position of the first matched URL substring."/>
<variant name="has_non_scheme_www_match"
summary="Has matches that are not in schemes (e.g., 'https') or
'www'."/>
<variant name="host_match_at_word_boundary"
summary="One word matches host at a word boundary."/>
<variant name="is_answer_suggest"
summary="Whether this match is a Search suggestion that contains an
answer."/>
<variant name="is_calculator_suggest"
summary="Whether this match is a CALCULATOR suggestion."/>
<variant name="is_host_only"
summary="URL points to the root page of a website, i.e., no query,
path words, or references after '/'."/>
<variant name="is_navsuggest"
summary="Whether this match is a NAVSUGGEST suggestion."/>
<variant name="is_search_suggest_entity"
summary="Whether this match is a Search suggestion that describes an
entity."/>
<variant name="is_search_suggest_tail"
summary="Whether this match is a SEARCH_SUGGEST_TAIL suggestion."/>
<variant name="is_verbatim"
summary="Whether this match is a verbatim suggestion."/>
<variant name="length_of_url" summary="Length of url."/>
<variant name="num_bookmarks_of_url"
summary="Number of bookmarks for this profile with this URL."/>
<variant name="num_input_terms_matched_by_bookmark_title"
summary="Number of input terms matched by bookmark title."/>
<variant name="num_input_terms_matched_by_title"
summary="Number of input terms matched by title."/>
<variant name="num_input_terms_matched_by_url"
summary="Number of input terms matched by url."/>
<variant name="search_suggest_relevance"
summary="Server-generated relevance score provided by the remote
Suggest service for this suggestion."/>
<variant name="shortcut_visit_count"
summary="Number of times the suggestion was visited with the current
input or prefix of it for this profile on this device."/>
<variant name="shortest_shortcut_len"
summary="Length of the shortest shortcut text."/>
<variant name="site_engagement"
summary="Site engagement score for the site the URL is on."/>
<variant name="total_bookmark_title_match_length"
summary="Total length of matched strings in the bookmark title."/>
<variant name="total_host_match_length"
summary="Total length of the matched host substrings."/>
<variant name="total_path_match_length"
summary="Total length of the matched substrings in the path at word
boundaries."/>
<variant name="total_query_or_ref_match_length"
summary="Total length of the matched substrings in the query_or_ref
at word boundaries."/>
<variant name="total_title_match_length"
summary="Total length of the matched substrings in the page title at
word boundaries."/>
<variant name="total_url_match_length"
summary="Total length of the matched URL strings."/>
<variant name="typed_count"
summary="Number of times the URL was navigated to using the Omnibox
for this profile on this device, and all other devices
syncing with this profile."/>
<variant name="visit_count"
summary="Number of times the URL was visited in general for this
profile on this device."/>
</token>
<token key="ProviderType" variants="OmniboxProviders"/>
</histogram>
<histogram name="Omnibox.Views.PopupFirstPaint" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of milliseconds between the views omnibox popup
construction and the first time content for the popup is displayed on the
screen. This is emitted once each time the omnibox is opened. It is recorded
again if the omnibox has closed and later re-opened. It is not emitted more
than once for a single opened instance of the ombibox popup.
</summary>
</histogram>
<histogram name="Omnibox.WebUI.FirstUpdate" units="ms"
expires_after="2024-11-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the number of milliseconds between the webui omnibox popup
construction and its first UpdatePopupAppearance call. This measures how
long the popup existed before first use. Since the webui begins the
asynchronous process of initialization and remote binding immediately on
construction, this metric can be seen as a time budget for handler
preparation. See also Omnibox.WebUI.HandlerReadyOnFirstAccess.
</summary>
</histogram>
<histogram name="Omnibox.WebUI.HandlerReadyOnFirstAccess" enum="Boolean"
expires_after="2024-10-06">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the ready state of the webui handler when first accessed. When this
is true, the page loaded and the handler was ready on time. When this is
false, it indicates that OmniboxPopupPresenter::GetHandler returned nullptr
at least once because the page wasn't loaded before the first attempt to
communicate via the handler. Recorded once per omnibox popup presenter
instantiation, when the webui omnibox popup page handler is first used; so,
at most once per browser window.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggest.AllResults" units="units"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of results (either query or URL) from ZeroSuggest. This is
emitted every time ZeroSuggestProvider produces results on omnibox focus or
on omnibox input clobber, either from the cache or from the remote response.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggest.QueryResults" units="units"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of query results returned from ZeroSuggest. This is emitted every
time ZeroSuggestProvider produces results on omnibox focus or on omnibox
input clobber, either from the cache or from the remote response.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggest.URLResults" units="units"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
The number of URL results returned from ZeroSuggest. This is emitted every
time ZeroSuggestProvider produces results on omnibox focus or on omnibox
input clobber, either from the cache or from the remote response.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestProvider.CacheMemoryUsage" units="Bytes"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Emitted in ZeroSuggestCacheService, records the estimated dynamically
allocated memory usage of the ZeroSuggestProvider cache every time the
prefetch or the non-prefetch zero-suggest response is stored in the cache on
eligible page load / page switch events and when the user has focused or
cleared the omnibox but has not typed in yet, respectively. Note that the
max number of responses stored in the cache is always capped. The cache size
can build up as more responses are stored. The cache size can also decrease
as responses are removed from the cache when suggestions are deleted from
the omnibox or when the user clears the browsing data. Hence, due to the
dynamic nature of the cache size, this histogram is recorded on every store
event as opposed to the cache destructor.
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestProvider.Eligibility"
enum="ZeroSuggestEligibility" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Logs whether ZeroSuggestProvider is eligible to request and display zero-
prefix suggestions, and if not, why not. Emitted for both
omit_asynchronous_matches_ true (i.e, Autocomplete classifier) and false
inputs (i.e, when the user has typed in, focused the omnibox, or cleared it
but has not typed in yet) in ZeroSuggestProvider::Start(). Also emitted on
applicable page load/switch events in ZeroSuggestProvider::StartPrefetch().
</summary>
</histogram>
<histogram name="Omnibox.ZeroSuggestProvider.{ResultType}.{RequestType}"
enum="ZeroSuggestRequestEvent" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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.{SearchPrefetch}.CacheAliasElapsedTimeToFallback"
units="ms" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
{SearchPrefetch}
Measures the time between the construction of
CacheAliasSearchPrefetchURLLoader and the moment the prefetch fell back from
the disk cache to network. This is recorded when the loader starts the
fallback in CacheAliasSearchPrefetchURLLoader::RestartDirect().
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
</histogram>
<histogram name="Omnibox.{SearchPrefetch}.CacheAliasFallbackReason"
enum="SearchPrefetchCacheAliasFallbackReason" expires_after="2025-02-28">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
{SearchPrefetch}
The reason that a search prefetch request failed to read a response from the
disk cache and then fell back to network. This is recorded when
CacheAliasSearchPrefetchURLLoader is destructed regardless of whether the
fallback happened. When the fallback didn't happen, this records
kNoFallback.
</summary>
<token key="SearchPrefetch" variants="SearchPrefetch"/>
</histogram>
<histogram
name="Omnibox.{SearchPrefetch}.ClickToNavigationIntercepted.{NavigationPrefetchOnly}"
units="ms" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</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}.PrefetchEligibilityReason2.{NavigationOrSuggestionPrefetch}"
enum="SearchPrefetchEligibilityReason" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</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="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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}.ReceivedServableResponse2.{FallbackOrInitial}.{NavigationOrSuggestionPrefetch}"
units="ms" expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
{SearchPrefetch}
This histogram records whether an activated (i.e., served) prefetch URL
Loader receives a servabled response from the server.
A servabled reasponse should contain valid headers and body, with any 200
response code.
{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}.StartTimeV2.{NavigationPrefetchOnly}"
units="ms" expires_after="2023-10-15">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<owner>[email protected]</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>
<histogram name="Realbox.CharTypedToRepaintLatency.ToPaint" units="ms"
expires_after="2025-03-01">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time taken between a keystroke being typed in the NTP realbox
and the time when we're ready to render the results in the DOM. If there are
multiple keystrokes before the results are rendered, logs the time since the
earliest. This is comparable to Omnibox.CharTypedToRepaintLatency.ToPaint as
it does not take into account the time the DOM change task spends in the
message loop nor its duration.
</summary>
</histogram>
<histogram name="Realbox.ResultChangedToRepaintLatency.ToPaint" units="ms"
expires_after="2025-01-05">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
<summary>
Records the time taken between AutocompleteController::Observer's
OnResultChanged is called and the time when we're ready to render the
results in the NTP realbox. If there are multiple calls to OnResultChanged
before the results are rendered, logs the time since the earliest. This is
comparable to Realbox.CharTypedToRepaintLatency.ToPaint but excludes the
time taken to send the input to the browser and process it. Similarly this
does not take into account the time the DOM change task spends in the
message loop nor its duration.
</summary>
</histogram>
</histograms>
</histogram-configuration>