This section describes existing telemetry probes measuring interaction with the Address Bar.
This probe tracks the amount of time it takes to get the first result. It is an exponential histogram with values between 5 and 100.
This probe tracks the amount of time it takes to get the first six results. It is an exponential histogram with values between 50 and 1000.
This probe tracks how a result was picked by the user from the list. It is a categorical histogram with these values:
enterThe user pressed Enter without selecting a result first. This most likely happens when the user confirms the default preselected result (aka heuristic result), or when they select with the keyboard a one-off search button and confirm with Enter.
enterSelectionThe user selected a result, but not using Tab or the arrow keys, and then pressed Enter. This is a rare and generally unexpected event, there may be exotic ways to select a result we didn’t consider, that are tracked here. Look at arrowEnterSelection and tabEnterSelection for more common actions.
clickThe user clicked on a result.
arrowEnterSelectionThe user selected a result using the arrow keys, and then pressed Enter.
tabEnterSelectionThe first key the user pressed to select a result was the Tab key, and then they pressed Enter. Note that this means the user could have used the arrow keys after first pressing the Tab key.
rightClickEnterBefore QuantumBar, it was possible to right-click a result to highlight but not pick it. Then the user could press Enter. This is no more possible.
This is a keyed scalar whose values are uints and are incremented each time a tip result is shown, a tip is picked, and a tip’s help button is picked. The keys are:
intervention_clear-helpIncremented when the user picks the help button in the clear-history search intervention.
intervention_clear-pickedIncremented when the user picks the clear-history search intervention.
intervention_clear-shownIncremented when the clear-history search intervention is shown.
intervention_refresh-helpIncremented when the user picks the help button in the refresh-Firefox search intervention.
intervention_refresh-pickedIncremented when the user picks the refresh-Firefox search intervention.
intervention_refresh-shownIncremented when the refresh-Firefox search intervention is shown.
intervention_update_ask-helpIncremented when the user picks the help button in the update_ask search intervention, which is shown when there’s a Firefox update available but the user’s preference says we should ask them to download and apply it.
intervention_update_ask-pickedIncremented when the user picks the update_ask search intervention.
intervention_update_ask-shownIncremented when the update_ask search intervention is shown.
intervention_update_refresh-helpIncremented when the user picks the help button in the update_refresh search intervention, which is shown when the user’s browser is up to date but they triggered the update intervention. We show this special refresh intervention instead.
intervention_update_refresh-pickedIncremented when the user picks the update_refresh search intervention.
intervention_update_refresh-shownIncremented when the update_refresh search intervention is shown.
intervention_update_restart-helpIncremented when the user picks the help button in the update_restart search intervention, which is shown when there’s an update and it’s been downloaded and applied. The user needs to restart to finish.
intervention_update_restart-pickedIncremented when the user picks the update_restart search intervention.
intervention_update_restart-shownIncremented when the update_restart search intervention is shown.
intervention_update_web-helpIncremented when the user picks the help button in the update_web search intervention, which is shown when we can’t update the browser or possibly even check for updates for some reason, so the user should download the latest version from the web.
intervention_update_web-pickedIncremented when the user picks the update_web search intervention.
intervention_update_web-shownIncremented when the update_web search intervention is shown.
tabtosearch_onboard-shownIncremented when a tab-to-search onboarding result is shown, once per engine per engagement. Please note that the number of times tab-to-search onboarding results are picked is the sum of all keys in
searchTip_onboard-pickedIncremented when the user picks the onboarding search tip.
searchTip_onboard-shownIncremented when the onboarding search tip is shown.
searchTip_redirect-pickedIncremented when the user picks the redirect search tip.
searchTip_redirect-shownIncremented when the redirect search tip is shown.
This is a set of keyed scalars whose values are uints incremented each time search mode is entered in the Urlbar. The suffix on the scalar name describes how search mode was entered. Possibilities include:
bookmarkmenuUsed when the user selects the Search Bookmarks menu item in the Library menu.
handoffUsed when the user uses the search box on the new tab page and is handed off to the address bar.
keywordofferUsed when the user selects a keyword offer result.
oneoffUsed when the user selects a one-off engine in the Urlbar.
shortcutUsed when the user enters search mode with a keyboard shortcut or menu bar item (e.g.
tabmenuUsed when the user selects the Search Tabs menu item in the tab overflow menu.
tabtosearchUsed when the user selects a tab-to-search result. These results suggest a search engine when the search engine’s domain is autofilled.
tabtosearch_onboardUsed when the user selects a tab-to-search onboarding result. These are shown the first few times the user encounters a tab-to-search result.
topsites_newtabUsed when the user selects a search shortcut Top Site from the New Tab Page.
topsites_urlbarUsed when the user selects a search shortcut Top Site from the Urlbar.
touchbarUsed when the user taps a search shortct on the Touch Bar, available on some Macs.
typedUsed when the user types an engine alias in the Urlbar.
otherUsed as a catchall for other behaviour. We don’t expect this scalar to hold any values. If it does, we need to correct an issue with search mode entry points.
The keys for the scalars above are engine and source names. If the user enters a remote search mode with a built-in engine, we record the engine name. If the user enters a remote search mode with an engine they installed (e.g. via OpenSearch or a WebExtension), we record
other(not to be confused with the
urlbar.searchmode.otherscalar above). If they enter a local search mode, we record the English name of the result source (e.g. “bookmarks”, “history”, “tabs”). Note that we slightly modify the engine name for some built-in engines: we flatten all localized Amazon sites (Amazon.com, Amazon.ca, Amazon.de, etc.) to “Amazon” and we flatten all localized Wikipedia sites (Wikipedia (en), Wikipedia (fr), etc.) to “Wikipedia”. This is done to reduce the number of keys used by these scalars.
This is a set of keyed scalars whose values are uints incremented each time a result is picked from the Urlbar. The suffix on the scalar name is the result type. The keys for the scalars above are the 0-based index of the result in the urlbar panel when it was picked.
Available from Firefox 84 on. Use the FX_URLBAR_SELECTED_* histograms in earlier versions. See the Obsolete probes section below.
Valid result types are:
autofillAn origin or a URL completed the user typed text inline.
bookmarkA bookmarked URL.
dynamicA specially crafted result, often used in experiments when basic types are not flexible enough for a rich layout.
extensionAdded by an add-on through the omnibox WebExtension API.
formhistoryA search suggestion from previous search history.
historyA URL from history.
keywordA bookmark keyword.
remotetabA tab synced from another device.
searchengineA search result, but not a suggestion. May be the default search action or a search alias.
searchsuggestionA remote search suggestion.
switchtabAn open tab.
tabtosearchA tab to search result.
tipA tip result.
topsiteAn entry from top sites.
unknownAn unknown result type, a bug should be filed to figure out what it is.
visiturlThe user typed string can be directly visited.
This is a set of keyed scalars whose values are uints incremented each time a result is picked from the Urlbar while the Urlbar is in search mode. The suffix on the scalar name is the search mode entry point. The keys for the scalars are the 0-based index of the result in the urlbar panel when it was picked.
These scalars share elements of both
urlbar.searchmode.*. Scalar name suffixes are search mode entry points, like
urlbar.searchmode.*. The keys for these scalars are result indices, like
These data are a subset of the data recorded by
urlbar.picked.*. For example, if the user enters search mode by clicking a one-off then selects a Google search suggestion at index 2, we would record in both
The event telemetry is grouped under the
- Event Method
There are two methods to describe the interaction with the urlbar:
engagementIt is defined as a completed action in urlbar, where a user inserts text and executes one of the actions described in the Event Object.
abandonmentIt is defined as an action where the user inserts text but does not complete an engagement action, usually unfocusing the urlbar. This also happens when the user switches to another window, regardless of urlbar focus.
- Event Value
This is how the user interaction started
typed: The text was typed into the urlbar.
dropped: The text was drag and dropped into the urlbar.
pasted: The text was pasted into the urlbar.
topsites: The user opened the urlbar view without typing, dropping, or pasting. In these cases, if the urlbar input is showing the URL of the loaded page and the user has not modified the input’s content, the urlbar views shows the user’s top sites. Otherwise, if the user had modified the input’s content, the urlbar view shows results based on what the user has typed. To tell whether top sites were shown, it’s enough to check whether value is
topsites. To know whether the user actually picked a top site, check check that
numChars== 0. If
numChars> 0, the user initially opened top sites, but then they started typing and confirmed a different result.
returned: The user abandoned a search, for example by switching to another tab/window, or focusing something else, then came back to it and continued. We consider a search continued if the user kept at least the first char of the original search string.
restarted: The user abandoned a search, for example by switching to another tab/window, or focusing something else, then came back to it, cleared it and then typed a new string.
- Event Object
These describe actions in the urlbar:
clickThe user clicked on a result.
enterThe user confirmed a result with Enter.
drop_goThe user dropped text on the input field.
paste_goThe user used Paste & Go feature. It is not the same as paste and Enter.
blurThe user unfocused the urlbar. This is only valid for
- Event Extra
This object contains additional information about the interaction. Extra is a key-value store, where all the keys and values are strings.
elapsedTime in milliseconds from the initial interaction to an action.
numCharsNumber of input characters the user typed or pasted at the time of submission.
numWordsNumber of words in the input. The measurement is taken from a trimmed input split up by its spaces. This is not a perfect measurement, since it will return an incorrect value for languages that do not use spaces or URLs containing spaces in its query parameters, for example.
selTypeThe type of the selected result at the time of submission. This is only present for
engagementevents. It can be one of:
tabtosearchshould not appear in real event telemetry. Opening a tab-to-search result enters search mode and entering search mode does not currently mark the end of an engagement. It is noted here for completeness.
selIndexIndex of the selected result in the urlbar panel, or -1 for no selection. There won’t be a selection when a one-off button is the only selection, and for the
drop_goobjects. There may also not be a selection if the system was busy and results arrived too late, then we directly decide whether to search or visit the given string without having a fully built result. This is only present for
providerThe name of the result provider for the selected result. Existing values are:
UrlbarProviderTopSites. Values can also be defined by URLBar provider experiments.
Search probes relevant to the Address Bar¶
This histogram tracks search engines and Search Access Points. It is augmented by multiple SAPs, including the urlbar. It’s a keyed histogram, the keys are strings made up of search engine names and SAP names, for example
google.urlbar. For each key, this records the count of searches made using that engine and SAP. SAP names can be:
aliasThis is when using an alias (like
urlbarExcept aliases and search mode.
urlbar-searchmodeUsed when the Urlbar is in search mode.
unknownThis is actually the searchbar, when using the current engine one-off button.
These keyed scalars track search through different SAPs, for example the urlbar is tracked by
browser.engagement.navigation.urlbar. It counts loads triggered in a subsession from the specified SAP, broken down by the originating action. Possible SAPs are:
urlbarExcept search mode.
urlbar_searchmodeUsed when the Urlbar is in search mode.
Recorded actions may be:
searchUsed for any search from
urlbar, indicates the user confirmed a search through an alias.
about:newtabthis counts any search. For the other SAPs it tracks typing and then pressing Enter.
urlbar, indicates the user picked a form history result.
searchbar, indicates the user confirmed a search using a one-off button.
searchbar, indicates the user confirmed a search suggestion.
- FX_URLBAR_SELECTED_RESULT_INDEX (OBSOLETE)
This probe tracked the indexes of picked results in the results list. It was an enumerated histogram with 17 buckets.
- FX_URLBAR_SELECTED_RESULT_TYPE and FX_URLBAR_SELECTED_RESULT_TYPE_2 (from Firefox 78 on) (OBSOLETE)
This probe tracked the types of picked results. It was an enumerated histogram with 17 buckets:
- FX_URLBAR_SELECTED_RESULT_INDEX_BY_TYPE and FX_URLBAR_SELECTED_RESULT_INDEX_BY_TYPE_2 (from Firefox 78 on) (OBSOLETE)
This probe tracked picked result type, for each one it tracked the index where it appeared. It was a keyed histogram where the keys were result types (see FX_URLBAR_SELECTED_RESULT_TYPE above). For each key, this recorded the indexes of picked results for that result type.
Obsolete search probes¶
- navigation.search (OBSOLETE)
This is a legacy and disabled event telemetry that is currently under discussion for removal or modernization. It can’t be enabled through a pref. it’s more or less equivalent to browser.engagement.navigation, but can also report the picked search engine.