chore(nimbus): Update External Configs (#9865)

SUMMARY:

SUCCESS:

fenix at main (439e2f88092aaf3035f9d1b48ea54ed9c41f0172) version None
fenix at releases_v120 (f339e2b9c92032e73a440a0133ff20e2e630281f)
version 120.1.0
fenix at releases_v121 (d3b387b18243b945c0e0795c9214d71ec21ad140)
version 121.0.0
fenix at main (439e2f88092aaf3035f9d1b48ea54ed9c41f0172) version 122.0.0
firefox_ios at main (80751ffd812570ad95a4e4c2f469c024d5691551) version
None
firefox_ios at main (80751ffd812570ad95a4e4c2f469c024d5691551) version
122.0.0
focus_android at main (439e2f88092aaf3035f9d1b48ea54ed9c41f0172) version
None
focus_android at releases_v120
(f339e2b9c92032e73a440a0133ff20e2e630281f) version 120.1.0
focus_android at releases_v121
(d3b387b18243b945c0e0795c9214d71ec21ad140) version 121.0.0
focus_android at main (439e2f88092aaf3035f9d1b48ea54ed9c41f0172) version
122.0.0
focus_ios at main (1efc38be1f29562e4a829a7a6a472d04bf4db84c) version
None
monitor_cirrus at main (200db634df253ec020fdc892036826a5d694ed12)
version None
firefox_desktop at central (83540410d1e22cc835d53d6657dd072b4a166d7f)
version None
firefox_desktop at central (83540410d1e22cc835d53d6657dd072b4a166d7f)
version 122.0.0
firefox_desktop at beta (5974796cd9cd088eb58006e6594138d3bc8e7d39)
version 121.0.0
firefox_desktop at release (a8daee71c97036d89232cdb16881b834448a2286)
version 120.0.2
firefox_desktop at esr115 (9504b353d4ad97d101cf0102acc47ab182877aca)
version 115.6.0

CACHED:

fenix at releases_v117 (228b8dfc36d88931554eb5ad04efd1af69fe300a)
version 117.1.1 (cached)
fenix at releases_v118 (f70b6421f0acca51608698abe084e32079d8c081)
version 118.2.1 (cached)
fenix at releases_v119 (92c6ca32199d1600a01c592bfb4c46db655bf7fc)
version 119.1.2 (cached)
fenix at fenix-v120.0.1 (a61decd90e478e203f04be2d0e78a2ecf21ee50f)
version 120.0.1 (cached)
fenix at fenix-v120.0 (039de7ef85f01fb35154552dfaa9c832f3cee182) version
120.0.0 (cached)
fenix at fenix-v119.1.1 (2a75e1525865deb6301739ceb909b61ab5ec290f)
version 119.1.1 (cached)
fenix at fenix-v119.1.0 (b94d3727d77223b92a0e4a912ff63cde41fdc94a)
version 119.1.0 (cached)
fenix at fenix-v119.0.1 (dcb5c11871d7523c6f75ad41f3cd86310a08f5bd)
version 119.0.1 (cached)
fenix at fenix-v119.0 (367d60e851aa390484a79ceccab0022f04547ed8) version
119.0.0 (cached)
fenix at fenix-v118.2.0 (53f9c3da80b802850be3543405a3bc6804d30328)
version 118.2.0 (cached)
fenix at fenix-v118.1.1 (f59d32286aac5fbb27c07b37ae1c7afd48b7afc3)
version 118.1.1 (cached)
fenix at fenix-v118.1.0 (a8d4aabe56086d0f8cae80a48f98b80cbc03c5f1)
version 118.1.0 (cached)
fenix at fenix-v118.0 (475aa4192c600bdc96ac1d9ca0daffb302aa0211) version
118.0.0 (cached)
fenix at fenix-v117.1.0 (6f27adebba14eddc9d5989bb34f3159822f2193f)
version 117.1.0 (cached)
fenix at fenix-v117.0.1 (9ebc7544df7ff1abc7ca7d048ffbcd0c461b2912)
version 117.0.1 (cached)
fenix at fenix-v117.0 (e181aecfa75dec45220e11e319ef1b92a090020b) version
117.0.0 (cached)
firefox_ios at release/v117 (43b690c450066d4dde1b2ccb93ed3714d244d502)
version 117.4.0 (cached)
firefox_ios at release/v118 (89a7ea3c3372e5a4ef5b3c5b85499d26198d0524)
version 118.3.0 (cached)
firefox_ios at release/v119 (7dc381f991c6d2a983c3ba7f0cffd880e8c29e7b)
version 119.3.0 (cached)
firefox_ios at release/v120 (d962940cb17f14c30fe2b4e9efa0c289560bb1d3)
version 120.4.0 (cached)
firefox_ios at release/v121 (e0a39f85f99c07748a430b75340a2d2389f162d5)
version 121.0.0 (cached)
firefox_ios at v120.3 (230448301bc96469ef7be00691d0ba6f2d950cd2) version
120.3.0 (cached)
firefox_ios at v120.2 (f9374f93f5ade6ffc849c3bfd2d2bc35b2ca67f4) version
120.2.0 (cached)
firefox_ios at v120.1 (23869f995f237c1f7e5b975bbcbe8a82aafa835c) version
120.1.0 (cached)
firefox_ios at v120.0 (11de447b3d27a84992f222994d2e5ffa59247fdd) version
120.0.0 (cached)
firefox_ios at v119.2 (2dbdb46f10174f5f8e8ca7f1d8b97906486f20bb) version
119.2.0 (cached)
firefox_ios at v119.1 (6408b8169f1253e14299c137a9dea753d5ad0c88) version
119.1.0 (cached)
firefox_ios at v119.0 (f04b5643245a72219132a4d5efc0da4087418a88) version
119.0.0 (cached)
firefox_ios at v118.2 (26dae770578bab05ce216a121185e11c8bf4d732) version
118.2.0 (cached)
firefox_ios at v118.1 (bc6c23937014010dc4c283dc521de271eed81811) version
118.1.0 (cached)
firefox_ios at v118.0 (1743820c4aabcd06b62e5b5734a2c167ab8cc098) version
118.0.0 (cached)
firefox_ios at v117.3 (bb796830df50b9638f31235138af11ef7b8a7aa1) version
117.3.0 (cached)
firefox_ios at v117.2 (5cc367aa8857199cd8a54d53e8faf6696c5614c3) version
117.2.0 (cached)
firefox_ios at v117.1 (55ddcf473a65d106d43f6d2ae5af4076d6d03688) version
117.1.0 (cached)
firefox_ios at v117.0 (3b275ab1e4ccef769d84437033c0c68acfd2df8a) version
117.0.0 (cached)
focus_android at releases_v117
(228b8dfc36d88931554eb5ad04efd1af69fe300a) version 117.1.1 (cached)
focus_android at releases_v118
(f70b6421f0acca51608698abe084e32079d8c081) version 118.2.1 (cached)
focus_android at releases_v119
(92c6ca32199d1600a01c592bfb4c46db655bf7fc) version 119.1.2 (cached)
focus_android at focus-v120.0.1
(a61decd90e478e203f04be2d0e78a2ecf21ee50f) version 120.0.1 (cached)
focus_android at focus-v120.0 (039de7ef85f01fb35154552dfaa9c832f3cee182)
version 120.0.0 (cached)
focus_android at focus-v119.1.1
(2a75e1525865deb6301739ceb909b61ab5ec290f) version 119.1.1 (cached)
focus_android at focus-v119.1.0
(b94d3727d77223b92a0e4a912ff63cde41fdc94a) version 119.1.0 (cached)
focus_android at focus-v119.0.1
(dcb5c11871d7523c6f75ad41f3cd86310a08f5bd) version 119.0.1 (cached)
focus_android at focus-v119.0 (367d60e851aa390484a79ceccab0022f04547ed8)
version 119.0.0 (cached)
focus_android at focus-v118.2.0
(53f9c3da80b802850be3543405a3bc6804d30328) version 118.2.0 (cached)
focus_android at focus-v118.1.1
(f59d32286aac5fbb27c07b37ae1c7afd48b7afc3) version 118.1.1 (cached)
focus_android at focus-v118.1.0
(a8d4aabe56086d0f8cae80a48f98b80cbc03c5f1) version 118.1.0 (cached)
focus_android at focus-v118.0 (475aa4192c600bdc96ac1d9ca0daffb302aa0211)
version 118.0.0 (cached)
focus_android at focus-v117.1.0
(6f27adebba14eddc9d5989bb34f3159822f2193f) version 117.1.0 (cached)
focus_android at focus-v117.0.1
(9ebc7544df7ff1abc7ca7d048ffbcd0c461b2912) version 117.0.1 (cached)
focus_android at focus-v117.0 (e181aecfa75dec45220e11e319ef1b92a090020b)
version 117.0.0 (cached)
focus_ios at v117.0 (15437a350e27bcad225a87e76cf34babf75d1958) version
117.0.0 (cached)
focus_ios at v118.0 (71a6c4ba742b11968c73a721822308510eb9a594) version
118.0.0 (cached)
focus_ios at v119.0 (5c52950587650a98e18f7e1222b59ec2204a32b9) version
119.0.0 (cached)
focus_ios at v120.0 (2ff4ba5da9915615e4b4d401f3cc44a191f58342) version
120.0.0 (cached)
focus_ios at releases_v121 (bc464d6af1dc7c2a63991e70d8fc2adcc66891a5)
version 121.0.0 (cached)
This commit is contained in:
dataops-ci-bot 2023-11-30 08:31:34 -08:00 коммит произвёл GitHub
Родитель f255dfbe0c
Коммит b0a6576734
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
18 изменённых файлов: 6627 добавлений и 11 удалений

Просмотреть файл

@ -11,9 +11,9 @@ fenix-v119.1.0: b94d3727d77223b92a0e4a912ff63cde41fdc94a
fenix-v119.1.1: 2a75e1525865deb6301739ceb909b61ab5ec290f
fenix-v120.0: 039de7ef85f01fb35154552dfaa9c832f3cee182
fenix-v120.0.1: a61decd90e478e203f04be2d0e78a2ecf21ee50f
main: 5cbb8c01969005a7ac382883f9930ecfa49b304c
main: 439e2f88092aaf3035f9d1b48ea54ed9c41f0172
releases_v117: 228b8dfc36d88931554eb5ad04efd1af69fe300a
releases_v118: f70b6421f0acca51608698abe084e32079d8c081
releases_v119: 92c6ca32199d1600a01c592bfb4c46db655bf7fc
releases_v120: c3db5eff5aeb3d45be0c12f311e1fc285c5c3e32
releases_v121: 144b8c3a540e21e2652b782ee2e9deae68ce720a
releases_v120: f339e2b9c92032e73a440a0133ff20e2e630281f
releases_v121: d3b387b18243b945c0e0795c9214d71ec21ad140

Просмотреть файл

@ -0,0 +1,550 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Fenix (Firefox Android)
channels:
- beta
features:
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:
dialog-re-engage-time: 4
feature-setting-value: 0
feature-setting-value-pbm: 0
feature-ui: 0
extensions-process:
description: A feature to rollout the extensions process.
variables:
enabled:
description: "If true, the extensions process is enabled."
type: Boolean
default: 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.\n"
type: Boolean
default: false
glean:
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
variables:
enable-event-timestamps:
description: Enables precise event timestamps for Glean events
type: Boolean
default: false
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: {}
growth-data:
description: A feature measuring campaign growth data
variables:
enabled:
description: "If true, the feature is active"
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:
jump-back-in: true
pocket: true
pocket-sponsored-stories: true
recent-explorations: true
recently-saved: true
top-sites: true
juno-onboarding:
description: A feature that shows juno onboarding flow.
variables:
cards:
description: Collection of user facing onboarding cards.
type: "Map<String, OnboardingCardData>"
default:
add-search-widget:
body: juno_onboarding_add_search_widget_description
card-type: add-search-widget
enabled: false
image-res: ic_onboarding_search_widget
ordering: 15
primary-button-label: juno_onboarding_add_search_widget_positive_button
secondary-button-label: juno_onboarding_add_search_widget_negative_button
title: juno_onboarding_add_search_widget_title
default-browser:
body: juno_onboarding_default_browser_description_nimbus_2
card-type: default-browser
image-res: ic_onboarding_welcome
link-text: juno_onboarding_default_browser_description_link_text
ordering: 10
primary-button-label: juno_onboarding_default_browser_positive_button
secondary-button-label: juno_onboarding_default_browser_negative_button
title: juno_onboarding_default_browser_title_nimbus_2
notification-permission:
body: juno_onboarding_enable_notifications_description_nimbus_2
card-type: notification-permission
image-res: ic_notification_permission
ordering: 30
primary-button-label: juno_onboarding_enable_notifications_positive_button
secondary-button-label: juno_onboarding_enable_notifications_negative_button
title: juno_onboarding_enable_notifications_title_nimbus_2
sync-sign-in:
body: juno_onboarding_sign_in_description_2
card-type: sync-sign-in
image-res: ic_onboarding_sync
ordering: 20
primary-button-label: juno_onboarding_sign_in_positive_button
secondary-button-label: juno_onboarding_sign_in_negative_button
title: juno_onboarding_sign_in_title_2
messaging:
description: "The in-app messaging system.\n"
variables:
actions:
description: A growable map of action URLs.
type: "Map<String, String>"
default:
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
INSTALL_SEARCH_WIDGET: "://install_search_widget"
MAKE_DEFAULT_BROWSER: "://make_default_browser"
OPEN_SETTINGS: "://settings"
OPEN_SETTINGS_ACCESSIBILITY: "://settings_accessibility"
OPEN_SETTINGS_ADDON_MANAGER: "://settings_addon_manager"
OPEN_SETTINGS_DELETE_BROWSING_DATA: "://settings_delete_browsing_data"
OPEN_SETTINGS_LOGINS: "://settings_logins"
OPEN_SETTINGS_NOTIFICATIONS: "://settings_notifications"
OPEN_SETTINGS_PRIVACY: "://settings_privacy"
OPEN_SETTINGS_SEARCH_ENGINE: "://settings_search_engine"
OPEN_SETTINGS_TRACKING_PROTECTION: "://settings_tracking_protection"
OPEN_SETTINGS_WALLPAPERS: "://settings_wallpapers"
TURN_ON_SYNC: "://turn_on_sync"
VIEW_BOOKMARKS: "://urls_bookmarks"
VIEW_COLLECTIONS: "://home_collections"
VIEW_HISTORY: "://urls_history"
VIEW_HOMESCREEN: "://home"
message-under-experiment:
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
type: Option<String>
default: ~
messages:
description: A growable collection of messages
type: "Map<String, MessageData>"
default:
default-browser:
action: MAKE_DEFAULT_BROWSER
button-label: preferences_set_as_default_browser
style: PERSISTENT
surface: homescreen
text: default_browser_experiment_card_text
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- USER_ESTABLISHED_INSTALL
default-browser-notification:
action: MAKE_DEFAULT_BROWSER
style: NOTIFICATION
surface: notification
text: nimbus_notification_default_browser_text
title: nimbus_notification_default_browser_title
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- DAY_3_AFTER_INSTALL
notification-config:
description: Configuration of the notification worker for all notification messages.
type: NotificationConfig
default: {}
on-control:
description: What should be displayed when a control message is selected.
type: ControlMessageBehavior
default: show-next-message
styles:
description: "A map of styles to configure message appearance.\n"
type: "Map<String, StyleData>"
default:
DEFAULT:
max-display-count: 5
priority: 50
NOTIFICATION:
max-display-count: 1
priority: 50
PERSISTENT:
max-display-count: 20
priority: 50
SURVEY:
max-display-count: 1
priority: 55
URGENT:
max-display-count: 10
priority: 100
WARNING:
max-display-count: 10
priority: 60
triggers:
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
type: "Map<String, String>"
default:
ALWAYS: "true"
DAY_1_AFTER_INSTALL: days_since_install == 1
DAY_2_AFTER_INSTALL: days_since_install == 2
DAY_3_AFTER_INSTALL: days_since_install == 3
DAY_4_AFTER_INSTALL: days_since_install == 4
DAY_5_AFTER_INSTALL: days_since_install == 5
DEVICE_ANDROID: "os == 'Android'"
DEVICE_IOS: "os == 'iOS'"
FUNNEL_ORGANIC: "adjust_campaign == ''"
FUNNEL_PAID: "adjust_campaign != ''"
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
INACTIVE_1_DAY: "'app_launched'|eventLastSeen('Hours') >= 24"
INACTIVE_2_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 2"
INACTIVE_3_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 3"
INACTIVE_4_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 4"
INACTIVE_5_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 5"
I_AM_DEFAULT_BROWSER: is_default_browser
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
NEVER: "false"
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
USER_DE_SPEAKER: "'de' in locale"
USER_EN_SPEAKER: "'en' in locale"
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
USER_ES_SPEAKER: "'es' in locale"
USER_FR_SPEAKER: "'fr' in locale"
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
USER_RECENTLY_INSTALLED: days_since_install < 7
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
allow-coenrollment: 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
jump-back-in-cfr: true
sync-cfr: true
tcp-cfr: true
tcp-feature: true
wallpapers-selection-tool: true
nimbus-system:
description: "Configuration of the Nimbus System in Android.\n"
variables:
refresh-interval-foreground:
description: "The minimum interval in minutes between fetching experiment \nrecipes in the foreground.\n"
type: Int
default: 60
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-icon:
description: The drawable displayed in the app menu for Settings
type: String
default: mozac_ic_settings
settings-punctuation:
description: The emoji displayed in the Settings screen title.
type: String
default: ""
settings-title:
description: The title of displayed in the Settings screen and app menu.
type: Text
default: browser_menu_settings
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
pdfjs:
description: PDF.js features
variables:
download-button:
description: Download button
type: Boolean
default: true
open-in-app-button:
description: Open in app button
type: Boolean
default: true
pre-permission-notification-prompt:
description: A feature that shows the pre-permission notification prompt.
variables:
enabled:
description: "if true, the pre-permission notification prompt is shown to the user."
type: Boolean
default: false
print:
description: A feature for printing from the share or browser menu.
variables:
browser-print-enabled:
description: "If true, a print button from the browser menu is available."
type: Boolean
default: true
share-print-enabled:
description: "If true, a print button from the share menu is available."
type: Boolean
default: true
private-browsing:
description: Private Browsing Mode
variables:
felt-privacy-enabled:
description: "if true, enable felt privacy related UI"
type: Boolean
default: false
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
search-extra-params:
description: A feature that provides additional args for search.
variables:
channel-id:
description: The channel Id param name with arg.
type: "Map<String, String>"
default: {}
enabled:
description: "If true, the feature is active."
type: Boolean
default: false
feature-enabler:
description: "The feature enabler param name with arg, NOTE this map could be empty."
type: "Map<String, String>"
default: {}
search-engine:
description: The search engine name.
type: String
default: ""
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
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
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
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
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
enums:
ControlMessageBehavior:
description: An enum to influence what should be displayed when a control message is selected.
variants:
show-next-message:
description: The next eligible message should be shown.
show-none:
description: The surface should show no message.
CookieBannersSection:
description: The identifiers for the sections of the MR 2022.
variants:
dialog-re-engage-time:
description: "An integer indicating the number of hours that needs to happen before the re-engagement dialog shows again since the last seen, for example if set to 4 that means if the users has seen the dialog, it will see it 4 hours later."
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-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."
HomeScreenSection:
description: The identifiers for the sections of the homescreen.
variants:
jump-back-in:
description: The tabs the user was looking immediately before being interrupted.
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.
recent-explorations:
description: The tab groups
recently-saved:
description: The sites the user has bookmarked recently.
top-sites:
description: The frecency and pinned sites.
MR2022Section:
description: The identifiers for the sections of the MR 2022.
variants:
home-onboarding-dialog-existing-users:
description: Home onboarding dialog for upgraded users.
jump-back-in-cfr:
description: Jump back-in onboarding message.
sync-cfr:
description: CFR for the first time you see a synced tab on 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.
wallpapers-selection-tool:
description: Wallpapers selection dialog tool for the home screen.
OnboardingCardType:
description: An enum to describe a type of card.
variants:
add-search-widget:
description: Allows user to add search widget to homescreen.
default-browser:
description: Allows user to set Firefox as the default browser.
notification-permission:
description: Allows user to enable notification permission.
sync-sign-in:
description: Allows user to sync with a Firefox account.
OnboardingPanel:
description: The types of onboarding panels in the onboarding page
variants:
privacy-notice:
description: The onboarding panel where users can tap to view our privacy notice.
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
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)
objects:
MessageData:
description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n"
fields:
action:
description: "A URL of a page or a deeplink. This may have substitution variables in.\n"
type: Text
default: ""
button-label:
description: "The text on the button. If no text is present, the whole message is clickable.\n"
type: Option<Text>
default: ~
experiment:
description: The slug of the experiment that this message came from.
type: Option<String>
default: ~
is-control:
description: "Indicates if this message is the control message, if true shouldn't be displayed"
type: Boolean
default: false
style:
description: "The style as described in a `StyleData` from the styles table.\n"
type: String
default: DEFAULT
surface:
description: The surface identifier for this message.
type: String
default: homescreen
text:
description: The message text displayed to the user
type: Text
default: ""
title:
description: The title text displayed to the user
type: Option<Text>
default: ~
trigger:
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions `true`.\n"
type: List<String>
default: []
NotificationConfig:
description: Attributes controlling the global configuration of notification messages.
fields:
refresh-interval:
description: "How often, in minutes, the notification message worker will wake up and check for new messages.\n"
type: Int
default: 240
OnboardingCardData:
description: An object to describe a user facing onboarding card.
fields:
body:
description: The message text displayed to the user. May contain linkable text.
type: Text
default: ""
card-type:
description: The type of the card.
type: OnboardingCardType
default: default-browser
enabled:
description: "If true, this card is shown to the user."
type: Boolean
default: true
image-res:
description: The resource id of the image to be displayed.
type: Image
default: ic_onboarding_welcome
link-text:
description: "The text to link from the body text. This should match the linkable text from the body text exactly. e.g. body: This is a policy link\n link-text: policy link\n"
type: Option<Text>
default: ~
ordering:
description: Used to sequence the cards.
type: Int
default: 0
primary-button-label:
description: The text to display on the primary button.
type: Text
default: ""
secondary-button-label:
description: The text to display on the secondary button.
type: Text
default: ""
title:
description: The title text displayed to the user.
type: Text
default: ""
StyleData:
description: "A group of properties (predominantly visual) to describe the style of the message.\n"
fields:
max-display-count:
description: "How many sessions will this message be shown to the user before it is expired.\n"
type: Int
default: 5
priority:
description: "The importance of this message. 0 is not very important, 100 is very important.\n"
type: Int
default: 50

Просмотреть файл

@ -0,0 +1,554 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Fenix (Firefox Android)
channels:
- developer
features:
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:
dialog-re-engage-time: 4
feature-setting-value: 0
feature-setting-value-pbm: 0
feature-ui: 1
extensions-process:
description: A feature to rollout the extensions process.
variables:
enabled:
description: "If true, the extensions process is enabled."
type: Boolean
default: 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.\n"
type: Boolean
default: true
glean:
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
variables:
enable-event-timestamps:
description: Enables precise event timestamps for Glean events
type: Boolean
default: false
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: {}
growth-data:
description: A feature measuring campaign growth data
variables:
enabled:
description: "If true, the feature is active"
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:
jump-back-in: true
pocket: true
pocket-sponsored-stories: true
recent-explorations: true
recently-saved: true
top-sites: true
juno-onboarding:
description: A feature that shows juno onboarding flow.
variables:
cards:
description: Collection of user facing onboarding cards.
type: "Map<String, OnboardingCardData>"
default:
add-search-widget:
body: juno_onboarding_add_search_widget_description
card-type: add-search-widget
enabled: false
image-res: ic_onboarding_search_widget
ordering: 15
primary-button-label: juno_onboarding_add_search_widget_positive_button
secondary-button-label: juno_onboarding_add_search_widget_negative_button
title: juno_onboarding_add_search_widget_title
default-browser:
body: juno_onboarding_default_browser_description_nimbus_2
card-type: default-browser
image-res: ic_onboarding_welcome
link-text: juno_onboarding_default_browser_description_link_text
ordering: 10
primary-button-label: juno_onboarding_default_browser_positive_button
secondary-button-label: juno_onboarding_default_browser_negative_button
title: juno_onboarding_default_browser_title_nimbus_2
notification-permission:
body: juno_onboarding_enable_notifications_description_nimbus_2
card-type: notification-permission
image-res: ic_notification_permission
ordering: 30
primary-button-label: juno_onboarding_enable_notifications_positive_button
secondary-button-label: juno_onboarding_enable_notifications_negative_button
title: juno_onboarding_enable_notifications_title_nimbus_2
sync-sign-in:
body: juno_onboarding_sign_in_description_2
card-type: sync-sign-in
image-res: ic_onboarding_sync
ordering: 20
primary-button-label: juno_onboarding_sign_in_positive_button
secondary-button-label: juno_onboarding_sign_in_negative_button
title: juno_onboarding_sign_in_title_2
messaging:
description: "The in-app messaging system.\n"
variables:
actions:
description: A growable map of action URLs.
type: "Map<String, String>"
default:
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
INSTALL_SEARCH_WIDGET: "://install_search_widget"
MAKE_DEFAULT_BROWSER: "://make_default_browser"
OPEN_SETTINGS: "://settings"
OPEN_SETTINGS_ACCESSIBILITY: "://settings_accessibility"
OPEN_SETTINGS_ADDON_MANAGER: "://settings_addon_manager"
OPEN_SETTINGS_DELETE_BROWSING_DATA: "://settings_delete_browsing_data"
OPEN_SETTINGS_LOGINS: "://settings_logins"
OPEN_SETTINGS_NOTIFICATIONS: "://settings_notifications"
OPEN_SETTINGS_PRIVACY: "://settings_privacy"
OPEN_SETTINGS_SEARCH_ENGINE: "://settings_search_engine"
OPEN_SETTINGS_TRACKING_PROTECTION: "://settings_tracking_protection"
OPEN_SETTINGS_WALLPAPERS: "://settings_wallpapers"
TURN_ON_SYNC: "://turn_on_sync"
VIEW_BOOKMARKS: "://urls_bookmarks"
VIEW_COLLECTIONS: "://home_collections"
VIEW_HISTORY: "://urls_history"
VIEW_HOMESCREEN: "://home"
message-under-experiment:
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
type: Option<String>
default: ~
messages:
description: A growable collection of messages
type: "Map<String, MessageData>"
default:
default-browser:
action: MAKE_DEFAULT_BROWSER
button-label: preferences_set_as_default_browser
style: PERSISTENT
surface: homescreen
text: default_browser_experiment_card_text
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- USER_ESTABLISHED_INSTALL
default-browser-notification:
action: MAKE_DEFAULT_BROWSER
style: NOTIFICATION
surface: notification
text: nimbus_notification_default_browser_text
title: nimbus_notification_default_browser_title
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- DAY_3_AFTER_INSTALL
notification-config:
description: Configuration of the notification worker for all notification messages.
type: NotificationConfig
default:
refresh-interval: 120
on-control:
description: What should be displayed when a control message is selected.
type: ControlMessageBehavior
default: show-next-message
styles:
description: "A map of styles to configure message appearance.\n"
type: "Map<String, StyleData>"
default:
DEFAULT:
max-display-count: 100
priority: 50
EXPIRES_QUICKLY:
max-display-count: 1
priority: 100
NOTIFICATION:
max-display-count: 1
priority: 50
PERSISTENT:
max-display-count: 20
priority: 50
SURVEY:
max-display-count: 1
priority: 55
URGENT:
max-display-count: 10
priority: 100
WARNING:
max-display-count: 10
priority: 60
triggers:
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
type: "Map<String, String>"
default:
ALWAYS: "true"
DAY_1_AFTER_INSTALL: days_since_install == 1
DAY_2_AFTER_INSTALL: days_since_install == 2
DAY_3_AFTER_INSTALL: days_since_install == 3
DAY_4_AFTER_INSTALL: days_since_install == 4
DAY_5_AFTER_INSTALL: days_since_install == 5
DEVICE_ANDROID: "os == 'Android'"
DEVICE_IOS: "os == 'iOS'"
FUNNEL_ORGANIC: "adjust_campaign == ''"
FUNNEL_PAID: "adjust_campaign != ''"
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
INACTIVE_1_DAY: "'app_launched'|eventLastSeen('Hours') >= 24"
INACTIVE_2_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 2"
INACTIVE_3_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 3"
INACTIVE_4_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 4"
INACTIVE_5_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 5"
I_AM_DEFAULT_BROWSER: is_default_browser
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
NEVER: "false"
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
USER_DE_SPEAKER: "'de' in locale"
USER_EN_SPEAKER: "'en' in locale"
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
USER_ES_SPEAKER: "'es' in locale"
USER_FR_SPEAKER: "'fr' in locale"
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
USER_RECENTLY_INSTALLED: days_since_install < 7
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
allow-coenrollment: 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
jump-back-in-cfr: true
sync-cfr: true
tcp-cfr: true
tcp-feature: true
wallpapers-selection-tool: true
nimbus-system:
description: "Configuration of the Nimbus System in Android.\n"
variables:
refresh-interval-foreground:
description: "The minimum interval in minutes between fetching experiment \nrecipes in the foreground.\n"
type: Int
default: 60
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-icon:
description: The drawable displayed in the app menu for Settings
type: String
default: mozac_ic_settings
settings-punctuation:
description: The emoji displayed in the Settings screen title.
type: String
default: ""
settings-title:
description: The title of displayed in the Settings screen and app menu.
type: Text
default: browser_menu_settings
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
pdfjs:
description: PDF.js features
variables:
download-button:
description: Download button
type: Boolean
default: true
open-in-app-button:
description: Open in app button
type: Boolean
default: true
pre-permission-notification-prompt:
description: A feature that shows the pre-permission notification prompt.
variables:
enabled:
description: "if true, the pre-permission notification prompt is shown to the user."
type: Boolean
default: false
print:
description: A feature for printing from the share or browser menu.
variables:
browser-print-enabled:
description: "If true, a print button from the browser menu is available."
type: Boolean
default: true
share-print-enabled:
description: "If true, a print button from the share menu is available."
type: Boolean
default: true
private-browsing:
description: Private Browsing Mode
variables:
felt-privacy-enabled:
description: "if true, enable felt privacy related UI"
type: Boolean
default: false
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
search-extra-params:
description: A feature that provides additional args for search.
variables:
channel-id:
description: The channel Id param name with arg.
type: "Map<String, String>"
default: {}
enabled:
description: "If true, the feature is active."
type: Boolean
default: false
feature-enabler:
description: "The feature enabler param name with arg, NOTE this map could be empty."
type: "Map<String, String>"
default: {}
search-engine:
description: The search engine name.
type: String
default: ""
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: true
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: true
product-recommendations:
description: "if true, recommended products feature is enabled to be shown to the user based on their preference."
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
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
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
enums:
ControlMessageBehavior:
description: An enum to influence what should be displayed when a control message is selected.
variants:
show-next-message:
description: The next eligible message should be shown.
show-none:
description: The surface should show no message.
CookieBannersSection:
description: The identifiers for the sections of the MR 2022.
variants:
dialog-re-engage-time:
description: "An integer indicating the number of hours that needs to happen before the re-engagement dialog shows again since the last seen, for example if set to 4 that means if the users has seen the dialog, it will see it 4 hours later."
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-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."
HomeScreenSection:
description: The identifiers for the sections of the homescreen.
variants:
jump-back-in:
description: The tabs the user was looking immediately before being interrupted.
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.
recent-explorations:
description: The tab groups
recently-saved:
description: The sites the user has bookmarked recently.
top-sites:
description: The frecency and pinned sites.
MR2022Section:
description: The identifiers for the sections of the MR 2022.
variants:
home-onboarding-dialog-existing-users:
description: Home onboarding dialog for upgraded users.
jump-back-in-cfr:
description: Jump back-in onboarding message.
sync-cfr:
description: CFR for the first time you see a synced tab on 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.
wallpapers-selection-tool:
description: Wallpapers selection dialog tool for the home screen.
OnboardingCardType:
description: An enum to describe a type of card.
variants:
add-search-widget:
description: Allows user to add search widget to homescreen.
default-browser:
description: Allows user to set Firefox as the default browser.
notification-permission:
description: Allows user to enable notification permission.
sync-sign-in:
description: Allows user to sync with a Firefox account.
OnboardingPanel:
description: The types of onboarding panels in the onboarding page
variants:
privacy-notice:
description: The onboarding panel where users can tap to view our privacy notice.
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
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)
objects:
MessageData:
description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n"
fields:
action:
description: "A URL of a page or a deeplink. This may have substitution variables in.\n"
type: Text
default: ""
button-label:
description: "The text on the button. If no text is present, the whole message is clickable.\n"
type: Option<Text>
default: ~
experiment:
description: The slug of the experiment that this message came from.
type: Option<String>
default: ~
is-control:
description: "Indicates if this message is the control message, if true shouldn't be displayed"
type: Boolean
default: false
style:
description: "The style as described in a `StyleData` from the styles table.\n"
type: String
default: DEFAULT
surface:
description: The surface identifier for this message.
type: String
default: homescreen
text:
description: The message text displayed to the user
type: Text
default: ""
title:
description: The title text displayed to the user
type: Option<Text>
default: ~
trigger:
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions `true`.\n"
type: List<String>
default: []
NotificationConfig:
description: Attributes controlling the global configuration of notification messages.
fields:
refresh-interval:
description: "How often, in minutes, the notification message worker will wake up and check for new messages.\n"
type: Int
default: 240
OnboardingCardData:
description: An object to describe a user facing onboarding card.
fields:
body:
description: The message text displayed to the user. May contain linkable text.
type: Text
default: ""
card-type:
description: The type of the card.
type: OnboardingCardType
default: default-browser
enabled:
description: "If true, this card is shown to the user."
type: Boolean
default: true
image-res:
description: The resource id of the image to be displayed.
type: Image
default: ic_onboarding_welcome
link-text:
description: "The text to link from the body text. This should match the linkable text from the body text exactly. e.g. body: This is a policy link\n link-text: policy link\n"
type: Option<Text>
default: ~
ordering:
description: Used to sequence the cards.
type: Int
default: 0
primary-button-label:
description: The text to display on the primary button.
type: Text
default: ""
secondary-button-label:
description: The text to display on the secondary button.
type: Text
default: ""
title:
description: The title text displayed to the user.
type: Text
default: ""
StyleData:
description: "A group of properties (predominantly visual) to describe the style of the message.\n"
fields:
max-display-count:
description: "How many sessions will this message be shown to the user before it is expired.\n"
type: Int
default: 5
priority:
description: "The importance of this message. 0 is not very important, 100 is very important.\n"
type: Int
default: 50

Просмотреть файл

@ -0,0 +1,239 @@
---
cookie-banners:
description: Features for cookie banner handling.
hasExposure: true
exposureDescription: ""
variables:
sections-enabled:
type: json
description: This property provides a lookup table of whether or not the given section should be enabled.
extensions-process:
description: A feature to rollout the extensions process.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "If true, the extensions process is enabled."
fx-suggest:
description: A feature that provides Firefox Suggest search suggestions.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
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.\n"
glean:
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
hasExposure: true
exposureDescription: ""
variables:
enable-event-timestamps:
type: boolean
description: Enables precise event timestamps for Glean events
metrics-enabled:
type: json
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
growth-data:
description: A feature measuring campaign growth data
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "If true, the feature is active"
homescreen:
description: The homescreen that the user goes to when they press home or new tab.
hasExposure: true
exposureDescription: ""
variables:
sections-enabled:
type: json
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."
juno-onboarding:
description: A feature that shows juno onboarding flow.
hasExposure: true
exposureDescription: ""
variables:
cards:
type: json
description: Collection of user facing onboarding cards.
messaging:
description: "The in-app messaging system.\n"
hasExposure: true
exposureDescription: ""
variables:
actions:
type: json
description: A growable map of action URLs.
message-under-experiment:
type: string
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
messages:
type: json
description: A growable collection of messages
notification-config:
type: json
description: Configuration of the notification worker for all notification messages.
on-control:
type: string
description: What should be displayed when a control message is selected.
enum:
- show-next-message
- show-none
styles:
type: json
description: "A map of styles to configure message appearance.\n"
triggers:
type: json
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
mr2022:
description: Features for MR 2022.
hasExposure: true
exposureDescription: ""
variables:
sections-enabled:
type: json
description: This property provides a lookup table of whether or not the given section should be enabled.
nimbus-system:
description: "Configuration of the Nimbus System in Android.\n"
hasExposure: true
exposureDescription: ""
variables:
refresh-interval-foreground:
type: int
description: "The minimum interval in minutes between fetching experiment \nrecipes in the foreground.\n"
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.
hasExposure: true
exposureDescription: ""
variables:
settings-icon:
type: string
description: The drawable displayed in the app menu for Settings
settings-punctuation:
type: string
description: The emoji displayed in the Settings screen title.
settings-title:
type: string
description: The title of displayed in the Settings screen and app menu.
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."
hasExposure: true
exposureDescription: ""
variables:
order:
type: json
description: Determines the order of the onboarding page panels
pdfjs:
description: PDF.js features
hasExposure: true
exposureDescription: ""
variables:
download-button:
type: boolean
description: Download button
open-in-app-button:
type: boolean
description: Open in app button
pre-permission-notification-prompt:
description: A feature that shows the pre-permission notification prompt.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "if true, the pre-permission notification prompt is shown to the user."
print:
description: A feature for printing from the share or browser menu.
hasExposure: true
exposureDescription: ""
variables:
browser-print-enabled:
type: boolean
description: "If true, a print button from the browser menu is available."
share-print-enabled:
type: boolean
description: "If true, a print button from the share menu is available."
private-browsing:
description: Private Browsing Mode
hasExposure: true
exposureDescription: ""
variables:
felt-privacy-enabled:
type: boolean
description: "if true, enable felt privacy related UI"
re-engagement-notification:
description: A feature that shows the re-engagement notification if the user is inactive.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "If true, the re-engagement notification is shown to the inactive user."
type:
type: int
description: The type of re-engagement notification that is shown to the inactive user.
search-extra-params:
description: A feature that provides additional args for search.
hasExposure: true
exposureDescription: ""
variables:
channel-id:
type: json
description: The channel Id param name with arg.
enabled:
type: boolean
description: "If true, the feature is active."
feature-enabler:
type: json
description: "The feature enabler param name with arg, NOTE this map could be empty."
search-engine:
type: string
description: The search engine name.
search-term-groups:
description: A feature allowing the grouping of URLs around the search term that it came from.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "If true, the feature shows up on the homescreen and on the new tab screen."
shopping-experience:
description: A feature that shows product review quality information.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "if true, the shopping experience feature is shown to the user."
product-recommendations:
type: boolean
description: "if true, recommended products feature is enabled to be shown to the user based on their preference."
splash-screen:
description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run."
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "If true, the feature is active."
maximum_duration_ms:
type: int
description: The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.
toolbar:
description: The searchbar/awesomebar that user uses to search.
hasExposure: true
exposureDescription: ""
variables:
toolbar-position-top:
type: boolean
description: "If true, toolbar appears at top of the screen."
unified-search:
description: A feature allowing user to easily search for specified results directly in the search bar.
hasExposure: true
exposureDescription: ""
variables:
enabled:
type: boolean
description: "If true, the feature shows up in the search bar."

Просмотреть файл

@ -0,0 +1,550 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Fenix (Firefox Android)
channels:
- nightly
features:
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:
dialog-re-engage-time: 4
feature-setting-value: 0
feature-setting-value-pbm: 0
feature-ui: 1
extensions-process:
description: A feature to rollout the extensions process.
variables:
enabled:
description: "If true, the extensions process is enabled."
type: Boolean
default: 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.\n"
type: Boolean
default: true
glean:
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
variables:
enable-event-timestamps:
description: Enables precise event timestamps for Glean events
type: Boolean
default: false
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: {}
growth-data:
description: A feature measuring campaign growth data
variables:
enabled:
description: "If true, the feature is active"
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:
jump-back-in: true
pocket: true
pocket-sponsored-stories: true
recent-explorations: true
recently-saved: true
top-sites: true
juno-onboarding:
description: A feature that shows juno onboarding flow.
variables:
cards:
description: Collection of user facing onboarding cards.
type: "Map<String, OnboardingCardData>"
default:
add-search-widget:
body: juno_onboarding_add_search_widget_description
card-type: add-search-widget
enabled: false
image-res: ic_onboarding_search_widget
ordering: 15
primary-button-label: juno_onboarding_add_search_widget_positive_button
secondary-button-label: juno_onboarding_add_search_widget_negative_button
title: juno_onboarding_add_search_widget_title
default-browser:
body: juno_onboarding_default_browser_description_nimbus_2
card-type: default-browser
image-res: ic_onboarding_welcome
link-text: juno_onboarding_default_browser_description_link_text
ordering: 10
primary-button-label: juno_onboarding_default_browser_positive_button
secondary-button-label: juno_onboarding_default_browser_negative_button
title: juno_onboarding_default_browser_title_nimbus_2
notification-permission:
body: juno_onboarding_enable_notifications_description_nimbus_2
card-type: notification-permission
image-res: ic_notification_permission
ordering: 30
primary-button-label: juno_onboarding_enable_notifications_positive_button
secondary-button-label: juno_onboarding_enable_notifications_negative_button
title: juno_onboarding_enable_notifications_title_nimbus_2
sync-sign-in:
body: juno_onboarding_sign_in_description_2
card-type: sync-sign-in
image-res: ic_onboarding_sync
ordering: 20
primary-button-label: juno_onboarding_sign_in_positive_button
secondary-button-label: juno_onboarding_sign_in_negative_button
title: juno_onboarding_sign_in_title_2
messaging:
description: "The in-app messaging system.\n"
variables:
actions:
description: A growable map of action URLs.
type: "Map<String, String>"
default:
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
INSTALL_SEARCH_WIDGET: "://install_search_widget"
MAKE_DEFAULT_BROWSER: "://make_default_browser"
OPEN_SETTINGS: "://settings"
OPEN_SETTINGS_ACCESSIBILITY: "://settings_accessibility"
OPEN_SETTINGS_ADDON_MANAGER: "://settings_addon_manager"
OPEN_SETTINGS_DELETE_BROWSING_DATA: "://settings_delete_browsing_data"
OPEN_SETTINGS_LOGINS: "://settings_logins"
OPEN_SETTINGS_NOTIFICATIONS: "://settings_notifications"
OPEN_SETTINGS_PRIVACY: "://settings_privacy"
OPEN_SETTINGS_SEARCH_ENGINE: "://settings_search_engine"
OPEN_SETTINGS_TRACKING_PROTECTION: "://settings_tracking_protection"
OPEN_SETTINGS_WALLPAPERS: "://settings_wallpapers"
TURN_ON_SYNC: "://turn_on_sync"
VIEW_BOOKMARKS: "://urls_bookmarks"
VIEW_COLLECTIONS: "://home_collections"
VIEW_HISTORY: "://urls_history"
VIEW_HOMESCREEN: "://home"
message-under-experiment:
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
type: Option<String>
default: ~
messages:
description: A growable collection of messages
type: "Map<String, MessageData>"
default:
default-browser:
action: MAKE_DEFAULT_BROWSER
button-label: preferences_set_as_default_browser
style: PERSISTENT
surface: homescreen
text: default_browser_experiment_card_text
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- USER_ESTABLISHED_INSTALL
default-browser-notification:
action: MAKE_DEFAULT_BROWSER
style: NOTIFICATION
surface: notification
text: nimbus_notification_default_browser_text
title: nimbus_notification_default_browser_title
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- DAY_3_AFTER_INSTALL
notification-config:
description: Configuration of the notification worker for all notification messages.
type: NotificationConfig
default: {}
on-control:
description: What should be displayed when a control message is selected.
type: ControlMessageBehavior
default: show-next-message
styles:
description: "A map of styles to configure message appearance.\n"
type: "Map<String, StyleData>"
default:
DEFAULT:
max-display-count: 5
priority: 50
NOTIFICATION:
max-display-count: 1
priority: 50
PERSISTENT:
max-display-count: 20
priority: 50
SURVEY:
max-display-count: 1
priority: 55
URGENT:
max-display-count: 10
priority: 100
WARNING:
max-display-count: 10
priority: 60
triggers:
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
type: "Map<String, String>"
default:
ALWAYS: "true"
DAY_1_AFTER_INSTALL: days_since_install == 1
DAY_2_AFTER_INSTALL: days_since_install == 2
DAY_3_AFTER_INSTALL: days_since_install == 3
DAY_4_AFTER_INSTALL: days_since_install == 4
DAY_5_AFTER_INSTALL: days_since_install == 5
DEVICE_ANDROID: "os == 'Android'"
DEVICE_IOS: "os == 'iOS'"
FUNNEL_ORGANIC: "adjust_campaign == ''"
FUNNEL_PAID: "adjust_campaign != ''"
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
INACTIVE_1_DAY: "'app_launched'|eventLastSeen('Hours') >= 24"
INACTIVE_2_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 2"
INACTIVE_3_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 3"
INACTIVE_4_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 4"
INACTIVE_5_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 5"
I_AM_DEFAULT_BROWSER: is_default_browser
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
NEVER: "false"
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
USER_DE_SPEAKER: "'de' in locale"
USER_EN_SPEAKER: "'en' in locale"
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
USER_ES_SPEAKER: "'es' in locale"
USER_FR_SPEAKER: "'fr' in locale"
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
USER_RECENTLY_INSTALLED: days_since_install < 7
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
allow-coenrollment: 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
jump-back-in-cfr: true
sync-cfr: true
tcp-cfr: true
tcp-feature: true
wallpapers-selection-tool: true
nimbus-system:
description: "Configuration of the Nimbus System in Android.\n"
variables:
refresh-interval-foreground:
description: "The minimum interval in minutes between fetching experiment \nrecipes in the foreground.\n"
type: Int
default: 60
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-icon:
description: The drawable displayed in the app menu for Settings
type: String
default: mozac_ic_settings
settings-punctuation:
description: The emoji displayed in the Settings screen title.
type: String
default: ""
settings-title:
description: The title of displayed in the Settings screen and app menu.
type: Text
default: browser_menu_settings
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
pdfjs:
description: PDF.js features
variables:
download-button:
description: Download button
type: Boolean
default: true
open-in-app-button:
description: Open in app button
type: Boolean
default: true
pre-permission-notification-prompt:
description: A feature that shows the pre-permission notification prompt.
variables:
enabled:
description: "if true, the pre-permission notification prompt is shown to the user."
type: Boolean
default: false
print:
description: A feature for printing from the share or browser menu.
variables:
browser-print-enabled:
description: "If true, a print button from the browser menu is available."
type: Boolean
default: true
share-print-enabled:
description: "If true, a print button from the share menu is available."
type: Boolean
default: true
private-browsing:
description: Private Browsing Mode
variables:
felt-privacy-enabled:
description: "if true, enable felt privacy related UI"
type: Boolean
default: false
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
search-extra-params:
description: A feature that provides additional args for search.
variables:
channel-id:
description: The channel Id param name with arg.
type: "Map<String, String>"
default: {}
enabled:
description: "If true, the feature is active."
type: Boolean
default: false
feature-enabler:
description: "The feature enabler param name with arg, NOTE this map could be empty."
type: "Map<String, String>"
default: {}
search-engine:
description: The search engine name.
type: String
default: ""
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: true
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
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
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
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
enums:
ControlMessageBehavior:
description: An enum to influence what should be displayed when a control message is selected.
variants:
show-next-message:
description: The next eligible message should be shown.
show-none:
description: The surface should show no message.
CookieBannersSection:
description: The identifiers for the sections of the MR 2022.
variants:
dialog-re-engage-time:
description: "An integer indicating the number of hours that needs to happen before the re-engagement dialog shows again since the last seen, for example if set to 4 that means if the users has seen the dialog, it will see it 4 hours later."
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-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."
HomeScreenSection:
description: The identifiers for the sections of the homescreen.
variants:
jump-back-in:
description: The tabs the user was looking immediately before being interrupted.
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.
recent-explorations:
description: The tab groups
recently-saved:
description: The sites the user has bookmarked recently.
top-sites:
description: The frecency and pinned sites.
MR2022Section:
description: The identifiers for the sections of the MR 2022.
variants:
home-onboarding-dialog-existing-users:
description: Home onboarding dialog for upgraded users.
jump-back-in-cfr:
description: Jump back-in onboarding message.
sync-cfr:
description: CFR for the first time you see a synced tab on 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.
wallpapers-selection-tool:
description: Wallpapers selection dialog tool for the home screen.
OnboardingCardType:
description: An enum to describe a type of card.
variants:
add-search-widget:
description: Allows user to add search widget to homescreen.
default-browser:
description: Allows user to set Firefox as the default browser.
notification-permission:
description: Allows user to enable notification permission.
sync-sign-in:
description: Allows user to sync with a Firefox account.
OnboardingPanel:
description: The types of onboarding panels in the onboarding page
variants:
privacy-notice:
description: The onboarding panel where users can tap to view our privacy notice.
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
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)
objects:
MessageData:
description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n"
fields:
action:
description: "A URL of a page or a deeplink. This may have substitution variables in.\n"
type: Text
default: ""
button-label:
description: "The text on the button. If no text is present, the whole message is clickable.\n"
type: Option<Text>
default: ~
experiment:
description: The slug of the experiment that this message came from.
type: Option<String>
default: ~
is-control:
description: "Indicates if this message is the control message, if true shouldn't be displayed"
type: Boolean
default: false
style:
description: "The style as described in a `StyleData` from the styles table.\n"
type: String
default: DEFAULT
surface:
description: The surface identifier for this message.
type: String
default: homescreen
text:
description: The message text displayed to the user
type: Text
default: ""
title:
description: The title text displayed to the user
type: Option<Text>
default: ~
trigger:
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions `true`.\n"
type: List<String>
default: []
NotificationConfig:
description: Attributes controlling the global configuration of notification messages.
fields:
refresh-interval:
description: "How often, in minutes, the notification message worker will wake up and check for new messages.\n"
type: Int
default: 240
OnboardingCardData:
description: An object to describe a user facing onboarding card.
fields:
body:
description: The message text displayed to the user. May contain linkable text.
type: Text
default: ""
card-type:
description: The type of the card.
type: OnboardingCardType
default: default-browser
enabled:
description: "If true, this card is shown to the user."
type: Boolean
default: true
image-res:
description: The resource id of the image to be displayed.
type: Image
default: ic_onboarding_welcome
link-text:
description: "The text to link from the body text. This should match the linkable text from the body text exactly. e.g. body: This is a policy link\n link-text: policy link\n"
type: Option<Text>
default: ~
ordering:
description: Used to sequence the cards.
type: Int
default: 0
primary-button-label:
description: The text to display on the primary button.
type: Text
default: ""
secondary-button-label:
description: The text to display on the secondary button.
type: Text
default: ""
title:
description: The title text displayed to the user.
type: Text
default: ""
StyleData:
description: "A group of properties (predominantly visual) to describe the style of the message.\n"
fields:
max-display-count:
description: "How many sessions will this message be shown to the user before it is expired.\n"
type: Int
default: 5
priority:
description: "The importance of this message. 0 is not very important, 100 is very important.\n"
type: Int
default: 50

Просмотреть файл

@ -0,0 +1,550 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Fenix (Firefox Android)
channels:
- release
features:
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:
dialog-re-engage-time: 4
feature-setting-value: 0
feature-setting-value-pbm: 0
feature-ui: 0
extensions-process:
description: A feature to rollout the extensions process.
variables:
enabled:
description: "If true, the extensions process is enabled."
type: Boolean
default: 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.\n"
type: Boolean
default: false
glean:
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
variables:
enable-event-timestamps:
description: Enables precise event timestamps for Glean events
type: Boolean
default: false
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: {}
growth-data:
description: A feature measuring campaign growth data
variables:
enabled:
description: "If true, the feature is active"
type: Boolean
default: true
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:
jump-back-in: true
pocket: true
pocket-sponsored-stories: true
recent-explorations: true
recently-saved: true
top-sites: true
juno-onboarding:
description: A feature that shows juno onboarding flow.
variables:
cards:
description: Collection of user facing onboarding cards.
type: "Map<String, OnboardingCardData>"
default:
add-search-widget:
body: juno_onboarding_add_search_widget_description
card-type: add-search-widget
enabled: false
image-res: ic_onboarding_search_widget
ordering: 15
primary-button-label: juno_onboarding_add_search_widget_positive_button
secondary-button-label: juno_onboarding_add_search_widget_negative_button
title: juno_onboarding_add_search_widget_title
default-browser:
body: juno_onboarding_default_browser_description_nimbus_2
card-type: default-browser
image-res: ic_onboarding_welcome
link-text: juno_onboarding_default_browser_description_link_text
ordering: 10
primary-button-label: juno_onboarding_default_browser_positive_button
secondary-button-label: juno_onboarding_default_browser_negative_button
title: juno_onboarding_default_browser_title_nimbus_2
notification-permission:
body: juno_onboarding_enable_notifications_description_nimbus_2
card-type: notification-permission
image-res: ic_notification_permission
ordering: 30
primary-button-label: juno_onboarding_enable_notifications_positive_button
secondary-button-label: juno_onboarding_enable_notifications_negative_button
title: juno_onboarding_enable_notifications_title_nimbus_2
sync-sign-in:
body: juno_onboarding_sign_in_description_2
card-type: sync-sign-in
image-res: ic_onboarding_sync
ordering: 20
primary-button-label: juno_onboarding_sign_in_positive_button
secondary-button-label: juno_onboarding_sign_in_negative_button
title: juno_onboarding_sign_in_title_2
messaging:
description: "The in-app messaging system.\n"
variables:
actions:
description: A growable map of action URLs.
type: "Map<String, String>"
default:
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
INSTALL_SEARCH_WIDGET: "://install_search_widget"
MAKE_DEFAULT_BROWSER: "://make_default_browser"
OPEN_SETTINGS: "://settings"
OPEN_SETTINGS_ACCESSIBILITY: "://settings_accessibility"
OPEN_SETTINGS_ADDON_MANAGER: "://settings_addon_manager"
OPEN_SETTINGS_DELETE_BROWSING_DATA: "://settings_delete_browsing_data"
OPEN_SETTINGS_LOGINS: "://settings_logins"
OPEN_SETTINGS_NOTIFICATIONS: "://settings_notifications"
OPEN_SETTINGS_PRIVACY: "://settings_privacy"
OPEN_SETTINGS_SEARCH_ENGINE: "://settings_search_engine"
OPEN_SETTINGS_TRACKING_PROTECTION: "://settings_tracking_protection"
OPEN_SETTINGS_WALLPAPERS: "://settings_wallpapers"
TURN_ON_SYNC: "://turn_on_sync"
VIEW_BOOKMARKS: "://urls_bookmarks"
VIEW_COLLECTIONS: "://home_collections"
VIEW_HISTORY: "://urls_history"
VIEW_HOMESCREEN: "://home"
message-under-experiment:
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
type: Option<String>
default: ~
messages:
description: A growable collection of messages
type: "Map<String, MessageData>"
default:
default-browser:
action: MAKE_DEFAULT_BROWSER
button-label: preferences_set_as_default_browser
style: PERSISTENT
surface: homescreen
text: default_browser_experiment_card_text
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- USER_ESTABLISHED_INSTALL
default-browser-notification:
action: MAKE_DEFAULT_BROWSER
style: NOTIFICATION
surface: notification
text: nimbus_notification_default_browser_text
title: nimbus_notification_default_browser_title
trigger:
- I_AM_NOT_DEFAULT_BROWSER
- DAY_3_AFTER_INSTALL
notification-config:
description: Configuration of the notification worker for all notification messages.
type: NotificationConfig
default: {}
on-control:
description: What should be displayed when a control message is selected.
type: ControlMessageBehavior
default: show-next-message
styles:
description: "A map of styles to configure message appearance.\n"
type: "Map<String, StyleData>"
default:
DEFAULT:
max-display-count: 5
priority: 50
NOTIFICATION:
max-display-count: 1
priority: 50
PERSISTENT:
max-display-count: 20
priority: 50
SURVEY:
max-display-count: 1
priority: 55
URGENT:
max-display-count: 10
priority: 100
WARNING:
max-display-count: 10
priority: 60
triggers:
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
type: "Map<String, String>"
default:
ALWAYS: "true"
DAY_1_AFTER_INSTALL: days_since_install == 1
DAY_2_AFTER_INSTALL: days_since_install == 2
DAY_3_AFTER_INSTALL: days_since_install == 3
DAY_4_AFTER_INSTALL: days_since_install == 4
DAY_5_AFTER_INSTALL: days_since_install == 5
DEVICE_ANDROID: "os == 'Android'"
DEVICE_IOS: "os == 'iOS'"
FUNNEL_ORGANIC: "adjust_campaign == ''"
FUNNEL_PAID: "adjust_campaign != ''"
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
INACTIVE_1_DAY: "'app_launched'|eventLastSeen('Hours') >= 24"
INACTIVE_2_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 2"
INACTIVE_3_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 3"
INACTIVE_4_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 4"
INACTIVE_5_DAYS: "'app_launched'|eventLastSeen('Days', 0) >= 5"
I_AM_DEFAULT_BROWSER: is_default_browser
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
NEVER: "false"
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
USER_DE_SPEAKER: "'de' in locale"
USER_EN_SPEAKER: "'en' in locale"
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
USER_ES_SPEAKER: "'es' in locale"
USER_FR_SPEAKER: "'fr' in locale"
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
USER_RECENTLY_INSTALLED: days_since_install < 7
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
allow-coenrollment: 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
jump-back-in-cfr: true
sync-cfr: true
tcp-cfr: true
tcp-feature: true
wallpapers-selection-tool: true
nimbus-system:
description: "Configuration of the Nimbus System in Android.\n"
variables:
refresh-interval-foreground:
description: "The minimum interval in minutes between fetching experiment \nrecipes in the foreground.\n"
type: Int
default: 60
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-icon:
description: The drawable displayed in the app menu for Settings
type: String
default: mozac_ic_settings
settings-punctuation:
description: The emoji displayed in the Settings screen title.
type: String
default: ""
settings-title:
description: The title of displayed in the Settings screen and app menu.
type: Text
default: browser_menu_settings
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
pdfjs:
description: PDF.js features
variables:
download-button:
description: Download button
type: Boolean
default: true
open-in-app-button:
description: Open in app button
type: Boolean
default: true
pre-permission-notification-prompt:
description: A feature that shows the pre-permission notification prompt.
variables:
enabled:
description: "if true, the pre-permission notification prompt is shown to the user."
type: Boolean
default: false
print:
description: A feature for printing from the share or browser menu.
variables:
browser-print-enabled:
description: "If true, a print button from the browser menu is available."
type: Boolean
default: true
share-print-enabled:
description: "If true, a print button from the share menu is available."
type: Boolean
default: true
private-browsing:
description: Private Browsing Mode
variables:
felt-privacy-enabled:
description: "if true, enable felt privacy related UI"
type: Boolean
default: false
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
search-extra-params:
description: A feature that provides additional args for search.
variables:
channel-id:
description: The channel Id param name with arg.
type: "Map<String, String>"
default: {}
enabled:
description: "If true, the feature is active."
type: Boolean
default: false
feature-enabler:
description: "The feature enabler param name with arg, NOTE this map could be empty."
type: "Map<String, String>"
default: {}
search-engine:
description: The search engine name.
type: String
default: ""
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
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
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
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
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
enums:
ControlMessageBehavior:
description: An enum to influence what should be displayed when a control message is selected.
variants:
show-next-message:
description: The next eligible message should be shown.
show-none:
description: The surface should show no message.
CookieBannersSection:
description: The identifiers for the sections of the MR 2022.
variants:
dialog-re-engage-time:
description: "An integer indicating the number of hours that needs to happen before the re-engagement dialog shows again since the last seen, for example if set to 4 that means if the users has seen the dialog, it will see it 4 hours later."
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-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."
HomeScreenSection:
description: The identifiers for the sections of the homescreen.
variants:
jump-back-in:
description: The tabs the user was looking immediately before being interrupted.
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.
recent-explorations:
description: The tab groups
recently-saved:
description: The sites the user has bookmarked recently.
top-sites:
description: The frecency and pinned sites.
MR2022Section:
description: The identifiers for the sections of the MR 2022.
variants:
home-onboarding-dialog-existing-users:
description: Home onboarding dialog for upgraded users.
jump-back-in-cfr:
description: Jump back-in onboarding message.
sync-cfr:
description: CFR for the first time you see a synced tab on 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.
wallpapers-selection-tool:
description: Wallpapers selection dialog tool for the home screen.
OnboardingCardType:
description: An enum to describe a type of card.
variants:
add-search-widget:
description: Allows user to add search widget to homescreen.
default-browser:
description: Allows user to set Firefox as the default browser.
notification-permission:
description: Allows user to enable notification permission.
sync-sign-in:
description: Allows user to sync with a Firefox account.
OnboardingPanel:
description: The types of onboarding panels in the onboarding page
variants:
privacy-notice:
description: The onboarding panel where users can tap to view our privacy notice.
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
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)
objects:
MessageData:
description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n"
fields:
action:
description: "A URL of a page or a deeplink. This may have substitution variables in.\n"
type: Text
default: ""
button-label:
description: "The text on the button. If no text is present, the whole message is clickable.\n"
type: Option<Text>
default: ~
experiment:
description: The slug of the experiment that this message came from.
type: Option<String>
default: ~
is-control:
description: "Indicates if this message is the control message, if true shouldn't be displayed"
type: Boolean
default: false
style:
description: "The style as described in a `StyleData` from the styles table.\n"
type: String
default: DEFAULT
surface:
description: The surface identifier for this message.
type: String
default: homescreen
text:
description: The message text displayed to the user
type: Text
default: ""
title:
description: The title text displayed to the user
type: Option<Text>
default: ~
trigger:
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions `true`.\n"
type: List<String>
default: []
NotificationConfig:
description: Attributes controlling the global configuration of notification messages.
fields:
refresh-interval:
description: "How often, in minutes, the notification message worker will wake up and check for new messages.\n"
type: Int
default: 240
OnboardingCardData:
description: An object to describe a user facing onboarding card.
fields:
body:
description: The message text displayed to the user. May contain linkable text.
type: Text
default: ""
card-type:
description: The type of the card.
type: OnboardingCardType
default: default-browser
enabled:
description: "If true, this card is shown to the user."
type: Boolean
default: true
image-res:
description: The resource id of the image to be displayed.
type: Image
default: ic_onboarding_welcome
link-text:
description: "The text to link from the body text. This should match the linkable text from the body text exactly. e.g. body: This is a policy link\n link-text: policy link\n"
type: Option<Text>
default: ~
ordering:
description: Used to sequence the cards.
type: Int
default: 0
primary-button-label:
description: The text to display on the primary button.
type: Text
default: ""
secondary-button-label:
description: The text to display on the secondary button.
type: Text
default: ""
title:
description: The title text displayed to the user.
type: Text
default: ""
StyleData:
description: "A group of properties (predominantly visual) to describe the style of the message.\n"
fields:
max-display-count:
description: "How many sessions will this message be shown to the user before it is expired.\n"
type: Int
default: 5
priority:
description: "The importance of this message. 0 is not very important, 100 is very important.\n"
type: Int
default: 50

Просмотреть файл

@ -1,4 +1,4 @@
beta: 7f11f5cf2f8ef7fb54eea8d499ae7df1097763cc
central: d6f61c448b906c1e68cdc66920d227f008cc2db9
esr115: 18785059daf5739572dd094d05aba48254897011
release: e593c2ab0b4584c93b6c7c99fa09dbc9677d806c
beta: 5974796cd9cd088eb58006e6594138d3bc8e7d39
central: 83540410d1e22cc835d53d6657dd072b4a166d7f
esr115: 9504b353d4ad97d101cf0102acc47ab182877aca
release: a8daee71c97036d89232cdb16881b834448a2286

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,344 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json",
"title": "Messaging Experiment",
"description": "A Firefox Messaging System message.",
"if": {
"type": "object",
"properties": {
"template": {
"const": "multi"
}
},
"required": [
"template"
]
},
"then": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/MultiMessage"
},
"else": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/TemplatedMessage"
},
"$defs": {
"ToastNotification": {
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "file:///ToastNotification.schema.json",
"title": "ToastNotification",
"description": "A template for toast notifications displayed by the Alert service.",
"allOf": [
{
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/Message"
}
],
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"title": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizableText",
"description": "Id of localized string or message override of toast notification title"
},
"body": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizableText",
"description": "Id of localized string or message override of toast notification body"
},
"icon_url": {
"description": "The URL of the image used as an icon of the toast notification.",
"type": "string",
"format": "moz-url-format"
},
"image_url": {
"description": "The URL of an image to be displayed as part of the notification.",
"type": "string",
"format": "moz-url-format"
},
"launch_url": {
"description": "The URL to launch when the notification or an action button is clicked.",
"type": "string",
"format": "moz-url-format"
},
"launch_action": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The launch action to be performed when Firefox is launched."
},
"data": {
"type": "object"
}
},
"required": [
"type"
],
"additionalProperties": true
},
"requireInteraction": {
"type": "boolean",
"description": "Whether the toast notification should remain active until the user clicks or dismisses it, rather than closing automatically."
},
"tag": {
"type": "string",
"description": "An identifying tag for the toast notification."
},
"data": {
"type": "object",
"description": "Arbitrary data associated with the toast notification."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizableText",
"description": "The action text to be shown to the user."
},
"action": {
"type": "string",
"description": "Opaque identifer that identifies action."
},
"iconURL": {
"type": "string",
"format": "uri",
"description": "URL of an icon to display with the action."
},
"windowsSystemActivationType": {
"type": "boolean",
"description": "Whether to have Windows process the given `action`."
},
"launch_action": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The launch action to be performed when Firefox is launched."
},
"data": {
"type": "object"
}
},
"required": [
"type"
],
"additionalProperties": true
}
},
"required": [
"action",
"title"
],
"additionalProperties": true
}
}
},
"additionalProperties": true,
"required": [
"title",
"body"
]
},
"template": {
"type": "string",
"const": "toast_notification"
}
},
"required": [
"content",
"targeting",
"template",
"trigger"
],
"additionalProperties": true
},
"Message": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The message identifier"
},
"groups": {
"description": "Array of preferences used to control `enabled` status of the group. If any is `false` the group is disabled.",
"type": "array",
"items": {
"type": "string",
"description": "Preference name"
}
},
"template": {
"type": "string",
"description": "Which messaging template this message is using.",
"enum": [
"toast_notification"
]
},
"frequency": {
"type": "object",
"description": "An object containing frequency cap information for a message.",
"properties": {
"lifetime": {
"type": "integer",
"description": "The maximum lifetime impressions for a message.",
"minimum": 1,
"maximum": 100
},
"custom": {
"type": "array",
"description": "An array of custom frequency cap definitions.",
"items": {
"description": "A frequency cap definition containing time and max impression information",
"type": "object",
"properties": {
"period": {
"type": "integer",
"description": "Period of time in milliseconds (e.g. 86400000 for one day)"
},
"cap": {
"type": "integer",
"description": "The maximum impressions for the message within the defined period.",
"minimum": 1,
"maximum": 100
}
},
"required": [
"period",
"cap"
]
}
}
}
},
"priority": {
"description": "The priority of the message. If there are two competing messages to show, the one with the highest priority will be shown",
"type": "integer"
},
"order": {
"description": "The order in which messages should be shown. Messages will be shown in increasing order.",
"type": "integer"
},
"targeting": {
"description": "A JEXL expression representing targeting information",
"type": "string"
},
"trigger": {
"description": "An action to trigger potentially showing the message",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A string identifying the trigger action"
},
"params": {
"type": "array",
"description": "An optional array of string parameters for the trigger action",
"items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
}
}
},
"required": [
"id"
]
},
"provider": {
"description": "An identifier for the provider of this message, such as \"cfr\" or \"preview\".",
"type": "string"
}
},
"additionalProperties": true,
"dependentRequired": {
"content": [
"id",
"template"
],
"template": [
"id",
"content"
]
}
},
"localizedText": {
"type": "object",
"properties": {
"string_id": {
"description": "Id of localized string to be rendered.",
"type": "string"
}
},
"required": [
"string_id"
]
},
"localizableText": {
"description": "Either a raw string or an object containing the string_id of the localized text",
"oneOf": [
{
"type": "string",
"description": "The string to be rendered."
},
{
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizedText"
}
]
},
"TemplatedMessage": {
"description": "An FxMS message of one of a variety of types.",
"type": "object",
"allOf": [
{
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/Message"
},
{
"if": {
"type": "object",
"properties": {
"template": {
"type": "string",
"enum": [
"toast_notification"
]
}
},
"required": [
"template"
]
},
"then": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/ToastNotification"
}
}
]
},
"MultiMessage": {
"description": "An object containing an array of messages.",
"type": "object",
"properties": {
"template": {
"type": "string",
"const": "multi"
},
"messages": {
"type": "array",
"description": "An array of messages.",
"items": {
"$ref": "resource://activity-stream/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/TemplatedMessage"
}
}
},
"required": [
"template",
"messages"
]
}
}
}

Просмотреть файл

@ -0,0 +1,73 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Legacy (Normandy) Heartbeat, via Nimbus",
"description": "The schema for the Legacy Heartbeat Nimbus feature.",
"type": "object",
"properties": {
"survey": {
"$comment": "Hearbeat arguments are nested under survey to prevent simultaneous rollouts and experiments from overriding eachothers optional variables",
"type": "object",
"properties": {
"repeatOption": {
"type": "string",
"enum": ["once", "xdays", "nag"],
"description": "Determines how often a prompt is shown executes.",
"default": "once"
},
"repeatEvery": {
"description": "For repeatOption=xdays, how often (in days) the prompt is displayed.",
"default": null,
"type": ["number", "null"]
},
"includeTelemetryUUID": {
"type": "boolean",
"description": "Include unique user ID in post-answer-url and Telemetry",
"default": false
},
"surveyId": {
"description": "Slug uniquely identifying this survey in telemetry",
"type": "string"
},
"message": {
"description": "Message to show to the user",
"type": "string"
},
"engagementButtonLabel": {
"description": "Text for the engagement button. If specified, this button will be shown instead of rating stars.",
"default": null,
"type": ["string", "null"]
},
"thanksMessage": {
"description": "Thanks message to show to the user after they've rated Firefox",
"type": "string"
},
"postAnswerUrl": {
"description": "URL to redirect the user to after rating Firefox or clicking the engagement button",
"default": null,
"type": ["string", "null"]
},
"learnMoreMessage": {
"description": "Message to show to the user to learn more",
"default": null,
"type": ["string", "null"]
},
"learnMoreUrl": {
"description": "URL to show to the user when they click Learn More",
"default": null,
"type": ["string", "null"]
}
},
"required": [
"surveyId",
"message",
"thanksMessage",
"postAnswerUrl",
"learnMoreMessage",
"learnMoreUrl"
],
"additionalProperties": false
}
},
"required": ["survey"],
"additionalProperties": false
}

Просмотреть файл

@ -11,9 +11,9 @@ focus-v119.1.0: b94d3727d77223b92a0e4a912ff63cde41fdc94a
focus-v119.1.1: 2a75e1525865deb6301739ceb909b61ab5ec290f
focus-v120.0: 039de7ef85f01fb35154552dfaa9c832f3cee182
focus-v120.0.1: a61decd90e478e203f04be2d0e78a2ecf21ee50f
main: 5cbb8c01969005a7ac382883f9930ecfa49b304c
main: 439e2f88092aaf3035f9d1b48ea54ed9c41f0172
releases_v117: 228b8dfc36d88931554eb5ad04efd1af69fe300a
releases_v118: f70b6421f0acca51608698abe084e32079d8c081
releases_v119: 92c6ca32199d1600a01c592bfb4c46db655bf7fc
releases_v120: c3db5eff5aeb3d45be0c12f311e1fc285c5c3e32
releases_v121: 144b8c3a540e21e2652b782ee2e9deae68ce720a
releases_v120: f339e2b9c92032e73a440a0133ff20e2e630281f
releases_v121: d3b387b18243b945c0e0795c9214d71ec21ad140

Просмотреть файл

@ -0,0 +1,29 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Focus Android
channels:
- beta
features:
cookie-banner:
description: Nimbus feature name intended to control the cookie banner handling in the app.
variables:
is-cookie-handling-enabled:
description: "If 'true' , the app will show the settings part for cookie banner handling"
type: Boolean
default: false
onboarding:
description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
variables:
is-cfr-enabled:
description: "If `true`, the app will show the cfrs"
type: Boolean
default: false
is-enabled:
description: "If `true`, the app will show the new onboarding screen"
type: Boolean
default: true
is-promote-search-widget-dialog-enabled:
description: "If `true`, the app will show the new dialog for promote search widget"
type: Boolean
default: false

Просмотреть файл

@ -0,0 +1,29 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Focus Android
channels:
- debug
features:
cookie-banner:
description: Nimbus feature name intended to control the cookie banner handling in the app.
variables:
is-cookie-handling-enabled:
description: "If 'true' , the app will show the settings part for cookie banner handling"
type: Boolean
default: true
onboarding:
description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
variables:
is-cfr-enabled:
description: "If `true`, the app will show the cfrs"
type: Boolean
default: true
is-enabled:
description: "If `true`, the app will show the new onboarding screen"
type: Boolean
default: true
is-promote-search-widget-dialog-enabled:
description: "If `true`, the app will show the new dialog for promote search widget"
type: Boolean
default: true

Просмотреть файл

@ -0,0 +1,23 @@
---
cookie-banner:
description: Nimbus feature name intended to control the cookie banner handling in the app.
hasExposure: true
exposureDescription: ""
variables:
is-cookie-handling-enabled:
type: boolean
description: "If 'true' , the app will show the settings part for cookie banner handling"
onboarding:
description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
hasExposure: true
exposureDescription: ""
variables:
is-cfr-enabled:
type: boolean
description: "If `true`, the app will show the cfrs"
is-enabled:
type: boolean
description: "If `true`, the app will show the new onboarding screen"
is-promote-search-widget-dialog-enabled:
type: boolean
description: "If `true`, the app will show the new dialog for promote search widget"

Просмотреть файл

@ -0,0 +1,29 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Focus Android
channels:
- nightly
features:
cookie-banner:
description: Nimbus feature name intended to control the cookie banner handling in the app.
variables:
is-cookie-handling-enabled:
description: "If 'true' , the app will show the settings part for cookie banner handling"
type: Boolean
default: false
onboarding:
description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
variables:
is-cfr-enabled:
description: "If `true`, the app will show the cfrs"
type: Boolean
default: false
is-enabled:
description: "If `true`, the app will show the new onboarding screen"
type: Boolean
default: true
is-promote-search-widget-dialog-enabled:
description: "If `true`, the app will show the new dialog for promote search widget"
type: Boolean
default: false

Просмотреть файл

@ -0,0 +1,29 @@
---
version: 1.0.0
about:
description: Nimbus Feature Manifest for Focus Android
channels:
- release
features:
cookie-banner:
description: Nimbus feature name intended to control the cookie banner handling in the app.
variables:
is-cookie-handling-enabled:
description: "If 'true' , the app will show the settings part for cookie banner handling"
type: Boolean
default: false
onboarding:
description: Nimbus feature name intended to control the onboarding plus all CFRs in the app.
variables:
is-cfr-enabled:
description: "If `true`, the app will show the cfrs"
type: Boolean
default: false
is-enabled:
description: "If `true`, the app will show the new onboarding screen"
type: Boolean
default: true
is-promote-search-widget-dialog-enabled:
description: "If `true`, the app will show the new dialog for promote search widget"
type: Boolean
default: false

Просмотреть файл

@ -1,4 +1,4 @@
main: 71dc39c387324f5a70234cd96035468dfb7d6c56
main: 80751ffd812570ad95a4e4c2f469c024d5691551
release/v117: 43b690c450066d4dde1b2ccb93ed3714d244d502
release/v118: 89a7ea3c3372e5a4ef5b3c5b85499d26198d0524
release/v119: 7dc381f991c6d2a983c3ba7f0cffd880e8c29e7b