[fenix] Closes https://github.com/mozilla-mobile/fenix/issues/26446: add wallpaper...
[gecko.git] / mobile / android / fenix / nimbus.fml.yaml
blob241adf9b7c456fcf5fff26a750f8791ddc5c1e31
1 ---
2 channels:
3   - release
4   - beta
5   - nightly
6   - developer
7 features:
8   homescreen:
9     description: The homescreen that the user goes to when they press home or new tab.
10     variables:
11       sections-enabled:
12         description: "This property provides a lookup table of whether or not the given section should be enabled.
13         If the section is enabled, it should be toggleable in the settings screen, and on by default."
14         type: Map<HomeScreenSection, Boolean>
15         default:
16           {
17             "top-sites": true,
18             "jump-back-in": true,
19             "recently-saved": true,
20             "recent-explorations": true,
21             "pocket": true,
22             "contile-top-sites": false,
23           }
24     defaults:
25       - channel: nightly
26         value: {
27           "sections-enabled": {
28             "top-sites": true,
29             "jump-back-in": true,
30             "recently-saved": true,
31             "recent-explorations": true,
32             "pocket": true,
33             "contile-top-sites": false,
34           }
35         }
36   onboarding:
37     description: The onboarding features displayed on homescreen.
38     variables:
39       sections-enabled:
40         description: "This property provides a lookup table of whether or not the given section should be enabled."
41         type: Map<OnboardingSection, Boolean>
42         default:
43           {
44             "sync-cfr": false,
45             "wallpapers": false
46           }
47     defaults:
48       - channel: nightly
49         value: {
50           "sections-enabled": {
51             "sync-cfr": false,
52             "wallpapers": false
53           }
54         }
55       - channel: developer
56         value: {
57           "sections-enabled": {
58             "sync-cfr": false,
59             "wallpapers": true
60           }
61         }
62   nimbus-validation:
63     description: "A feature that does not correspond to an application feature suitable for showing
64     that Nimbus is working. This should never be used in production."
65     variables:
66       settings-title:
67         description: The title of displayed in the Settings screen and app menu.
68         type: Text
69         default: browser_menu_settings
70       settings-punctuation:
71         description: The emoji displayed in the Settings screen title.
72         type: String
73         default: ""
74       settings-icon:
75         description: The drawable displayed in the app menu for Settings
76         type: String
77         default: mozac_ic_settings
78   search-term-groups:
79     description: A feature allowing the grouping of URLs around the search term that it came from.
80     variables:
81       enabled:
82         description: If true, the feature shows up on the homescreen and on the new tab screen.
83         type: Boolean
84         default: false
85     defaults:
86       - channel: nightly
87         value:
88           enabled: true
89       - channel: developer
90         value:
91           enabled: true
92   messaging:
93     description: |
94       Configuration for the messaging system.
96       In practice this is a set of growable lookup tables for the
97       message controller to piece together.
99     variables:
100       message-under-experiment:
101         description: Id or prefix of the message under experiment.
102         type: Option<String>
103         default: null
105       messages:
106         description: A growable collection of messages
107         type: Map<String, MessageData>
108         default: {}
110       triggers:
111         description: >
112           A collection of out the box trigger
113           expressions. Each entry maps to a
114           valid JEXL expression.
115         type: Map<String, String>
116         default: {}
117       styles:
118         description: >
119           A map of styles to configure message
120           appearance.
121         type: Map<String, StyleData>
122         default: {}
124       actions:
125         type: Map<String, String>
126         description: A growable map of action URLs.
127         default: {}
128       on-control:
129         type: ControlMessageBehavior
130         description: What should be displayed when a control message is selected.
131         default: show-next-message
132     defaults:
133       - value:
134           triggers:
135             USER_RECENTLY_INSTALLED: days_since_install < 7
136             USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
137             USER_TIER_ONE_COUNTRY: ('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)
138             USER_EN_SPEAKER: "'en' in locale"
139             USER_DE_SPEAKER: "'de' in locale"
140             USER_FR_SPEAKER: "'fr' in locale"
141             DEVICE_ANDROID: os == 'Android'
142             DEVICE_IOS: os == 'iOS'
143             ALWAYS: "true"
144             NEVER: "false"
145             I_AM_DEFAULT_BROWSER: "is_default_browser_string == 'true'"
146             I_AM_NOT_DEFAULT_BROWSER: "is_default_browser_string == 'false'"
147             USER_ESTABLISHED_INSTALL: "number_of_app_launches >=4"
148           actions:
149             ENABLE_PRIVATE_BROWSING: ://enable_private_browsing
150             INSTALL_SEARCH_WIDGET: ://install_search_widget
151             MAKE_DEFAULT_BROWSER: ://make_default_browser
152             VIEW_BOOKMARKS: ://urls_bookmarks
153             VIEW_COLLECTIONS: ://home_collections
154             VIEW_HISTORY: ://urls_history
155             VIEW_HOMESCREEN: ://home
156             OPEN_SETTINGS_ACCESSIBILITY: ://settings_accessibility
157             OPEN_SETTINGS_ADDON_MANAGER: ://settings_addon_manager
158             OPEN_SETTINGS_DELETE_BROWSING_DATA: ://settings_delete_browsing_data
159             OPEN_SETTINGS_LOGINS: ://settings_logins
160             OPEN_SETTINGS_NOTIFICATIONS: ://settings_notifications
161             OPEN_SETTINGS_PRIVACY: ://settings_privacy
162             OPEN_SETTINGS_SEARCH_ENGINE: ://settings_search_engine
163             OPEN_SETTINGS_TRACKING_PROTECTION: ://settings_tracking_protection
164             OPEN_SETTINGS_WALLPAPERS: ://settings_wallpapers
165             OPEN_SETTINGS: ://settings
166             TURN_ON_SYNC: ://turn_on_sync
167           styles:
168             DEFAULT:
169               priority: 50
170               max-display-count: 5
171             SURVEY:
172               priority: 55
173               max-display-count: 10
174             PERSISTENT:
175               priority: 50
176               max-display-count: 20
177             WARNING:
178               priority: 60
179               max-display-count: 10
180             URGENT:
181               priority: 100
182               max-display-count: 10
183           messages:
184             default-browser:
185               text: default_browser_experiment_card_text
186               action: "MAKE_DEFAULT_BROWSER"
187               trigger: [ "I_AM_NOT_DEFAULT_BROWSER","USER_ESTABLISHED_INSTALL" ]
188               style: "PERSISTENT"
189               button-label: preferences_set_as_default_browser
191       - channel: developer
192         value:
193           styles:
194             DEFAULT:
195               priority: 50
196               max-display-count: 100
197             EXPIRES_QUICKLY:
198               priority: 100
199               max-display-count: 1
201   unified-search:
202     description: A feature allowing user to easily search for specified results directly in the search bar.
203     variables:
204       enabled:
205         description: If true, the feature shows up in the search bar.
206         type: Boolean
207         default: false
208     defaults:
209       - channel: nightly
210         value:
211           enabled: false
213   pocket-sponsored-stories:
214     description: A feature showing sponsored stories in between the other Pocket recommended stories on homescreen.
215     variables:
216       enabled:
217         description:  If true, the Pocket stories shown on homescreen should contain sponsored stories also.
218         type: Boolean
219         default: false
220     defaults:
221       - channel: developer
222         value:
223           enabled: true
225   engine-settings:
226     description: Contains a set of settings for controlling the web engine configurations.
227     variables:
228       tabs-prioritization-enabled:
229         description: If true, enables tabs prioritization feature.
230         type: Boolean
231         default: true
232       total-cookie-protection-enabled:
233         description: If true, enables the total cookie protection in all browsing modes.
234         type: Boolean
235         default: false
236 types:
237   objects:
238     MessageData:
239       description: >
240         An object to describe a message. It uses human
241         readable strings to describe the triggers, action and
242         style of the message as well as the text of the message
243         and call to action.
244       fields:
245         action:
246           type: Text
247           description: >
248             A URL of a page or a deeplink.
249             This may have substitution variables in.
250           # This should never be defaulted.
251           default: empty_string
252         title:
253           type: Option<Text>
254           description: "The title text displayed to the user"
255           default: null
256         text:
257           type: Text
258           description: "The message text displayed to the user"
259           # This should never be defaulted.
260           default: empty_string
261         is-control:
262           type: Boolean
263           description: "Indicates if this message is the control message, if true shouldn't be displayed"
264           default: false
265         button-label:
266           type: Option<Text>
267           description: >
268             The text on the button. If no text
269             is present, the whole message is clickable.
270           default: null
271         style:
272           type: String
273           description: >
274             The style as described in a
275             `StyleData` from the styles table.
276           default: DEFAULT
277         trigger:
278           type: List<String>
279           description: >
280             A list of strings corresponding to
281             targeting expressions. The message will be
282             shown if all expressions `true`.
283           default: []
284     StyleData:
285       description: >
286         A group of properities (predominantly visual) to
287         describe the style of the message.
288       fields:
289         priority:
290           type: Int
291           description: >
292             The importance of this message.
293             0 is not very important, 100 is very important.
294           default: 50
295         max-display-count:
296           type: Int
297           description: >
298             How many sessions will this message be shown to the user
299             before it is expired.
300           default: 5
302   enums:
303     ControlMessageBehavior:
304       description: An enum to influence what should be displayed when a control message is selected.
305       variants:
306         show-next-message:
307           description: The next eligible message should be shown.
308         show-none:
309           description: The surface should show no message.
310     HomeScreenSection:
311       description: The identifiers for the sections of the homescreen.
312       variants:
313         top-sites:
314           description: The frecency and pinned sites.
315         recently-saved:
316           description: The sites the user has bookmarked recently.
317         jump-back-in:
318           description: The tabs the user was looking immediately before being interrupted.
319         recent-explorations:
320           description: The tab groups
321         pocket:
322           description: The pocket section. This should only be available in the US.
323         contile-top-sites:
324           description: The sponsored shortcuts in the homescreen.
325     MessageSurfaceId:
326       description: The identity of a message surface, used in the default browser experiments
327       variants:
328         app-menu-item:
329           description: An item in the default toolbar menu.
330         settings:
331           description: A setting in the settings screen.
332         homescreen-banner:
333           description: A banner in the homescreen.
334     OnboardingSection:
335       description: The identifiers for the sections of the onboarding.
336       variants:
337         sync-cfr:
338           description: Sync onboarding CFR.
339         wallpapers:
340           description: Wallpapers onboarding dialog.