628 lines
24 KiB
ReStructuredText
628 lines
24 KiB
ReStructuredText
Nontechnical Overview
|
||
=====================
|
||
|
||
This document provides a high level, nontechnical overview of Firefox's address
|
||
bar, with a focus on the different types of results it shows and how it chooses
|
||
them.
|
||
|
||
.. contents::
|
||
:depth: 2
|
||
|
||
|
||
Terminology
|
||
-----------
|
||
|
||
This document uses a small number of terms of art that would be helpful to
|
||
understand up front.
|
||
|
||
Input
|
||
The text box component of the address bar. In contrast, we use "address bar"
|
||
to refer to the whole system comprising the input, the view, and the logic
|
||
that determines the results that are shown in the view based on the text in
|
||
the input.
|
||
|
||
Result
|
||
An individual item that is shown in the view. There are many different types
|
||
of results, including bookmarks, history, open tabs, and search suggestions.
|
||
|
||
View
|
||
The panel that opens below the input when the input is focused. It contains
|
||
the results.
|
||
|
||
Maximum Result Count
|
||
--------------------
|
||
|
||
The view shows a maximum of 10 results by default. This number is controlled by
|
||
a hidden preference, ``browser.urlbar.maxRichResults``.
|
||
|
||
Search Strings
|
||
--------------
|
||
|
||
If the user has not modified the text in the input or the text in the input is
|
||
empty, we say that the user's **search string** is empty, or in other words,
|
||
there is no search string. In contrast, when the user has modified the text in
|
||
the input and the text is non-empty, then the search string is that non-empty
|
||
text.
|
||
|
||
.. figure:: assets/nontechnical-overview/empty-url.png
|
||
:alt: Image of the address bar input showing a URL
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Empty search string: The input text has not been modified
|
||
|
||
.. figure:: assets/nontechnical-overview/empty-placeholder.png
|
||
:alt: Image of the address bar input showing its placeholder text
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Empty search string: The input text is empty (and the input is showing its
|
||
placeholder text)
|
||
|
||
.. figure:: assets/nontechnical-overview/non-empty.png
|
||
:alt: Image of the address bar input showing "porcupines" text
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Non-empty search string: The input text has been modified and is non-empty
|
||
|
||
The distinction between empty and non-empty search strings is helpful to
|
||
understand for the following sections.
|
||
|
||
Top Sites
|
||
---------
|
||
|
||
When the search string is empty and the user focuses the input, the view opens
|
||
and shows the user's top sites. They are the same top sites that appear on the
|
||
new-tab page except their number is capped to the maximum number of address bar
|
||
results (10). If the user has fewer top sites than the maximum number of results
|
||
(as is the case in a new profile), then only that number of results is shown.
|
||
|
||
.. figure:: assets/nontechnical-overview/top-sites.png
|
||
:alt: Image of the address bar view showing top sites
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Top sites on a new en-US profile
|
||
|
||
This behavior can be turned off by going to about:preferences#privacy and
|
||
unchecking “Shortcuts” in the “Address Bar” section. In that case, the view
|
||
closes when the search string is empty.
|
||
|
||
Searches
|
||
--------
|
||
|
||
When the search string is non-empty, the address bar performs a search and
|
||
displays the matching results in the view. Multiple separate searches of
|
||
different sources are actually performed, and the results from each source are
|
||
combined, sorted, and capped to the maximum result count to display the final
|
||
list of results. In address bar terminology, each source is called a
|
||
**provider**.
|
||
|
||
Each provider produces one or more types of results based on the search
|
||
string. The most common result types include the following (not exhaustive):
|
||
|
||
.. figure:: assets/nontechnical-overview/search-suggestion.png
|
||
:alt: Image of a search suggestion result with text "porcupine meatballs"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Search suggestions from the user's default engine (magnifying glass icon)
|
||
|
||
.. figure:: assets/nontechnical-overview/form-history.png
|
||
:alt: Image of a previous search result with text "porcupines"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Previous searches the user has performed from the address bar and search bar
|
||
(clock icon)
|
||
|
||
.. figure:: assets/nontechnical-overview/bookmark.png
|
||
:alt: Image of a bookmark result with text "Porcupine - Wikipedia"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Bookmarks
|
||
|
||
.. figure:: assets/nontechnical-overview/history.png
|
||
:alt: Image of a history result with text "Porcupines | National Geographic"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
History
|
||
|
||
.. figure:: assets/nontechnical-overview/open-tab.png
|
||
:alt: Image of an open tab result with text "Porcupines | San Diego Zoo
|
||
Animals & Plants"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Open tabs (switch to tab)
|
||
|
||
.. figure:: assets/nontechnical-overview/remote-tab.png
|
||
:alt: Image of a remote tab result with text "Porcupine | rodent |
|
||
Britannica"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Remote tabs (via Sync)
|
||
|
||
How the address bar combines and sorts results from different providers is
|
||
discussed below in `Result Composition`_.
|
||
|
||
The Heuristic Result
|
||
--------------------
|
||
|
||
The first result in the view is special and is called the **heuristic**
|
||
result. As the user types each character in their search string, the heuristic
|
||
result is updated and automatically selected, and its purpose is to show the
|
||
user what will happen when they press the enter key without first selecting a
|
||
(non-heuristic) result. The heuristic result is so called because it shows
|
||
Firefox's best guess for what the user is trying to do based on their search
|
||
string.
|
||
|
||
The heuristic result is determined by running through a number of different
|
||
heuristics and picking the one that first matches the search string. The most
|
||
important heuristics in the order that Firefox runs through them are:
|
||
|
||
*Is the search string...*
|
||
|
||
1. An omnibox extension keyword? Extensions using the omnibox API can register
|
||
keywords by which they become activated.
|
||
2. A bookmark keyword? The user can associate a keyword with each bookmark.
|
||
Typing a bookmark keyword plus an optional search string and pressing enter
|
||
will visit the bookmark.
|
||
|
||
.. figure:: assets/nontechnical-overview/bookmark-keyword.png
|
||
:alt: Image of the address bar input with text "bug 1677126" and a
|
||
bookmark keyword heuristic result
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Typing "bug" triggers a Bugzilla bookmark with the keyword "bug"
|
||
|
||
3. A domain name or URL that should be autofilled? **Autofill** is the name of
|
||
the feature where the input completes the domain names and URLs of bookmarks
|
||
and frequently visited sites as the user is typing them. (Firefox autofills
|
||
“to the next slash”, meaning it first autofills domain names and then partial
|
||
paths.)
|
||
|
||
.. figure:: assets/nontechnical-overview/autofill.png
|
||
:alt: Image of the address bar input with text "mozilla.org/" with
|
||
"illa.org/" selected and an autofill heuristic result
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
After typing "moz", the rest of mozilla.org is automatically completed
|
||
|
||
4. A valid URL? If so, visit the URL. (This includes fixing common typos like
|
||
“mozilla..org” and “mozilla.ogr”. Valid URLs are based on the `Public Suffix
|
||
List`_. The user can also specify an allow-list using hidden preferences to
|
||
support domains like localhost.)
|
||
|
||
.. figure:: assets/nontechnical-overview/visit.png
|
||
:alt: Image of the address bar input with text "porcupine-fancy.org" and a
|
||
visit heuristic result
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Typing a URL that isn't bookmarked or in history
|
||
|
||
.. _Public Suffix List: https://publicsuffix.org/
|
||
|
||
5. Ultimately fall back to performing a search using the default engine. (The
|
||
user can opt out of this fallback by setting the hidden preference
|
||
``keyword.enabled`` to false. In that case, Firefox stops at the previous
|
||
step and attempts to visit the user's search string as if it were a URL.)
|
||
|
||
.. figure:: assets/nontechnical-overview/search-heuristic.png
|
||
:alt: Image of the address bar input with text "porcupines" and a search
|
||
heuristic result
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Typing a string that will perform a search using the default engine
|
||
|
||
Result Composition
|
||
------------------
|
||
|
||
For a given search string, the address bar performs multiple separate searches
|
||
of different providers and then combines their results to display the final
|
||
list. The way in which results are combined and sorted is called **result
|
||
composition**. Result composition is based on the concept of result groups, one
|
||
group after another, with different types of results in each group.
|
||
|
||
The default result composition is described next, starting with the first
|
||
result.
|
||
|
||
1. Heuristic Result
|
||
~~~~~~~~~~~~~~~~~~~
|
||
|
||
The first result is always the heuristic result.
|
||
|
||
2. Extension Omnibox Results
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
The next group of results is those provided by extensions using the omnibox
|
||
API. Most users never encounter these results because they are provided only by
|
||
extensions that use this feature, and even then the user must type certain
|
||
extension-defined keywords to trigger them. There are at most 6 results in this
|
||
group.
|
||
|
||
3. Search Suggestions
|
||
~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
The next group is search suggestions. Typically this group contains 6 results,
|
||
but the exact number depends on certain factors described later in `Result
|
||
Composition Nuances`_. There are actually three types of search suggestions:
|
||
|
||
* Previous searches the user has performed from the address bar and search bar
|
||
(denoted with a clock icon):
|
||
|
||
.. image:: assets/nontechnical-overview/form-history.png
|
||
:alt: Image of a previous search result with text "porcupines"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
This is the only type of search suggestion that is generated by Firefox alone,
|
||
without the help of a search engine. When the user performs a search using an
|
||
engine from the address bar or search bar (and only the address bar and search
|
||
bar), Firefox stores the search string, and then when the user starts to type
|
||
it again, Firefox includes it as a result to make it easy to perform past
|
||
searches. (Firefox does not store search strings used within web pages like
|
||
google.com.)
|
||
|
||
* Suggestions from the user's default engine (denoted with a magnifying glass
|
||
icon):
|
||
|
||
.. image:: assets/nontechnical-overview/search-suggestion.png
|
||
:alt: Image of a search suggestion result with text "porcupine meatballs"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
These are fetched from the engine if the engine provides the necessary access
|
||
point. The ordering and total number of these suggestions is determined by the
|
||
engine.
|
||
|
||
* Google-specific "tail" suggestions, which look like "... foo" and are provided
|
||
for long and/or specific queries to help the user narrow their search:
|
||
|
||
.. image:: assets/nontechnical-overview/tail-suggestions.png
|
||
:alt: Image of a tail suggestion results with text "porcupine abc def" in
|
||
the input and two suggestions with text "... definition " and
|
||
"... defense"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
These are fetched from Google when Google is the user's default engine. The
|
||
ordering and total number of these suggestions is determined by Google.
|
||
|
||
The search suggestions group typically contains two previous searches followed
|
||
by four engine suggestions, but the exact numbers depend on the number of
|
||
matching previous searches and engine suggestions. Previous searches are limited
|
||
in number so that they don’t dominate this group, allowing remote suggestions to
|
||
provide content discovery benefits. Tail suggestions are shown only when there
|
||
are no other suggestions.
|
||
|
||
The user can opt out of showing search suggestions in the address bar by
|
||
visiting about:preferences#search and unchecking "Provide search suggestions" or
|
||
"Show search suggestions in address bar results".
|
||
|
||
4. General Results
|
||
~~~~~~~~~~~~~~~~~~
|
||
|
||
The final group of results is a general group that includes the following types:
|
||
|
||
* Bookmarks
|
||
* History
|
||
* Open tabs (switch to tab)
|
||
* Remote tabs (via Sync)
|
||
* Sponsored and Firefox Suggest results (part of the Firefox Suggest feature)
|
||
|
||
This general group is labeled "Firefox Suggest" in the Firefox Suggest feature.
|
||
|
||
Typically this group contains 3 results, but as with search suggestions, the
|
||
exact number depends on certain factors (see `Result Composition Nuances`_).
|
||
|
||
Most results within this group are first matched against the search string on
|
||
their titles and URLs and then sorted by a metric called **frecency**, a
|
||
combination of how frequently and how recently a page is visited. The top three
|
||
results are shown regardless of their specific types.
|
||
|
||
This is the only group that is sorted by frecency.
|
||
|
||
A few important complexities of this group are discussed in the next
|
||
subsections. The final subsection describes frecency in more detail.
|
||
|
||
Adaptive History
|
||
................
|
||
|
||
The first few bookmark and history results in the general group may come from
|
||
**adaptive history**, a system that associates specific user search strings with
|
||
URLs. (It's also known as **input history**.) When the user types a search
|
||
string and picks a result, Firefox stores a database record that associates the
|
||
string with the result's URL. When the user types the string or a part of it
|
||
again, Firefox will try to show the URL they picked last time. This allows
|
||
Firefox to adapt to a user's habit of visiting certain pages via specific search
|
||
strings.
|
||
|
||
This mechanism is mostly independent of frecency. URLs in the adaptive history
|
||
database have their own sorting score based on how many times they have been
|
||
used in the past. The score decays daily so that infrequently used search
|
||
strings and URLs aren't retained forever. (If two adaptive history results have
|
||
the same score, they are secondarily sorted by frecency.)
|
||
|
||
Within the general group, the number of adaptive history results is not limited,
|
||
but typically there aren't many of them for a given search string.
|
||
|
||
Open and Remote Tabs
|
||
....................
|
||
|
||
Unlike bookmarks and history, open and remote tabs don't have a "natural"
|
||
frecency, meaning a frecency that's updated in response to user actions as
|
||
described below in Frecency_. Tabs that match the search string are assigned
|
||
constant frecencies so they can participate in the sorting within the general
|
||
group. Open tabs are assigned a frecency of 1000, and remote tabs are assigned a
|
||
frecency of 1001. Picking appropriate frecencies is a bit of an art, but Firefox
|
||
has used these values for some time.
|
||
|
||
Sponsored and Firefox Suggest Results
|
||
.....................................
|
||
|
||
Sponsored and Firefox Suggest results are an exception within this group. They
|
||
are matched on predetermined keywords, and when present, they always appear last
|
||
in the general group. Frecency isn't involved at all.
|
||
|
||
Frecency
|
||
........
|
||
|
||
Frecency is a complex topic on its own, but in summary, each URL stored in
|
||
Firefox's internal history database has a numeric score, the frecency,
|
||
associated with it. Larger numbers mean higher frecencies, and URLs with higher
|
||
frecencies are more likely to be surfaced to the user via the address bar. Each
|
||
time the user visits a URL, Firefox increases its frecency by a certain "boost"
|
||
amount that depends on how the visit is performed -- whether the user picked it
|
||
in the address bar, clicked its link on a page, clicked it in the history
|
||
sidebar, etc. In order to prevent frecencies from growing unbounded and to
|
||
penalize URLs that haven't been visited in a while, Firefox decays the
|
||
frecencies of all URLs over time.
|
||
|
||
For details on frecency, see `The Frecency Algorithm`_.
|
||
|
||
.. _The Frecency Algorithm: https://docs.google.com/document/d/10LRRXVGWWWcjEZIZ2YlEmuKkQqh2RaTclStFHNnPqQ8/edit#heading=h.588hanspexub
|
||
|
||
Preferences that Affect Result Composition
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
There are a number of options in about:preferences that affect result
|
||
composition.
|
||
|
||
The user can opt out of showing search suggestions in the address bar by
|
||
unchecking "Provide search suggestions" or "Show search suggestions in address
|
||
bar results" in about:preferences#search. (The first checkbox applies to both
|
||
the address bar and search bar, so it acts as a global toggle.)
|
||
|
||
.. figure:: assets/nontechnical-overview/prefs-show-suggestions.png
|
||
:alt: Image of the preferences UI that allows the user to opt out of search
|
||
suggestions
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Preferences allowing the user to opt out of search suggestions
|
||
|
||
By default, the search suggestions group is shown before the general results
|
||
group, but unchecking "Show search suggestions ahead of browsing history in
|
||
address bar results" in about:preferences#search does the opposite. In that
|
||
case, typically the general results group will contain at most 6 results and the
|
||
search suggestions group will contain at most 3. In other words, regardless of
|
||
which group comes first, typically the first will contain 6 results and the
|
||
second will contain 3.
|
||
|
||
.. figure:: assets/nontechnical-overview/prefs-suggestions-first.png
|
||
:alt: Image of the preferences UI that allows the user to choose whether
|
||
search suggestions are shown before general results
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Preference allowing the user to choose which group is shown first
|
||
|
||
The “Address Bar” section in about:preferences#privacy has several checkboxes
|
||
that allow for finer control over the types of results that appear in the view.
|
||
The top sites feature can be turned off by unchecking “Shortcuts” in this
|
||
section.
|
||
|
||
.. figure:: assets/nontechnical-overview/prefs-privacy.png
|
||
:alt: Image of the preferences UI that allows the user to choose which
|
||
results are shown
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Preferences allowing the user to choose which results are shown
|
||
|
||
Result Composition Nuances
|
||
--------------------------
|
||
|
||
Among the search suggestions and general results groups, the group that's shown
|
||
first typically contains 6 results and the other group contains 3 results. The
|
||
exact number in each group depends on several factors:
|
||
|
||
* The total maximum result count (controlled by the
|
||
``browser.urlbar.maxRichResults`` hidden preference).
|
||
|
||
The total number of results in the two groups scales up and down to
|
||
accommodate this number so that the view is always full of results.
|
||
|
||
* The number of extension results.
|
||
|
||
The extension results group comes before both groups, so if there are any
|
||
extension results, there are fewer available slots for search suggestions and
|
||
general results.
|
||
|
||
* The number of matching results.
|
||
|
||
The search string may match only one or two search suggestions or general
|
||
results, for example.
|
||
|
||
* The number of results in the other group.
|
||
|
||
The first group will try to contain 6 results and the second will try to
|
||
contain 3, but if either one is unable to fill up, then the other group will
|
||
be allowed to grow to make up the difference.
|
||
|
||
Other Result Types
|
||
------------------
|
||
|
||
The most common result types are discussed above. This section walks through the
|
||
other types.
|
||
|
||
An important trait these types have in common is that they do not belong to any
|
||
group. Most of them appear at specific positions within the view.
|
||
|
||
Search Interventions
|
||
~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Search interventions help the user perform a task based on their search string.
|
||
There are three kinds of interventions, and each is triggered by typing a
|
||
certain set of phrases_ in the input. They always appear as the second result,
|
||
after the heuristic result.
|
||
|
||
The three kinds of interventions are:
|
||
|
||
.. figure:: assets/nontechnical-overview/intervention-clear.png
|
||
:alt: Image of the clear intervention result with text "Clear your cache,
|
||
cookies, history and more"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Clear history, cache, and other data search intervention
|
||
|
||
.. figure:: assets/nontechnical-overview/intervention-refresh.png
|
||
:alt: Image of the refresh intervention result with text "Restore default
|
||
settings and remove old add-ons for optimal performance"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Refresh Firefox search intervention
|
||
|
||
.. figure:: assets/nontechnical-overview/intervention-update.png
|
||
:alt: Image of the update intervention result with text "The latest Firefox
|
||
is downloaded and ready to install"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Update Firefox search intervention
|
||
|
||
Currently this feature is limited to English-speaking locales, but work is
|
||
ongoing to build a more sophisticated intent-matching platform to support other
|
||
locales, more complex search strings, and more kinds of interventions.
|
||
|
||
.. _phrases: https://searchfox.org/mozilla-central/rev/c4d682be93f090e99d5f4049ceb7b6b6c03d0632/browser/components/urlbar/UrlbarProviderInterventions.jsm#64
|
||
|
||
Search Tips
|
||
~~~~~~~~~~~
|
||
|
||
Search tips inform the user they can perform searches directly from the
|
||
address bar. There are two kinds of search tips:
|
||
|
||
.. figure:: assets/nontechnical-overview/search-tip-onboard.png
|
||
:alt: Image of the onboarding search tip with text "Type less, find more:
|
||
Search Google right from your address bar"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Onboarding search tip: Appears on the new-tab page
|
||
|
||
.. figure:: assets/nontechnical-overview/search-tip-redirect.png
|
||
:alt: Image of the redirect search tip with text "Start your search in the
|
||
address bar to see suggestions from Google and your browsing history"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Redirect search tip: Appears on the home page of the user's default engine
|
||
(only for Google, Bing, and DuckDuckGo)
|
||
|
||
In each case, the view automatically opens and shows the tip even if the user is
|
||
not interacting with the address bar. Each tip is shown at most four times, and
|
||
the user can stop them from appearing altogether by interacting with the address
|
||
bar or clicking the "Okay, Got It" button.
|
||
|
||
Tab to Search
|
||
~~~~~~~~~~~~~
|
||
|
||
Tab to search allows the user to press the tab key to enter `search mode`_ while
|
||
typing the domain name of a search engine. There are two kinds of tab-to-search
|
||
results, and they always appear as the second result:
|
||
|
||
.. figure:: assets/nontechnical-overview/tab-to-search-onboard.png
|
||
:alt: Image of the tab-to-search result with text "Search with Google"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Onboarding tab to search
|
||
|
||
.. figure:: assets/nontechnical-overview/tab-to-search-regular.png
|
||
:alt: Image of the tab-to-search result with text "Search with Google"
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Regular tab to search
|
||
|
||
The onboarding type is shown until the user has interacted with it three times
|
||
over a period of at least 15 minutes, and after that the regular type is shown.
|
||
|
||
Search Engine Offers
|
||
~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Typing a single “@” shows a list of search engines. Selecting an engine enters
|
||
`search mode`_.
|
||
|
||
.. figure:: assets/nontechnical-overview/search-offers.png
|
||
:alt: Image of the view showing search offer results
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Search engine offers after typing “@”
|
||
|
||
.. figure:: assets/nontechnical-overview/search-offers-selected.png
|
||
:alt: Image of the view showing search offer results with one selected
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
After pressing the down arrow key to select Google
|
||
|
||
Search Mode
|
||
-----------
|
||
|
||
**Search mode** is a feature that transforms the address bar into a search-only
|
||
access point for a particular engine. During search mode, search suggestions are
|
||
the only results shown in the view, and for that reason its result composition
|
||
differs from the usual composition.
|
||
|
||
.. figure:: assets/nontechnical-overview/search-mode.png
|
||
:alt: Image of the view showing search mode
|
||
:scale: 50%
|
||
:align: center
|
||
|
||
Search mode with Google as the selected engine
|
||
|
||
Firefox shows suggestions in search mode even when the user has otherwise opted
|
||
out of them. Our rationale is that by entering search mode, the user has taken
|
||
an action that overrides their usual opt out. This allows the user to opt out
|
||
generally but opt back in at specific times.
|
||
|
||
Search mode is an effective replacement for the legacy search bar and may
|
||
provide a good path forward for deprecating it.
|
||
|
||
The user can enter search mode in many ways:
|
||
|
||
* Picking a search shortcut button at the bottom of the view
|
||
* Typing an engine's keyword (which can be set in about:preferences#search, and
|
||
built-in engines have default keywords)
|
||
* Typing a single "?" followed by a space (to enter search mode with the default
|
||
engine)
|
||
* Typing a single "@" to list all engines and then picking one
|
||
* If the search bar is not also shown, pressing Ctrl+K (to enter search mode
|
||
with the default engine)
|
||
|
||
To exit search mode, the user can backspace over the engine chiclet or click its
|
||
close button.
|