Bug 1849073 - Part 1: Remove the Bookmark Search Dialog
[gecko.git] / mobile / android / fenix / app / nimbus.fml.yaml
blob18910af461bac1b63fc3d909d7d949d72e396843
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 import:
16   - path: ../../android-components/components/service/nimbus/messaging.fml.yaml
17     channel: release
18     features:
19       messaging:
20         - value:
21             triggers:
22               # Using attributes built into the Nimbus SDK
23               USER_RECENTLY_INSTALLED: days_since_install < 7
24               USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
25               USER_TIER_ONE_COUNTRY: ('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)
26               USER_EN_SPEAKER: "'en' in locale"
27               USER_ES_SPEAKER: "'es' in locale"
28               USER_DE_SPEAKER: "'de' in locale"
29               USER_FR_SPEAKER: "'fr' in locale"
30               DEVICE_ANDROID: os == 'Android'
31               DEVICE_IOS: os == 'iOS'
32               ALWAYS: "true"
33               NEVER: "false"
34               DAY_1_AFTER_INSTALL: days_since_install == 1
35               DAY_2_AFTER_INSTALL: days_since_install == 2
36               DAY_3_AFTER_INSTALL: days_since_install == 3
37               DAY_4_AFTER_INSTALL: days_since_install == 4
38               DAY_5_AFTER_INSTALL: days_since_install == 5
39               MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
41               # Using custom attributes for the browser
42               I_AM_DEFAULT_BROWSER: "is_default_browser"
43               I_AM_NOT_DEFAULT_BROWSER: "is_default_browser == false"
44               USER_ESTABLISHED_INSTALL: "number_of_app_launches >=4"
46               FUNNEL_PAID: "adjust_campaign != ''"
47               FUNNEL_ORGANIC: "adjust_campaign == ''"
49               # Using Glean events, specific to the browser
50               INACTIVE_1_DAY: "'app_launched'|eventLastSeen('Hours') >= 24"
51               INACTIVE_2_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 2"
52               INACTIVE_3_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 3"
53               INACTIVE_4_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 4"
54               INACTIVE_5_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 5"
56               # Has the user signed in the last 4 years
57               FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
58               FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
60               # https://mozilla-hub.atlassian.net/wiki/spaces/FJT/pages/11469471/Core+Active
61               USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
62               USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
63               USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
64               USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
66               LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
68             actions:
69               ENABLE_PRIVATE_BROWSING: ://enable_private_browsing
70               INSTALL_SEARCH_WIDGET: ://install_search_widget
71               MAKE_DEFAULT_BROWSER: ://make_default_browser
72               VIEW_BOOKMARKS: ://urls_bookmarks
73               VIEW_COLLECTIONS: ://home_collections
74               VIEW_HISTORY: ://urls_history
75               VIEW_HOMESCREEN: ://home
76               OPEN_SETTINGS_ACCESSIBILITY: ://settings_accessibility
77               OPEN_SETTINGS_ADDON_MANAGER: ://settings_addon_manager
78               OPEN_SETTINGS_DELETE_BROWSING_DATA: ://settings_delete_browsing_data
79               OPEN_SETTINGS_LOGINS: ://settings_logins
80               OPEN_SETTINGS_NOTIFICATIONS: ://settings_notifications
81               OPEN_SETTINGS_PRIVACY: ://settings_privacy
82               OPEN_SETTINGS_SEARCH_ENGINE: ://settings_search_engine
83               OPEN_SETTINGS_TRACKING_PROTECTION: ://settings_tracking_protection
84               OPEN_SETTINGS_WALLPAPERS: ://settings_wallpapers
85               OPEN_SETTINGS: ://settings
86               TURN_ON_SYNC: ://turn_on_sync
87             styles:
88               DEFAULT:
89                 priority: 50
90                 max-display-count: 5
91               SURVEY:
92                 priority: 55
93                 max-display-count: 1
94               PERSISTENT:
95                 priority: 50
96                 max-display-count: 20
97               WARNING:
98                 priority: 60
99                 max-display-count: 10
100               URGENT:
101                 priority: 100
102                 max-display-count: 10
103               NOTIFICATION:
104                 priority: 50
105                 max-display-count: 1
106             messages:
107               default-browser:
108                 text: default_browser_experiment_card_text
109                 surface: homescreen
110                 action: "MAKE_DEFAULT_BROWSER"
111                 trigger: [ "I_AM_NOT_DEFAULT_BROWSER","USER_ESTABLISHED_INSTALL" ]
112                 style: PERSISTENT
113                 button-label: preferences_set_as_default_browser
114               default-browser-notification:
115                 title: nimbus_notification_default_browser_title
116                 text: nimbus_notification_default_browser_text
117                 surface: notification
118                 style: NOTIFICATION
119                 trigger:
120                   - I_AM_NOT_DEFAULT_BROWSER
121                   - DAY_3_AFTER_INSTALL
122                 action: MAKE_DEFAULT_BROWSER
124         - channel: developer
125           value:
126             styles:
127               DEFAULT:
128                 priority: 50
129                 max-display-count: 100
130               EXPIRES_QUICKLY:
131                 priority: 100
132                 max-display-count: 1
133             notification-config:
134               refresh-interval: 120 # minutes (2 hours)
135   - path: ../../android-components/components/browser/engine-gecko/geckoview.fml.yaml
136     channel: release
137     features:
138       pdfjs:
139         - channel: developer
140           value: {
141           download-button: true,
142           open-in-app-button: true
143         }
145 features:
146   toolbar:
147     description: The searchbar/awesomebar that user uses to search.
148     variables:
149       toolbar-position-top:
150         description: If true, toolbar appears at top of the screen.
151         type: Boolean
152         default: false
153   homescreen:
154     description: The homescreen that the user goes to when they press home or new tab.
155     variables:
156       sections-enabled:
157         description: "This property provides a lookup table of whether or not the given section should be enabled.
158         If the section is enabled, it should be toggleable in the settings screen, and on by default."
159         type: Map<HomeScreenSection, Boolean>
160         default:
161           {
162             "top-sites": true,
163             "jump-back-in": true,
164             "recently-saved": true,
165             "recent-explorations": true,
166             "pocket": true,
167             "pocket-sponsored-stories": true,
168           }
169     defaults:
170       - channel: nightly
171         value: {
172           "sections-enabled": {
173             "top-sites": true,
174             "jump-back-in": true,
175             "recently-saved": true,
176             "recent-explorations": true,
177             "pocket": true,
178           }
179         }
180   nimbus-validation:
181     description: "A feature that does not correspond to an application feature suitable for showing
182     that Nimbus is working. This should never be used in production."
183     variables:
184       settings-title:
185         description: The title of displayed in the Settings screen and app menu.
186         type: Text
187         default: browser_menu_settings
188       settings-punctuation:
189         description: The emoji displayed in the Settings screen title.
190         type: String
191         default: ""
192       settings-icon:
193         description: The drawable displayed in the app menu for Settings
194         type: String
195         default: mozac_ic_settings
196   search-term-groups:
197     description: A feature allowing the grouping of URLs around the search term that it came from.
198     variables:
199       enabled:
200         description: If true, the feature shows up on the homescreen and on the new tab screen.
201         type: Boolean
202         default: false
203     defaults:
204       - channel: nightly
205         value:
206           enabled: true
207       - channel: developer
208         value:
209           enabled: true
210   mr2022:
211     description: Features for MR 2022.
212     variables:
213       sections-enabled:
214         description: "This property provides a lookup table of whether or not the given section should be enabled."
215         type: Map<MR2022Section, Boolean>
216         default:
217           {
218             "home-onboarding-dialog-existing-users": true,
219             "sync-cfr": true,
220             "wallpapers-selection-tool": true,
221             "jump-back-in-cfr": true,
222             "tcp-cfr": true,
223             "tcp-feature": true,
224           }
225     defaults:
226       - channel: developer
227         value: {
228           "sections-enabled": {
229             "home-onboarding-dialog-existing-users": true,
230             "sync-cfr": true,
231             "wallpapers-selection-tool": true,
232             "jump-back-in-cfr": true,
233           }
234         }
236   cookie-banners:
237     description: Features for cookie banner handling.
238     variables:
239       sections-enabled:
240         description: "This property provides a lookup table of whether or not the given section should be enabled."
241         type: Map<CookieBannersSection, Int>
242         default:
243           {
244             "feature-ui": 0,
245             "feature-setting-value": 0,
246             "dialog-re-engage-time": 4
247           }
248     defaults:
249       - channel: developer
250         value: {
251           "sections-enabled": {
252             "feature-ui": 1,
253             "feature-setting-value": 0,
254             "dialog-re-engage-time": 4
255           }
256         }
257       - channel: nightly
258         value: {
259           "sections-enabled": {
260             "feature-ui": 1,
261             "feature-setting-value": 0,
262             "dialog-re-engage-time": 4
263           }
264         }
265   unified-search:
266     description: A feature allowing user to easily search for specified results directly in the search bar.
267     variables:
268       enabled:
269         description: If true, the feature shows up in the search bar.
270         type: Boolean
271         default: true
273   extensions-process:
274     description: A feature to rollout the extensions process.
275     variables:
276       enabled:
277         description: If true, the extensions process is enabled.
278         type: Boolean
279         default: false
280     defaults:
281       - channels:
282           - developer
283           - nightly
284         value:
285           enabled: true
287   growth-data:
288     description: A feature measuring campaign growth data
289     variables:
290       enabled:
291         description: If true, the feature is active
292         type: Boolean
293         default: false
294     defaults:
295       - channel: release
296         value:
297           enabled: true
299   re-engagement-notification:
300     description: A feature that shows the re-engagement notification if the user is inactive.
301     variables:
302       enabled:
303         description: If true, the re-engagement notification is shown to the inactive user.
304         type: Boolean
305         default: false
306       type:
307         description: The type of re-engagement notification that is shown to the inactive user.
308         type: Int
309         default: 0
311   pre-permission-notification-prompt:
312     description: A feature that shows the pre-permission notification prompt.
313     variables:
314       enabled:
315         description: if true, the pre-permission notification prompt is shown to the user.
316         type: Boolean
317         default: false
319   onboarding:
320     description: "A feature that configures the new user onboarding page.
321     Note that onboarding is a **first run** feature, and should only be modified by first run experiments."
322     variables:
323       order:
324         description: Determines the order of the onboarding page panels
325         type: List<OnboardingPanel>
326         default: ["themes", "toolbar-placement", "sync", "tcp", "privacy-notice"]
328   glean:
329     description: "A feature that provides server-side configurations for Glean metrics (aka Server Knobs)."
330     variables:
331       metrics-enabled:
332         description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
333         type: Map<String, Boolean>
334         default: {}
336   splash-screen:
337     description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run."
338     variables:
339       enabled:
340         description: "If true, the feature is active."
341         type: Boolean
342         default: false
343       maximum_duration_ms:
344         description: The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.
345         type: Int
346         default: 0
348   shopping-experience:
349     description: A feature that shows product review quality information.
350     variables:
351       enabled:
352         description: if true, the shopping experience feature is shown to the user.
353         type: Boolean
354         default: false
355       product-recommendations:
356         description: if true, recommended products feature is enabled to be shown to the user based on their preference.
357         type: Boolean
358         default: false
359     defaults:
360       - channel: developer
361         value:
362           enabled: true
364   print:
365     description: A feature for printing from the share or browser menu.
366     variables:
367       share-print-enabled:
368         description: If true, a print button from the share menu is available.
369         type: Boolean
370         default: true
371       browser-print-enabled:
372         description: If true, a print button from the browser menu is available.
373         type: Boolean
374         default: true
376   search-extra-params:
377     description: A feature that provides additional args for search.
378     variables:
379       enabled:
380         description: If true, the feature is active.
381         type: Boolean
382         default: false
383       search-engine:
384         description: The search engine name.
385         type: String
386         default: ""
387       feature-enabler:
388         description: The feature enabler param name with arg, NOTE this map could be empty.
389         type: Map<String, String>
390         default: {}
391       channel-id:
392         description: The channel Id param name with arg.
393         type: Map<String, String>
394         default: {}
396   fx-suggest:
397     description: A feature that provides Firefox Suggest search suggestions.
398     variables:
399       enabled:
400         description: >
401           Whether the feature is enabled. When Firefox Suggest is enabled,
402           Firefox will download and store new search suggestions in the
403           background, and show additional Search settings to control which
404           suggestions appear in the awesomebar. When Firefox Suggest is
405           disabled, Firefox will not download new suggestions, and hide the
406           additional Search settings.
407         type: Boolean
408         default: false
409     defaults:
410       - channel: developer
411         value:
412           enabled: true
413 types:
414   objects: {}
416   enums:
417     HomeScreenSection:
418       description: The identifiers for the sections of the homescreen.
419       variants:
420         top-sites:
421           description: The frecency and pinned sites.
422         recently-saved:
423           description: The sites the user has bookmarked recently.
424         jump-back-in:
425           description: The tabs the user was looking immediately before being interrupted.
426         recent-explorations:
427           description: The tab groups
428         pocket:
429           description: The pocket section. This should only be available in the US.
430         pocket-sponsored-stories:
431           description: Subsection of the Pocket homescreen section which shows sponsored stories.
433     MR2022Section:
434       description: The identifiers for the sections of the MR 2022.
435       variants:
436         home-onboarding-dialog-existing-users:
437           description: Home onboarding dialog for upgraded users.
438         sync-cfr:
439           description: CFR for the first time you see a synced tab on the home screen.
440         wallpapers-selection-tool:
441           description: Wallpapers selection dialog tool for the home screen.
442         jump-back-in-cfr:
443           description: Jump back-in onboarding message.
444         tcp-cfr:
445           description: CFR for the first time you use the browse with Total Cookie Protection on the browser screen.
446         tcp-feature:
447           description: Controls the Total Cookie Protection feature.
448     CookieBannersSection:
449       description: The identifiers for the sections of the MR 2022.
450       variants:
451         feature-ui:
452           description: An integer either 0 or 1 indicating if the UI for cookie banner handling should be visible,
453             0 to hide the UI and 1 to show the UI. The actual UI is composed by cookie banner section
454             in the settings page, the toolbar section and the re-engagement dialog.
455         feature-setting-value:
456           description: An integer either 0 or 1 indicating if cookie banner setting should be enabled or disabled,
457              0 for setting the value to disabled, 1  for enabling the setting with the value reject_all.
458         dialog-re-engage-time:
459           description: An integer indicating the number of hours that needs to happen before
460             the re-engagement dialog shows again since the last seen, for example if set to 4
461             that means if the users has seen the dialog, it will see it 4 hours later.
462     OnboardingPanel:
463       description: The types of onboarding panels in the onboarding page
464       variants:
465         themes:
466           description: The themes onboarding panel where users pick themes
467         toolbar-placement:
468           description: The onboarding panel where users choose their toolbar placement (bottom or top)
469         sync:
470           description: The onboarding panel where users can sign in to sync
471         tcp:
472           description: The onboarding panel where users can choose their total cookie protection settings
473         privacy-notice:
474           description: The onboarding panel where users can tap to view our privacy notice.