summaryrefslogtreecommitdiffstats
path: root/mobile/android/fenix/app/nimbus.fml.yaml
blob: d16e1286f614d5b656256dbcb8a5ce66dbd87dde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
---
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
  - pbm.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:
  toolbar:
    description: The searchbar/awesomebar that user uses to search.
    variables:
      toolbar-position-top:
        description: If true, toolbar appears at top of the screen.
        type: Boolean
        default: false
  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,
            "recently-saved": true,
            "recent-explorations": true,
            "pocket": true,
            "pocket-sponsored-stories": true,
          }
    defaults:
      - channel: nightly
        value: {
          "sections-enabled": {
            "top-sites": true,
            "jump-back-in": true,
            "recently-saved": true,
            "recent-explorations": true,
            "pocket": 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:
          {
            "home-onboarding-dialog-existing-users": true,
            "sync-cfr": true,
            "wallpapers-selection-tool": true,
            "jump-back-in-cfr": true,
            "tcp-cfr": true,
            "tcp-feature": true,
          }
    defaults:
      - channel: developer
        value: {
          "sections-enabled": {
            "home-onboarding-dialog-existing-users": true,
            "sync-cfr": true,
            "wallpapers-selection-tool": true,
            "jump-back-in-cfr": 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": 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: beta
        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,
          }
        }
  unified-search:
    description: A feature allowing user to easily search for specified results directly in the search bar.
    variables:
      enabled:
        description: If true, the feature shows up in the search bar.
        type: Boolean
        default: true

  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"]

  glean:
    description: "A feature that provides server-side configurations for Glean metrics (aka Server Knobs)."
    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: false

  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

  shopping-experience:
    description: A feature that shows product review quality information.
    variables:
      enabled:
        description: if true, the shopping experience feature is shown to the user.
        type: Boolean
        default: false
      product-recommendations:
        description: if true, recommended products feature is enabled to be shown to the user based on their preference.
        type: Boolean
        default: false
      product-recommendations-exposure:
        description: if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled.
        type: Boolean
        default: false
    defaults:
      - channel: developer
        value:
          enabled: true
          product-recommendations: true
          product-recommendations-exposure: true

  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

  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-strong-password:
    description: A feature that provides a generated strong password on sign up.
    variables:
      enabled:
        description: >
          When the feature is enabled and Firefox receives a Login event with an
          empty saved logins list, a suggested strong password prompt will be shown,
          allowing the user to use the generated password to fill in the password field
          for the new account that will be created. When the feature is disabled,
          there won't be any prompt displayed that would allow using a generated password.
        type: Boolean
        default: false
    defaults:
      - channel: developer
        value:
          enabled: true
      - channel: nightly
        value:
          enabled: true

  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
    defaults:
      - channel: developer
        value:
          enabled: 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: false
      main-flow-browser-menu-enabled:
        description: >
          Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)
        type: Boolean
        default: false
      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: false
      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: false
      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: false
      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: false
      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: false

  toolbar-redesign:
    description: Feature for toolbar redesign.
    variables:
      enabled:
        description: >
          When the feature is enabled then the user will see the new redesigned toolbar.
        type: Boolean
        default: false
    defaults:
      - channel: developer
        value:
          enabled: true
      - channel: nightly
        value:
          enabled: true

types:
  objects: {}

  enums:
    HomeScreenSection:
      description: The identifiers for the sections of the homescreen.
      variants:
        top-sites:
          description: The frecency and pinned sites.
        recently-saved:
          description: The sites the user has bookmarked recently.
        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.

    MR2022Section:
      description: The identifiers for the sections of the MR 2022.
      variants:
        home-onboarding-dialog-existing-users:
          description: Home onboarding dialog for upgraded users.
        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.
        jump-back-in-cfr:
          description: Jump back-in onboarding message.
        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.