Name Description Size
AddonSuggestions.sys.mjs A feature that supports Addon suggestions. 6312
AmpSuggestions.sys.mjs A feature that manages AMP suggestions. 12380
BlockedSuggestions.sys.mjs A set of blocked suggestion URLs for Suggest. This feature is always enabled as long as Suggest is enabled. 6398
ExposureSuggestions.sys.mjs A feature for exposure suggestions. 2416
FakespotSuggestions.sys.mjs A feature that supports Fakespot suggestions. 9402
GeolocationUtils.sys.mjs Utils for fetching the client's geolocation from Merino, computing distances between locations, and finding suggestions that best match the geolocation. 9825
ImpressionCaps.sys.mjs Impression caps and stats for quick suggest suggestions. 15190
MDNSuggestions.sys.mjs A feature that supports MDN suggestions. 3963
MLSuggest.sys.mjs MLSuggest helps with ML based suggestions around intents and location. 13746
OfflineWikipediaSuggestions.sys.mjs A feature that manages offline (non-Merino) Wikipedia suggestions. Online (Merino) Wikipedia suggestions don't have their own `SuggestProvider`. Instead they're handled directly by `UrlbarProviderQuickSuggest`. 2206
PocketSuggestions.sys.mjs A feature that manages Pocket suggestions in remote settings. 7094
SuggestBackendMerino.sys.mjs The Suggest Merino backend. This backend is enabled when the user opts in to Merino, also called "online" Suggest. 2633
SuggestBackendMl.sys.mjs The Suggest ML backend. Both the ML and Rust backends can be enabled at the same time. Features can support both backends and decide which one to use per query. 2900
SuggestBackendRust.sys.mjs The Suggest Rust backend. Not used when the remote settings JS backend is enabled. This class returns suggestions served by the Rust component. These are the primary related architectural pieces (see bug 1851256 for details): (1) The `suggest` Rust component, which lives in the application-services repo [1] and is periodically vendored into mozilla-central [2] and then built into the Firefox binary. (2) `suggest.udl`, which is part of the Rust component's source files and defines the interface exposed to foreign-function callers like JS [3, 4]. (3) `RustSuggest.sys.mjs` [5], which contains the JS bindings generated from `suggest.udl` by UniFFI. The classes defined in `RustSuggest.sys.mjs` are what we consume here in this file. If you have a question about the JS interface to the Rust component, try checking `RustSuggest.sys.mjs`, but as you get accustomed to UniFFI JS conventions you may find it simpler to refer directly to `suggest.udl`. (4) `config.toml` [6], which defines which functions in the JS bindings are sync and which are async. Functions default to the "worker" thread, which means they are async. Some functions are "main", which means they are sync. Async functions return promises. This information is reflected in `RustSuggest.sys.mjs` of course: If a function is "worker", its JS binding will return a promise, and if it's "main" it won't. [1] https://github.com/mozilla/application-services/tree/main/components/suggest [2] https://searchfox.org/mozilla-central/source/third_party/rust/suggest [3] https://github.com/mozilla/application-services/blob/main/components/suggest/src/suggest.udl [4] https://searchfox.org/mozilla-central/source/third_party/rust/suggest/src/suggest.udl [5] https://searchfox.org/mozilla-central/source/toolkit/components/uniffi-bindgen-gecko-js/components/generated/RustSuggest.sys.mjs [6] https://searchfox.org/mozilla-central/source/toolkit/components/uniffi-bindgen-gecko-js/config.toml 22072
SuggestFeature.sys.mjs eslint-disable no-unused-vars 13804
WeatherSuggestions.sys.mjs A feature that periodically fetches weather suggestions from Merino. 14867
YelpSuggestions.sys.mjs A feature for Yelp suggestions. 18561