Backed out changeset 1893713e1d17 (bug 1930292) for causing bc failures @ browser_fin...
[gecko.git] / mobile / android / fenix / app / nimbus.fml.yaml
blobe70a2a99fe6656144f3eb04134bce81142ea78a6
1 ---
2 about:
3   description: Nimbus Feature Manifest for Fenix (Firefox Android)
4   kotlin:
5     package: org.mozilla.fenix
6     class: .nimbus.FxNimbus
7 channels:
8   - release
9   - beta
10   - nightly
11   - developer
12 includes:
13   - onboarding.fml.yaml
14   - pbm.fml.yaml
15   - messaging-fenix.fml.yaml
16 import:
17   - path: ../../android-components/components/browser/engine-gecko/geckoview.fml.yaml
18     channel: release
19     features:
20       pdfjs:
21         - channel: developer
22           value: {
23           download-button: true,
24           open-in-app-button: true
25         }
26   - path: ../../android-components/components/feature/fxsuggest/fxsuggest.fml.yaml
27     channel: release
28     features:
29       awesomebar-suggestion-provider:
30         - value:
31             available-suggestion-types: {
32               "amp": true,
33               "ampMobile": false,
34               "wikipedia": true,
35             }
37 features:
38   homescreen:
39     description: The homescreen that the user goes to when they press home or new tab.
40     variables:
41       sections-enabled:
42         description: "This property provides a lookup table of whether or not the given section should be enabled.
43         If the section is enabled, it should be toggleable in the settings screen, and on by default."
44         type: Map<HomeScreenSection, Boolean>
45         default:
46           {
47             "top-sites": true,
48             "jump-back-in": true,
49             "bookmarks": true,
50             "recent-explorations": true,
51             "pocket": true,
52             "pocket-sponsored-stories": true,
53           }
54     defaults:
55       - channel: nightly
56         value: {
57           "sections-enabled": {
58             "top-sites": true,
59             "jump-back-in": true,
60             "bookmarks": true,
61             "recent-explorations": true,
62             "pocket": true,
63           }
64         }
65   nimbus-validation:
66     description: "A feature that does not correspond to an application feature suitable for showing
67     that Nimbus is working. This should never be used in production."
68     variables:
69       settings-title:
70         description: The title of displayed in the Settings screen and app menu.
71         type: Text
72         default: browser_menu_settings
73       settings-punctuation:
74         description: The emoji displayed in the Settings screen title.
75         type: String
76         default: ""
77       settings-icon:
78         description: The drawable displayed in the app menu for Settings
79         type: String
80         default: mozac_ic_settings
81   search-term-groups:
82     description: A feature allowing the grouping of URLs around the search term that it came from.
83     variables:
84       enabled:
85         description: If true, the feature shows up on the homescreen and on the new tab screen.
86         type: Boolean
87         default: false
88     defaults:
89       - channel: nightly
90         value:
91           enabled: true
92       - channel: developer
93         value:
94           enabled: true
95   mr2022:
96     description: Features for MR 2022.
97     variables:
98       sections-enabled:
99         description: "This property provides a lookup table of whether or not the given section should be enabled."
100         type: Map<MR2022Section, Boolean>
101         default:
102           {
103             "home-onboarding-dialog-existing-users": true,
104             "sync-cfr": true,
105             "wallpapers-selection-tool": true,
106             "jump-back-in-cfr": true,
107             "tcp-cfr": true,
108             "tcp-feature": true,
109           }
110     defaults:
111       - channel: developer
112         value: {
113           "sections-enabled": {
114             "home-onboarding-dialog-existing-users": true,
115             "sync-cfr": true,
116             "wallpapers-selection-tool": true,
117             "jump-back-in-cfr": true,
118           }
119         }
120   query-parameter-stripping:
121     description: Features for query parameter stripping.
122     variables:
123       sections-enabled:
124         description: "This property provides a lookup table of whether or not the given section should be enabled."
125         type: Map<QueryParameterStrippingSection, String>
126         default:
127           {
128             "query-parameter-stripping": "0",
129             "query-parameter-stripping-pmb": "0",
130             "query-parameter-stripping-allow-list": "",
131             "query-parameter-stripping-strip-list": "",
132           }
133     defaults:
134       - channel: developer
135         value: {
136           "sections-enabled": {
137             "query-parameter-stripping": "0",
138             "query-parameter-stripping-pmb": "0",
139             "query-parameter-stripping-allow-list": "",
140             "query-parameter-stripping-strip-list": "",
141           }
142         }
143       - channel: nightly
144         value: {
145           "sections-enabled": {
146             "query-parameter-stripping": "0",
147             "query-parameter-stripping-pmb": "0",
148             "query-parameter-stripping-allow-list": "",
149             "query-parameter-stripping-strip-list": "",
150           }
151         }
152   cookie-banners:
153     description: Features for cookie banner handling.
154     variables:
155       sections-enabled:
156         description: "This property provides a lookup table of whether or not the given section should be enabled."
157         type: Map<CookieBannersSection, Int>
158         default:
159           {
160             "feature-ui": 0,
161             "feature-setting-value": 0,
162             "feature-setting-value-pbm": 0,
163             "feature-setting-detect-only": 0,
164             "feature-setting-global-rules": 1,
165             "feature-setting-global-rules-sub-frames": 1,
166           }
167     defaults:
168       - channel: developer
169         value: {
170           "sections-enabled": {
171             "feature-ui": 1,
172             "feature-setting-value": 0,
173             "feature-setting-value-pbm": 1,
174             "feature-setting-detect-only": 0,
175             "feature-setting-global-rules": 1,
176             "feature-setting-global-rules-sub-frames": 1,
177           }
178         }
179       - channel: nightly
180         value: {
181           "sections-enabled": {
182             "feature-ui": 1,
183             "feature-setting-value": 0,
184             "feature-setting-value-pbm": 1,
185             "feature-setting-detect-only": 0,
186             "feature-setting-global-rules": 1,
187             "feature-setting-global-rules-sub-frames": 1,
188           }
189         }
190       - channel: beta
191         value: {
192           "sections-enabled": {
193             "feature-ui": 1,
194             "feature-setting-value": 0,
195             "feature-setting-value-pbm": 1,
196             "feature-setting-detect-only": 0,
197             "feature-setting-global-rules": 1,
198             "feature-setting-global-rules-sub-frames": 1,
199           }
200         }
202   growth-data:
203     description: A feature measuring campaign growth data
204     variables:
205       enabled:
206         description: If true, the feature is active
207         type: Boolean
208         default: false
209     defaults:
210       - channel: release
211         value:
212           enabled: true
214   re-engagement-notification:
215     description: A feature that shows the re-engagement notification if the user is inactive.
216     variables:
217       enabled:
218         description: If true, the re-engagement notification is shown to the inactive user.
219         type: Boolean
220         default: false
221       type:
222         description: The type of re-engagement notification that is shown to the inactive user.
223         type: Int
224         default: 0
226   onboarding:
227     description: "A feature that configures the new user onboarding page.
228     Note that onboarding is a **first run** feature, and should only be modified by first run experiments."
229     variables:
230       order:
231         description: Determines the order of the onboarding page panels
232         type: List<OnboardingPanel>
233         default: ["themes", "toolbar-placement", "sync", "tcp", "privacy-notice"]
235   one-click-search:
236     description: Enable/disable the one click search feature.
237     variables:
238       enabled:
239         description: If true, the one click search will be enabled.
240         type: Boolean
241         default: false
243   glean:
244     description: "A feature that provides server-side configurations for Glean metrics (aka Server Knobs)."
245     allow-coenrollment: true
246     variables:
247       metrics-enabled:
248         description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
249         type: Map<String, Boolean>
250         default: {}
251       enable-event-timestamps:
252         description: "Enables precise event timestamps for Glean events"
253         type: Boolean
254         default: true
255       delay-ping-lifetime-io:
256         description: "Glean will delay io for ping lifetime metrics"
257         type: Boolean
258         default: true
259       ping-lifetime-threshold:
260         description: "Write count threshold when to auto-flush"
261         type: Int
262         default: 1000
263       ping-lifetime-max-time:
264         description: "After what time to auto-flush"
265         type: Int
266         default: 2000
268   splash-screen:
269     description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run."
270     variables:
271       enabled:
272         description: "If true, the feature is active."
273         type: Boolean
274         default: false
275       maximum_duration_ms:
276         description: The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.
277         type: Int
278         default: 0
280   alternative-app-launcher-icon:
281     description: A feature that changes the app launcher icon background color.
282     variables:
283       enabled:
284         description: If true, the feature is active.
285         type: Boolean
286         default: false
287       reset-to-default:
288         description: >
289           If true use the default icon, if false use the alternative icon.
290           This is required to 'reset' the icon for enrolled users once the initial experiment is complete.
291         type: Boolean
292         default: false
294   shopping-experience:
295     description: A feature that shows product review quality information.
296     variables:
297       enabled:
298         description: if true, the shopping experience feature is shown to the user.
299         type: Boolean
300         default: false
301       product-recommendations:
302         description: if true, recommended products feature is enabled to be shown to the user based on their preference.
303         type: Boolean
304         default: false
305       product-recommendations-exposure:
306         description: if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled.
307         type: Boolean
308         default: false
309     defaults:
310       - channel: developer
311         value:
312           enabled: true
313           product-recommendations: true
314           product-recommendations-exposure: true
316   print:
317     description: A feature for printing from the share or browser menu.
318     variables:
319       share-print-enabled:
320         description: If true, a print button from the share menu is available.
321         type: Boolean
322         default: true
323       browser-print-enabled:
324         description: If true, a print button from the browser menu is available.
325         type: Boolean
326         default: true
328   search-extra-params:
329     description: A feature that provides additional args for search.
330     variables:
331       enabled:
332         description: If true, the feature is active.
333         type: Boolean
334         default: false
335       search-engine:
336         description: The search engine name.
337         type: String
338         default: ""
339       feature-enabler:
340         description: The feature enabler param name with arg, NOTE this map could be empty.
341         type: Map<String, String>
342         default: {}
343       channel-id:
344         description: The channel Id param name with arg.
345         type: Map<String, String>
346         default: {}
348   fx-suggest:
349     description: A feature that provides Firefox Suggest search suggestions.
350     variables:
351       enabled:
352         description: >
353           Whether the feature is enabled. When Firefox Suggest is enabled,
354           Firefox will download and store new search suggestions in the
355           background, and show additional Search settings to control which
356           suggestions appear in the awesomebar. When Firefox Suggest is
357           disabled, Firefox will not download new suggestions, and hide the
358           additional Search settings.
359         type: Boolean
360         default: false
361       boost-amp-wiki:
362         description: >
363           The feature boost wiki and AMP suggestions to the top of its group.
364         type: Boolean
365         default: false
366     defaults:
367       - channel: developer
368         value:
369           enabled: true
370           boost-amp-wiki: true
371       - channel: nightly
372         value:
373           enabled: true
375   nimbus-is-ready:
376     description: >
377       A feature that provides the number of Nimbus is_ready events to send
378       when Nimbus finishes launching.
379     variables:
380       event-count:
381         description: The number of events that should be sent.
382         type: Int
383         default: 1
385   translations:
386     description: The feature that allows on-device translations of web content.
387     variables:
388       main-flow-toolbar-enabled:
389         description: >
390           Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)
391         type: Boolean
392         default: true
393       main-flow-browser-menu-enabled:
394         description: >
395           Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)
396         type: Boolean
397         default: true
398       page-settings-enabled:
399         description: >
400           Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.)
401           'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.
402         type: Boolean
403         default: true
404       global-settings-enabled:
405         description: >
406           Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.)
407           'page-settings-enabled' must also be enabled for users to access this feature.
408         type: Boolean
409         default: true
410       global-lang-settings-enabled:
411         description: >
412           Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.)
413           'global-settings-enabled' must also be enabled for users to access this feature.
414         type: Boolean
415         default: true
416       global-site-settings-enabled:
417         description: >
418           Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.)
419           'global-settings-enabled' must also be enabled for users to access this feature.
420         type: Boolean
421         default: true
422       downloads-enabled:
423         description: >
424           Show the global language model download options entry point for translations. ('Download languages' on the global settings view.)
425           'global-settings-enabled' must also be enabled for users to access this feature.
426         type: Boolean
427         default: true
429   navigation-toolbar:
430     description: Feature for navigation toolbar.
431     variables:
432       enabled:
433         description: >
434           When the feature is enabled then the user will see the new navigation toolbar.
435         type: Boolean
436         default: false
437     defaults:
438       - channel: developer
439         value:
440           enabled: true
441       - channel: nightly
442         value:
443           enabled: true
445   remote-tab-management:
446     description: >
447       Features that let users manage tabs on other devices that are
448       connected to the same Mozilla account.
449     variables:
450       close-tabs-enabled:
451         description: >
452           Whether the feature to close synced tabs is enabled. When enabled,
453           this device will allow other devices to close tabs that are open on this device, and
454           show a "close" button for tabs that are currently open on other supported devices
455           in the synced tabs tray.
456         type: Boolean
457         default: true
459   ship:
460     description: The feature that controls Session History in Parent (SHIP) in Gecko.
461     variables:
462       disabled:
463         description: >
464           Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when
465           set to true.
466         type: Boolean
467         default: true
469   fission:
470     description: The feature that controls whether fission is enabled or not in Gecko.
471     variables:
472       enabled:
473         description: >
474           Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when
475           set to false.
476         type: Boolean
477         default: false
479   suggest-shipped-domains:
480     description: Feature that suggests domains from the shipped domain list.
481     variables:
482       enabled:
483         description: >
484           Suggest domains from the shipped domain list.
485         type: Boolean
486         default: true
487     defaults:
488       - channel: nightly
489         value:
490           enabled: false
491       - channel: developer
492         value:
493           enabled: false
495   fingerprinting-protection:
496     description: Control Fingerprinting Protection
497     variables:
498       enabled:
499         description: If true, the feature is active.
500         type: Boolean
501         default: false
502       enabled-normal:
503         description: >
504           Enables / disables fingerprinting protection in normal browsing mode.
505         type: Boolean
506         default: false
507       enabled-private:
508         description: >
509           Enables / disables fingerprinting protection in private browsing mode.
510         type: Boolean
511         default: true
512       overrides:
513         description: >
514           The protection overrides to add or remove fingerprinting protection
515           targets. Please check RFPTargets.inc for all supported targets.
516         type: String
517         default: ""
518       fdlibm-math:
519         description: >
520           Uses a different math backend for Math.sin/cos/tan in JavaScript that
521           exposes less entropy
522         type: Boolean
523         default: false
525   third-party-cookie-blocking:
526     description: Control third-party cookie blocking.
527     variables:
528       enabled:
529         description: If true, the feature is active.
530         type: Boolean
531         default: false
532       enabled-normal:
533         description: >
534           Enables / disables third-party cookie blocking in normal browsing mode.
535         type: Boolean
536         default: false
537       enabled-private:
538         description: >
539           Enables / disables third-party cookie blocking in private browsing mode.
540         type: Boolean
541         default: true
543   menu-redesign:
544     description: Control the new menu redesign.
545     variables:
546       enabled:
547         description: If true, the new menu redesign is available.
548         type: Boolean
549         default: false
550       report-site-issue:
551         description: If true, report site issue menu item and preview is available.
552         type: Boolean
553         default: true
554     defaults:
555       - channel: release
556         value:
557           report-site-issue: false
559   microsurveys:
560     description: Feature for microsurveys.
561     variables:
562       enabled:
563         description: >
564           When the feature is enabled then microsurveys can be used.
565         type: Boolean
566         default: true
568   set-as-default-prompt:
569     description: >
570       Displays native default browser prompt to existing users.
571     variables:
572       enabled:
573         description: >
574           When the feature is enabled then the Set as default prompt can be triggered for
575           existing users.
576         type: Boolean
577         default: true
578       app-cold-starts-between-prompts:
579         description: >
580           Minimum number of app cold starts before the next prompt should be displayed to
581           the user.
582         type: Int
583         default: 4
584       days-between-prompts:
585         description: >
586           Minimum number of days between displays of Set as default prompt.
587         type: Int
588         default: 14
589       max-number-of-times-to-display:
590         description: >
591           Maximum number of time the prompt should be displayed.
592         type: Int
593         default: 3
595   user-characteristics:
596     description: A feature for control user characteristic data collection
597     variables:
598       currentVersion:
599         description: The current collection version of the user characteristics.
600         type: Int
601         default: 0
603   bookmarks:
604     description: Feature for Bookmarks
605     variables:
606       new-compose-ui:
607         description: if true, enable new compose based UI
608         type: Boolean
609         default: false
611   networking:
612     description: Enables networking features
613     variables:
614       fetchPriorityEnabled:
615         description: >
616           Enables or disables network.fetchpriority.enabled preference.
617         type: Boolean
618         default: true
620   javascript:
621     description: Enables Javascript Engine (Spidermonkey) features
622     variables:
623       parallelMarkingEnabled:
624         description: >
625           Enables or disables javascript.options.mem.gc_parallel_marking preference.
626         type: Boolean
627         default: false
629 types:
630   objects: {}
632   enums:
633     HomeScreenSection:
634       description: The identifiers for the sections of the homescreen.
635       variants:
636         top-sites:
637           description: The frecency and pinned sites.
638         bookmarks:
639           description: The sites the user has bookmarked.
640         jump-back-in:
641           description: The tabs the user was looking immediately before being interrupted.
642         recent-explorations:
643           description: The tab groups
644         pocket:
645           description: The pocket section. This should only be available in the US.
646         pocket-sponsored-stories:
647           description: Subsection of the Pocket homescreen section which shows sponsored stories.
649     MR2022Section:
650       description: The identifiers for the sections of the MR 2022.
651       variants:
652         home-onboarding-dialog-existing-users:
653           description: Home onboarding dialog for upgraded users.
654         sync-cfr:
655           description: CFR for the first time you see a synced tab on the home screen.
656         wallpapers-selection-tool:
657           description: Wallpapers selection dialog tool for the home screen.
658         jump-back-in-cfr:
659           description: Jump back-in onboarding message.
660         tcp-cfr:
661           description: CFR for the first time you use the browse with Total Cookie Protection on the browser screen.
662         tcp-feature:
663           description: Controls the Total Cookie Protection feature.
664     CookieBannersSection:
665       description: The identifiers for the sections of the MR 2022.
666       variants:
667         feature-ui:
668           description: An integer either 0 or 1 indicating if the UI for cookie banner handling should be visible,
669             0 to hide the UI and 1 to show the UI. The actual UI is composed by cookie banner section
670             in the settings page, the toolbar section and the re-engagement dialog.
671         feature-setting-value:
672           description: An integer either 0 or 1 indicating if cookie banner setting should be enabled or disabled,
673              0 for setting the value to disabled, 1  for enabling the setting with the value reject_all.
674         feature-setting-value-pbm:
675           description: An integer either 0 or 1 indicating if cookie banner setting should be enabled or disabled,
676             0 for setting the value to disabled, 1  for enabling the setting with the value reject_all.
677         feature-setting-detect-only:
678           description: An integer either 0 or 1 indicating if cookie banner detect only mode
679             should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting.
680         feature-setting-global-rules:
681           description: An integer either 0 or 1 indicating if cookie banner global rules
682             should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting.
683         feature-setting-global-rules-sub-frames:
684           description: An integer either 0 or 1 indicating if cookie banner global rules sub-frames
685             should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting.
687     QueryParameterStrippingSection:
688       description: The identifiers for the options for the Query Parameter Stripping feature.
689       variants:
690         query-parameter-stripping:
691           description: An integer either 0 or 1 indicating if query parameter stripping
692             should be enabled or disabled in normal mode. 0 for setting to be disabled,
693             and 1 for enabling the setting.
694         query-parameter-stripping-pmb:
695           description: An integer either 0 or 1 indicating if query parameter stripping
696             should be enabled or disabled in private mode. 0 for setting to be disabled,
697             and 1 for enabling the setting.
698         query-parameter-stripping-allow-list:
699           description: An string separated by commas indicating the sites where should
700             from query stripping should be exempted.
701         query-parameter-stripping-strip-list:
702           description: An string separated by commas indicating the list of query params
703             to be stripped from URIs. This list will be merged with records
704             coming from RemoteSettings.
706     OnboardingPanel:
707       description: The types of onboarding panels in the onboarding page
708       variants:
709         themes:
710           description: The themes onboarding panel where users pick themes
711         toolbar-placement:
712           description: The onboarding panel where users choose their toolbar placement (bottom or top)
713         sync:
714           description: The onboarding panel where users can sign in to sync
715         tcp:
716           description: The onboarding panel where users can choose their total cookie protection settings
717         privacy-notice:
718           description: The onboarding panel where users can tap to view our privacy notice.