Source code

Revision control

Copy as Markdown

Other Tools

---
about:
description: Nimbus Feature Manifest for Fenix (Firefox Android)
kotlin:
package: org.mozilla.fenix
class: .nimbus.FxNimbus
channels:
- release
- beta
- nightly
- developer
includes:
- onboarding.fml.yaml
- messaging-fenix.fml.yaml
import:
- path: ../../android-components/components/browser/engine-gecko/geckoview.fml.yaml
channel: release
features:
pdfjs:
- channel: developer
value: {
download-button: true,
open-in-app-button: true
}
- path: ../../android-components/components/feature/fxsuggest/fxsuggest.fml.yaml
channel: release
features:
awesomebar-suggestion-provider:
- value:
available-suggestion-types: {
"amp": true,
"ampMobile": false,
"wikipedia": true,
}
features:
homescreen:
description: The homescreen that the user goes to when they press home or new tab.
variables:
sections-enabled:
description: "This property provides a lookup table of whether or not the given section should be enabled.
If the section is enabled, it should be toggleable in the settings screen, and on by default."
type: Map<HomeScreenSection, Boolean>
default:
{
"top-sites": true,
"jump-back-in": true,
"bookmarks": true,
"recent-explorations": true,
"pocket": true,
"pocket-sponsored-stories": true,
"synced-tabs": true,
}
defaults:
- channel: nightly
value: {
"sections-enabled": {
"top-sites": true,
"jump-back-in": true,
"bookmarks": true,
"recent-explorations": true,
"pocket": true,
"synced-tabs": true,
}
}
nimbus-validation:
description: "A feature that does not correspond to an application feature suitable for showing
that Nimbus is working. This should never be used in production."
variables:
settings-title:
description: The title of displayed in the Settings screen and app menu.
type: Text
default: browser_menu_settings
settings-punctuation:
description: The emoji displayed in the Settings screen title.
type: String
default: ""
settings-icon:
description: The drawable displayed in the app menu for Settings
type: String
default: mozac_ic_settings
search-term-groups:
description: A feature allowing the grouping of URLs around the search term that it came from.
variables:
enabled:
description: If true, the feature shows up on the homescreen and on the new tab screen.
type: Boolean
default: false
defaults:
- channel: nightly
value:
enabled: true
- channel: developer
value:
enabled: true
mr2022:
description: Features for MR 2022.
variables:
sections-enabled:
description: "This property provides a lookup table of whether or not the given section should be enabled."
type: Map<MR2022Section, Boolean>
default:
{
"sync-cfr": true,
"wallpapers-selection-tool": true,
"tcp-cfr": true,
"tcp-feature": true,
}
defaults:
- channel: developer
value: {
"sections-enabled": {
"sync-cfr": true,
"wallpapers-selection-tool": true,
}
}
query-parameter-stripping:
description: Features for query parameter stripping.
variables:
sections-enabled:
description: "This property provides a lookup table of whether or not the given section should be enabled."
type: Map<QueryParameterStrippingSection, String>
default:
{
"query-parameter-stripping": "0",
"query-parameter-stripping-pmb": "0",
"query-parameter-stripping-allow-list": "",
"query-parameter-stripping-strip-list": "",
}
defaults:
- channel: developer
value: {
"sections-enabled": {
"query-parameter-stripping": "0",
"query-parameter-stripping-pmb": "0",
"query-parameter-stripping-allow-list": "",
"query-parameter-stripping-strip-list": "",
}
}
- channel: nightly
value: {
"sections-enabled": {
"query-parameter-stripping": "0",
"query-parameter-stripping-pmb": "0",
"query-parameter-stripping-allow-list": "",
"query-parameter-stripping-strip-list": "",
}
}
cookie-banners:
description: Features for cookie banner handling.
variables:
sections-enabled:
description: "This property provides a lookup table of whether or not the given section should be enabled."
type: Map<CookieBannersSection, Int>
default:
{
"feature-ui": 0,
"feature-setting-value": 0,
"feature-setting-value-pbm": 0,
"feature-setting-detect-only": 0,
"feature-setting-global-rules": 1,
"feature-setting-global-rules-sub-frames": 1,
}
defaults:
- channel: developer
value: {
"sections-enabled": {
"feature-ui": 1,
"feature-setting-value": 0,
"feature-setting-value-pbm": 1,
"feature-setting-detect-only": 0,
"feature-setting-global-rules": 1,
"feature-setting-global-rules-sub-frames": 1,
}
}
- channel: nightly
value: {
"sections-enabled": {
"feature-ui": 0,
"feature-setting-value": 0,
"feature-setting-value-pbm": 0,
"feature-setting-detect-only": 0,
"feature-setting-global-rules": 1,
"feature-setting-global-rules-sub-frames": 1,
}
}
- channel: beta
value: {
"sections-enabled": {
"feature-ui": 0,
"feature-setting-value": 0,
"feature-setting-value-pbm": 0,
"feature-setting-detect-only": 0,
"feature-setting-global-rules": 1,
"feature-setting-global-rules-sub-frames": 1,
}
}
growth-data:
description: A feature measuring campaign growth data
variables:
enabled:
description: If true, the feature is active
type: Boolean
default: false
defaults:
- channel: release
value:
enabled: true
re-engagement-notification:
description: A feature that shows the re-engagement notification if the user is inactive.
variables:
enabled:
description: If true, the re-engagement notification is shown to the inactive user.
type: Boolean
default: false
type:
description: The type of re-engagement notification that is shown to the inactive user.
type: Int
default: 0
onboarding:
description: "A feature that configures the new user onboarding page.
Note that onboarding is a **first run** feature, and should only be modified by first run experiments."
variables:
order:
description: Determines the order of the onboarding page panels
type: List<OnboardingPanel>
default: ["themes", "toolbar-placement", "sync", "tcp", "privacy-notice"]
one-click-search:
description: Enable/disable the one click search feature.
variables:
enabled:
description: If true, the one click search will be enabled.
type: Boolean
default: false
glean:
description: "A feature that provides server-side configurations for Glean metrics (aka Server Knobs)."
allow-coenrollment: true
variables:
metrics-enabled:
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
type: Map<String, Boolean>
default: {}
enable-event-timestamps:
description: "Enables precise event timestamps for Glean events"
type: Boolean
default: true
delay-ping-lifetime-io:
description: "Glean will delay io for ping lifetime metrics"
type: Boolean
default: true
ping-lifetime-threshold:
description: "Write count threshold when to auto-flush"
type: Int
default: 1000
ping-lifetime-max-time:
description: "After what time to auto-flush"
type: Int
default: 2000
splash-screen:
description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run."
variables:
enabled:
description: "If true, the feature is active."
type: Boolean
default: false
maximum_duration_ms:
description: The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.
type: Int
default: 0
off-train-onboarding:
description: "If true, the fetched data will be applied and used during the session."
type: Boolean
default: false
alternative-app-launcher-icon:
description: A feature that changes the app launcher icon background color.
variables:
enabled:
description: If true, the feature is active.
type: Boolean
default: false
reset-to-default:
description: >
If true use the default icon, if false use the alternative icon.
This is required to 'reset' the icon for enrolled users once the initial experiment is complete.
type: Boolean
default: false
print:
description: A feature for printing from the share or browser menu.
variables:
share-print-enabled:
description: If true, a print button from the share menu is available.
type: Boolean
default: true
browser-print-enabled:
description: If true, a print button from the browser menu is available.
type: Boolean
default: true
sent-from-firefox:
description: A feature that allows the user to add a download firefox footer to a shared link.
variables:
enabled:
description: If true, the feature is available for the user.
type: Boolean
default: false
template-message:
description: A template for the shared message, supporting three placeholders. A shared link, the brand name and a store download link.
type: Text
default: ""
download-link:
description: A store download link.
type: Text
default: ""
show-snackbar:
description: If true, the user will see the snackbar after sharing a link, allowing quick navigation to settings.
type: Boolean
default: false
defaults:
- channel: developer
value:
enabled: true
template-message: sent_from_firefox_template
download-link: "[Download Link]"
show-snackbar: true
setup-checklist:
description: A feature on the home page that allows the user to track onboarding setup progress.
variables:
enabled:
type: Boolean
description: If true, the setup checklist will be enabled.
default: false
setup-checklist-type:
type: SetupChecklistType
description: The collection used for the setup checklist.
default: collection-1
search-extra-params:
description: A feature that provides additional args for search.
variables:
enabled:
description: If true, the feature is active.
type: Boolean
default: false
search-engine:
description: The search engine name.
type: String
default: ""
feature-enabler:
description: The feature enabler param name with arg, NOTE this map could be empty.
type: Map<String, String>
default: {}
channel-id:
description: The channel Id param name with arg.
type: Map<String, String>
default: {}
fx-suggest:
description: A feature that provides Firefox Suggest search suggestions.
variables:
enabled:
description: >
Whether the feature is enabled. When Firefox Suggest is enabled,
Firefox will download and store new search suggestions in the
background, and show additional Search settings to control which
suggestions appear in the awesomebar. When Firefox Suggest is
disabled, Firefox will not download new suggestions, and hide the
additional Search settings.
type: Boolean
default: false
boost-amp-wiki:
description: >
The feature boost wiki and AMP suggestions to the top of its group.
type: Boolean
default: false
defaults:
- channel: developer
value:
enabled: true
boost-amp-wiki: true
- channel: nightly
value:
enabled: true
nimbus-is-ready:
description: >
A feature that provides the number of Nimbus is_ready events to send
when Nimbus finishes launching.
variables:
event-count:
description: The number of events that should be sent.
type: Int
default: 1
translations:
description: The feature that allows on-device translations of web content.
variables:
main-flow-toolbar-enabled:
description: >
Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)
type: Boolean
default: true
main-flow-browser-menu-enabled:
description: >
Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)
type: Boolean
default: true
page-settings-enabled:
description: >
Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.)
'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.
type: Boolean
default: true
global-settings-enabled:
description: >
Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.)
'page-settings-enabled' must also be enabled for users to access this feature.
type: Boolean
default: true
global-lang-settings-enabled:
description: >
Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.)
'global-settings-enabled' must also be enabled for users to access this feature.
type: Boolean
default: true
global-site-settings-enabled:
description: >
Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.)
'global-settings-enabled' must also be enabled for users to access this feature.
type: Boolean
default: true
downloads-enabled:
description: >
Show the global language model download options entry point for translations. ('Download languages' on the global settings view.)
'global-settings-enabled' must also be enabled for users to access this feature.
type: Boolean
default: true
navigation-toolbar:
description: Feature for navigation toolbar.
variables:
enabled:
description: >
When the feature is enabled then the user will see the new navigation toolbar.
type: Boolean
default: false
defaults:
- channel: developer
value:
enabled: true
- channel: nightly
value:
enabled: true
composable-toolbar:
description: Use a composable toolbar instead of the View based one.
variables:
enabled:
description: >
When the feature is enabled the user will see a new composable toolbar instead the previous View based one.
type: Boolean
default: false
remote-tab-management:
description: >
Features that let users manage tabs on other devices that are
connected to the same Mozilla account.
variables:
close-tabs-enabled:
description: >
Whether the feature to close synced tabs is enabled. When enabled,
this device will allow other devices to close tabs that are open on this device, and
show a "close" button for tabs that are currently open on other supported devices
in the synced tabs tray.
type: Boolean
default: true
ship:
description: The feature that controls Session History in Parent (SHIP) in Gecko.
variables:
disabled:
description: >
Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when
set to true.
type: Boolean
default: true
defaults:
- channel: nightly
value:
disabled: false
- channel: developer
value:
disabled: false
fission:
description: The feature that controls whether fission is enabled or not in Gecko.
variables:
enabled:
description: >
Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when
set to false.
type: Boolean
default: false
suggest-shipped-domains:
description: Feature that suggests domains from the shipped domain list.
variables:
enabled:
description: >
Suggest domains from the shipped domain list.
type: Boolean
default: false
defaults:
- channel: nightly
value:
enabled: false
- channel: developer
value:
enabled: false
fingerprinting-protection:
description: Control Fingerprinting Protection
variables:
enabled:
description: If true, the feature is active.
type: Boolean
default: false
enabled-normal:
description: >
Enables / disables fingerprinting protection in normal browsing mode.
type: Boolean
default: false
enabled-private:
description: >
Enables / disables fingerprinting protection in private browsing mode.
type: Boolean
default: true
overrides:
description: >
The protection overrides to add or remove fingerprinting protection
targets. Please check RFPTargets.inc for all supported targets.
The format of the overrides is +Target1,-Target2,+Target3
where + means add and - means remove. The targets are separated by
commas. The default value is empty string.
type: String
default: ""
fdlibm-math:
description: >
Uses a different math backend for Math.sin/cos/tan in JavaScript that
exposes less entropy
type: Boolean
default: false
baseline-fpp:
description: Control Baseline Fingerprinting Protection
variables:
feat-enabled:
description: If true, the feature is active.
type: Boolean
default: false
enabled:
type: Boolean
description: Enables / disables baseline fingerprinting protection.
default: true
overrides:
type: String
description: >-
The protection overrides to add or remove fingerprinting protection
targets. Please check RFPTargets.inc for all supported targets.
The format of the overrides is +Target1,-Target2,+Target3
where + means add and - means remove. The targets are separated by
commas. The default value is empty string.
default: ""
third-party-cookie-blocking:
description: Control third-party cookie blocking.
variables:
enabled:
description: If true, the feature is active.
type: Boolean
default: false
enabled-normal:
description: >
Enables / disables third-party cookie blocking in normal browsing mode.
type: Boolean
default: false
enabled-private:
description: >
Enables / disables third-party cookie blocking in private browsing mode.
type: Boolean
default: true
menu-redesign:
description: Control the new menu redesign.
variables:
enabled:
description: If true, the new menu redesign is available.
type: Boolean
default: false
report-site-issue:
description: If true, report site issue menu item and preview is available.
type: Boolean
default: true
defaults:
- channel: release
value:
report-site-issue: false
mars:
description: Mozilla Ad Routing Service (MARS) unified ads service.
variables:
enabled:
description: >
Whether or not to enable MARS endpoint to serve sponsored top sites and stories.
type: Boolean
default: false
compose-homepage:
description: Turns on compose homepage.
variables:
enabled:
description: >
Whether or not to turn on the compose homepage.
type: Boolean
default: false
defaults:
- channel: nightly
value:
enabled: true
- channel: developer
value:
enabled: true
microsurveys:
description: Feature for microsurveys.
variables:
enabled:
description: >
When the feature is enabled then microsurveys can be used.
type: Boolean
default: false
tab-strip:
description: Enables tab strip.
variables:
enabled:
description: >
Whether or not to enable tab strip.
type: Boolean
default: false
allow-on-all-devices:
description: >
Experimental: When true, bypasses device restrictions and enables use on all devices.
May cause instability or unexpected behavior. This still requires the feature to be `enabled`.
type: Boolean
default: false
defaults:
- channel: developer
value:
enabled: true
- channel: nightly
value:
enabled: true
- channel: beta
value:
enabled: true
trending-searches:
description: Enables trending searches.
variables:
enabled:
description: >
Whether or not to enable trending searches.
type: Boolean
default: false
max-suggestions:
description: The number of maximum suggestions.
type: Int
default: 4
recent-searches:
description: Enables recent searches.
variables:
enabled:
description: >
Whether or not to enable recent searches.
type: Boolean
default: false
max-suggestions:
description: The number of maximum suggestions.
type: Int
default: 4
top-sites-suggestions:
description: Enables top sites suggestions.
variables:
enabled:
description: >
Whether or not to enable top sites suggestions.
type: Boolean
default: false
max-suggestions:
description: The number of maximum suggestions.
type: Int
default: 4
search-suggestions-on-homepage:
description: Enables search suggestions on homepage.
variables:
enabled:
description: >
Whether or not to enable search suggestions on homepage.
type: Boolean
default: false
homepage-as-new-tab:
description: Enables homepage as a a new tab.
variables:
enabled:
description: >
Whether or not to enable homepage as a new tab
type: Boolean
default: false
homepage-search-bar:
description: Enables the homepage search bar.
variables:
enabled:
description: >
Whether or not to enable the homepage search bar.
type: Boolean
default: false
homepage-hide-frecent-top-sites:
description: Hides frecent top sites on the homepage.
variables:
enabled:
description: >
Whether or not to hide frecent top sites on the homepage.
type: Boolean
default: false
user-characteristics:
description: A feature for control user characteristic data collection
variables:
currentVersion:
description: The current collection version of the user characteristics.
type: Int
default: 0
bookmarks:
description: Feature for Bookmarks
variables:
new-compose-ui:
description: if true, enable new compose based UI
type: Boolean
default: false
networking:
description: Enables networking features
variables:
fetchPriorityEnabled:
description: >
Enables or disables network.fetchpriority.enabled preference.
type: Boolean
default: true
networkingBannedPorts:
description: "Networking (Necko) Banned Ports"
variables:
bannedPortList:
description: A comma-separated list of ports that Firefox will refuse to connect to. These ports will be appended to nsIOService gBadPortList
type: String
default: ""
pki:
description: Certificate verification configuration
variables:
certificateTransparencyMode:
description: >
What mode Certificate Transparency is in (0=disable, 1=telemetry only, 2=enforce).
type: Int
default: 0
defaults:
- channel: nightly
value:
certificateTransparencyMode: 2
- channel: developer
value:
certificateTransparencyMode: 2
- channel: beta
value:
certificateTransparencyMode: 2
pqcrypto:
description: Control the use of post-quantum key exchange mechanisms in TLS and HTTP/3.
variables:
postQuantumKeyExchangeEnabled:
description: >
Toggles the security.tls.enable_kyber and network.http.http3.enable_kyber preferences.
type: Option<Boolean>
default: null
javascript:
description: Enables Javascript Engine (Spidermonkey) features
variables:
parallelMarkingEnabled:
description: >
Enables or disables javascript.options.mem.gc_parallel_marking preference.
type: Boolean
default: false
encourage-search-cfr:
description: A feature that shows a CFR on first launch to encourage users to make a search
variables:
enabled:
description: When true, the CFR will show
type: Boolean
default: false
cfrText:
description: The text to show in the CFR
type: Text
default: ""
remote-search-configuration:
description: Feature to use search configurations from remote servers.
variables:
enabled:
description: >
Uses search configuration from remote servers .
type: Boolean
default: true
same-document-navigation-overrides-load-type:
description: Control whether the same document navigation overrides the load type.
variables:
enabled:
description: >
Overrides the loadType when it is a same document navigation
type: Boolean
default: true
force-disable-uri:
description: >
Disable overriding the loadType during same document navigation on the domain specified by this URI.
type: String
default: ""
defaults:
- channel: nightly
value:
enabled: false
force-disable-uri: ""
- channel: developer
value:
enabled: false
force-disable-uri: ""
doh:
description: Feature controlling DNS over HTTPS (DoH).
variables:
show-ui:
description: >
When `true`, include DoH settings in the settings UI.
type: Boolean
default: false
autoselect-enabled:
description: >
Controls the network.android_doh.autoselect_enabled pref and automatically chooses a DoH provider when Default Protection mode is selected.
type: Boolean
default: false
private-browsing-lock:
description: Allows enabling and disabling the private browsing mode lock via an authentication screen.
variables:
enabled:
description: >
Whether or not to enable private browsing mode lock.
type: Boolean
default: true
toolbar-redesign-option:
description: Control the visibility of toolbar redesign option in settings.
variables:
show-options:
description: >
Whether or not the toolbar redesign option is visible to the user. This allows the user to switch between simple and expanded toolbar.
type: Boolean
default: false
show-simple-customization:
description: >
Whether or not the simple toolbar customization option is visible to the user.
type: Boolean
default: false
show-expanded-customization:
description: >
Whether or not the expanded toolbar customization option is visible to the user.
type: Boolean
default: false
types:
objects: {}
enums:
HomeScreenSection:
description: The identifiers for the sections of the homescreen.
variants:
top-sites:
description: The frecency and pinned sites.
bookmarks:
description: The sites the user has bookmarked.
jump-back-in:
description: The tabs the user was looking immediately before being interrupted.
recent-explorations:
description: The tab groups
pocket:
description: The pocket section. This should only be available in the US.
pocket-sponsored-stories:
description: Subsection of the Pocket homescreen section which shows sponsored stories.
synced-tabs:
description: The synced tabs section of the homepage.
MR2022Section:
description: The identifiers for the sections of the MR 2022.
variants:
sync-cfr:
description: CFR for the first time you see a synced tab on the home screen.
wallpapers-selection-tool:
description: Wallpapers selection dialog tool for the home screen.
tcp-cfr:
description: CFR for the first time you use the browse with Total Cookie Protection on the browser screen.
tcp-feature:
description: Controls the Total Cookie Protection feature.
CookieBannersSection:
description: The identifiers for the sections of the MR 2022.
variants:
feature-ui:
description: An integer either 0 or 1 indicating if the UI for cookie banner handling should be visible,
0 to hide the UI and 1 to show the UI. The actual UI is composed by cookie banner section
in the settings page, the toolbar section and the re-engagement dialog.
feature-setting-value:
description: An integer either 0 or 1 indicating if cookie banner setting should be enabled or disabled,
0 for setting the value to disabled, 1 for enabling the setting with the value reject_all.
feature-setting-value-pbm:
description: An integer either 0 or 1 indicating if cookie banner setting should be enabled or disabled,
0 for setting the value to disabled, 1 for enabling the setting with the value reject_all.
feature-setting-detect-only:
description: An integer either 0 or 1 indicating if cookie banner detect only mode
should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting.
feature-setting-global-rules:
description: An integer either 0 or 1 indicating if cookie banner global rules
should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting.
feature-setting-global-rules-sub-frames:
description: An integer either 0 or 1 indicating if cookie banner global rules sub-frames
should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting.
QueryParameterStrippingSection:
description: The identifiers for the options for the Query Parameter Stripping feature.
variants:
query-parameter-stripping:
description: An integer either 0 or 1 indicating if query parameter stripping
should be enabled or disabled in normal mode. 0 for setting to be disabled,
and 1 for enabling the setting.
query-parameter-stripping-pmb:
description: An integer either 0 or 1 indicating if query parameter stripping
should be enabled or disabled in private mode. 0 for setting to be disabled,
and 1 for enabling the setting.
query-parameter-stripping-allow-list:
description: An string separated by commas indicating the sites where should
from query stripping should be exempted.
query-parameter-stripping-strip-list:
description: An string separated by commas indicating the list of query params
to be stripped from URIs. This list will be merged with records
coming from RemoteSettings.
OnboardingPanel:
description: The types of onboarding panels in the onboarding page
variants:
themes:
description: The themes onboarding panel where users pick themes
toolbar-placement:
description: The onboarding panel where users choose their toolbar placement (bottom or top)
sync:
description: The onboarding panel where users can sign in to sync
tcp:
description: The onboarding panel where users can choose their total cookie protection settings
privacy-notice:
description: The onboarding panel where users can tap to view our privacy notice.
SetupChecklistType:
description: An enum to represent the different experiment branches for the setup checklist.
variants:
collection-1:
description: The collection for the setup checklist that has 3 items.
collection-2:
description: The collection for the setup checklist that has 6 items.