chore(nimbus): Update External Configs (#11622)
SUMMARY: SUCCESS: fenix at master (73adec8ae1089db082e350da8951b8dde7aa3bcb) version None fenix at master (73adec8ae1089db082e350da8951b8dde7aa3bcb) version 134.0.0 fenix at beta (dc23ec38f0bd6a5c31cbb3c506baa37121a64d76) version 133.0.0 firefox_ios at main (c898362a35b1771083e0b7262e758064130af0d0) version None firefox_ios at release/v132 (19207ebcbcd477b70878b17c322b06116388c68e) version 132.1.0 firefox_ios at release/v133 (18b5f6f3f39c6473ee20589ac643263f017d083b) version 133.0.0 firefox_ios at main (c898362a35b1771083e0b7262e758064130af0d0) version 134.0.0 focus_android at main (fe8a71cd70ad5674abe1824fe11dc78372b736c2) version None focus_ios at main (c898362a35b1771083e0b7262e758064130af0d0) version None focus_ios at release/v132 (19207ebcbcd477b70878b17c322b06116388c68e) version 132.1.0 focus_ios at release/v133 (18b5f6f3f39c6473ee20589ac643263f017d083b) version 133.0.0 focus_ios at focus/klar-v132.0 (d9ed6134db59ff456d343e2bb211aefd040319ac) version 132.0.0 focus_ios at main (c898362a35b1771083e0b7262e758064130af0d0) version 134.0.0 monitor_cirrus at main (0da029654e65dedffe2b3bd169d1160626f2c11b) version None mozillavpn_backend_cirrus at main (2eb7ad4188db6bd5d4f48a15dd2768f89c143bc6) version None firefox_accounts_cirrus at main (287ef69703b78a56ac1a5cfec5a67b9fa0b4704e) version None firefox_desktop at central (2c9f37ff7f0d76a31beb333db9e00e3afc264e32) version None firefox_desktop at central (2c9f37ff7f0d76a31beb333db9e00e3afc264e32) version 134.0.0 firefox_desktop at beta (64a45ed39229050e732b13d08796afffe90be346) version 133.0.0 firefox_desktop at esr115 (1d9708ee43998b66c1d6ee9061ddaa94d92554f8) version 115.18.0 firefox_desktop at esr128 (2e04aea09d19ec2f1cf851e3ea3682cab6be6596) version 128.5.0 CACHED: fenix at release (e0e05140777a65b4c719d51fbea8d31e7942857d) version 132.0.0 (cached) firefox_ios at release/v129 (500c57e46f0de7c5125ba823eb4f72500934bdca) version 129.3.0 (cached) firefox_ios at release/v130 (a48ec1b1f0219e1987bb38bc4f6b838f37dc6f12) version 130.2.0 (cached) firefox_ios at release/v131 (7444df581b62d357df12ddc3c90d821d940efbb8) version 131.5.0 (cached) focus_android at releases_v121 (979fbe8d7fe04a9b09fe657bb787fda6f4d5ab42) version 121.1.1 (cached) focus_android at releases_v122 (1fcbfc41dba53965481a0e4d4725833bf3669dce) version 122.1.1 (cached) focus_android at releases_v123 (5a38e0cb4499f659a5fff308fa1deee653c0318b) version 123.1.1 (cached) focus_android at releases_v124 (0ad8d97fb3ab2ec6b9bb3905ee742900a4b9325d) version 124.2.1 (cached) focus_android at releases_v125 (2b43ab8069abac2bfee4b609e734c0207876a2ac) version 125.3.1 (cached) focus_android at focus-v125.3.0 (9f2990415376f169eb0053fceb329b70b4421bcb) version 125.3.0 (cached) focus_android at focus-v125.2.0 (d1c6eeb4167fc8ffed02cdfd3138fa696381d548) version 125.2.0 (cached) focus_android at main (fe8a71cd70ad5674abe1824fe11dc78372b736c2) version 125.0.0 (cached) focus_android at focus-v124.2.0 (7a0e399c7bc4faae43ce70ddc201c7899498d1b5) version 124.2.0 (cached) focus_android at focus-v124.1.0 (516df33ca96e950af1bf791893cd16d7add61c5d) version 124.1.0 (cached) focus_android at focus-v124.0 (5afe87a5bbb92f7ecf990a2fbc8095503a47c272) version 124.0.0 (cached) focus_android at focus-v123.1.0 (cb7c807e0fb5bc08131415e2e5ecef9da658d410) version 123.1.0 (cached) focus_android at focus-v123.0 (f5f378e2c05c9d69a5088c112c14fdea507d1c65) version 123.0.0 (cached) focus_android at focus-v122.1.0 (0d665405685c43c9266a3de65f16eabb832bb908) version 122.1.0 (cached) focus_android at focus-v122.0.1 (c67c9e840c00ec348a6a27adedad28feb54aa4a2) version 122.0.1 (cached) focus_android at focus-v122.0 (b49c4f23804d23cc727b8f70c061dccd64d720bc) version 122.0.0 (cached) focus_android at focus-v121.1.0 (62d5117f7996cc8862fdbdc0cb4a1dd5cdebedd6) version 121.1.0 (cached) focus_android at focus-v121.0.1 (fd4d2513324712e91577d8be18797e64089d3cf1) version 121.0.1 (cached) focus_android at focus-v121.0 (1955f8455fa2cac1b2080af9360996c06df5b4dd) version 121.0.0 (cached) focus_ios at release/v129 (500c57e46f0de7c5125ba823eb4f72500934bdca) version 129.3.0 (cached) focus_ios at release/v130 (a48ec1b1f0219e1987bb38bc4f6b838f37dc6f12) version 130.2.0 (cached) focus_ios at release/v131 (7444df581b62d357df12ddc3c90d821d940efbb8) version 131.5.0 (cached) focus_ios at focus/klar-v131.1 (b7dca2271b14988837524a30eb154d91eb5e4912) version 131.1.0 (cached) focus_ios at focus/klar-v131.0 (34d92c8df1b1522a1da88c23879b439d763ec133) version 131.0.0 (cached) focus_ios at focus/klar-v130.0 (0b359af1d789a91976657cbe22c7d3d9c7fdadc3) version 130.0.0 (cached) focus_ios at focus/klar-v129.2 (61ba62d82c23048762bede05525bb666e47a2a31) version 129.2.0 (cached) focus_ios at focus/klar-v129.0 (0e05b35093a60b308f0ef46447ab5be63fe5409f) version 129.0.0 (cached) firefox_desktop at release (9f14eb1206fa299706e66b939626cd34c710d667) version 132.0.0 (cached) Circle CI Task: https://circleci.com/gh/mozilla/experimenter/249542
This commit is contained in:
Родитель
56574edd14
Коммит
6816b84d61
|
@ -1,3 +1,3 @@
|
|||
beta: da3435d2465711ed3d557b113ad8d93606c942bb
|
||||
master: b2d5ed9e8997e0c95c9243ffebd8573daade7eb3
|
||||
beta: dc23ec38f0bd6a5c31cbb3c506baa37121a64d76
|
||||
master: 73adec8ae1089db082e350da8951b8dde7aa3bcb
|
||||
release: e0e05140777a65b4c719d51fbea8d31e7942857d
|
||||
|
|
|
@ -0,0 +1,909 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: Nimbus Feature Manifest for Fenix (Firefox Android)
|
||||
channels:
|
||||
- beta
|
||||
features:
|
||||
alternative-app-launcher-icon:
|
||||
description: A feature that changes the app launcher icon background color.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
reset-to-default:
|
||||
description: "If true use the default icon, if false use the alternative icon. This is required to 'reset' the icon for enrolled users once the initial experiment is complete.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
awesomebar-suggestion-provider:
|
||||
description: Configuration for the Firefox Suggest awesomebar suggestion provider.
|
||||
variables:
|
||||
available-suggestion-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
bookmarks:
|
||||
description: Feature for Bookmarks
|
||||
variables:
|
||||
new-compose-ui:
|
||||
description: "if true, enable new compose based UI"
|
||||
type: Boolean
|
||||
default: false
|
||||
cookie-banners:
|
||||
description: Features for cookie banner handling.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<CookieBannersSection, Int>"
|
||||
default:
|
||||
feature-ui: 1
|
||||
feature-setting-value: 0
|
||||
feature-setting-value-pbm: 1
|
||||
feature-setting-detect-only: 0
|
||||
feature-setting-global-rules: 1
|
||||
feature-setting-global-rules-sub-frames: 1
|
||||
fingerprinting-protection:
|
||||
description: Control Fingerprinting Protection
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables fingerprinting protection in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables fingerprinting protection in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
fdlibm-math:
|
||||
description: "Uses a different math backend for Math.sin/cos/tan in JavaScript that exposes less entropy\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
overrides:
|
||||
description: "The protection overrides to add or remove fingerprinting protection targets. Please check RFPTargets.inc for all supported targets.\n"
|
||||
type: String
|
||||
default: ""
|
||||
fission:
|
||||
description: The feature that controls whether fission is enabled or not in Gecko.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when set to false.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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:
|
||||
delay-ping-lifetime-io:
|
||||
description: Glean will delay io for ping lifetime metrics
|
||||
type: Boolean
|
||||
default: true
|
||||
enable-event-timestamps:
|
||||
description: Enables precise event timestamps for Glean events
|
||||
type: Boolean
|
||||
default: true
|
||||
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: {}
|
||||
ping-lifetime-max-time:
|
||||
description: After what time to auto-flush
|
||||
type: Int
|
||||
default: 2000
|
||||
ping-lifetime-threshold:
|
||||
description: Write count threshold when to auto-flush
|
||||
type: Int
|
||||
default: 1000
|
||||
allow-coenrollment: true
|
||||
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:
|
||||
top-sites: true
|
||||
jump-back-in: true
|
||||
bookmarks: true
|
||||
recent-explorations: true
|
||||
pocket: true
|
||||
pocket-sponsored-stories: true
|
||||
juno-onboarding:
|
||||
description: A feature that shows the onboarding flow.
|
||||
variables:
|
||||
cards:
|
||||
description: Collection of user facing onboarding cards.
|
||||
type: "Map<OnboardingCardKey, OnboardingCardData>"
|
||||
default:
|
||||
default-browser:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_default_browser_description_nimbus_3
|
||||
card-type: default-browser
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_welcome
|
||||
ordering: 10
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
add-search-widget:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_add_search_widget_description
|
||||
card-type: add-search-widget
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_search_widget
|
||||
ordering: 15
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
sync-sign-in:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_sign_in_description_3
|
||||
card-type: sync-sign-in
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_sync
|
||||
ordering: 20
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
notification-permission:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_enable_notifications_description_nimbus_2
|
||||
card-type: notification-permission
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_notification_permission
|
||||
ordering: 30
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
string-alias: OnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
menu-redesign:
|
||||
description: Control the new menu redesign.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the new menu redesign is available."
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system.\n"
|
||||
variables:
|
||||
$$experiment:
|
||||
description: "The only acceptable value for `MessageData#experiment`. This should not be set by experiment."
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
$$surfaces:
|
||||
description: "A list available surfaces for this app.\n\nThis should not be written to by experiments, and should be hidden to users.\n"
|
||||
type: List<SurfaceName>
|
||||
default:
|
||||
- homescreen
|
||||
- notification
|
||||
- survey
|
||||
- microsurvey
|
||||
string-alias: SurfaceName
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_URL: "://open"
|
||||
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
|
||||
INSTALL_SEARCH_WIDGET: "://install_search_widget"
|
||||
MAKE_DEFAULT_BROWSER: "://make_default_browser"
|
||||
VIEW_BOOKMARKS: "://urls_bookmarks"
|
||||
VIEW_COLLECTIONS: "://home_collections"
|
||||
VIEW_HISTORY: "://urls_history"
|
||||
VIEW_HOMESCREEN: "://home"
|
||||
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"
|
||||
OPEN_SETTINGS: "://settings"
|
||||
TURN_ON_SYNC: "://turn_on_sync"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: A growable collection of messages
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
title: default_browser_experiment_card_title
|
||||
text: default_browser_experiment_card_text
|
||||
surface: homescreen
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
trigger-if-all:
|
||||
- USER_ESTABLISHED_INSTALL
|
||||
- ANDROID_API_BELOW_29
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
style: PERSISTENT
|
||||
button-label: preferences_set_as_default_browser
|
||||
default-browser-notification:
|
||||
title: nimbus_notification_default_browser_title
|
||||
text: nimbus_notification_default_browser_text
|
||||
surface: notification
|
||||
style: NOTIFICATION
|
||||
trigger-if-all:
|
||||
- DAY_3_AFTER_INSTALL
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
string-alias: MessageKey
|
||||
notification-config:
|
||||
description: Configuration of the notification worker for all notification messages.
|
||||
type: NotificationConfig
|
||||
default:
|
||||
refresh-interval: 240
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
|
||||
ANDROID_API_BELOW_29: android_version < 29
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
FUNNEL_PAID: "adjust_campaign != ''"
|
||||
FUNNEL_ORGANIC: "adjust_campaign == ''"
|
||||
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"
|
||||
RECENTLY_PRINTED: "'print_tapped'|eventLastSeen('Hours') <= 24"
|
||||
SECOND_HOMEPAGE_VIEW: "'home_screen_displayed'|eventSum('Years', 4, 0) >= 2"
|
||||
PERFORMED_A_SEARCH_AGAIN_RECENTLY: "'performed_search'|eventSum('Years', 4, 0) >= 2 && 'performed_search'|eventLastSeen('Minutes') < 1"
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
FXA_MORE_THAN_1_DEVICE: fxa_connected_devices > 1
|
||||
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
|
||||
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
|
||||
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
|
||||
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
|
||||
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
|
||||
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
|
||||
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
|
||||
string-alias: TriggerName
|
||||
allow-coenrollment: true
|
||||
microsurveys:
|
||||
description: Feature for microsurveys.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then microsurveys can be used.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
mr2022:
|
||||
description: Features for MR 2022.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<MR2022Section, Boolean>"
|
||||
default:
|
||||
home-onboarding-dialog-existing-users: true
|
||||
sync-cfr: true
|
||||
wallpapers-selection-tool: true
|
||||
jump-back-in-cfr: true
|
||||
tcp-cfr: true
|
||||
tcp-feature: true
|
||||
navigation-toolbar:
|
||||
description: Feature for navigation toolbar.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then the user will see the new navigation toolbar.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
networking:
|
||||
description: Enables networking features
|
||||
variables:
|
||||
fetchPriorityEnabled:
|
||||
description: "Enables or disables network.fetchpriority.enabled preference.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
nimbus-is-ready:
|
||||
description: "A feature that provides the number of Nimbus is_ready events to send when Nimbus finishes launching.\n"
|
||||
variables:
|
||||
event-count:
|
||||
description: The number of events that should be sent.
|
||||
type: Int
|
||||
default: 1
|
||||
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
|
||||
one-click-search:
|
||||
description: Enable/disable the one click search feature.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the one click search will be enabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
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
|
||||
query-parameter-stripping:
|
||||
description: Features for query parameter stripping.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<QueryParameterStrippingSection, String>"
|
||||
default:
|
||||
query-parameter-stripping: "0"
|
||||
query-parameter-stripping-pmb: "0"
|
||||
query-parameter-stripping-allow-list: ""
|
||||
query-parameter-stripping-strip-list: ""
|
||||
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
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
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
|
||||
set-as-default-prompt:
|
||||
description: "Displays native default browser prompt to existing users.\n"
|
||||
variables:
|
||||
app-cold-starts-between-prompts:
|
||||
description: "Minimum number of app cold starts before the next prompt should be displayed to the user.\n"
|
||||
type: Int
|
||||
default: 4
|
||||
days-between-prompts:
|
||||
description: "Minimum number of days between displays of Set as default prompt.\n"
|
||||
type: Int
|
||||
default: 14
|
||||
enabled:
|
||||
description: "When the feature is enabled then the Set as default prompt can be triggered for existing users.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
max-number-of-times-to-display:
|
||||
description: "Maximum number of time the prompt should be displayed.\n"
|
||||
type: Int
|
||||
default: 3
|
||||
ship:
|
||||
description: The feature that controls Session History in Parent (SHIP) in Gecko.
|
||||
variables:
|
||||
disabled:
|
||||
description: "Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when set to true.\n"
|
||||
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
|
||||
product-recommendations-exposure:
|
||||
description: "if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
suggest-shipped-domains:
|
||||
description: Feature that suggests domains from the shipped domain list.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Suggest domains from the shipped domain list.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
third-party-cookie-blocking:
|
||||
description: Control third-party cookie blocking.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables third-party cookie blocking in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables third-party cookie blocking in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
translations:
|
||||
description: The feature that allows on-device translations of web content.
|
||||
variables:
|
||||
downloads-enabled:
|
||||
description: "Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-lang-settings-enabled:
|
||||
description: "Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-settings-enabled:
|
||||
description: "Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) 'page-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-site-settings-enabled:
|
||||
description: "Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-browser-menu-enabled:
|
||||
description: "Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-toolbar-enabled:
|
||||
description: "Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
page-settings-enabled:
|
||||
description: "Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
user-characteristics:
|
||||
description: A feature for control user characteristic data collection
|
||||
variables:
|
||||
currentVersion:
|
||||
description: The current collection version of the user characteristics.
|
||||
type: Int
|
||||
default: 0
|
||||
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:
|
||||
feature-setting-detect-only:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner detect only mode should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules-sub-frames:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules sub-frames should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
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:
|
||||
bookmarks:
|
||||
description: The sites the user has bookmarked.
|
||||
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
|
||||
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-ons:
|
||||
description: Allows user to install add-ons from onboarding.
|
||||
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)
|
||||
QueryParameterStrippingSection:
|
||||
description: The identifiers for the options for the Query Parameter Stripping feature.
|
||||
variants:
|
||||
query-parameter-stripping:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in normal mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-allow-list:
|
||||
description: An string separated by commas indicating the sites where should from query stripping should be exempted.
|
||||
query-parameter-stripping-pmb:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in private mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-strip-list:
|
||||
description: An string separated by commas indicating the list of query params to be stripped from URIs. This list will be merged with records coming from RemoteSettings.
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion from adMarketplace.
|
||||
ampMobile:
|
||||
description: A firefox Suggestion from adMarketplace specifically for mobile.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
objects:
|
||||
AddOnData:
|
||||
description: An object to describe an add-on to be installed from the onboarding card.
|
||||
fields:
|
||||
average-rating:
|
||||
description: The average rating of the add-on.
|
||||
type: String
|
||||
default: "0.0"
|
||||
description:
|
||||
description: A small description of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
icon-res:
|
||||
description: The resource id of the icon of the add-on to be displayed.
|
||||
type: Image
|
||||
default: ic_onboarding_welcome
|
||||
install-url:
|
||||
description: The url from where the add-on can be installed.
|
||||
type: Text
|
||||
default: ""
|
||||
name:
|
||||
description: The name of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
review-count:
|
||||
description: The amount of reviews the add-on has.
|
||||
type: String
|
||||
default: "0.0"
|
||||
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: ActionName
|
||||
default: OPEN_URL
|
||||
action-params:
|
||||
description: "A string map containing query parameters that will be appended to the action URL. This is useful for opening URLs in tabs, or specifying that the tab should be private. The values may have substitutions, e.g. \"url\": \"https://example.com/id={uuid}\", \"private\": \"true\".\nThe params and their values are all determined downstream of the messaging component, by the embedding app's deeplink processing machinery.\n"
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
exclude-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will not be shown if any of the expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The slug of the experiment that this message came from.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurvey-config:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: The surface identifier for this message.
|
||||
type: SurfaceName
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
MicrosurveyAnswer:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
ordering:
|
||||
description: "Used to sequence the answers top to bottom. E.g. 0 will be the first/top item, 1 will be next and so on. Always set either ALL the provided answers ordering or NONE. If ALL answers are default, the the ordering used will be the same as provided by the experiment.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
text:
|
||||
description: The text for the answer.
|
||||
type: Text
|
||||
default: ""
|
||||
MicrosurveyConfig:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
answers:
|
||||
description: "The list of answers to present to the user e.g. \"Satisfied, Dissatisfied...\"."
|
||||
type: List<MicrosurveyAnswer>
|
||||
default: []
|
||||
icon:
|
||||
description: The icon shown in the survey.
|
||||
type: Option<Image>
|
||||
default: ~
|
||||
utm-content:
|
||||
description: "Optional \"utm_content\" parameter for the privacy notice URL to specify the feature being surveyed."
|
||||
type: Option<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:
|
||||
add-ons-data:
|
||||
description: "An optional list of add-ons which will be shown in add-on onboarding card.\n"
|
||||
type: List<AddOnData>
|
||||
default: []
|
||||
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
|
||||
disqualifiers:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- NEVER
|
||||
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
|
||||
ordering:
|
||||
description: Used to sequence the cards.
|
||||
type: Int
|
||||
default: 0
|
||||
prerequisites:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will be shown if all expressions are `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- ALWAYS
|
||||
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,935 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: Nimbus Feature Manifest for Fenix (Firefox Android)
|
||||
channels:
|
||||
- developer
|
||||
features:
|
||||
alternative-app-launcher-icon:
|
||||
description: A feature that changes the app launcher icon background color.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
reset-to-default:
|
||||
description: "If true use the default icon, if false use the alternative icon. This is required to 'reset' the icon for enrolled users once the initial experiment is complete.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
awesomebar-suggestion-provider:
|
||||
description: Configuration for the Firefox Suggest awesomebar suggestion provider.
|
||||
variables:
|
||||
available-suggestion-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
bookmarks:
|
||||
description: Feature for Bookmarks
|
||||
variables:
|
||||
new-compose-ui:
|
||||
description: "if true, enable new compose based UI"
|
||||
type: Boolean
|
||||
default: false
|
||||
cookie-banners:
|
||||
description: Features for cookie banner handling.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<CookieBannersSection, Int>"
|
||||
default:
|
||||
feature-ui: 1
|
||||
feature-setting-value: 0
|
||||
feature-setting-value-pbm: 1
|
||||
feature-setting-detect-only: 0
|
||||
feature-setting-global-rules: 1
|
||||
feature-setting-global-rules-sub-frames: 1
|
||||
fingerprinting-protection:
|
||||
description: Control Fingerprinting Protection
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables fingerprinting protection in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables fingerprinting protection in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
fdlibm-math:
|
||||
description: "Uses a different math backend for Math.sin/cos/tan in JavaScript that exposes less entropy\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
overrides:
|
||||
description: "The protection overrides to add or remove fingerprinting protection targets. Please check RFPTargets.inc for all supported targets.\n"
|
||||
type: String
|
||||
default: ""
|
||||
fission:
|
||||
description: The feature that controls whether fission is enabled or not in Gecko.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when set to false.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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:
|
||||
delay-ping-lifetime-io:
|
||||
description: Glean will delay io for ping lifetime metrics
|
||||
type: Boolean
|
||||
default: true
|
||||
enable-event-timestamps:
|
||||
description: Enables precise event timestamps for Glean events
|
||||
type: Boolean
|
||||
default: true
|
||||
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: {}
|
||||
ping-lifetime-max-time:
|
||||
description: After what time to auto-flush
|
||||
type: Int
|
||||
default: 2000
|
||||
ping-lifetime-threshold:
|
||||
description: Write count threshold when to auto-flush
|
||||
type: Int
|
||||
default: 1000
|
||||
allow-coenrollment: true
|
||||
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:
|
||||
top-sites: true
|
||||
jump-back-in: true
|
||||
bookmarks: true
|
||||
recent-explorations: true
|
||||
pocket: true
|
||||
pocket-sponsored-stories: true
|
||||
juno-onboarding:
|
||||
description: A feature that shows the onboarding flow.
|
||||
variables:
|
||||
cards:
|
||||
description: Collection of user facing onboarding cards.
|
||||
type: "Map<OnboardingCardKey, OnboardingCardData>"
|
||||
default:
|
||||
default-browser:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_default_browser_description_nimbus_3
|
||||
card-type: default-browser
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_welcome
|
||||
ordering: 10
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
add-search-widget:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_add_search_widget_description
|
||||
card-type: add-search-widget
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_search_widget
|
||||
ordering: 15
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
sync-sign-in:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_sign_in_description_3
|
||||
card-type: sync-sign-in
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_sync
|
||||
ordering: 20
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
notification-permission:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_enable_notifications_description_nimbus_2
|
||||
card-type: notification-permission
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_notification_permission
|
||||
ordering: 30
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
string-alias: OnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
menu-redesign:
|
||||
description: Control the new menu redesign.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the new menu redesign is available."
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system.\n"
|
||||
variables:
|
||||
$$experiment:
|
||||
description: "The only acceptable value for `MessageData#experiment`. This should not be set by experiment."
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
$$surfaces:
|
||||
description: "A list available surfaces for this app.\n\nThis should not be written to by experiments, and should be hidden to users.\n"
|
||||
type: List<SurfaceName>
|
||||
default:
|
||||
- homescreen
|
||||
- notification
|
||||
- survey
|
||||
- microsurvey
|
||||
string-alias: SurfaceName
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_URL: "://open"
|
||||
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
|
||||
INSTALL_SEARCH_WIDGET: "://install_search_widget"
|
||||
MAKE_DEFAULT_BROWSER: "://make_default_browser"
|
||||
VIEW_BOOKMARKS: "://urls_bookmarks"
|
||||
VIEW_COLLECTIONS: "://home_collections"
|
||||
VIEW_HISTORY: "://urls_history"
|
||||
VIEW_HOMESCREEN: "://home"
|
||||
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"
|
||||
OPEN_SETTINGS: "://settings"
|
||||
TURN_ON_SYNC: "://turn_on_sync"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: A growable collection of messages
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
title: default_browser_experiment_card_title
|
||||
text: default_browser_experiment_card_text
|
||||
surface: homescreen
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
trigger-if-all:
|
||||
- USER_ESTABLISHED_INSTALL
|
||||
- ANDROID_API_BELOW_29
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
style: PERSISTENT
|
||||
button-label: preferences_set_as_default_browser
|
||||
default-browser-notification:
|
||||
title: nimbus_notification_default_browser_title
|
||||
text: nimbus_notification_default_browser_text
|
||||
surface: notification
|
||||
style: NOTIFICATION
|
||||
trigger-if-all:
|
||||
- DAY_3_AFTER_INSTALL
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
microsurvey-printing-example:
|
||||
title: microsurvey_prompt_printing_title
|
||||
text: microsurvey_survey_printing_title
|
||||
surface: microsurvey
|
||||
trigger-if-all:
|
||||
- RECENTLY_PRINTED
|
||||
style: MICROSURVEY
|
||||
microsurvey-config:
|
||||
utm-content: homepage
|
||||
icon: ic_print
|
||||
answers:
|
||||
- text: likert_scale_option_1
|
||||
ordering: 0
|
||||
- text: likert_scale_option_2
|
||||
ordering: 1
|
||||
- text: likert_scale_option_3
|
||||
ordering: 2
|
||||
- text: likert_scale_option_4
|
||||
ordering: 3
|
||||
- text: likert_scale_option_5
|
||||
ordering: 4
|
||||
- text: likert_scale_option_6
|
||||
ordering: 5
|
||||
string-alias: MessageKey
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 100
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
EXPIRES_QUICKLY:
|
||||
priority: 100
|
||||
max-display-count: 1
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
|
||||
ANDROID_API_BELOW_29: android_version < 29
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
FUNNEL_PAID: "adjust_campaign != ''"
|
||||
FUNNEL_ORGANIC: "adjust_campaign == ''"
|
||||
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"
|
||||
RECENTLY_PRINTED: "'print_tapped'|eventLastSeen('Hours') <= 24"
|
||||
SECOND_HOMEPAGE_VIEW: "'home_screen_displayed'|eventSum('Years', 4, 0) >= 2"
|
||||
PERFORMED_A_SEARCH_AGAIN_RECENTLY: "'performed_search'|eventSum('Years', 4, 0) >= 2 && 'performed_search'|eventLastSeen('Minutes') < 1"
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
FXA_MORE_THAN_1_DEVICE: fxa_connected_devices > 1
|
||||
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
|
||||
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
|
||||
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
|
||||
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
|
||||
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
|
||||
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
|
||||
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
|
||||
string-alias: TriggerName
|
||||
allow-coenrollment: true
|
||||
microsurveys:
|
||||
description: Feature for microsurveys.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then microsurveys can be used.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
mr2022:
|
||||
description: Features for MR 2022.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<MR2022Section, Boolean>"
|
||||
default:
|
||||
home-onboarding-dialog-existing-users: true
|
||||
sync-cfr: true
|
||||
wallpapers-selection-tool: true
|
||||
jump-back-in-cfr: true
|
||||
tcp-cfr: true
|
||||
tcp-feature: true
|
||||
navigation-toolbar:
|
||||
description: Feature for navigation toolbar.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then the user will see the new navigation toolbar.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
networking:
|
||||
description: Enables networking features
|
||||
variables:
|
||||
fetchPriorityEnabled:
|
||||
description: "Enables or disables network.fetchpriority.enabled preference.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
nimbus-is-ready:
|
||||
description: "A feature that provides the number of Nimbus is_ready events to send when Nimbus finishes launching.\n"
|
||||
variables:
|
||||
event-count:
|
||||
description: The number of events that should be sent.
|
||||
type: Int
|
||||
default: 1
|
||||
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
|
||||
one-click-search:
|
||||
description: Enable/disable the one click search feature.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the one click search will be enabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
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
|
||||
query-parameter-stripping:
|
||||
description: Features for query parameter stripping.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<QueryParameterStrippingSection, String>"
|
||||
default:
|
||||
query-parameter-stripping: "0"
|
||||
query-parameter-stripping-pmb: "0"
|
||||
query-parameter-stripping-allow-list: ""
|
||||
query-parameter-stripping-strip-list: ""
|
||||
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
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
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
|
||||
set-as-default-prompt:
|
||||
description: "Displays native default browser prompt to existing users.\n"
|
||||
variables:
|
||||
app-cold-starts-between-prompts:
|
||||
description: "Minimum number of app cold starts before the next prompt should be displayed to the user.\n"
|
||||
type: Int
|
||||
default: 4
|
||||
days-between-prompts:
|
||||
description: "Minimum number of days between displays of Set as default prompt.\n"
|
||||
type: Int
|
||||
default: 14
|
||||
enabled:
|
||||
description: "When the feature is enabled then the Set as default prompt can be triggered for existing users.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
max-number-of-times-to-display:
|
||||
description: "Maximum number of time the prompt should be displayed.\n"
|
||||
type: Int
|
||||
default: 3
|
||||
ship:
|
||||
description: The feature that controls Session History in Parent (SHIP) in Gecko.
|
||||
variables:
|
||||
disabled:
|
||||
description: "Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when set to true.\n"
|
||||
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: true
|
||||
product-recommendations-exposure:
|
||||
description: "if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled."
|
||||
type: Boolean
|
||||
default: true
|
||||
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
|
||||
suggest-shipped-domains:
|
||||
description: Feature that suggests domains from the shipped domain list.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Suggest domains from the shipped domain list.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
third-party-cookie-blocking:
|
||||
description: Control third-party cookie blocking.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables third-party cookie blocking in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables third-party cookie blocking in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
translations:
|
||||
description: The feature that allows on-device translations of web content.
|
||||
variables:
|
||||
downloads-enabled:
|
||||
description: "Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-lang-settings-enabled:
|
||||
description: "Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-settings-enabled:
|
||||
description: "Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) 'page-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-site-settings-enabled:
|
||||
description: "Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-browser-menu-enabled:
|
||||
description: "Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-toolbar-enabled:
|
||||
description: "Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
page-settings-enabled:
|
||||
description: "Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
user-characteristics:
|
||||
description: A feature for control user characteristic data collection
|
||||
variables:
|
||||
currentVersion:
|
||||
description: The current collection version of the user characteristics.
|
||||
type: Int
|
||||
default: 0
|
||||
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:
|
||||
feature-setting-detect-only:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner detect only mode should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules-sub-frames:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules sub-frames should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
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:
|
||||
bookmarks:
|
||||
description: The sites the user has bookmarked.
|
||||
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
|
||||
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-ons:
|
||||
description: Allows user to install add-ons from onboarding.
|
||||
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)
|
||||
QueryParameterStrippingSection:
|
||||
description: The identifiers for the options for the Query Parameter Stripping feature.
|
||||
variants:
|
||||
query-parameter-stripping:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in normal mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-allow-list:
|
||||
description: An string separated by commas indicating the sites where should from query stripping should be exempted.
|
||||
query-parameter-stripping-pmb:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in private mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-strip-list:
|
||||
description: An string separated by commas indicating the list of query params to be stripped from URIs. This list will be merged with records coming from RemoteSettings.
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion from adMarketplace.
|
||||
ampMobile:
|
||||
description: A firefox Suggestion from adMarketplace specifically for mobile.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
objects:
|
||||
AddOnData:
|
||||
description: An object to describe an add-on to be installed from the onboarding card.
|
||||
fields:
|
||||
average-rating:
|
||||
description: The average rating of the add-on.
|
||||
type: String
|
||||
default: "0.0"
|
||||
description:
|
||||
description: A small description of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
icon-res:
|
||||
description: The resource id of the icon of the add-on to be displayed.
|
||||
type: Image
|
||||
default: ic_onboarding_welcome
|
||||
install-url:
|
||||
description: The url from where the add-on can be installed.
|
||||
type: Text
|
||||
default: ""
|
||||
name:
|
||||
description: The name of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
review-count:
|
||||
description: The amount of reviews the add-on has.
|
||||
type: String
|
||||
default: "0.0"
|
||||
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: ActionName
|
||||
default: OPEN_URL
|
||||
action-params:
|
||||
description: "A string map containing query parameters that will be appended to the action URL. This is useful for opening URLs in tabs, or specifying that the tab should be private. The values may have substitutions, e.g. \"url\": \"https://example.com/id={uuid}\", \"private\": \"true\".\nThe params and their values are all determined downstream of the messaging component, by the embedding app's deeplink processing machinery.\n"
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
exclude-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will not be shown if any of the expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The slug of the experiment that this message came from.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurvey-config:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: The surface identifier for this message.
|
||||
type: SurfaceName
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
MicrosurveyAnswer:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
ordering:
|
||||
description: "Used to sequence the answers top to bottom. E.g. 0 will be the first/top item, 1 will be next and so on. Always set either ALL the provided answers ordering or NONE. If ALL answers are default, the the ordering used will be the same as provided by the experiment.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
text:
|
||||
description: The text for the answer.
|
||||
type: Text
|
||||
default: ""
|
||||
MicrosurveyConfig:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
answers:
|
||||
description: "The list of answers to present to the user e.g. \"Satisfied, Dissatisfied...\"."
|
||||
type: List<MicrosurveyAnswer>
|
||||
default: []
|
||||
icon:
|
||||
description: The icon shown in the survey.
|
||||
type: Option<Image>
|
||||
default: ~
|
||||
utm-content:
|
||||
description: "Optional \"utm_content\" parameter for the privacy notice URL to specify the feature being surveyed."
|
||||
type: Option<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:
|
||||
add-ons-data:
|
||||
description: "An optional list of add-ons which will be shown in add-on onboarding card.\n"
|
||||
type: List<AddOnData>
|
||||
default: []
|
||||
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
|
||||
disqualifiers:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- NEVER
|
||||
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
|
||||
ordering:
|
||||
description: Used to sequence the cards.
|
||||
type: Int
|
||||
default: 0
|
||||
prerequisites:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will be shown if all expressions are `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- ALWAYS
|
||||
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,428 @@
|
|||
---
|
||||
alternative-app-launcher-icon:
|
||||
description: A feature that changes the app launcher icon background color.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active."
|
||||
reset-to-default:
|
||||
type: boolean
|
||||
description: "If true use the default icon, if false use the alternative icon. This is required to 'reset' the icon for enrolled users once the initial experiment is complete.\n"
|
||||
awesomebar-suggestion-provider:
|
||||
description: Configuration for the Firefox Suggest awesomebar suggestion provider.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
available-suggestion-types:
|
||||
type: json
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
bookmarks:
|
||||
description: Feature for Bookmarks
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
new-compose-ui:
|
||||
type: boolean
|
||||
description: "if true, enable new compose based UI"
|
||||
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.
|
||||
fingerprinting-protection:
|
||||
description: Control Fingerprinting Protection
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active."
|
||||
enabled-normal:
|
||||
type: boolean
|
||||
description: "Enables / disables fingerprinting protection in normal browsing mode.\n"
|
||||
enabled-private:
|
||||
type: boolean
|
||||
description: "Enables / disables fingerprinting protection in private browsing mode.\n"
|
||||
fdlibm-math:
|
||||
type: boolean
|
||||
description: "Uses a different math backend for Math.sin/cos/tan in JavaScript that exposes less entropy\n"
|
||||
overrides:
|
||||
type: string
|
||||
description: "The protection overrides to add or remove fingerprinting protection targets. Please check RFPTargets.inc for all supported targets.\n"
|
||||
fission:
|
||||
description: The feature that controls whether fission is enabled or not in Gecko.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when set to false.\n"
|
||||
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:
|
||||
delay-ping-lifetime-io:
|
||||
type: boolean
|
||||
description: Glean will delay io for ping lifetime metrics
|
||||
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."
|
||||
ping-lifetime-max-time:
|
||||
type: int
|
||||
description: After what time to auto-flush
|
||||
ping-lifetime-threshold:
|
||||
type: int
|
||||
description: Write count threshold when to auto-flush
|
||||
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 the onboarding flow.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
cards:
|
||||
type: json
|
||||
description: Collection of user facing onboarding cards.
|
||||
conditions:
|
||||
type: json
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
menu-redesign:
|
||||
description: Control the new menu redesign.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the new menu redesign is available."
|
||||
messaging:
|
||||
description: "The in-app messaging system.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
$$experiment:
|
||||
type: string
|
||||
description: "The only acceptable value for `MessageData#experiment`. This should not be set by experiment."
|
||||
$$surfaces:
|
||||
type: json
|
||||
description: "A list available surfaces for this app.\n\nThis should not be written to by experiments, and should be hidden to users.\n"
|
||||
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"
|
||||
microsurveys:
|
||||
description: Feature for microsurveys.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "When the feature is enabled then microsurveys can be used.\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.
|
||||
navigation-toolbar:
|
||||
description: Feature for navigation toolbar.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "When the feature is enabled then the user will see the new navigation toolbar.\n"
|
||||
networking:
|
||||
description: Enables networking features
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
fetchPriorityEnabled:
|
||||
type: boolean
|
||||
description: "Enables or disables network.fetchpriority.enabled preference.\n"
|
||||
nimbus-is-ready:
|
||||
description: "A feature that provides the number of Nimbus is_ready events to send when Nimbus finishes launching.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
event-count:
|
||||
type: int
|
||||
description: The number of events that should be sent.
|
||||
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
|
||||
one-click-search:
|
||||
description: Enable/disable the one click search feature.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the one click search will be enabled."
|
||||
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
|
||||
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"
|
||||
query-parameter-stripping:
|
||||
description: Features for query parameter stripping.
|
||||
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.
|
||||
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.
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
type: boolean
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
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."
|
||||
set-as-default-prompt:
|
||||
description: "Displays native default browser prompt to existing users.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
app-cold-starts-between-prompts:
|
||||
type: int
|
||||
description: "Minimum number of app cold starts before the next prompt should be displayed to the user.\n"
|
||||
days-between-prompts:
|
||||
type: int
|
||||
description: "Minimum number of days between displays of Set as default prompt.\n"
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "When the feature is enabled then the Set as default prompt can be triggered for existing users.\n"
|
||||
max-number-of-times-to-display:
|
||||
type: int
|
||||
description: "Maximum number of time the prompt should be displayed.\n"
|
||||
ship:
|
||||
description: The feature that controls Session History in Parent (SHIP) in Gecko.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
disabled:
|
||||
type: boolean
|
||||
description: "Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when set to true.\n"
|
||||
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."
|
||||
product-recommendations-exposure:
|
||||
type: boolean
|
||||
description: "if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled."
|
||||
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.
|
||||
suggest-shipped-domains:
|
||||
description: Feature that suggests domains from the shipped domain list.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Suggest domains from the shipped domain list.\n"
|
||||
third-party-cookie-blocking:
|
||||
description: Control third-party cookie blocking.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active."
|
||||
enabled-normal:
|
||||
type: boolean
|
||||
description: "Enables / disables third-party cookie blocking in normal browsing mode.\n"
|
||||
enabled-private:
|
||||
type: boolean
|
||||
description: "Enables / disables third-party cookie blocking in private browsing mode.\n"
|
||||
translations:
|
||||
description: The feature that allows on-device translations of web content.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
downloads-enabled:
|
||||
type: boolean
|
||||
description: "Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
global-lang-settings-enabled:
|
||||
type: boolean
|
||||
description: "Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
global-settings-enabled:
|
||||
type: boolean
|
||||
description: "Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) 'page-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
global-site-settings-enabled:
|
||||
type: boolean
|
||||
description: "Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
main-flow-browser-menu-enabled:
|
||||
type: boolean
|
||||
description: "Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)\n"
|
||||
main-flow-toolbar-enabled:
|
||||
type: boolean
|
||||
description: "Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)\n"
|
||||
page-settings-enabled:
|
||||
type: boolean
|
||||
description: "Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.\n"
|
||||
user-characteristics:
|
||||
description: A feature for control user characteristic data collection
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
currentVersion:
|
||||
type: int
|
||||
description: The current collection version of the user characteristics.
|
|
@ -0,0 +1,909 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: Nimbus Feature Manifest for Fenix (Firefox Android)
|
||||
channels:
|
||||
- nightly
|
||||
features:
|
||||
alternative-app-launcher-icon:
|
||||
description: A feature that changes the app launcher icon background color.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
reset-to-default:
|
||||
description: "If true use the default icon, if false use the alternative icon. This is required to 'reset' the icon for enrolled users once the initial experiment is complete.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
awesomebar-suggestion-provider:
|
||||
description: Configuration for the Firefox Suggest awesomebar suggestion provider.
|
||||
variables:
|
||||
available-suggestion-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
bookmarks:
|
||||
description: Feature for Bookmarks
|
||||
variables:
|
||||
new-compose-ui:
|
||||
description: "if true, enable new compose based UI"
|
||||
type: Boolean
|
||||
default: false
|
||||
cookie-banners:
|
||||
description: Features for cookie banner handling.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<CookieBannersSection, Int>"
|
||||
default:
|
||||
feature-ui: 1
|
||||
feature-setting-value: 0
|
||||
feature-setting-value-pbm: 1
|
||||
feature-setting-detect-only: 0
|
||||
feature-setting-global-rules: 1
|
||||
feature-setting-global-rules-sub-frames: 1
|
||||
fingerprinting-protection:
|
||||
description: Control Fingerprinting Protection
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables fingerprinting protection in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables fingerprinting protection in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
fdlibm-math:
|
||||
description: "Uses a different math backend for Math.sin/cos/tan in JavaScript that exposes less entropy\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
overrides:
|
||||
description: "The protection overrides to add or remove fingerprinting protection targets. Please check RFPTargets.inc for all supported targets.\n"
|
||||
type: String
|
||||
default: ""
|
||||
fission:
|
||||
description: The feature that controls whether fission is enabled or not in Gecko.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when set to false.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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:
|
||||
delay-ping-lifetime-io:
|
||||
description: Glean will delay io for ping lifetime metrics
|
||||
type: Boolean
|
||||
default: true
|
||||
enable-event-timestamps:
|
||||
description: Enables precise event timestamps for Glean events
|
||||
type: Boolean
|
||||
default: true
|
||||
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: {}
|
||||
ping-lifetime-max-time:
|
||||
description: After what time to auto-flush
|
||||
type: Int
|
||||
default: 2000
|
||||
ping-lifetime-threshold:
|
||||
description: Write count threshold when to auto-flush
|
||||
type: Int
|
||||
default: 1000
|
||||
allow-coenrollment: true
|
||||
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:
|
||||
top-sites: true
|
||||
jump-back-in: true
|
||||
bookmarks: true
|
||||
recent-explorations: true
|
||||
pocket: true
|
||||
pocket-sponsored-stories: true
|
||||
juno-onboarding:
|
||||
description: A feature that shows the onboarding flow.
|
||||
variables:
|
||||
cards:
|
||||
description: Collection of user facing onboarding cards.
|
||||
type: "Map<OnboardingCardKey, OnboardingCardData>"
|
||||
default:
|
||||
default-browser:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_default_browser_description_nimbus_3
|
||||
card-type: default-browser
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_welcome
|
||||
ordering: 10
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
add-search-widget:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_add_search_widget_description
|
||||
card-type: add-search-widget
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_search_widget
|
||||
ordering: 15
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
sync-sign-in:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_sign_in_description_3
|
||||
card-type: sync-sign-in
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_sync
|
||||
ordering: 20
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
notification-permission:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_enable_notifications_description_nimbus_2
|
||||
card-type: notification-permission
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_notification_permission
|
||||
ordering: 30
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
string-alias: OnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
menu-redesign:
|
||||
description: Control the new menu redesign.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the new menu redesign is available."
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system.\n"
|
||||
variables:
|
||||
$$experiment:
|
||||
description: "The only acceptable value for `MessageData#experiment`. This should not be set by experiment."
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
$$surfaces:
|
||||
description: "A list available surfaces for this app.\n\nThis should not be written to by experiments, and should be hidden to users.\n"
|
||||
type: List<SurfaceName>
|
||||
default:
|
||||
- homescreen
|
||||
- notification
|
||||
- survey
|
||||
- microsurvey
|
||||
string-alias: SurfaceName
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_URL: "://open"
|
||||
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
|
||||
INSTALL_SEARCH_WIDGET: "://install_search_widget"
|
||||
MAKE_DEFAULT_BROWSER: "://make_default_browser"
|
||||
VIEW_BOOKMARKS: "://urls_bookmarks"
|
||||
VIEW_COLLECTIONS: "://home_collections"
|
||||
VIEW_HISTORY: "://urls_history"
|
||||
VIEW_HOMESCREEN: "://home"
|
||||
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"
|
||||
OPEN_SETTINGS: "://settings"
|
||||
TURN_ON_SYNC: "://turn_on_sync"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: A growable collection of messages
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
title: default_browser_experiment_card_title
|
||||
text: default_browser_experiment_card_text
|
||||
surface: homescreen
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
trigger-if-all:
|
||||
- USER_ESTABLISHED_INSTALL
|
||||
- ANDROID_API_BELOW_29
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
style: PERSISTENT
|
||||
button-label: preferences_set_as_default_browser
|
||||
default-browser-notification:
|
||||
title: nimbus_notification_default_browser_title
|
||||
text: nimbus_notification_default_browser_text
|
||||
surface: notification
|
||||
style: NOTIFICATION
|
||||
trigger-if-all:
|
||||
- DAY_3_AFTER_INSTALL
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
string-alias: MessageKey
|
||||
notification-config:
|
||||
description: Configuration of the notification worker for all notification messages.
|
||||
type: NotificationConfig
|
||||
default:
|
||||
refresh-interval: 240
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
|
||||
ANDROID_API_BELOW_29: android_version < 29
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
FUNNEL_PAID: "adjust_campaign != ''"
|
||||
FUNNEL_ORGANIC: "adjust_campaign == ''"
|
||||
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"
|
||||
RECENTLY_PRINTED: "'print_tapped'|eventLastSeen('Hours') <= 24"
|
||||
SECOND_HOMEPAGE_VIEW: "'home_screen_displayed'|eventSum('Years', 4, 0) >= 2"
|
||||
PERFORMED_A_SEARCH_AGAIN_RECENTLY: "'performed_search'|eventSum('Years', 4, 0) >= 2 && 'performed_search'|eventLastSeen('Minutes') < 1"
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
FXA_MORE_THAN_1_DEVICE: fxa_connected_devices > 1
|
||||
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
|
||||
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
|
||||
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
|
||||
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
|
||||
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
|
||||
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
|
||||
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
|
||||
string-alias: TriggerName
|
||||
allow-coenrollment: true
|
||||
microsurveys:
|
||||
description: Feature for microsurveys.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then microsurveys can be used.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
mr2022:
|
||||
description: Features for MR 2022.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<MR2022Section, Boolean>"
|
||||
default:
|
||||
home-onboarding-dialog-existing-users: true
|
||||
sync-cfr: true
|
||||
wallpapers-selection-tool: true
|
||||
jump-back-in-cfr: true
|
||||
tcp-cfr: true
|
||||
tcp-feature: true
|
||||
navigation-toolbar:
|
||||
description: Feature for navigation toolbar.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then the user will see the new navigation toolbar.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
networking:
|
||||
description: Enables networking features
|
||||
variables:
|
||||
fetchPriorityEnabled:
|
||||
description: "Enables or disables network.fetchpriority.enabled preference.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
nimbus-is-ready:
|
||||
description: "A feature that provides the number of Nimbus is_ready events to send when Nimbus finishes launching.\n"
|
||||
variables:
|
||||
event-count:
|
||||
description: The number of events that should be sent.
|
||||
type: Int
|
||||
default: 1
|
||||
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
|
||||
one-click-search:
|
||||
description: Enable/disable the one click search feature.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the one click search will be enabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
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
|
||||
query-parameter-stripping:
|
||||
description: Features for query parameter stripping.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<QueryParameterStrippingSection, String>"
|
||||
default:
|
||||
query-parameter-stripping: "0"
|
||||
query-parameter-stripping-pmb: "0"
|
||||
query-parameter-stripping-allow-list: ""
|
||||
query-parameter-stripping-strip-list: ""
|
||||
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
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
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
|
||||
set-as-default-prompt:
|
||||
description: "Displays native default browser prompt to existing users.\n"
|
||||
variables:
|
||||
app-cold-starts-between-prompts:
|
||||
description: "Minimum number of app cold starts before the next prompt should be displayed to the user.\n"
|
||||
type: Int
|
||||
default: 4
|
||||
days-between-prompts:
|
||||
description: "Minimum number of days between displays of Set as default prompt.\n"
|
||||
type: Int
|
||||
default: 14
|
||||
enabled:
|
||||
description: "When the feature is enabled then the Set as default prompt can be triggered for existing users.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
max-number-of-times-to-display:
|
||||
description: "Maximum number of time the prompt should be displayed.\n"
|
||||
type: Int
|
||||
default: 3
|
||||
ship:
|
||||
description: The feature that controls Session History in Parent (SHIP) in Gecko.
|
||||
variables:
|
||||
disabled:
|
||||
description: "Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when set to true.\n"
|
||||
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
|
||||
product-recommendations-exposure:
|
||||
description: "if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
suggest-shipped-domains:
|
||||
description: Feature that suggests domains from the shipped domain list.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Suggest domains from the shipped domain list.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
third-party-cookie-blocking:
|
||||
description: Control third-party cookie blocking.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables third-party cookie blocking in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables third-party cookie blocking in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
translations:
|
||||
description: The feature that allows on-device translations of web content.
|
||||
variables:
|
||||
downloads-enabled:
|
||||
description: "Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-lang-settings-enabled:
|
||||
description: "Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-settings-enabled:
|
||||
description: "Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) 'page-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-site-settings-enabled:
|
||||
description: "Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-browser-menu-enabled:
|
||||
description: "Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-toolbar-enabled:
|
||||
description: "Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
page-settings-enabled:
|
||||
description: "Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
user-characteristics:
|
||||
description: A feature for control user characteristic data collection
|
||||
variables:
|
||||
currentVersion:
|
||||
description: The current collection version of the user characteristics.
|
||||
type: Int
|
||||
default: 0
|
||||
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:
|
||||
feature-setting-detect-only:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner detect only mode should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules-sub-frames:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules sub-frames should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
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:
|
||||
bookmarks:
|
||||
description: The sites the user has bookmarked.
|
||||
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
|
||||
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-ons:
|
||||
description: Allows user to install add-ons from onboarding.
|
||||
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)
|
||||
QueryParameterStrippingSection:
|
||||
description: The identifiers for the options for the Query Parameter Stripping feature.
|
||||
variants:
|
||||
query-parameter-stripping:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in normal mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-allow-list:
|
||||
description: An string separated by commas indicating the sites where should from query stripping should be exempted.
|
||||
query-parameter-stripping-pmb:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in private mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-strip-list:
|
||||
description: An string separated by commas indicating the list of query params to be stripped from URIs. This list will be merged with records coming from RemoteSettings.
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion from adMarketplace.
|
||||
ampMobile:
|
||||
description: A firefox Suggestion from adMarketplace specifically for mobile.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
objects:
|
||||
AddOnData:
|
||||
description: An object to describe an add-on to be installed from the onboarding card.
|
||||
fields:
|
||||
average-rating:
|
||||
description: The average rating of the add-on.
|
||||
type: String
|
||||
default: "0.0"
|
||||
description:
|
||||
description: A small description of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
icon-res:
|
||||
description: The resource id of the icon of the add-on to be displayed.
|
||||
type: Image
|
||||
default: ic_onboarding_welcome
|
||||
install-url:
|
||||
description: The url from where the add-on can be installed.
|
||||
type: Text
|
||||
default: ""
|
||||
name:
|
||||
description: The name of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
review-count:
|
||||
description: The amount of reviews the add-on has.
|
||||
type: String
|
||||
default: "0.0"
|
||||
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: ActionName
|
||||
default: OPEN_URL
|
||||
action-params:
|
||||
description: "A string map containing query parameters that will be appended to the action URL. This is useful for opening URLs in tabs, or specifying that the tab should be private. The values may have substitutions, e.g. \"url\": \"https://example.com/id={uuid}\", \"private\": \"true\".\nThe params and their values are all determined downstream of the messaging component, by the embedding app's deeplink processing machinery.\n"
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
exclude-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will not be shown if any of the expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The slug of the experiment that this message came from.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurvey-config:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: The surface identifier for this message.
|
||||
type: SurfaceName
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
MicrosurveyAnswer:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
ordering:
|
||||
description: "Used to sequence the answers top to bottom. E.g. 0 will be the first/top item, 1 will be next and so on. Always set either ALL the provided answers ordering or NONE. If ALL answers are default, the the ordering used will be the same as provided by the experiment.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
text:
|
||||
description: The text for the answer.
|
||||
type: Text
|
||||
default: ""
|
||||
MicrosurveyConfig:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
answers:
|
||||
description: "The list of answers to present to the user e.g. \"Satisfied, Dissatisfied...\"."
|
||||
type: List<MicrosurveyAnswer>
|
||||
default: []
|
||||
icon:
|
||||
description: The icon shown in the survey.
|
||||
type: Option<Image>
|
||||
default: ~
|
||||
utm-content:
|
||||
description: "Optional \"utm_content\" parameter for the privacy notice URL to specify the feature being surveyed."
|
||||
type: Option<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:
|
||||
add-ons-data:
|
||||
description: "An optional list of add-ons which will be shown in add-on onboarding card.\n"
|
||||
type: List<AddOnData>
|
||||
default: []
|
||||
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
|
||||
disqualifiers:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- NEVER
|
||||
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
|
||||
ordering:
|
||||
description: Used to sequence the cards.
|
||||
type: Int
|
||||
default: 0
|
||||
prerequisites:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will be shown if all expressions are `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- ALWAYS
|
||||
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,909 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: Nimbus Feature Manifest for Fenix (Firefox Android)
|
||||
channels:
|
||||
- release
|
||||
features:
|
||||
alternative-app-launcher-icon:
|
||||
description: A feature that changes the app launcher icon background color.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
reset-to-default:
|
||||
description: "If true use the default icon, if false use the alternative icon. This is required to 'reset' the icon for enrolled users once the initial experiment is complete.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
awesomebar-suggestion-provider:
|
||||
description: Configuration for the Firefox Suggest awesomebar suggestion provider.
|
||||
variables:
|
||||
available-suggestion-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
bookmarks:
|
||||
description: Feature for Bookmarks
|
||||
variables:
|
||||
new-compose-ui:
|
||||
description: "if true, enable new compose based UI"
|
||||
type: Boolean
|
||||
default: false
|
||||
cookie-banners:
|
||||
description: Features for cookie banner handling.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<CookieBannersSection, Int>"
|
||||
default:
|
||||
feature-ui: 0
|
||||
feature-setting-value: 0
|
||||
feature-setting-value-pbm: 0
|
||||
feature-setting-detect-only: 0
|
||||
feature-setting-global-rules: 1
|
||||
feature-setting-global-rules-sub-frames: 1
|
||||
fingerprinting-protection:
|
||||
description: Control Fingerprinting Protection
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables fingerprinting protection in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables fingerprinting protection in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
fdlibm-math:
|
||||
description: "Uses a different math backend for Math.sin/cos/tan in JavaScript that exposes less entropy\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
overrides:
|
||||
description: "The protection overrides to add or remove fingerprinting protection targets. Please check RFPTargets.inc for all supported targets.\n"
|
||||
type: String
|
||||
default: ""
|
||||
fission:
|
||||
description: The feature that controls whether fission is enabled or not in Gecko.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether or not to enable fission. Fission is enabled when set to true. Fission is disabled when set to false.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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:
|
||||
delay-ping-lifetime-io:
|
||||
description: Glean will delay io for ping lifetime metrics
|
||||
type: Boolean
|
||||
default: true
|
||||
enable-event-timestamps:
|
||||
description: Enables precise event timestamps for Glean events
|
||||
type: Boolean
|
||||
default: true
|
||||
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: {}
|
||||
ping-lifetime-max-time:
|
||||
description: After what time to auto-flush
|
||||
type: Int
|
||||
default: 2000
|
||||
ping-lifetime-threshold:
|
||||
description: Write count threshold when to auto-flush
|
||||
type: Int
|
||||
default: 1000
|
||||
allow-coenrollment: true
|
||||
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:
|
||||
top-sites: true
|
||||
jump-back-in: true
|
||||
bookmarks: true
|
||||
recent-explorations: true
|
||||
pocket: true
|
||||
pocket-sponsored-stories: true
|
||||
juno-onboarding:
|
||||
description: A feature that shows the onboarding flow.
|
||||
variables:
|
||||
cards:
|
||||
description: Collection of user facing onboarding cards.
|
||||
type: "Map<OnboardingCardKey, OnboardingCardData>"
|
||||
default:
|
||||
default-browser:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_default_browser_description_nimbus_3
|
||||
card-type: default-browser
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_welcome
|
||||
ordering: 10
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
add-search-widget:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_add_search_widget_description
|
||||
card-type: add-search-widget
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_search_widget
|
||||
ordering: 15
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
sync-sign-in:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_sign_in_description_3
|
||||
card-type: sync-sign-in
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_onboarding_sync
|
||||
ordering: 20
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
notification-permission:
|
||||
add-ons-data: []
|
||||
body: juno_onboarding_enable_notifications_description_nimbus_2
|
||||
card-type: notification-permission
|
||||
disqualifiers:
|
||||
- NEVER
|
||||
enabled: true
|
||||
image-res: ic_notification_permission
|
||||
ordering: 30
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
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
|
||||
string-alias: OnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
menu-redesign:
|
||||
description: Control the new menu redesign.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the new menu redesign is available."
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system.\n"
|
||||
variables:
|
||||
$$experiment:
|
||||
description: "The only acceptable value for `MessageData#experiment`. This should not be set by experiment."
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
$$surfaces:
|
||||
description: "A list available surfaces for this app.\n\nThis should not be written to by experiments, and should be hidden to users.\n"
|
||||
type: List<SurfaceName>
|
||||
default:
|
||||
- homescreen
|
||||
- notification
|
||||
- survey
|
||||
- microsurvey
|
||||
string-alias: SurfaceName
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_URL: "://open"
|
||||
ENABLE_PRIVATE_BROWSING: "://enable_private_browsing"
|
||||
INSTALL_SEARCH_WIDGET: "://install_search_widget"
|
||||
MAKE_DEFAULT_BROWSER: "://make_default_browser"
|
||||
VIEW_BOOKMARKS: "://urls_bookmarks"
|
||||
VIEW_COLLECTIONS: "://home_collections"
|
||||
VIEW_HISTORY: "://urls_history"
|
||||
VIEW_HOMESCREEN: "://home"
|
||||
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"
|
||||
OPEN_SETTINGS: "://settings"
|
||||
TURN_ON_SYNC: "://turn_on_sync"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated in favor of `MessageData#experiment`. This will be removed in future releases."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: A growable collection of messages
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
title: default_browser_experiment_card_title
|
||||
text: default_browser_experiment_card_text
|
||||
surface: homescreen
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
trigger-if-all:
|
||||
- USER_ESTABLISHED_INSTALL
|
||||
- ANDROID_API_BELOW_29
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
style: PERSISTENT
|
||||
button-label: preferences_set_as_default_browser
|
||||
default-browser-notification:
|
||||
title: nimbus_notification_default_browser_title
|
||||
text: nimbus_notification_default_browser_text
|
||||
surface: notification
|
||||
style: NOTIFICATION
|
||||
trigger-if-all:
|
||||
- DAY_3_AFTER_INSTALL
|
||||
exclude-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
action: MAKE_DEFAULT_BROWSER
|
||||
string-alias: MessageKey
|
||||
notification-config:
|
||||
description: Configuration of the notification worker for all notification messages.
|
||||
type: NotificationConfig
|
||||
default:
|
||||
refresh-interval: 240
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
USER_ESTABLISHED_INSTALL: number_of_app_launches >=4
|
||||
ANDROID_API_BELOW_29: android_version < 29
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
FUNNEL_PAID: "adjust_campaign != ''"
|
||||
FUNNEL_ORGANIC: "adjust_campaign == ''"
|
||||
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"
|
||||
RECENTLY_PRINTED: "'print_tapped'|eventLastSeen('Hours') <= 24"
|
||||
SECOND_HOMEPAGE_VIEW: "'home_screen_displayed'|eventSum('Years', 4, 0) >= 2"
|
||||
PERFORMED_A_SEARCH_AGAIN_RECENTLY: "'performed_search'|eventSum('Years', 4, 0) >= 2 && 'performed_search'|eventLastSeen('Minutes') < 1"
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
FXA_MORE_THAN_1_DEVICE: fxa_connected_devices > 1
|
||||
FXA_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) <= 4"
|
||||
FXA_NOT_SIGNED_IN: "'sync_auth.sign_in'|eventLastSeen('Years', 0) > 4"
|
||||
USER_INFREQUENT: "'app_launched'|eventCountNonZero('Days', 28) >= 1 && 'app_launched'|eventCountNonZero('Days', 28) < 7"
|
||||
USER_CASUAL: "'app_launched'|eventCountNonZero('Days', 28) >= 7 && 'app_launched'|eventCountNonZero('Days', 28) < 14"
|
||||
USER_REGULAR: "'app_launched'|eventCountNonZero('Days', 28) >= 14 && 'app_launched'|eventCountNonZero('Days', 28) < 21"
|
||||
USER_CORE_ACTIVE: "'app_launched'|eventCountNonZero('Days', 28) >= 21"
|
||||
LAUNCHED_ONCE_THIS_WEEK: "'app_launched'|eventSum('Days', 7) == 1"
|
||||
string-alias: TriggerName
|
||||
allow-coenrollment: true
|
||||
microsurveys:
|
||||
description: Feature for microsurveys.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then microsurveys can be used.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
mr2022:
|
||||
description: Features for MR 2022.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<MR2022Section, Boolean>"
|
||||
default:
|
||||
home-onboarding-dialog-existing-users: true
|
||||
sync-cfr: true
|
||||
wallpapers-selection-tool: true
|
||||
jump-back-in-cfr: true
|
||||
tcp-cfr: true
|
||||
tcp-feature: true
|
||||
navigation-toolbar:
|
||||
description: Feature for navigation toolbar.
|
||||
variables:
|
||||
enabled:
|
||||
description: "When the feature is enabled then the user will see the new navigation toolbar.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
networking:
|
||||
description: Enables networking features
|
||||
variables:
|
||||
fetchPriorityEnabled:
|
||||
description: "Enables or disables network.fetchpriority.enabled preference.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
nimbus-is-ready:
|
||||
description: "A feature that provides the number of Nimbus is_ready events to send when Nimbus finishes launching.\n"
|
||||
variables:
|
||||
event-count:
|
||||
description: The number of events that should be sent.
|
||||
type: Int
|
||||
default: 1
|
||||
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
|
||||
one-click-search:
|
||||
description: Enable/disable the one click search feature.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the one click search will be enabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
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
|
||||
query-parameter-stripping:
|
||||
description: Features for query parameter stripping.
|
||||
variables:
|
||||
sections-enabled:
|
||||
description: This property provides a lookup table of whether or not the given section should be enabled.
|
||||
type: "Map<QueryParameterStrippingSection, String>"
|
||||
default:
|
||||
query-parameter-stripping: "0"
|
||||
query-parameter-stripping-pmb: "0"
|
||||
query-parameter-stripping-allow-list: ""
|
||||
query-parameter-stripping-strip-list: ""
|
||||
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
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
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
|
||||
set-as-default-prompt:
|
||||
description: "Displays native default browser prompt to existing users.\n"
|
||||
variables:
|
||||
app-cold-starts-between-prompts:
|
||||
description: "Minimum number of app cold starts before the next prompt should be displayed to the user.\n"
|
||||
type: Int
|
||||
default: 4
|
||||
days-between-prompts:
|
||||
description: "Minimum number of days between displays of Set as default prompt.\n"
|
||||
type: Int
|
||||
default: 14
|
||||
enabled:
|
||||
description: "When the feature is enabled then the Set as default prompt can be triggered for existing users.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
max-number-of-times-to-display:
|
||||
description: "Maximum number of time the prompt should be displayed.\n"
|
||||
type: Int
|
||||
default: 3
|
||||
ship:
|
||||
description: The feature that controls Session History in Parent (SHIP) in Gecko.
|
||||
variables:
|
||||
disabled:
|
||||
description: "Whether or not to disable SHIP. SHIP is enabled when set to false. SHIP is disabled when set to true.\n"
|
||||
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
|
||||
product-recommendations-exposure:
|
||||
description: "if true, we want to record recommended products inventory for opted-in users, even if product recommendations are disabled."
|
||||
type: Boolean
|
||||
default: false
|
||||
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
|
||||
suggest-shipped-domains:
|
||||
description: Feature that suggests domains from the shipped domain list.
|
||||
variables:
|
||||
enabled:
|
||||
description: "Suggest domains from the shipped domain list.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
third-party-cookie-blocking:
|
||||
description: Control third-party cookie blocking.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active."
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-normal:
|
||||
description: "Enables / disables third-party cookie blocking in normal browsing mode.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
enabled-private:
|
||||
description: "Enables / disables third-party cookie blocking in private browsing mode.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
translations:
|
||||
description: The feature that allows on-device translations of web content.
|
||||
variables:
|
||||
downloads-enabled:
|
||||
description: "Show the global language model download options entry point for translations. ('Download languages' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-lang-settings-enabled:
|
||||
description: "Show the global language options entry point for automatically translating. ('Automatic Translation' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-settings-enabled:
|
||||
description: "Show the global settings entry point within the translations feature. ('Translation Settings' on the page settings view.) 'page-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
global-site-settings-enabled:
|
||||
description: "Show the global never translate this site options entry point for site management. ('Never translate these sites' on the global settings view.) 'global-settings-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-browser-menu-enabled:
|
||||
description: "Show the browser menu entry point into the translations feature. ('Translate Page' on browser menu.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
main-flow-toolbar-enabled:
|
||||
description: "Show the primary toolbar entry point into the translations feature. (Translations icon on URL toolbar.)\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
page-settings-enabled:
|
||||
description: "Show the page settings entry point within the translations feature. (Gear icon on the translations main flow page.) 'main-flow-toolbar-enabled' or 'main-flow-browser-menu-enabled' must also be enabled for users to access this feature.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
user-characteristics:
|
||||
description: A feature for control user characteristic data collection
|
||||
variables:
|
||||
currentVersion:
|
||||
description: The current collection version of the user characteristics.
|
||||
type: Int
|
||||
default: 0
|
||||
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:
|
||||
feature-setting-detect-only:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner detect only mode should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
feature-setting-global-rules-sub-frames:
|
||||
description: "An integer either 0 or 1 indicating if cookie banner global rules sub-frames should be enabled or disabled. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
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:
|
||||
bookmarks:
|
||||
description: The sites the user has bookmarked.
|
||||
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
|
||||
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-ons:
|
||||
description: Allows user to install add-ons from onboarding.
|
||||
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)
|
||||
QueryParameterStrippingSection:
|
||||
description: The identifiers for the options for the Query Parameter Stripping feature.
|
||||
variants:
|
||||
query-parameter-stripping:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in normal mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-allow-list:
|
||||
description: An string separated by commas indicating the sites where should from query stripping should be exempted.
|
||||
query-parameter-stripping-pmb:
|
||||
description: "An integer either 0 or 1 indicating if query parameter stripping should be enabled or disabled in private mode. 0 for setting to be disabled, and 1 for enabling the setting."
|
||||
query-parameter-stripping-strip-list:
|
||||
description: An string separated by commas indicating the list of query params to be stripped from URIs. This list will be merged with records coming from RemoteSettings.
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion from adMarketplace.
|
||||
ampMobile:
|
||||
description: A firefox Suggestion from adMarketplace specifically for mobile.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
objects:
|
||||
AddOnData:
|
||||
description: An object to describe an add-on to be installed from the onboarding card.
|
||||
fields:
|
||||
average-rating:
|
||||
description: The average rating of the add-on.
|
||||
type: String
|
||||
default: "0.0"
|
||||
description:
|
||||
description: A small description of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
icon-res:
|
||||
description: The resource id of the icon of the add-on to be displayed.
|
||||
type: Image
|
||||
default: ic_onboarding_welcome
|
||||
install-url:
|
||||
description: The url from where the add-on can be installed.
|
||||
type: Text
|
||||
default: ""
|
||||
name:
|
||||
description: The name of the add-on to be displayed to the user.
|
||||
type: Text
|
||||
default: ""
|
||||
review-count:
|
||||
description: The amount of reviews the add-on has.
|
||||
type: String
|
||||
default: "0.0"
|
||||
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: ActionName
|
||||
default: OPEN_URL
|
||||
action-params:
|
||||
description: "A string map containing query parameters that will be appended to the action URL. This is useful for opening URLs in tabs, or specifying that the tab should be private. The values may have substitutions, e.g. \"url\": \"https://example.com/id={uuid}\", \"private\": \"true\".\nThe params and their values are all determined downstream of the messaging component, by the embedding app's deeplink processing machinery.\n"
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
exclude-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will not be shown if any of the expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The slug of the experiment that this message came from.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurvey-config:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: The surface identifier for this message.
|
||||
type: SurfaceName
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. The message will be shown if all expressions are `true`.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
MicrosurveyAnswer:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
ordering:
|
||||
description: "Used to sequence the answers top to bottom. E.g. 0 will be the first/top item, 1 will be next and so on. Always set either ALL the provided answers ordering or NONE. If ALL answers are default, the the ordering used will be the same as provided by the experiment.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
text:
|
||||
description: The text for the answer.
|
||||
type: Text
|
||||
default: ""
|
||||
MicrosurveyConfig:
|
||||
description: Attributes relating to microsurvey content.
|
||||
fields:
|
||||
answers:
|
||||
description: "The list of answers to present to the user e.g. \"Satisfied, Dissatisfied...\"."
|
||||
type: List<MicrosurveyAnswer>
|
||||
default: []
|
||||
icon:
|
||||
description: The icon shown in the survey.
|
||||
type: Option<Image>
|
||||
default: ~
|
||||
utm-content:
|
||||
description: "Optional \"utm_content\" parameter for the privacy notice URL to specify the feature being surveyed."
|
||||
type: Option<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:
|
||||
add-ons-data:
|
||||
description: "An optional list of add-ons which will be shown in add-on onboarding card.\n"
|
||||
type: List<AddOnData>
|
||||
default: []
|
||||
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
|
||||
disqualifiers:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- NEVER
|
||||
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
|
||||
ordering:
|
||||
description: Used to sequence the cards.
|
||||
type: Int
|
||||
default: 0
|
||||
prerequisites:
|
||||
description: "A list of strings corresponding to targeting expressions. The card will be shown if all expressions are `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default:
|
||||
- ALWAYS
|
||||
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,5 +1,5 @@
|
|||
beta: cd78e3bdb3076ec10274afa88d9fb84d1d095b28
|
||||
central: be024277429aa81609b3c21e3842f3ba7b975b5d
|
||||
esr115: 3fbb20c1c357625a72db6d208b8010870d30953b
|
||||
esr128: 36cf46e09178013aa328b8ab4d3b745bd33697e2
|
||||
beta: 64a45ed39229050e732b13d08796afffe90be346
|
||||
central: 2c9f37ff7f0d76a31beb333db9e00e3afc264e32
|
||||
esr115: 1d9708ee43998b66c1d6ee9061ddaa94d92554f8
|
||||
esr128: 2e04aea09d19ec2f1cf851e3ea3682cab6be6596
|
||||
release: 9f14eb1206fa299706e66b939626cd34c710d667
|
||||
|
|
|
@ -856,6 +856,27 @@ newtabSpocsCache:
|
|||
description: >-
|
||||
Controls if spocs should be included in startup cache.
|
||||
|
||||
newtabAdSizingExperiment:
|
||||
description: >-
|
||||
Change the default ad size and UI for certain ad formats.
|
||||
owner: achurchwell@mozilla.com, sdowne@mozilla.com
|
||||
hasExposure: false
|
||||
variables:
|
||||
variantA:
|
||||
type: boolean
|
||||
setPref:
|
||||
branch: user
|
||||
pref: browser.newtabpage.activity-stream.newtabAdSize.variant-a
|
||||
description: >-
|
||||
Variant A ad size and UI.
|
||||
variantB:
|
||||
type: boolean
|
||||
setPref:
|
||||
branch: user
|
||||
pref: browser.newtabpage.activity-stream.newtabAdSize.variant-b
|
||||
description: >-
|
||||
Variant B ad size and UI.
|
||||
|
||||
newtabLayoutExperiment:
|
||||
description: >-
|
||||
Change the default layout of new tab by adjusting sizes and spacing of elements.
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,312 @@
|
|||
{
|
||||
"$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"
|
||||
},
|
||||
"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`."
|
||||
}
|
||||
},
|
||||
"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
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,344 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||
"$id": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json",
|
||||
"title": "Messaging Experiment",
|
||||
"description": "A Firefox Messaging System message.",
|
||||
"if": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"template": {
|
||||
"const": "multi"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template"
|
||||
]
|
||||
},
|
||||
"then": {
|
||||
"$ref": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/MultiMessage"
|
||||
},
|
||||
"else": {
|
||||
"$ref": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/Message"
|
||||
}
|
||||
],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"$ref": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizableText",
|
||||
"description": "Id of localized string or message override of toast notification title"
|
||||
},
|
||||
"body": {
|
||||
"$ref": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizedText"
|
||||
}
|
||||
]
|
||||
},
|
||||
"TemplatedMessage": {
|
||||
"description": "An FxMS message of one of a variety of types.",
|
||||
"type": "object",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/Message"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"template": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"toast_notification"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template"
|
||||
]
|
||||
},
|
||||
"then": {
|
||||
"$ref": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/TemplatedMessage"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template",
|
||||
"messages"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prefs": {
|
||||
"description": "The prefs to set",
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
".*": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"branch": {
|
||||
"description": "The branch the pref should be set on.",
|
||||
"type": "string",
|
||||
"enum": ["user", "default"]
|
||||
},
|
||||
"value": {
|
||||
"description": "The value of the pref. Set to null to clear prefs.",
|
||||
"type": ["string", "integer", "boolean", "null"]
|
||||
}
|
||||
},
|
||||
"required": ["branch", "value"],
|
||||
"allOf": [
|
||||
{
|
||||
"description": "Prevent clearing the default branch",
|
||||
"if": {
|
||||
"properties": {
|
||||
"branch": {
|
||||
"const": "default"
|
||||
}
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"properties": {
|
||||
"value": {
|
||||
"type": ["string", "integer", "boolean"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["prefs"],
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -856,6 +856,27 @@ newtabSpocsCache:
|
|||
description: >-
|
||||
Controls if spocs should be included in startup cache.
|
||||
|
||||
newtabAdSizingExperiment:
|
||||
description: >-
|
||||
Change the default ad size and UI for certain ad formats.
|
||||
owner: achurchwell@mozilla.com, sdowne@mozilla.com
|
||||
hasExposure: false
|
||||
variables:
|
||||
variantA:
|
||||
type: boolean
|
||||
setPref:
|
||||
branch: user
|
||||
pref: browser.newtabpage.activity-stream.newtabAdSize.variant-a
|
||||
description: >-
|
||||
Variant A ad size and UI.
|
||||
variantB:
|
||||
type: boolean
|
||||
setPref:
|
||||
branch: user
|
||||
pref: browser.newtabpage.activity-stream.newtabAdSize.variant-b
|
||||
description: >-
|
||||
Variant B ad size and UI.
|
||||
|
||||
newtabLayoutExperiment:
|
||||
description: >-
|
||||
Change the default layout of new tab by adjusting sizes and spacing of elements.
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,344 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||
"$id": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json",
|
||||
"title": "Messaging Experiment",
|
||||
"description": "A Firefox Messaging System message.",
|
||||
"if": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"template": {
|
||||
"const": "multi"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template"
|
||||
]
|
||||
},
|
||||
"then": {
|
||||
"$ref": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/MultiMessage"
|
||||
},
|
||||
"else": {
|
||||
"$ref": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/Message"
|
||||
}
|
||||
],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"$ref": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizableText",
|
||||
"description": "Id of localized string or message override of toast notification title"
|
||||
},
|
||||
"body": {
|
||||
"$ref": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/localizedText"
|
||||
}
|
||||
]
|
||||
},
|
||||
"TemplatedMessage": {
|
||||
"description": "An FxMS message of one of a variety of types.",
|
||||
"type": "object",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/Message"
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"template": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"toast_notification"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template"
|
||||
]
|
||||
},
|
||||
"then": {
|
||||
"$ref": "chrome://browser/content/asrouter/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": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json#/$defs/TemplatedMessage"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"template",
|
||||
"messages"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prefs": {
|
||||
"description": "The prefs to set",
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
".*": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"branch": {
|
||||
"description": "The branch the pref should be set on.",
|
||||
"type": "string",
|
||||
"enum": ["user", "default"]
|
||||
},
|
||||
"value": {
|
||||
"description": "The value of the pref. Set to null to clear prefs.",
|
||||
"type": ["string", "integer", "boolean", "null"]
|
||||
}
|
||||
},
|
||||
"required": ["branch", "value"],
|
||||
"allOf": [
|
||||
{
|
||||
"description": "Prevent clearing the default branch",
|
||||
"if": {
|
||||
"properties": {
|
||||
"branch": {
|
||||
"const": "default"
|
||||
}
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"properties": {
|
||||
"value": {
|
||||
"type": ["string", "integer", "boolean"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["prefs"],
|
||||
"additionalProperties": false
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -10,7 +10,8 @@ focus/klar-v129.2: 61ba62d82c23048762bede05525bb666e47a2a31
|
|||
focus/klar-v130.0: 0b359af1d789a91976657cbe22c7d3d9c7fdadc3
|
||||
focus/klar-v131.0: 34d92c8df1b1522a1da88c23879b439d763ec133
|
||||
focus/klar-v131.1: b7dca2271b14988837524a30eb154d91eb5e4912
|
||||
main: c529d9f1b71c43efb1aa7c777741090e43fed437
|
||||
focus/klar-v132.0: d9ed6134db59ff456d343e2bb211aefd040319ac
|
||||
main: c898362a35b1771083e0b7262e758064130af0d0
|
||||
release/v124: da250bed9e19c4978d4400d6d404cb312e33636e
|
||||
release/v125: a3e1e0773a00009e08d95726fd518ab642255ccd
|
||||
release/v126: 6f305409b4af68e8404401a2caad8cb0da9a0494
|
||||
|
@ -19,4 +20,5 @@ release/v128: 35067ace4056902b3e30df15c1ca4b06c2d12065
|
|||
release/v129: 500c57e46f0de7c5125ba823eb4f72500934bdca
|
||||
release/v130: a48ec1b1f0219e1987bb38bc4f6b838f37dc6f12
|
||||
release/v131: 7444df581b62d357df12ddc3c90d821d940efbb8
|
||||
release/v132: d9ed6134db59ff456d343e2bb211aefd040319ac
|
||||
release/v132: 19207ebcbcd477b70878b17c322b06116388c68e
|
||||
release/v133: 18b5f6f3f39c6473ee20589ac643263f017d083b
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Focus for iOS
|
||||
channels:
|
||||
- beta
|
||||
features:
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
variables:
|
||||
bold-tip-title:
|
||||
description: Make the tips title label bold
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
description: Should the v2 of the onboarding be shown.
|
||||
type: Boolean
|
||||
default: false
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Focus for iOS
|
||||
channels:
|
||||
- developer
|
||||
features:
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
variables:
|
||||
bold-tip-title:
|
||||
description: Make the tips title label bold
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
description: Should the v2 of the onboarding be shown.
|
||||
type: Boolean
|
||||
default: true
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
bold-tip-title:
|
||||
type: boolean
|
||||
description: Make the tips title label bold
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
type: boolean
|
||||
description: Should the v2 of the onboarding be shown.
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Focus for iOS
|
||||
channels:
|
||||
- release
|
||||
features:
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
variables:
|
||||
bold-tip-title:
|
||||
description: Make the tips title label bold
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
description: Should the v2 of the onboarding be shown.
|
||||
type: Boolean
|
||||
default: false
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Focus for iOS
|
||||
channels:
|
||||
- beta
|
||||
features:
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
variables:
|
||||
bold-tip-title:
|
||||
description: Make the tips title label bold
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
description: Should the v2 of the onboarding be shown.
|
||||
type: Boolean
|
||||
default: false
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Focus for iOS
|
||||
channels:
|
||||
- developer
|
||||
features:
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
variables:
|
||||
bold-tip-title:
|
||||
description: Make the tips title label bold
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
description: Should the v2 of the onboarding be shown.
|
||||
type: Boolean
|
||||
default: true
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
bold-tip-title:
|
||||
type: boolean
|
||||
description: Make the tips title label bold
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
type: boolean
|
||||
description: Should the v2 of the onboarding be shown.
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Focus for iOS
|
||||
channels:
|
||||
- release
|
||||
features:
|
||||
nimbus-validation:
|
||||
description: A tiny feature to validate that Nimbus is working
|
||||
variables:
|
||||
bold-tip-title:
|
||||
description: Make the tips title label bold
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-variables:
|
||||
description: A collection of variables about onboarding
|
||||
variables:
|
||||
show-new-onboarding:
|
||||
description: Should the v2 of the onboarding be shown.
|
||||
type: Boolean
|
||||
default: false
|
|
@ -1,4 +1,4 @@
|
|||
main: c529d9f1b71c43efb1aa7c777741090e43fed437
|
||||
main: c898362a35b1771083e0b7262e758064130af0d0
|
||||
release/v117: 43b690c450066d4dde1b2ccb93ed3714d244d502
|
||||
release/v118: 89a7ea3c3372e5a4ef5b3c5b85499d26198d0524
|
||||
release/v119: 7dc381f991c6d2a983c3ba7f0cffd880e8c29e7b
|
||||
|
@ -14,7 +14,8 @@ release/v128: 35067ace4056902b3e30df15c1ca4b06c2d12065
|
|||
release/v129: 500c57e46f0de7c5125ba823eb4f72500934bdca
|
||||
release/v130: a48ec1b1f0219e1987bb38bc4f6b838f37dc6f12
|
||||
release/v131: 7444df581b62d357df12ddc3c90d821d940efbb8
|
||||
release/v132: d9ed6134db59ff456d343e2bb211aefd040319ac
|
||||
release/v132: 19207ebcbcd477b70878b17c322b06116388c68e
|
||||
release/v133: 18b5f6f3f39c6473ee20589ac643263f017d083b
|
||||
v117.0: 3b275ab1e4ccef769d84437033c0c68acfd2df8a
|
||||
v117.1: 55ddcf473a65d106d43f6d2ae5af4076d6d03688
|
||||
v117.2: 5cc367aa8857199cd8a54d53e8faf6696c5614c3
|
||||
|
|
|
@ -0,0 +1,997 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Firefox for iOS
|
||||
channels:
|
||||
- beta
|
||||
features:
|
||||
account-settings-redux-feature:
|
||||
description: "This feature is for managing the roll out of the Account Settings Redux implementation\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
address-autofill-edit:
|
||||
description: This property defines if the address editing is enabled in Settings
|
||||
variables:
|
||||
status:
|
||||
description: "If true, we will allow user to edit the address"
|
||||
type: Boolean
|
||||
default: false
|
||||
contextual-hint-feature:
|
||||
description: This set holds all features pertaining to contextual hints.
|
||||
variables:
|
||||
features-enabled:
|
||||
description: "This property provides a lookup table of whether specific contextual hints are enabled.\n"
|
||||
type: "Map<ContextualHint, Boolean>"
|
||||
default:
|
||||
toolbar-hint: true
|
||||
credit-card-autofill:
|
||||
description: This property defines the credit card autofill feature
|
||||
variables:
|
||||
credit-card-autofill-status:
|
||||
description: "If true, we will allow user to use the credit autofill feature"
|
||||
type: Boolean
|
||||
default: true
|
||||
felt-privacy-feature:
|
||||
description: The feature that enhances private browsing mode
|
||||
variables:
|
||||
felt-deletion-enabled:
|
||||
description: "If true, enable Felt Deletion part of Felt Privacy"
|
||||
type: Boolean
|
||||
default: false
|
||||
simplified-ui-enabled:
|
||||
description: "If true, enable simplified UI part of Felt Privacy"
|
||||
type: Boolean
|
||||
default: false
|
||||
firefox-suggest-feature:
|
||||
description: Configuration for the Firefox Suggest feature.
|
||||
variables:
|
||||
available-suggestions-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
status:
|
||||
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
|
||||
general-app-features:
|
||||
description: The feature that contains feature flags for the entire application
|
||||
variables:
|
||||
report-site-issue:
|
||||
description: This property defines whether or not the feature is enabled
|
||||
type: GeneralFeature
|
||||
default:
|
||||
status: true
|
||||
glean-server-knobs:
|
||||
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
|
||||
variables:
|
||||
metrics-enabled:
|
||||
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
|
||||
type: "Map<String, Boolean>"
|
||||
default: {}
|
||||
homescreenFeature:
|
||||
description: The homescreen that the user goes to when they press home or new tab.
|
||||
variables:
|
||||
prefer-switch-to-open-tab:
|
||||
description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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.\n"
|
||||
type: "Map<HomeScreenSection, Boolean>"
|
||||
default:
|
||||
jump-back-in: true
|
||||
recent-explorations: false
|
||||
login-autofill:
|
||||
description: This property defines the login autofill feature for automatically filling in usernames and passwords.
|
||||
variables:
|
||||
login-autofill-status:
|
||||
description: "If true, allows the user to use the login autofill feature for usernames and passwords."
|
||||
type: Boolean
|
||||
default: true
|
||||
menu-refactor-feature:
|
||||
description: "Controls the menu refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Controls which menu users will see\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system\n"
|
||||
documentation:
|
||||
- name: User documentation
|
||||
url: "https://experimenter.info/messaging/mobile-messaging"
|
||||
contacts:
|
||||
- jhugman@mozilla.com
|
||||
- brennie@mozilla.com
|
||||
- gbuciu@mozilla.com
|
||||
- wteichmann@mozilla.com
|
||||
events:
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_shown"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_clicked"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_expired"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_dismissed"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_malformed"
|
||||
variables:
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_SETTINGS: "://deep-link?url=settings/general"
|
||||
OPEN_SETTINGS_NEW_TAB: "://deep-link?url=settings/newtab"
|
||||
OPEN_SETTINGS_HOMESCREEN: "://deep-link?url=settings/homepage"
|
||||
OPEN_SETTINGS_WALLPAPERS: "://deep-link?url=settings/wallpaper"
|
||||
OPEN_SETTINGS_EMAIL: "://deep-link?url=settings/mailto"
|
||||
OPEN_SETTINGS_SEARCH_ENGINE: "://deep-link?url=settings/search"
|
||||
OPEN_SETTINGS_PRIVACY: "://deep-link?url=settings/clear-private-data"
|
||||
OPEN_SETTINGS_FXA: "://deep-link?url=settings/fxa"
|
||||
OPEN_SETTINGS_THEME: "://deep-link?url=settings/theme"
|
||||
OPEN_URL: "://open-url"
|
||||
VIEW_BOOKMARKS: "://deep-link?url=homepanel/bookmarks"
|
||||
VIEW_TOP_SITES: "://deep-link?url=homepanel/top-sites"
|
||||
VIEW_READING_LIST: "://deep-link?url=homepanel/reading-list"
|
||||
VIEW_HISTORY: "://deep-link?url=homepanel/history"
|
||||
VIEW_DOWNLOADS: "://deep-link?url=homepanel/downloads"
|
||||
ENABLE_PRIVATE_BROWSING: "://deep-link?url=homepanel/new-private-tab"
|
||||
OPEN_NEW_TAB: "://deep-link?url=homepanel/new-tab"
|
||||
MAKE_DEFAULT_BROWSER: "://deep-link?url=default-browser/system-settings"
|
||||
MAKE_DEFAULT_BROWSER_WITH_TUTORIAL: "://deep-link?url=default-browser/tutorial"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n"
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
surface: new-tab-card
|
||||
style: FALLBACK
|
||||
trigger-if-all:
|
||||
- SUPPORTS_DEFAULT_BROWSER
|
||||
- ON_FOURTH_LAUNCH_THIS_YEAR
|
||||
except-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
title: Default Browser/DefaultBrowserCard.Title
|
||||
text: Default Browser/DefaultBrowserCard.Description
|
||||
button-label: Default Browser/DefaultBrowserCard.Button.v2
|
||||
action: MAKE_DEFAULT_BROWSER_WITH_TUTORIAL
|
||||
homepage-microsurvey-message:
|
||||
surface: microsurvey
|
||||
style: MICROSURVEY
|
||||
trigger-if-all:
|
||||
- SECOND_HOMEPAGE_VIEW
|
||||
title: Microsurvey/Microsurvey.Prompt.TitleLabel.v127
|
||||
text: How satisfied are you with your Firefox homepage?
|
||||
button-label: Microsurvey/Microsurvey.Prompt.Button.v127
|
||||
microsurveyConfig:
|
||||
utm-content: homepage
|
||||
icon: homeLarge
|
||||
options:
|
||||
- Microsurvey/Microsurvey.Survey.Options.VerySatisfied.v132
|
||||
- Microsurvey/Microsurvey.Survey.Options.Satisfied.v132
|
||||
- Microsurvey/Microsurvey.Survey.Options.Neutral.v132
|
||||
- Microsurvey/Microsurvey.Survey.Options.Dissatisfied.v132
|
||||
- Microsurvey/Microsurvey.Survey.Options.VeryDissatisfied.v132
|
||||
- Microsurvey/Microsurvey.Survey.Options.NotApplicable.v132
|
||||
string-alias: MessageKey
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
FALLBACK:
|
||||
priority: 40
|
||||
max-display-count: 20
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 10
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
NOT_LAUNCHED_YESTERDAY: "'app_cycle.foreground'|eventLastSeen('Days', 1) > 1"
|
||||
AFTER_THREE_LAUNCHES_THIS_WEEK: "'app_cycle.foreground'|eventSum('Weeks', 1, 0) >= 3"
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
SUPPORTS_DEFAULT_BROWSER: "os_version|versionCompare('14.!') >= 0"
|
||||
INACTIVE_NEW_USER: is_inactive_new_user
|
||||
ALLOWED_TIPS_NOTIFICATIONS: allowed_tips_notifications
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
SECOND_HOMEPAGE_VIEW: "'homepage_viewed'|eventSum('Years', 4, 0) >= 2"
|
||||
ON_FOURTH_LAUNCH_THIS_YEAR: "'app_cycle.foreground'|eventSum('Years', 1, 0) > 3"
|
||||
string-alias: TriggerName
|
||||
~~experiment:
|
||||
description: Not to be set by experiment.
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
allow-coenrollment: true
|
||||
microsurvey-feature:
|
||||
description: "A feature that shows the microsurvey for users to interact with and submit responses.\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
native-error-page-feature:
|
||||
description: "This feature is for managing the roll out of the native error page feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
night-mode-feature:
|
||||
description: "Describes the night mode feature's configuration\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether night mode is available for users or not\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-framework-feature:
|
||||
description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n"
|
||||
variables:
|
||||
cards:
|
||||
description: "The list of available cards for onboarding.\n"
|
||||
type: "Map<NimbusOnboardingCardKey, NimbusOnboardingCardData>"
|
||||
default:
|
||||
welcome:
|
||||
card-type: basic
|
||||
order: 10
|
||||
title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120
|
||||
body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120
|
||||
image: welcome-globe
|
||||
link:
|
||||
title: Onboarding/Onboarding.Welcome.Link.Action.v114
|
||||
url: "https://www.mozilla.org/privacy/firefox/"
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Welcome.ActionTreatementA.v114
|
||||
action: open-instructions-popup
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Welcome.Skip.v114
|
||||
action: forward-one-card
|
||||
instructions-popup:
|
||||
title: Onboarding/DefaultBrowserPopup.Title.v114
|
||||
button-title: Onboarding/DefaultBrowserPopup.ButtonTitle.v114
|
||||
button-action: open-ios-fx-settings
|
||||
instructions:
|
||||
- Onboarding/DefaultBrowserPopup.FirstLabel.v114
|
||||
- Onboarding/DefaultBrowserPopup.SecondLabel.v114
|
||||
- Onboarding/DefaultBrowserPopup.ThirdLabel.v114
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
notification-permissions:
|
||||
card-type: basic
|
||||
order: 30
|
||||
title: Onboarding/Onboarding.Notification.Title.v120
|
||||
body: Onboarding/Onboarding.Notification.Description.v120
|
||||
image: notifications
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Notification.TurnOnNotifications.Action.v114
|
||||
action: request-notifications
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Notification.Skip.Action.v115
|
||||
action: forward-one-card
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
sign-to-sync:
|
||||
card-type: basic
|
||||
order: 20
|
||||
title: Onboarding/Onboarding.Sync.Title.v120
|
||||
body: Onboarding/Onboarding.Sync.Description.v123
|
||||
image: sync-devices
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Sync.SignIn.Action.v114
|
||||
action: sync-sign-in
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Sync.Skip.Action.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
customization-theme:
|
||||
card-type: multiple-choice
|
||||
order: 40
|
||||
title: Onboarding/Onboarding.Customization.Theme.Title.v123
|
||||
body: Onboarding/Onboarding.Customization.Theme.Description.v123
|
||||
image: themeing
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Customization.Theme.Continue.Action.v123
|
||||
action: forward-one-card
|
||||
multiple-choice-buttons:
|
||||
- title: Onboarding/Onboarding.Customization.Theme.System.Action.v123
|
||||
image: theme-system
|
||||
action: theme-system-default
|
||||
- title: Onboarding/Onboarding.Customization.Theme.Light.Action.v123
|
||||
image: theme-light
|
||||
action: theme-light
|
||||
- title: Onboarding/Onboarding.Customization.Theme.Dark.Action.v123
|
||||
image: theme-dark
|
||||
action: theme-dark
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
customization-toolbar:
|
||||
card-type: multiple-choice
|
||||
order: 41
|
||||
title: Onboarding/Onboarding.Customization.Toolbar.Title.v123
|
||||
body: Onboarding/Onboarding.Customization.Toolbar.Description.v123
|
||||
image: toolbar
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Customization.Toolbar.Continue.Action.v123
|
||||
action: forward-one-card
|
||||
multiple-choice-buttons:
|
||||
- title: Onboarding/Onboarding.Customization.Toolbar.Top.Action.v123
|
||||
image: toolbar-top
|
||||
action: toolbar-top
|
||||
- title: Onboarding/Onboarding.Customization.Toolbar.Bottom.Action.v123
|
||||
image: toolbar-bottom
|
||||
action: toolbar-bottom
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
update-welcome:
|
||||
card-type: basic
|
||||
order: 10
|
||||
title: Upgrade/Upgrade.Welcome.Title.v114
|
||||
body: Upgrade/Upgrade.Welcome.Description.v114
|
||||
image: welcome-globe
|
||||
buttons:
|
||||
primary:
|
||||
title: Upgrade/Upgrade.Welcome.Action.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: upgrade
|
||||
prerequisites:
|
||||
- NEVER
|
||||
update-sign-to-sync:
|
||||
card-type: basic
|
||||
order: 20
|
||||
title: Upgrade/Upgrade.SyncSign.Title.v114
|
||||
body: Upgrade/Upgrade.SyncSign.Description.v114
|
||||
image: sync-devices
|
||||
buttons:
|
||||
primary:
|
||||
title: Upgrade/Upgrade.SyncSign.Action.v114
|
||||
action: sync-sign-in
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.LaterAction.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: upgrade
|
||||
prerequisites:
|
||||
- NEVER
|
||||
string-alias: NimbusOnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
dismissable:
|
||||
description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
password-generator-feature:
|
||||
description: Password Generator Feature
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the password generator feature is enabled"
|
||||
type: Boolean
|
||||
default: false
|
||||
redux-search-settings-feature:
|
||||
description: "This feature is for managing the roll out of redux on the search settings screen\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
search:
|
||||
description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n"
|
||||
variables:
|
||||
awesome-bar:
|
||||
description: Configuring the awesome bar.
|
||||
type: AwesomeBar
|
||||
default:
|
||||
min-search-term: 3
|
||||
position:
|
||||
is-bottom: false
|
||||
is-position-feature-enabled: true
|
||||
is-toolbar-cfr-on: false
|
||||
search-highlights: false
|
||||
use-page-content: false
|
||||
shopping2023:
|
||||
description: "The configuration setting for the status of the Fakespot feature\n"
|
||||
variables:
|
||||
back_in_stock_reporting:
|
||||
description: "If true, enables for users the reporting feature for products back in stock.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
config:
|
||||
description: "A Map of website configurations\n"
|
||||
type: "Map<String, WebsiteConfig>"
|
||||
default:
|
||||
amazon:
|
||||
productIdFromURLRegex: "(?:[\\\\/]|$|%2F)(?<productId>[A-Z0-9]{10})(?:[\\\\/]|$|\\\\#|\\\\?|%2F)"
|
||||
validTLDs:
|
||||
- com
|
||||
- de
|
||||
- fr
|
||||
walmart:
|
||||
productIdFromURLRegex: "\\\\/ip\\\\/(?:[A-Za-z0-9-]{1,320}\\\\/)?(?<productId>[0-9]{3,13})"
|
||||
validTLDs:
|
||||
- com
|
||||
bestbuy:
|
||||
productIdFromURLRegex: "\\\\/(?<productId>\\\\d+\\\\.p)"
|
||||
validTLDs:
|
||||
- com
|
||||
product_ads:
|
||||
description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
relay:
|
||||
description: "Configurable relay URL for production environment\n"
|
||||
type: String
|
||||
default: "https://mozilla-ohttp-fakespot.fastly-edge.com/"
|
||||
status:
|
||||
description: "Whether the Fakespot feature is enabled or disabled\n"
|
||||
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.\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
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.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
spotlight-search:
|
||||
description: Add pages as items findable with Spotlight.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If this is true, then on each page load adds a new item to Spotlight."
|
||||
type: Boolean
|
||||
default: false
|
||||
icon-type:
|
||||
description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n"
|
||||
type: Option<IconType>
|
||||
default: letter
|
||||
keep-for-days:
|
||||
description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n"
|
||||
type: Option<Int>
|
||||
default: ~
|
||||
searchable-content:
|
||||
description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n"
|
||||
type: Option<PageContent>
|
||||
default: text-excerpt
|
||||
tab-tray-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Tab Tray refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
tabTrayFeature:
|
||||
description: The tab tray screen that the user goes to when they open the tab tray.
|
||||
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<TabTraySection, Boolean>"
|
||||
default:
|
||||
inactive-tabs: true
|
||||
toolbar-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Toolbar refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
navigation_hint:
|
||||
description: "If true, enables the navigation contextual hint.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
one_tap_new_tab:
|
||||
description: "If true, enables the one tap new tab feature for users.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
unified_search_enabled:
|
||||
description: "Enables the unified search feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
tracking-protection-refactor:
|
||||
description: "The Enhanced Tracking Protection refactor\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
zoom-feature:
|
||||
description: "The configuration for the status of the zoom feature\n"
|
||||
variables:
|
||||
status:
|
||||
description: "Whether the page zoom feature is enabled or not\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
enums:
|
||||
ContextualHint:
|
||||
description: The identifiers for a individual contextual hints.
|
||||
variants:
|
||||
toolbar-hint:
|
||||
description: The contextual hint bubble that appears to provide a hint about the toolbar.
|
||||
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.
|
||||
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.
|
||||
recent-explorations:
|
||||
description: The tab groups
|
||||
IconType:
|
||||
description: "The icon that will be added to the item in the device's search engine."
|
||||
variants:
|
||||
favicon:
|
||||
description: The favicon of the page
|
||||
letter:
|
||||
description: An icon generated from the first letter of the base domain.
|
||||
screenshot:
|
||||
description: A screenshot of the page at load time.
|
||||
MessageSurfaceId:
|
||||
description: "For messaging, we would like to have a message tell us which surface its associated with. This is a label that matches across both Android and iOS.\n"
|
||||
variants:
|
||||
Unknown:
|
||||
description: A message has NOT declared its target surface.
|
||||
microsurvey:
|
||||
description: This is a microsurvey that appears on top of the bottom toolbar to the user.
|
||||
new-tab-card:
|
||||
description: This is the card that appears at the top on the Firefox Home Page.
|
||||
notification:
|
||||
description: This is a local notification send to the user periodically with tips and updates.
|
||||
survey:
|
||||
description: This is a full-page that appears providing a survey to the user.
|
||||
NimbusOnboardingHeaderImage:
|
||||
description: "The identifiers for the different images available for cards in onboarding\n"
|
||||
variants:
|
||||
customize-firefox:
|
||||
description: "Corresponding to the fox window image\n"
|
||||
notifications:
|
||||
description: "Corresponding to the notifications image\n"
|
||||
notifications-ctd:
|
||||
description: "Corresponding to the notifications image for CTD\n"
|
||||
search-widget:
|
||||
description: "Corresponding to the fox search widget image\n"
|
||||
set-default-steps:
|
||||
description: "Corresponding to the set to default steps image\n"
|
||||
set-to-dock:
|
||||
description: "Corresponding to the set to dock image\n"
|
||||
sync-devices:
|
||||
description: "Corresponding to the sync-devices image\n"
|
||||
sync-devices-ctd:
|
||||
description: "Corresponding to the sync image for CTD\n"
|
||||
themeing:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
toolbar:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
welcome-ctd:
|
||||
description: "Corresponding to the welcome image for CTD\n"
|
||||
welcome-globe:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
NimbusOnboardingMultipleChoiceButtonImage:
|
||||
description: "The identifiers for the different images available for multiple choice buttons in onboarding\n"
|
||||
variants:
|
||||
theme-dark:
|
||||
description: "Corresponding to the dark theme\n"
|
||||
theme-light:
|
||||
description: "Corresponding to the light theme\n"
|
||||
theme-system:
|
||||
description: "Corresponding to the system theme\n"
|
||||
toolbar-bottom:
|
||||
description: "Corresponding to the toolbar on the bottom\n"
|
||||
toolbar-top:
|
||||
description: "Corresponding to the toolbar on top\n"
|
||||
OnboardingActions:
|
||||
description: "The identifiers for the different actions available for cards in onboarding\n"
|
||||
variants:
|
||||
end-onboarding:
|
||||
description: "Will end the onboarding on a set card\n"
|
||||
forward-one-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
forward-three-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
forward-two-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
open-instructions-popup:
|
||||
description: "Will open up a popup with instructions for something\n"
|
||||
open-ios-fx-settings:
|
||||
description: "Will take the user to the default browser settings in the iOS system settings\n"
|
||||
read-privacy-policy:
|
||||
description: "Will open a webview where the user can read the privacy policy\n"
|
||||
request-notifications:
|
||||
description: "Will request to allow notifications from the user\n"
|
||||
set-default-browser:
|
||||
description: "Will send the user to settings to set Firefox as their default browser and advance to next card\n"
|
||||
sync-sign-in:
|
||||
description: "Will take the user to the sync sign in flow\n"
|
||||
OnboardingCardType:
|
||||
description: "The identifiers for the different types of onboarding cards.\n"
|
||||
variants:
|
||||
basic:
|
||||
description: "Corresponding to basic info onboarding cards\n"
|
||||
multiple-choice:
|
||||
description: "Corresponding to onboarding cards with multiple choice buttons\n"
|
||||
OnboardingInstructionsPopupActions:
|
||||
description: "The identifiers for the different actions available for the insturction card in onboarding\n"
|
||||
variants:
|
||||
dismiss:
|
||||
description: "Will dismiss the popup\n"
|
||||
dismiss-and-next-card:
|
||||
description: "Will dismiss the popup and move to the next card\n"
|
||||
open-ios-fx-settings:
|
||||
description: "Will take the user to the default browser settings in the iOS system settings\n"
|
||||
OnboardingMultipleChoiceAction:
|
||||
description: "The identifiers for the different actions available for cards in onboarding\n"
|
||||
variants:
|
||||
theme-dark:
|
||||
description: "Will will set the theme to dark mode\n"
|
||||
theme-light:
|
||||
description: "Will set the theme to light mode\n"
|
||||
theme-system-default:
|
||||
description: "Will set the theme to use the system theme\n"
|
||||
toolbar-bottom:
|
||||
description: "Will set the toolbar on the bottom\n"
|
||||
toolbar-top:
|
||||
description: "Will set the toolbar on the top\n"
|
||||
OnboardingType:
|
||||
description: "The identifiers for the different types of onboarding cards.\n"
|
||||
variants:
|
||||
fresh-install:
|
||||
description: "Corresponding to onboarding cards that are for new users\n"
|
||||
upgrade:
|
||||
description: "Corresponding to onboarding cards that are for users who have updated\n"
|
||||
PageContent:
|
||||
description: "The page content that will be added as an item in the device's search engine."
|
||||
variants:
|
||||
html-content:
|
||||
description: Use all the page as HTML
|
||||
text-content:
|
||||
description: Use all the page as text
|
||||
text-excerpt:
|
||||
description: Only use the first paragraph
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion for desktop from adMarketplace.
|
||||
ampMobile:
|
||||
description: A Firefox Suggestion specifically for mobile from adMarketplace.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
TabTraySection:
|
||||
description: The identifiers for the sections of the tab tray.
|
||||
variants:
|
||||
inactive-tabs:
|
||||
description: Tabs that have been automatically closed for the user.
|
||||
objects:
|
||||
AwesomeBar:
|
||||
description: "A configuration option for the awesome bar. Part of the `search` feature."
|
||||
fields:
|
||||
min-search-term:
|
||||
description: The minimum number of characters that the user types before searching in the page.
|
||||
type: Int
|
||||
default: 3
|
||||
position:
|
||||
description: "This property defines whether or not the feature is enabled, and the position of the search bar\n"
|
||||
type: SearchBarPositionFeature
|
||||
default:
|
||||
is-position-feature-enabled: true
|
||||
is-bottom: true
|
||||
is-toolbar-cfr-on: true
|
||||
search-highlights:
|
||||
description: Whether or not search highlights are enabled
|
||||
type: Boolean
|
||||
default: false
|
||||
use-page-content:
|
||||
description: "Search in the open tab's text content when typing."
|
||||
type: Boolean
|
||||
default: false
|
||||
GeneralFeature:
|
||||
description: The configuration for the a feature that can be enabled or disabled
|
||||
fields:
|
||||
status:
|
||||
description: Whether or not the feature is enabled
|
||||
type: Boolean
|
||||
default: false
|
||||
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: "The name of a deeplink URL to be opened if the button is clicked.\n"
|
||||
type: Option<ActionName>
|
||||
default: ~
|
||||
action-params:
|
||||
description: Query parameters appended to the deeplink action URL
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
except-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. If any of these expressions evaluate to `true`, the message will not be eligible.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The experiment slug that this message is involved in.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurveyConfig:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: Each message will tell us the surface it is targeting with this.
|
||||
type: MessageSurfaceId
|
||||
default: Unknown
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. All named expressions must evaluate to true if the message is to be eligible to be shown.\n"
|
||||
type: List<TriggerName>
|
||||
default:
|
||||
- ALWAYS
|
||||
MicrosurveyConfig:
|
||||
description: "Attributes relating to microsurvey messaging.\n"
|
||||
fields:
|
||||
icon:
|
||||
description: The asset name in our bundle used as the icon shown in the survey.
|
||||
type: Image
|
||||
default: lightbulbLarge
|
||||
options:
|
||||
description: The list of survey options to present to the user.
|
||||
type: List<Text>
|
||||
default: []
|
||||
utm-content:
|
||||
description: The name used to provide as the utm_content parameter for the privacy notice.
|
||||
type: Option<String>
|
||||
default: ~
|
||||
NimbusOnboardingButton:
|
||||
description: "A group of properties describing the attributes of a card.\n"
|
||||
fields:
|
||||
action:
|
||||
description: "The action the button should take. The default for this will be \"forward-one-card\"\n"
|
||||
type: OnboardingActions
|
||||
default: forward-one-card
|
||||
title:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingButtons:
|
||||
description: "A set of buttons for the card. There can be up to two, but there must be at least one.\n"
|
||||
fields:
|
||||
primary:
|
||||
description: "The primary button for the card. This must exist.\n"
|
||||
type: NimbusOnboardingButton
|
||||
default:
|
||||
title: Primary Button
|
||||
action: forward-one-card
|
||||
secondary:
|
||||
description: "A secondary, optional, button for the card.\n"
|
||||
type: Option<NimbusOnboardingButton>
|
||||
default: ~
|
||||
NimbusOnboardingCardData:
|
||||
description: "A group of properties describing the attributes of a card.\n"
|
||||
fields:
|
||||
body:
|
||||
description: "The body text dispalyed on the card, in less prominent text. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
buttons:
|
||||
description: "The set of buttons associated with the card.\n"
|
||||
type: NimbusOnboardingButtons
|
||||
default:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Sync.Skip.Action.v114
|
||||
action: forward-one-card
|
||||
secondary: ~
|
||||
card-type:
|
||||
description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n"
|
||||
type: OnboardingCardType
|
||||
default: basic
|
||||
disqualifiers:
|
||||
description: "A list of ConditionName strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default: []
|
||||
image:
|
||||
description: "The image that should be dispalyed on the card.\n"
|
||||
type: NimbusOnboardingHeaderImage
|
||||
default: welcome-globe
|
||||
instructions-popup:
|
||||
description: "The object describing the specific instruction popup button for a card. If left empty, the card will have no instruction popup information\n"
|
||||
type: Option<NimbusOnboardingInstructionPopup>
|
||||
default: ~
|
||||
link:
|
||||
description: "The object describing the link button for a card. If left empty, the card will have no link.\n"
|
||||
type: Option<NimbusOnboardingLink>
|
||||
default: ~
|
||||
multiple-choice-buttons:
|
||||
description: "A list of multiple choice buttons that the card will display\n"
|
||||
type: List<NimbusOnboardingMultipleChoiceButton>
|
||||
default: []
|
||||
onboarding-type:
|
||||
description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n"
|
||||
type: OnboardingType
|
||||
default: fresh-install
|
||||
order:
|
||||
description: "The place in the order where the card will be found. The feature layer will then sort the cards based on this field.\n"
|
||||
type: Int
|
||||
default: 10
|
||||
prerequisites:
|
||||
description: "A list of ConditionName strings corresponding to targeting expressions. The card will be shown if all expressions `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default: []
|
||||
title:
|
||||
description: "The title displayed on the card, in prominent, bolded text. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingInstructionPopup:
|
||||
description: "The object outlining the content of the instruction card.\n"
|
||||
fields:
|
||||
button-action:
|
||||
description: "The action the button should have. Default is `dismiss-and-next-card`\n"
|
||||
type: OnboardingInstructionsPopupActions
|
||||
default: dismiss-and-next-card
|
||||
button-title:
|
||||
description: "The title the button should have. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
instructions:
|
||||
description: "A list of instructions, either as free text, or as Text identifiers.\n"
|
||||
type: List<Text>
|
||||
default: []
|
||||
title:
|
||||
description: "The text of the popup. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingLink:
|
||||
description: "A group of properties describing the attributes for the active link on a card\n"
|
||||
fields:
|
||||
title:
|
||||
description: "The text of the link title.\n"
|
||||
type: Text
|
||||
default: Onboarding/Onboarding.Welcome.Link.Action.v114
|
||||
url:
|
||||
description: "The url that the link will lead to.\n"
|
||||
type: String
|
||||
default: "https://www.mozilla.org/privacy/firefox/"
|
||||
NimbusOnboardingMultipleChoiceButton:
|
||||
description: "A group of properties describing the attributes of a multiple choice button on a card\n"
|
||||
fields:
|
||||
action:
|
||||
description: "The action the button should take. The default for this will be \"theme-system-default\"\n"
|
||||
type: OnboardingMultipleChoiceAction
|
||||
default: theme-system-default
|
||||
image:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: NimbusOnboardingMultipleChoiceButtonImage
|
||||
default: theme-system
|
||||
title:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
SearchBarPositionFeature:
|
||||
description: The configuration for the bottom search bar on the homescreen
|
||||
fields:
|
||||
is-bottom:
|
||||
description: Whether or not the default position is at the bottom
|
||||
type: Boolean
|
||||
default: true
|
||||
is-position-feature-enabled:
|
||||
description: Whether or not the feature is enabled
|
||||
type: Boolean
|
||||
default: true
|
||||
is-toolbar-cfr-on:
|
||||
description: Whether or not the toolbar CFR shows. This is a temporary hack for Nimbus
|
||||
type: Boolean
|
||||
default: true
|
||||
StyleData:
|
||||
description: "A group of properities (predominantly visual) to the describe 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
|
||||
WebsiteConfig:
|
||||
description: "It represents a configuration for different e-commerce websites and includes regular expressions for extracting product IDs from their respective URLs\n"
|
||||
fields:
|
||||
productIdFromURLRegex:
|
||||
description: "It represents the product ID extracted from a regex query\n"
|
||||
type: String
|
||||
default: ""
|
||||
validTLDs:
|
||||
description: "Valid Top Level Domains\n"
|
||||
type: List<String>
|
||||
default: []
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,294 @@
|
|||
---
|
||||
account-settings-redux-feature:
|
||||
description: "This feature is for managing the roll out of the Account Settings Redux implementation\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
address-autofill-edit:
|
||||
description: This property defines if the address editing is enabled in Settings
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
status:
|
||||
type: boolean
|
||||
description: "If true, we will allow user to edit the address"
|
||||
contextual-hint-feature:
|
||||
description: This set holds all features pertaining to contextual hints.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
features-enabled:
|
||||
type: json
|
||||
description: "This property provides a lookup table of whether specific contextual hints are enabled.\n"
|
||||
credit-card-autofill:
|
||||
description: This property defines the credit card autofill feature
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
credit-card-autofill-status:
|
||||
type: boolean
|
||||
description: "If true, we will allow user to use the credit autofill feature"
|
||||
felt-privacy-feature:
|
||||
description: The feature that enhances private browsing mode
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
felt-deletion-enabled:
|
||||
type: boolean
|
||||
description: "If true, enable Felt Deletion part of Felt Privacy"
|
||||
simplified-ui-enabled:
|
||||
type: boolean
|
||||
description: "If true, enable simplified UI part of Felt Privacy"
|
||||
firefox-suggest-feature:
|
||||
description: Configuration for the Firefox Suggest feature.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
available-suggestions-types:
|
||||
type: json
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
status:
|
||||
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"
|
||||
general-app-features:
|
||||
description: The feature that contains feature flags for the entire application
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
report-site-issue:
|
||||
type: json
|
||||
description: This property defines whether or not the feature is enabled
|
||||
glean-server-knobs:
|
||||
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
metrics-enabled:
|
||||
type: json
|
||||
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
|
||||
homescreenFeature:
|
||||
description: The homescreen that the user goes to when they press home or new tab.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
prefer-switch-to-open-tab:
|
||||
type: boolean
|
||||
description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n"
|
||||
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.\n"
|
||||
login-autofill:
|
||||
description: This property defines the login autofill feature for automatically filling in usernames and passwords.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
login-autofill-status:
|
||||
type: boolean
|
||||
description: "If true, allows the user to use the login autofill feature for usernames and passwords."
|
||||
menu-refactor-feature:
|
||||
description: "Controls the menu refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Controls which menu users will see\n"
|
||||
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. Please use \"experiment\": \"{experiment}\" instead."
|
||||
messages:
|
||||
type: json
|
||||
description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n"
|
||||
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"
|
||||
~~experiment:
|
||||
type: string
|
||||
description: Not to be set by experiment.
|
||||
microsurvey-feature:
|
||||
description: "A feature that shows the microsurvey for users to interact with and submit responses.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active.\n"
|
||||
native-error-page-feature:
|
||||
description: "This feature is for managing the roll out of the native error page feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active.\n"
|
||||
night-mode-feature:
|
||||
description: "Describes the night mode feature's configuration\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Whether night mode is available for users or not\n"
|
||||
onboarding-framework-feature:
|
||||
description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
cards:
|
||||
type: json
|
||||
description: "The list of available cards for onboarding.\n"
|
||||
conditions:
|
||||
type: json
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
dismissable:
|
||||
type: boolean
|
||||
description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n"
|
||||
password-generator-feature:
|
||||
description: Password Generator Feature
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the password generator feature is enabled"
|
||||
redux-search-settings-feature:
|
||||
description: "This feature is for managing the roll out of redux on the search settings screen\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
type: boolean
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
search:
|
||||
description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
awesome-bar:
|
||||
type: json
|
||||
description: Configuring the awesome bar.
|
||||
shopping2023:
|
||||
description: "The configuration setting for the status of the Fakespot feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
back_in_stock_reporting:
|
||||
type: boolean
|
||||
description: "If true, enables for users the reporting feature for products back in stock.\n"
|
||||
config:
|
||||
type: json
|
||||
description: "A Map of website configurations\n"
|
||||
product_ads:
|
||||
type: boolean
|
||||
description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n"
|
||||
relay:
|
||||
type: string
|
||||
description: "Configurable relay URL for production environment\n"
|
||||
status:
|
||||
type: boolean
|
||||
description: "Whether the Fakespot feature is enabled or disabled\n"
|
||||
splash-screen:
|
||||
description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active.\n"
|
||||
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.\n"
|
||||
spotlight-search:
|
||||
description: Add pages as items findable with Spotlight.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If this is true, then on each page load adds a new item to Spotlight."
|
||||
icon-type:
|
||||
type: string
|
||||
description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n"
|
||||
keep-for-days:
|
||||
type: int
|
||||
description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n"
|
||||
searchable-content:
|
||||
type: string
|
||||
description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n"
|
||||
tab-tray-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Tab Tray refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
tabTrayFeature:
|
||||
description: The tab tray screen that the user goes to when they open the tab tray.
|
||||
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."
|
||||
toolbar-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Toolbar refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
navigation_hint:
|
||||
type: boolean
|
||||
description: "If true, enables the navigation contextual hint.\n"
|
||||
one_tap_new_tab:
|
||||
type: boolean
|
||||
description: "If true, enables the one tap new tab feature for users.\n"
|
||||
unified_search_enabled:
|
||||
type: boolean
|
||||
description: "Enables the unified search feature\n"
|
||||
tracking-protection-refactor:
|
||||
description: "The Enhanced Tracking Protection refactor\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n"
|
||||
zoom-feature:
|
||||
description: "The configuration for the status of the zoom feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
status:
|
||||
type: boolean
|
||||
description: "Whether the page zoom feature is enabled or not\n"
|
|
@ -0,0 +1,979 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Firefox for iOS
|
||||
channels:
|
||||
- release
|
||||
features:
|
||||
account-settings-redux-feature:
|
||||
description: "This feature is for managing the roll out of the Account Settings Redux implementation\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
address-autofill-edit:
|
||||
description: This property defines if the address editing is enabled in Settings
|
||||
variables:
|
||||
status:
|
||||
description: "If true, we will allow user to edit the address"
|
||||
type: Boolean
|
||||
default: false
|
||||
contextual-hint-feature:
|
||||
description: This set holds all features pertaining to contextual hints.
|
||||
variables:
|
||||
features-enabled:
|
||||
description: "This property provides a lookup table of whether specific contextual hints are enabled.\n"
|
||||
type: "Map<ContextualHint, Boolean>"
|
||||
default:
|
||||
toolbar-hint: true
|
||||
credit-card-autofill:
|
||||
description: This property defines the credit card autofill feature
|
||||
variables:
|
||||
credit-card-autofill-status:
|
||||
description: "If true, we will allow user to use the credit autofill feature"
|
||||
type: Boolean
|
||||
default: true
|
||||
felt-privacy-feature:
|
||||
description: The feature that enhances private browsing mode
|
||||
variables:
|
||||
felt-deletion-enabled:
|
||||
description: "If true, enable Felt Deletion part of Felt Privacy"
|
||||
type: Boolean
|
||||
default: false
|
||||
simplified-ui-enabled:
|
||||
description: "If true, enable simplified UI part of Felt Privacy"
|
||||
type: Boolean
|
||||
default: false
|
||||
firefox-suggest-feature:
|
||||
description: Configuration for the Firefox Suggest feature.
|
||||
variables:
|
||||
available-suggestions-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
status:
|
||||
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
|
||||
general-app-features:
|
||||
description: The feature that contains feature flags for the entire application
|
||||
variables:
|
||||
report-site-issue:
|
||||
description: This property defines whether or not the feature is enabled
|
||||
type: GeneralFeature
|
||||
default:
|
||||
status: false
|
||||
glean-server-knobs:
|
||||
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
|
||||
variables:
|
||||
metrics-enabled:
|
||||
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
|
||||
type: "Map<String, Boolean>"
|
||||
default: {}
|
||||
homescreenFeature:
|
||||
description: The homescreen that the user goes to when they press home or new tab.
|
||||
variables:
|
||||
prefer-switch-to-open-tab:
|
||||
description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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.\n"
|
||||
type: "Map<HomeScreenSection, Boolean>"
|
||||
default:
|
||||
jump-back-in: true
|
||||
recent-explorations: false
|
||||
login-autofill:
|
||||
description: This property defines the login autofill feature for automatically filling in usernames and passwords.
|
||||
variables:
|
||||
login-autofill-status:
|
||||
description: "If true, allows the user to use the login autofill feature for usernames and passwords."
|
||||
type: Boolean
|
||||
default: true
|
||||
menu-refactor-feature:
|
||||
description: "Controls the menu refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Controls which menu users will see\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system\n"
|
||||
documentation:
|
||||
- name: User documentation
|
||||
url: "https://experimenter.info/messaging/mobile-messaging"
|
||||
contacts:
|
||||
- jhugman@mozilla.com
|
||||
- brennie@mozilla.com
|
||||
- gbuciu@mozilla.com
|
||||
- wteichmann@mozilla.com
|
||||
events:
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_shown"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_clicked"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_expired"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_dismissed"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_malformed"
|
||||
variables:
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_SETTINGS: "://deep-link?url=settings/general"
|
||||
OPEN_SETTINGS_NEW_TAB: "://deep-link?url=settings/newtab"
|
||||
OPEN_SETTINGS_HOMESCREEN: "://deep-link?url=settings/homepage"
|
||||
OPEN_SETTINGS_WALLPAPERS: "://deep-link?url=settings/wallpaper"
|
||||
OPEN_SETTINGS_EMAIL: "://deep-link?url=settings/mailto"
|
||||
OPEN_SETTINGS_SEARCH_ENGINE: "://deep-link?url=settings/search"
|
||||
OPEN_SETTINGS_PRIVACY: "://deep-link?url=settings/clear-private-data"
|
||||
OPEN_SETTINGS_FXA: "://deep-link?url=settings/fxa"
|
||||
OPEN_SETTINGS_THEME: "://deep-link?url=settings/theme"
|
||||
OPEN_URL: "://open-url"
|
||||
VIEW_BOOKMARKS: "://deep-link?url=homepanel/bookmarks"
|
||||
VIEW_TOP_SITES: "://deep-link?url=homepanel/top-sites"
|
||||
VIEW_READING_LIST: "://deep-link?url=homepanel/reading-list"
|
||||
VIEW_HISTORY: "://deep-link?url=homepanel/history"
|
||||
VIEW_DOWNLOADS: "://deep-link?url=homepanel/downloads"
|
||||
ENABLE_PRIVATE_BROWSING: "://deep-link?url=homepanel/new-private-tab"
|
||||
OPEN_NEW_TAB: "://deep-link?url=homepanel/new-tab"
|
||||
MAKE_DEFAULT_BROWSER: "://deep-link?url=default-browser/system-settings"
|
||||
MAKE_DEFAULT_BROWSER_WITH_TUTORIAL: "://deep-link?url=default-browser/tutorial"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n"
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
surface: new-tab-card
|
||||
style: FALLBACK
|
||||
trigger-if-all:
|
||||
- SUPPORTS_DEFAULT_BROWSER
|
||||
- ON_FOURTH_LAUNCH_THIS_YEAR
|
||||
except-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
title: Default Browser/DefaultBrowserCard.Title
|
||||
text: Default Browser/DefaultBrowserCard.Description
|
||||
button-label: Default Browser/DefaultBrowserCard.Button.v2
|
||||
action: MAKE_DEFAULT_BROWSER_WITH_TUTORIAL
|
||||
string-alias: MessageKey
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
FALLBACK:
|
||||
priority: 40
|
||||
max-display-count: 20
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 10
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
NOT_LAUNCHED_YESTERDAY: "'app_cycle.foreground'|eventLastSeen('Days', 1) > 1"
|
||||
AFTER_THREE_LAUNCHES_THIS_WEEK: "'app_cycle.foreground'|eventSum('Weeks', 1, 0) >= 3"
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
SUPPORTS_DEFAULT_BROWSER: "os_version|versionCompare('14.!') >= 0"
|
||||
INACTIVE_NEW_USER: is_inactive_new_user
|
||||
ALLOWED_TIPS_NOTIFICATIONS: allowed_tips_notifications
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
SECOND_HOMEPAGE_VIEW: "'homepage_viewed'|eventSum('Years', 4, 0) >= 2"
|
||||
ON_FOURTH_LAUNCH_THIS_YEAR: "'app_cycle.foreground'|eventSum('Years', 1, 0) > 3"
|
||||
string-alias: TriggerName
|
||||
~~experiment:
|
||||
description: Not to be set by experiment.
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
allow-coenrollment: true
|
||||
microsurvey-feature:
|
||||
description: "A feature that shows the microsurvey for users to interact with and submit responses.\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
native-error-page-feature:
|
||||
description: "This feature is for managing the roll out of the native error page feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
night-mode-feature:
|
||||
description: "Describes the night mode feature's configuration\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether night mode is available for users or not\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-framework-feature:
|
||||
description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n"
|
||||
variables:
|
||||
cards:
|
||||
description: "The list of available cards for onboarding.\n"
|
||||
type: "Map<NimbusOnboardingCardKey, NimbusOnboardingCardData>"
|
||||
default:
|
||||
welcome:
|
||||
card-type: basic
|
||||
order: 10
|
||||
title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120
|
||||
body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120
|
||||
image: welcome-globe
|
||||
link:
|
||||
title: Onboarding/Onboarding.Welcome.Link.Action.v114
|
||||
url: "https://www.mozilla.org/privacy/firefox/"
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Welcome.ActionTreatementA.v114
|
||||
action: open-instructions-popup
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Welcome.Skip.v114
|
||||
action: forward-one-card
|
||||
instructions-popup:
|
||||
title: Onboarding/DefaultBrowserPopup.Title.v114
|
||||
button-title: Onboarding/DefaultBrowserPopup.ButtonTitle.v114
|
||||
button-action: open-ios-fx-settings
|
||||
instructions:
|
||||
- Onboarding/DefaultBrowserPopup.FirstLabel.v114
|
||||
- Onboarding/DefaultBrowserPopup.SecondLabel.v114
|
||||
- Onboarding/DefaultBrowserPopup.ThirdLabel.v114
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
notification-permissions:
|
||||
card-type: basic
|
||||
order: 30
|
||||
title: Onboarding/Onboarding.Notification.Title.v120
|
||||
body: Onboarding/Onboarding.Notification.Description.v120
|
||||
image: notifications
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Notification.TurnOnNotifications.Action.v114
|
||||
action: request-notifications
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Notification.Skip.Action.v115
|
||||
action: forward-one-card
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
sign-to-sync:
|
||||
card-type: basic
|
||||
order: 20
|
||||
title: Onboarding/Onboarding.Sync.Title.v120
|
||||
body: Onboarding/Onboarding.Sync.Description.v123
|
||||
image: sync-devices
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Sync.SignIn.Action.v114
|
||||
action: sync-sign-in
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Sync.Skip.Action.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
customization-theme:
|
||||
card-type: multiple-choice
|
||||
order: 40
|
||||
title: Onboarding/Onboarding.Customization.Theme.Title.v123
|
||||
body: Onboarding/Onboarding.Customization.Theme.Description.v123
|
||||
image: themeing
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Customization.Theme.Continue.Action.v123
|
||||
action: forward-one-card
|
||||
multiple-choice-buttons:
|
||||
- title: Onboarding/Onboarding.Customization.Theme.System.Action.v123
|
||||
image: theme-system
|
||||
action: theme-system-default
|
||||
- title: Onboarding/Onboarding.Customization.Theme.Light.Action.v123
|
||||
image: theme-light
|
||||
action: theme-light
|
||||
- title: Onboarding/Onboarding.Customization.Theme.Dark.Action.v123
|
||||
image: theme-dark
|
||||
action: theme-dark
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
customization-toolbar:
|
||||
card-type: multiple-choice
|
||||
order: 41
|
||||
title: Onboarding/Onboarding.Customization.Toolbar.Title.v123
|
||||
body: Onboarding/Onboarding.Customization.Toolbar.Description.v123
|
||||
image: toolbar
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Customization.Toolbar.Continue.Action.v123
|
||||
action: forward-one-card
|
||||
multiple-choice-buttons:
|
||||
- title: Onboarding/Onboarding.Customization.Toolbar.Top.Action.v123
|
||||
image: toolbar-top
|
||||
action: toolbar-top
|
||||
- title: Onboarding/Onboarding.Customization.Toolbar.Bottom.Action.v123
|
||||
image: toolbar-bottom
|
||||
action: toolbar-bottom
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
update-welcome:
|
||||
card-type: basic
|
||||
order: 10
|
||||
title: Upgrade/Upgrade.Welcome.Title.v114
|
||||
body: Upgrade/Upgrade.Welcome.Description.v114
|
||||
image: welcome-globe
|
||||
buttons:
|
||||
primary:
|
||||
title: Upgrade/Upgrade.Welcome.Action.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: upgrade
|
||||
prerequisites:
|
||||
- NEVER
|
||||
update-sign-to-sync:
|
||||
card-type: basic
|
||||
order: 20
|
||||
title: Upgrade/Upgrade.SyncSign.Title.v114
|
||||
body: Upgrade/Upgrade.SyncSign.Description.v114
|
||||
image: sync-devices
|
||||
buttons:
|
||||
primary:
|
||||
title: Upgrade/Upgrade.SyncSign.Action.v114
|
||||
action: sync-sign-in
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.LaterAction.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: upgrade
|
||||
prerequisites:
|
||||
- NEVER
|
||||
string-alias: NimbusOnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
dismissable:
|
||||
description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
password-generator-feature:
|
||||
description: Password Generator Feature
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the password generator feature is enabled"
|
||||
type: Boolean
|
||||
default: false
|
||||
redux-search-settings-feature:
|
||||
description: "This feature is for managing the roll out of redux on the search settings screen\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
search:
|
||||
description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n"
|
||||
variables:
|
||||
awesome-bar:
|
||||
description: Configuring the awesome bar.
|
||||
type: AwesomeBar
|
||||
default:
|
||||
min-search-term: 3
|
||||
position:
|
||||
is-bottom: true
|
||||
is-position-feature-enabled: true
|
||||
is-toolbar-cfr-on: false
|
||||
search-highlights: false
|
||||
use-page-content: false
|
||||
shopping2023:
|
||||
description: "The configuration setting for the status of the Fakespot feature\n"
|
||||
variables:
|
||||
back_in_stock_reporting:
|
||||
description: "If true, enables for users the reporting feature for products back in stock.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
config:
|
||||
description: "A Map of website configurations\n"
|
||||
type: "Map<String, WebsiteConfig>"
|
||||
default:
|
||||
amazon:
|
||||
productIdFromURLRegex: "(?:[\\\\/]|$|%2F)(?<productId>[A-Z0-9]{10})(?:[\\\\/]|$|\\\\#|\\\\?|%2F)"
|
||||
validTLDs:
|
||||
- com
|
||||
- de
|
||||
- fr
|
||||
walmart:
|
||||
productIdFromURLRegex: "\\\\/ip\\\\/(?:[A-Za-z0-9-]{1,320}\\\\/)?(?<productId>[0-9]{3,13})"
|
||||
validTLDs:
|
||||
- com
|
||||
bestbuy:
|
||||
productIdFromURLRegex: "\\\\/(?<productId>\\\\d+\\\\.p)"
|
||||
validTLDs:
|
||||
- com
|
||||
product_ads:
|
||||
description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
relay:
|
||||
description: "Configurable relay URL for production environment\n"
|
||||
type: String
|
||||
default: "https://mozilla-ohttp-fakespot.fastly-edge.com/"
|
||||
status:
|
||||
description: "Whether the Fakespot feature is enabled or disabled\n"
|
||||
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.\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
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.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
spotlight-search:
|
||||
description: Add pages as items findable with Spotlight.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If this is true, then on each page load adds a new item to Spotlight."
|
||||
type: Boolean
|
||||
default: false
|
||||
icon-type:
|
||||
description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n"
|
||||
type: Option<IconType>
|
||||
default: letter
|
||||
keep-for-days:
|
||||
description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n"
|
||||
type: Option<Int>
|
||||
default: ~
|
||||
searchable-content:
|
||||
description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n"
|
||||
type: Option<PageContent>
|
||||
default: text-excerpt
|
||||
tab-tray-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Tab Tray refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
tabTrayFeature:
|
||||
description: The tab tray screen that the user goes to when they open the tab tray.
|
||||
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<TabTraySection, Boolean>"
|
||||
default:
|
||||
inactive-tabs: true
|
||||
toolbar-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Toolbar refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
navigation_hint:
|
||||
description: "If true, enables the navigation contextual hint.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
one_tap_new_tab:
|
||||
description: "If true, enables the one tap new tab feature for users.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
unified_search_enabled:
|
||||
description: "Enables the unified search feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
tracking-protection-refactor:
|
||||
description: "The Enhanced Tracking Protection refactor\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
zoom-feature:
|
||||
description: "The configuration for the status of the zoom feature\n"
|
||||
variables:
|
||||
status:
|
||||
description: "Whether the page zoom feature is enabled or not\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
enums:
|
||||
ContextualHint:
|
||||
description: The identifiers for a individual contextual hints.
|
||||
variants:
|
||||
toolbar-hint:
|
||||
description: The contextual hint bubble that appears to provide a hint about the toolbar.
|
||||
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.
|
||||
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.
|
||||
recent-explorations:
|
||||
description: The tab groups
|
||||
IconType:
|
||||
description: "The icon that will be added to the item in the device's search engine."
|
||||
variants:
|
||||
favicon:
|
||||
description: The favicon of the page
|
||||
letter:
|
||||
description: An icon generated from the first letter of the base domain.
|
||||
screenshot:
|
||||
description: A screenshot of the page at load time.
|
||||
MessageSurfaceId:
|
||||
description: "For messaging, we would like to have a message tell us which surface its associated with. This is a label that matches across both Android and iOS.\n"
|
||||
variants:
|
||||
Unknown:
|
||||
description: A message has NOT declared its target surface.
|
||||
microsurvey:
|
||||
description: This is a microsurvey that appears on top of the bottom toolbar to the user.
|
||||
new-tab-card:
|
||||
description: This is the card that appears at the top on the Firefox Home Page.
|
||||
notification:
|
||||
description: This is a local notification send to the user periodically with tips and updates.
|
||||
survey:
|
||||
description: This is a full-page that appears providing a survey to the user.
|
||||
NimbusOnboardingHeaderImage:
|
||||
description: "The identifiers for the different images available for cards in onboarding\n"
|
||||
variants:
|
||||
customize-firefox:
|
||||
description: "Corresponding to the fox window image\n"
|
||||
notifications:
|
||||
description: "Corresponding to the notifications image\n"
|
||||
notifications-ctd:
|
||||
description: "Corresponding to the notifications image for CTD\n"
|
||||
search-widget:
|
||||
description: "Corresponding to the fox search widget image\n"
|
||||
set-default-steps:
|
||||
description: "Corresponding to the set to default steps image\n"
|
||||
set-to-dock:
|
||||
description: "Corresponding to the set to dock image\n"
|
||||
sync-devices:
|
||||
description: "Corresponding to the sync-devices image\n"
|
||||
sync-devices-ctd:
|
||||
description: "Corresponding to the sync image for CTD\n"
|
||||
themeing:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
toolbar:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
welcome-ctd:
|
||||
description: "Corresponding to the welcome image for CTD\n"
|
||||
welcome-globe:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
NimbusOnboardingMultipleChoiceButtonImage:
|
||||
description: "The identifiers for the different images available for multiple choice buttons in onboarding\n"
|
||||
variants:
|
||||
theme-dark:
|
||||
description: "Corresponding to the dark theme\n"
|
||||
theme-light:
|
||||
description: "Corresponding to the light theme\n"
|
||||
theme-system:
|
||||
description: "Corresponding to the system theme\n"
|
||||
toolbar-bottom:
|
||||
description: "Corresponding to the toolbar on the bottom\n"
|
||||
toolbar-top:
|
||||
description: "Corresponding to the toolbar on top\n"
|
||||
OnboardingActions:
|
||||
description: "The identifiers for the different actions available for cards in onboarding\n"
|
||||
variants:
|
||||
end-onboarding:
|
||||
description: "Will end the onboarding on a set card\n"
|
||||
forward-one-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
forward-three-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
forward-two-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
open-instructions-popup:
|
||||
description: "Will open up a popup with instructions for something\n"
|
||||
open-ios-fx-settings:
|
||||
description: "Will take the user to the default browser settings in the iOS system settings\n"
|
||||
read-privacy-policy:
|
||||
description: "Will open a webview where the user can read the privacy policy\n"
|
||||
request-notifications:
|
||||
description: "Will request to allow notifications from the user\n"
|
||||
set-default-browser:
|
||||
description: "Will send the user to settings to set Firefox as their default browser and advance to next card\n"
|
||||
sync-sign-in:
|
||||
description: "Will take the user to the sync sign in flow\n"
|
||||
OnboardingCardType:
|
||||
description: "The identifiers for the different types of onboarding cards.\n"
|
||||
variants:
|
||||
basic:
|
||||
description: "Corresponding to basic info onboarding cards\n"
|
||||
multiple-choice:
|
||||
description: "Corresponding to onboarding cards with multiple choice buttons\n"
|
||||
OnboardingInstructionsPopupActions:
|
||||
description: "The identifiers for the different actions available for the insturction card in onboarding\n"
|
||||
variants:
|
||||
dismiss:
|
||||
description: "Will dismiss the popup\n"
|
||||
dismiss-and-next-card:
|
||||
description: "Will dismiss the popup and move to the next card\n"
|
||||
open-ios-fx-settings:
|
||||
description: "Will take the user to the default browser settings in the iOS system settings\n"
|
||||
OnboardingMultipleChoiceAction:
|
||||
description: "The identifiers for the different actions available for cards in onboarding\n"
|
||||
variants:
|
||||
theme-dark:
|
||||
description: "Will will set the theme to dark mode\n"
|
||||
theme-light:
|
||||
description: "Will set the theme to light mode\n"
|
||||
theme-system-default:
|
||||
description: "Will set the theme to use the system theme\n"
|
||||
toolbar-bottom:
|
||||
description: "Will set the toolbar on the bottom\n"
|
||||
toolbar-top:
|
||||
description: "Will set the toolbar on the top\n"
|
||||
OnboardingType:
|
||||
description: "The identifiers for the different types of onboarding cards.\n"
|
||||
variants:
|
||||
fresh-install:
|
||||
description: "Corresponding to onboarding cards that are for new users\n"
|
||||
upgrade:
|
||||
description: "Corresponding to onboarding cards that are for users who have updated\n"
|
||||
PageContent:
|
||||
description: "The page content that will be added as an item in the device's search engine."
|
||||
variants:
|
||||
html-content:
|
||||
description: Use all the page as HTML
|
||||
text-content:
|
||||
description: Use all the page as text
|
||||
text-excerpt:
|
||||
description: Only use the first paragraph
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion for desktop from adMarketplace.
|
||||
ampMobile:
|
||||
description: A Firefox Suggestion specifically for mobile from adMarketplace.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
TabTraySection:
|
||||
description: The identifiers for the sections of the tab tray.
|
||||
variants:
|
||||
inactive-tabs:
|
||||
description: Tabs that have been automatically closed for the user.
|
||||
objects:
|
||||
AwesomeBar:
|
||||
description: "A configuration option for the awesome bar. Part of the `search` feature."
|
||||
fields:
|
||||
min-search-term:
|
||||
description: The minimum number of characters that the user types before searching in the page.
|
||||
type: Int
|
||||
default: 3
|
||||
position:
|
||||
description: "This property defines whether or not the feature is enabled, and the position of the search bar\n"
|
||||
type: SearchBarPositionFeature
|
||||
default:
|
||||
is-position-feature-enabled: true
|
||||
is-bottom: true
|
||||
is-toolbar-cfr-on: true
|
||||
search-highlights:
|
||||
description: Whether or not search highlights are enabled
|
||||
type: Boolean
|
||||
default: false
|
||||
use-page-content:
|
||||
description: "Search in the open tab's text content when typing."
|
||||
type: Boolean
|
||||
default: false
|
||||
GeneralFeature:
|
||||
description: The configuration for the a feature that can be enabled or disabled
|
||||
fields:
|
||||
status:
|
||||
description: Whether or not the feature is enabled
|
||||
type: Boolean
|
||||
default: false
|
||||
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: "The name of a deeplink URL to be opened if the button is clicked.\n"
|
||||
type: Option<ActionName>
|
||||
default: ~
|
||||
action-params:
|
||||
description: Query parameters appended to the deeplink action URL
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
except-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. If any of these expressions evaluate to `true`, the message will not be eligible.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The experiment slug that this message is involved in.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurveyConfig:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: Each message will tell us the surface it is targeting with this.
|
||||
type: MessageSurfaceId
|
||||
default: Unknown
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. All named expressions must evaluate to true if the message is to be eligible to be shown.\n"
|
||||
type: List<TriggerName>
|
||||
default:
|
||||
- ALWAYS
|
||||
MicrosurveyConfig:
|
||||
description: "Attributes relating to microsurvey messaging.\n"
|
||||
fields:
|
||||
icon:
|
||||
description: The asset name in our bundle used as the icon shown in the survey.
|
||||
type: Image
|
||||
default: lightbulbLarge
|
||||
options:
|
||||
description: The list of survey options to present to the user.
|
||||
type: List<Text>
|
||||
default: []
|
||||
utm-content:
|
||||
description: The name used to provide as the utm_content parameter for the privacy notice.
|
||||
type: Option<String>
|
||||
default: ~
|
||||
NimbusOnboardingButton:
|
||||
description: "A group of properties describing the attributes of a card.\n"
|
||||
fields:
|
||||
action:
|
||||
description: "The action the button should take. The default for this will be \"forward-one-card\"\n"
|
||||
type: OnboardingActions
|
||||
default: forward-one-card
|
||||
title:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingButtons:
|
||||
description: "A set of buttons for the card. There can be up to two, but there must be at least one.\n"
|
||||
fields:
|
||||
primary:
|
||||
description: "The primary button for the card. This must exist.\n"
|
||||
type: NimbusOnboardingButton
|
||||
default:
|
||||
title: Primary Button
|
||||
action: forward-one-card
|
||||
secondary:
|
||||
description: "A secondary, optional, button for the card.\n"
|
||||
type: Option<NimbusOnboardingButton>
|
||||
default: ~
|
||||
NimbusOnboardingCardData:
|
||||
description: "A group of properties describing the attributes of a card.\n"
|
||||
fields:
|
||||
body:
|
||||
description: "The body text dispalyed on the card, in less prominent text. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
buttons:
|
||||
description: "The set of buttons associated with the card.\n"
|
||||
type: NimbusOnboardingButtons
|
||||
default:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Sync.Skip.Action.v114
|
||||
action: forward-one-card
|
||||
secondary: ~
|
||||
card-type:
|
||||
description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n"
|
||||
type: OnboardingCardType
|
||||
default: basic
|
||||
disqualifiers:
|
||||
description: "A list of ConditionName strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default: []
|
||||
image:
|
||||
description: "The image that should be dispalyed on the card.\n"
|
||||
type: NimbusOnboardingHeaderImage
|
||||
default: welcome-globe
|
||||
instructions-popup:
|
||||
description: "The object describing the specific instruction popup button for a card. If left empty, the card will have no instruction popup information\n"
|
||||
type: Option<NimbusOnboardingInstructionPopup>
|
||||
default: ~
|
||||
link:
|
||||
description: "The object describing the link button for a card. If left empty, the card will have no link.\n"
|
||||
type: Option<NimbusOnboardingLink>
|
||||
default: ~
|
||||
multiple-choice-buttons:
|
||||
description: "A list of multiple choice buttons that the card will display\n"
|
||||
type: List<NimbusOnboardingMultipleChoiceButton>
|
||||
default: []
|
||||
onboarding-type:
|
||||
description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n"
|
||||
type: OnboardingType
|
||||
default: fresh-install
|
||||
order:
|
||||
description: "The place in the order where the card will be found. The feature layer will then sort the cards based on this field.\n"
|
||||
type: Int
|
||||
default: 10
|
||||
prerequisites:
|
||||
description: "A list of ConditionName strings corresponding to targeting expressions. The card will be shown if all expressions `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default: []
|
||||
title:
|
||||
description: "The title displayed on the card, in prominent, bolded text. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingInstructionPopup:
|
||||
description: "The object outlining the content of the instruction card.\n"
|
||||
fields:
|
||||
button-action:
|
||||
description: "The action the button should have. Default is `dismiss-and-next-card`\n"
|
||||
type: OnboardingInstructionsPopupActions
|
||||
default: dismiss-and-next-card
|
||||
button-title:
|
||||
description: "The title the button should have. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
instructions:
|
||||
description: "A list of instructions, either as free text, or as Text identifiers.\n"
|
||||
type: List<Text>
|
||||
default: []
|
||||
title:
|
||||
description: "The text of the popup. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingLink:
|
||||
description: "A group of properties describing the attributes for the active link on a card\n"
|
||||
fields:
|
||||
title:
|
||||
description: "The text of the link title.\n"
|
||||
type: Text
|
||||
default: Onboarding/Onboarding.Welcome.Link.Action.v114
|
||||
url:
|
||||
description: "The url that the link will lead to.\n"
|
||||
type: String
|
||||
default: "https://www.mozilla.org/privacy/firefox/"
|
||||
NimbusOnboardingMultipleChoiceButton:
|
||||
description: "A group of properties describing the attributes of a multiple choice button on a card\n"
|
||||
fields:
|
||||
action:
|
||||
description: "The action the button should take. The default for this will be \"theme-system-default\"\n"
|
||||
type: OnboardingMultipleChoiceAction
|
||||
default: theme-system-default
|
||||
image:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: NimbusOnboardingMultipleChoiceButtonImage
|
||||
default: theme-system
|
||||
title:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
SearchBarPositionFeature:
|
||||
description: The configuration for the bottom search bar on the homescreen
|
||||
fields:
|
||||
is-bottom:
|
||||
description: Whether or not the default position is at the bottom
|
||||
type: Boolean
|
||||
default: true
|
||||
is-position-feature-enabled:
|
||||
description: Whether or not the feature is enabled
|
||||
type: Boolean
|
||||
default: true
|
||||
is-toolbar-cfr-on:
|
||||
description: Whether or not the toolbar CFR shows. This is a temporary hack for Nimbus
|
||||
type: Boolean
|
||||
default: true
|
||||
StyleData:
|
||||
description: "A group of properities (predominantly visual) to the describe 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
|
||||
WebsiteConfig:
|
||||
description: "It represents a configuration for different e-commerce websites and includes regular expressions for extracting product IDs from their respective URLs\n"
|
||||
fields:
|
||||
productIdFromURLRegex:
|
||||
description: "It represents the product ID extracted from a regex query\n"
|
||||
type: String
|
||||
default: ""
|
||||
validTLDs:
|
||||
description: "Valid Top Level Domains\n"
|
||||
type: List<String>
|
||||
default: []
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,313 @@
|
|||
---
|
||||
account-settings-redux-feature:
|
||||
description: "This feature is for managing the roll out of the Account Settings Redux implementation\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
address-autofill-edit:
|
||||
description: This property defines if the address editing is enabled in Settings
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
status:
|
||||
type: boolean
|
||||
description: "If true, we will allow user to edit the address"
|
||||
bookmark-refactor-feature:
|
||||
description: "The Feature for managing the roll out of the Bookmark refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the bookmark refactor feature\n"
|
||||
contextual-hint-feature:
|
||||
description: This set holds all features pertaining to contextual hints.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
features-enabled:
|
||||
type: json
|
||||
description: "This property provides a lookup table of whether specific contextual hints are enabled.\n"
|
||||
credit-card-autofill:
|
||||
description: This property defines the credit card autofill feature
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
credit-card-autofill-status:
|
||||
type: boolean
|
||||
description: "If true, we will allow user to use the credit autofill feature"
|
||||
felt-privacy-feature:
|
||||
description: The feature that enhances private browsing mode
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
felt-deletion-enabled:
|
||||
type: boolean
|
||||
description: "If true, enable Felt Deletion part of Felt Privacy"
|
||||
simplified-ui-enabled:
|
||||
type: boolean
|
||||
description: "If true, enable simplified UI part of Felt Privacy"
|
||||
firefox-suggest-feature:
|
||||
description: Configuration for the Firefox Suggest feature.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
available-suggestions-types:
|
||||
type: json
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
status:
|
||||
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"
|
||||
general-app-features:
|
||||
description: The feature that contains feature flags for the entire application
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
report-site-issue:
|
||||
type: json
|
||||
description: This property defines whether or not the feature is enabled
|
||||
glean-server-knobs:
|
||||
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
metrics-enabled:
|
||||
type: json
|
||||
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
|
||||
homepage-rebuild-feature:
|
||||
description: "This feature is for managing the roll out of the Homepage rebuild feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, enables the feature\n"
|
||||
homescreenFeature:
|
||||
description: The homescreen that the user goes to when they press home or new tab.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
prefer-switch-to-open-tab:
|
||||
type: boolean
|
||||
description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n"
|
||||
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.\n"
|
||||
login-autofill:
|
||||
description: This property defines the login autofill feature for automatically filling in usernames and passwords.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
login-autofill-status:
|
||||
type: boolean
|
||||
description: "If true, allows the user to use the login autofill feature for usernames and passwords."
|
||||
menu-refactor-feature:
|
||||
description: "Controls the menu refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Controls which menu users will see\n"
|
||||
menu-hint:
|
||||
type: boolean
|
||||
description: "If true, enables the menu contextual hint.\n"
|
||||
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. Please use \"experiment\": \"{experiment}\" instead."
|
||||
messages:
|
||||
type: json
|
||||
description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n"
|
||||
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"
|
||||
~~experiment:
|
||||
type: string
|
||||
description: Not to be set by experiment.
|
||||
microsurvey-feature:
|
||||
description: "A feature that shows the microsurvey for users to interact with and submit responses.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active.\n"
|
||||
native-error-page-feature:
|
||||
description: "This feature is for managing the roll out of the native error page feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active.\n"
|
||||
night-mode-feature:
|
||||
description: "Describes the night mode feature's configuration\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Whether night mode is available for users or not\n"
|
||||
onboarding-framework-feature:
|
||||
description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
cards:
|
||||
type: json
|
||||
description: "The list of available cards for onboarding.\n"
|
||||
conditions:
|
||||
type: json
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
dismissable:
|
||||
type: boolean
|
||||
description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n"
|
||||
password-generator-feature:
|
||||
description: Password Generator Feature
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the password generator feature is enabled"
|
||||
redux-search-settings-feature:
|
||||
description: "This feature is for managing the roll out of redux on the search settings screen\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
type: boolean
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
search:
|
||||
description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
awesome-bar:
|
||||
type: json
|
||||
description: Configuring the awesome bar.
|
||||
shopping2023:
|
||||
description: "The configuration setting for the status of the Fakespot feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
back_in_stock_reporting:
|
||||
type: boolean
|
||||
description: "If true, enables for users the reporting feature for products back in stock.\n"
|
||||
config:
|
||||
type: json
|
||||
description: "A Map of website configurations\n"
|
||||
product_ads:
|
||||
type: boolean
|
||||
description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n"
|
||||
relay:
|
||||
type: string
|
||||
description: "Configurable relay URL for production environment\n"
|
||||
status:
|
||||
type: boolean
|
||||
description: "Whether the Fakespot feature is enabled or disabled\n"
|
||||
splash-screen:
|
||||
description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run.\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If true, the feature is active.\n"
|
||||
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.\n"
|
||||
spotlight-search:
|
||||
description: Add pages as items findable with Spotlight.
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "If this is true, then on each page load adds a new item to Spotlight."
|
||||
icon-type:
|
||||
type: string
|
||||
description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n"
|
||||
keep-for-days:
|
||||
type: int
|
||||
description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n"
|
||||
searchable-content:
|
||||
type: string
|
||||
description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n"
|
||||
tab-tray-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Tab Tray refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
tabTrayFeature:
|
||||
description: The tab tray screen that the user goes to when they open the tab tray.
|
||||
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."
|
||||
toolbar-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Toolbar refactor feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Enables the feature\n"
|
||||
navigation_hint:
|
||||
type: boolean
|
||||
description: "If true, enables the navigation contextual hint.\n"
|
||||
one_tap_new_tab:
|
||||
type: boolean
|
||||
description: "If true, enables the one tap new tab feature for users.\n"
|
||||
unified_search:
|
||||
type: boolean
|
||||
description: "Enables the unified search feature\n"
|
||||
tracking-protection-refactor:
|
||||
description: "The Enhanced Tracking Protection refactor\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
enabled:
|
||||
type: boolean
|
||||
description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n"
|
||||
zoom-feature:
|
||||
description: "The configuration for the status of the zoom feature\n"
|
||||
hasExposure: true
|
||||
exposureDescription: ""
|
||||
variables:
|
||||
status:
|
||||
type: boolean
|
||||
description: "Whether the page zoom feature is enabled or not\n"
|
|
@ -0,0 +1,997 @@
|
|||
---
|
||||
version: 1.0.0
|
||||
about:
|
||||
description: The root level Feature Manifest for Firefox for iOS
|
||||
channels:
|
||||
- release
|
||||
features:
|
||||
account-settings-redux-feature:
|
||||
description: "This feature is for managing the roll out of the Account Settings Redux implementation\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
address-autofill-edit:
|
||||
description: This property defines if the address editing is enabled in Settings
|
||||
variables:
|
||||
status:
|
||||
description: "If true, we will allow user to edit the address"
|
||||
type: Boolean
|
||||
default: false
|
||||
bookmark-refactor-feature:
|
||||
description: "The Feature for managing the roll out of the Bookmark refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the bookmark refactor feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
contextual-hint-feature:
|
||||
description: This set holds all features pertaining to contextual hints.
|
||||
variables:
|
||||
features-enabled:
|
||||
description: "This property provides a lookup table of whether specific contextual hints are enabled.\n"
|
||||
type: "Map<ContextualHint, Boolean>"
|
||||
default:
|
||||
toolbar-hint: true
|
||||
credit-card-autofill:
|
||||
description: This property defines the credit card autofill feature
|
||||
variables:
|
||||
credit-card-autofill-status:
|
||||
description: "If true, we will allow user to use the credit autofill feature"
|
||||
type: Boolean
|
||||
default: true
|
||||
felt-privacy-feature:
|
||||
description: The feature that enhances private browsing mode
|
||||
variables:
|
||||
felt-deletion-enabled:
|
||||
description: "If true, enable Felt Deletion part of Felt Privacy"
|
||||
type: Boolean
|
||||
default: false
|
||||
simplified-ui-enabled:
|
||||
description: "If true, enable simplified UI part of Felt Privacy"
|
||||
type: Boolean
|
||||
default: false
|
||||
firefox-suggest-feature:
|
||||
description: Configuration for the Firefox Suggest feature.
|
||||
variables:
|
||||
available-suggestions-types:
|
||||
description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n"
|
||||
type: "Map<SuggestionType, Boolean>"
|
||||
default:
|
||||
amp: true
|
||||
ampMobile: false
|
||||
wikipedia: true
|
||||
status:
|
||||
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
|
||||
general-app-features:
|
||||
description: The feature that contains feature flags for the entire application
|
||||
variables:
|
||||
report-site-issue:
|
||||
description: This property defines whether or not the feature is enabled
|
||||
type: GeneralFeature
|
||||
default:
|
||||
status: false
|
||||
glean-server-knobs:
|
||||
description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs).
|
||||
variables:
|
||||
metrics-enabled:
|
||||
description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric."
|
||||
type: "Map<String, Boolean>"
|
||||
default: {}
|
||||
homepage-rebuild-feature:
|
||||
description: "This feature is for managing the roll out of the Homepage rebuild feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
homescreenFeature:
|
||||
description: The homescreen that the user goes to when they press home or new tab.
|
||||
variables:
|
||||
prefer-switch-to-open-tab:
|
||||
description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
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.\n"
|
||||
type: "Map<HomeScreenSection, Boolean>"
|
||||
default:
|
||||
jump-back-in: true
|
||||
recent-explorations: false
|
||||
login-autofill:
|
||||
description: This property defines the login autofill feature for automatically filling in usernames and passwords.
|
||||
variables:
|
||||
login-autofill-status:
|
||||
description: "If true, allows the user to use the login autofill feature for usernames and passwords."
|
||||
type: Boolean
|
||||
default: true
|
||||
menu-refactor-feature:
|
||||
description: "Controls the menu refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Controls which menu users will see\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
menu-hint:
|
||||
description: "If true, enables the menu contextual hint.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
messaging:
|
||||
description: "The in-app messaging system\n"
|
||||
documentation:
|
||||
- name: User documentation
|
||||
url: "https://experimenter.info/messaging/mobile-messaging"
|
||||
contacts:
|
||||
- jhugman@mozilla.com
|
||||
- brennie@mozilla.com
|
||||
- gbuciu@mozilla.com
|
||||
- wteichmann@mozilla.com
|
||||
events:
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_shown"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_clicked"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_expired"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_dismissed"
|
||||
- "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_malformed"
|
||||
variables:
|
||||
actions:
|
||||
description: A growable map of action URLs.
|
||||
type: "Map<ActionName, String>"
|
||||
default:
|
||||
OPEN_SETTINGS: "://deep-link?url=settings/general"
|
||||
OPEN_SETTINGS_NEW_TAB: "://deep-link?url=settings/newtab"
|
||||
OPEN_SETTINGS_HOMESCREEN: "://deep-link?url=settings/homepage"
|
||||
OPEN_SETTINGS_WALLPAPERS: "://deep-link?url=settings/wallpaper"
|
||||
OPEN_SETTINGS_EMAIL: "://deep-link?url=settings/mailto"
|
||||
OPEN_SETTINGS_SEARCH_ENGINE: "://deep-link?url=settings/search"
|
||||
OPEN_SETTINGS_PRIVACY: "://deep-link?url=settings/clear-private-data"
|
||||
OPEN_SETTINGS_FXA: "://deep-link?url=settings/fxa"
|
||||
OPEN_SETTINGS_THEME: "://deep-link?url=settings/theme"
|
||||
OPEN_URL: "://open-url"
|
||||
VIEW_BOOKMARKS: "://deep-link?url=homepanel/bookmarks"
|
||||
VIEW_TOP_SITES: "://deep-link?url=homepanel/top-sites"
|
||||
VIEW_READING_LIST: "://deep-link?url=homepanel/reading-list"
|
||||
VIEW_HISTORY: "://deep-link?url=homepanel/history"
|
||||
VIEW_DOWNLOADS: "://deep-link?url=homepanel/downloads"
|
||||
ENABLE_PRIVATE_BROWSING: "://deep-link?url=homepanel/new-private-tab"
|
||||
OPEN_NEW_TAB: "://deep-link?url=homepanel/new-tab"
|
||||
MAKE_DEFAULT_BROWSER: "://deep-link?url=default-browser/system-settings"
|
||||
MAKE_DEFAULT_BROWSER_WITH_TUTORIAL: "://deep-link?url=default-browser/tutorial"
|
||||
string-alias: ActionName
|
||||
message-under-experiment:
|
||||
description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead."
|
||||
type: Option<MessageKey>
|
||||
default: ~
|
||||
messages:
|
||||
description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n"
|
||||
type: "Map<MessageKey, MessageData>"
|
||||
default:
|
||||
default-browser:
|
||||
surface: new-tab-card
|
||||
style: FALLBACK
|
||||
trigger-if-all:
|
||||
- SUPPORTS_DEFAULT_BROWSER
|
||||
- ON_FOURTH_LAUNCH_THIS_YEAR
|
||||
except-if-any:
|
||||
- I_AM_DEFAULT_BROWSER
|
||||
title: Default Browser/DefaultBrowserCard.Title
|
||||
text: Default Browser/DefaultBrowserCard.Description
|
||||
button-label: Default Browser/DefaultBrowserCard.Button.v2
|
||||
action: MAKE_DEFAULT_BROWSER_WITH_TUTORIAL
|
||||
string-alias: MessageKey
|
||||
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<StyleName, StyleData>"
|
||||
default:
|
||||
FALLBACK:
|
||||
priority: 40
|
||||
max-display-count: 20
|
||||
DEFAULT:
|
||||
priority: 50
|
||||
max-display-count: 5
|
||||
MICROSURVEY:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
NOTIFICATION:
|
||||
priority: 50
|
||||
max-display-count: 1
|
||||
PERSISTENT:
|
||||
priority: 50
|
||||
max-display-count: 20
|
||||
SURVEY:
|
||||
priority: 55
|
||||
max-display-count: 10
|
||||
WARNING:
|
||||
priority: 60
|
||||
max-display-count: 10
|
||||
URGENT:
|
||||
priority: 100
|
||||
max-display-count: 10
|
||||
string-alias: StyleName
|
||||
triggers:
|
||||
description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<TriggerName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
USER_RECENTLY_INSTALLED: days_since_install < 7
|
||||
USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update
|
||||
USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)"
|
||||
USER_EN_SPEAKER: "'en' in locale"
|
||||
USER_ES_SPEAKER: "'es' in locale"
|
||||
USER_DE_SPEAKER: "'de' in locale"
|
||||
USER_FR_SPEAKER: "'fr' in locale"
|
||||
DEVICE_ANDROID: "os == 'Android'"
|
||||
DEVICE_IOS: "os == 'iOS'"
|
||||
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
|
||||
MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1
|
||||
NOT_LAUNCHED_YESTERDAY: "'app_cycle.foreground'|eventLastSeen('Days', 1) > 1"
|
||||
AFTER_THREE_LAUNCHES_THIS_WEEK: "'app_cycle.foreground'|eventSum('Weeks', 1, 0) >= 3"
|
||||
I_AM_DEFAULT_BROWSER: is_default_browser
|
||||
I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false
|
||||
SUPPORTS_DEFAULT_BROWSER: "os_version|versionCompare('14.!') >= 0"
|
||||
INACTIVE_NEW_USER: is_inactive_new_user
|
||||
ALLOWED_TIPS_NOTIFICATIONS: allowed_tips_notifications
|
||||
FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true
|
||||
SECOND_HOMEPAGE_VIEW: "'homepage_viewed'|eventSum('Years', 4, 0) >= 2"
|
||||
ON_FOURTH_LAUNCH_THIS_YEAR: "'app_cycle.foreground'|eventSum('Years', 1, 0) > 3"
|
||||
string-alias: TriggerName
|
||||
~~experiment:
|
||||
description: Not to be set by experiment.
|
||||
type: ExperimentSlug
|
||||
default: "{experiment}"
|
||||
string-alias: ExperimentSlug
|
||||
allow-coenrollment: true
|
||||
microsurvey-feature:
|
||||
description: "A feature that shows the microsurvey for users to interact with and submit responses.\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
native-error-page-feature:
|
||||
description: "This feature is for managing the roll out of the native error page feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
night-mode-feature:
|
||||
description: "Describes the night mode feature's configuration\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether night mode is available for users or not\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
onboarding-framework-feature:
|
||||
description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n"
|
||||
variables:
|
||||
cards:
|
||||
description: "The list of available cards for onboarding.\n"
|
||||
type: "Map<NimbusOnboardingCardKey, NimbusOnboardingCardData>"
|
||||
default:
|
||||
welcome:
|
||||
card-type: basic
|
||||
order: 10
|
||||
title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120
|
||||
body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120
|
||||
image: welcome-globe
|
||||
link:
|
||||
title: Onboarding/Onboarding.Welcome.Link.Action.v114
|
||||
url: "https://www.mozilla.org/privacy/firefox/"
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Welcome.ActionTreatementA.v114
|
||||
action: open-instructions-popup
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Welcome.Skip.v114
|
||||
action: forward-one-card
|
||||
instructions-popup:
|
||||
title: Onboarding/DefaultBrowserPopup.Title.v114
|
||||
button-title: Onboarding/DefaultBrowserPopup.ButtonTitle.v114
|
||||
button-action: open-ios-fx-settings
|
||||
instructions:
|
||||
- Onboarding/DefaultBrowserPopup.FirstLabel.v114
|
||||
- Onboarding/DefaultBrowserPopup.SecondLabel.v114
|
||||
- Onboarding/DefaultBrowserPopup.ThirdLabel.v114
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
notification-permissions:
|
||||
card-type: basic
|
||||
order: 30
|
||||
title: Onboarding/Onboarding.Notification.Title.v120
|
||||
body: Onboarding/Onboarding.Notification.Description.v120
|
||||
image: notifications
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Notification.TurnOnNotifications.Action.v114
|
||||
action: request-notifications
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Notification.Skip.Action.v115
|
||||
action: forward-one-card
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
sign-to-sync:
|
||||
card-type: basic
|
||||
order: 20
|
||||
title: Onboarding/Onboarding.Sync.Title.v120
|
||||
body: Onboarding/Onboarding.Sync.Description.v123
|
||||
image: sync-devices
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Sync.SignIn.Action.v114
|
||||
action: sync-sign-in
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.Sync.Skip.Action.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
customization-theme:
|
||||
card-type: multiple-choice
|
||||
order: 40
|
||||
title: Onboarding/Onboarding.Customization.Theme.Title.v123
|
||||
body: Onboarding/Onboarding.Customization.Theme.Description.v123
|
||||
image: themeing
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Customization.Theme.Continue.Action.v123
|
||||
action: forward-one-card
|
||||
multiple-choice-buttons:
|
||||
- title: Onboarding/Onboarding.Customization.Theme.System.Action.v123
|
||||
image: theme-system
|
||||
action: theme-system-default
|
||||
- title: Onboarding/Onboarding.Customization.Theme.Light.Action.v123
|
||||
image: theme-light
|
||||
action: theme-light
|
||||
- title: Onboarding/Onboarding.Customization.Theme.Dark.Action.v123
|
||||
image: theme-dark
|
||||
action: theme-dark
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
customization-toolbar:
|
||||
card-type: multiple-choice
|
||||
order: 41
|
||||
title: Onboarding/Onboarding.Customization.Toolbar.Title.v123
|
||||
body: Onboarding/Onboarding.Customization.Toolbar.Description.v123
|
||||
image: toolbar
|
||||
buttons:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Customization.Toolbar.Continue.Action.v123
|
||||
action: forward-one-card
|
||||
multiple-choice-buttons:
|
||||
- title: Onboarding/Onboarding.Customization.Toolbar.Top.Action.v123
|
||||
image: toolbar-top
|
||||
action: toolbar-top
|
||||
- title: Onboarding/Onboarding.Customization.Toolbar.Bottom.Action.v123
|
||||
image: toolbar-bottom
|
||||
action: toolbar-bottom
|
||||
onboarding-type: fresh-install
|
||||
prerequisites:
|
||||
- ALWAYS
|
||||
update-welcome:
|
||||
card-type: basic
|
||||
order: 10
|
||||
title: Upgrade/Upgrade.Welcome.Title.v114
|
||||
body: Upgrade/Upgrade.Welcome.Description.v114
|
||||
image: welcome-globe
|
||||
buttons:
|
||||
primary:
|
||||
title: Upgrade/Upgrade.Welcome.Action.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: upgrade
|
||||
prerequisites:
|
||||
- NEVER
|
||||
update-sign-to-sync:
|
||||
card-type: basic
|
||||
order: 20
|
||||
title: Upgrade/Upgrade.SyncSign.Title.v114
|
||||
body: Upgrade/Upgrade.SyncSign.Description.v114
|
||||
image: sync-devices
|
||||
buttons:
|
||||
primary:
|
||||
title: Upgrade/Upgrade.SyncSign.Action.v114
|
||||
action: sync-sign-in
|
||||
secondary:
|
||||
title: Onboarding/Onboarding.LaterAction.v114
|
||||
action: forward-one-card
|
||||
onboarding-type: upgrade
|
||||
prerequisites:
|
||||
- NEVER
|
||||
string-alias: NimbusOnboardingCardKey
|
||||
conditions:
|
||||
description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n"
|
||||
type: "Map<ConditionName, String>"
|
||||
default:
|
||||
ALWAYS: "true"
|
||||
NEVER: "false"
|
||||
string-alias: ConditionName
|
||||
dismissable:
|
||||
description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
password-generator-feature:
|
||||
description: Password Generator Feature
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the password generator feature is enabled"
|
||||
type: Boolean
|
||||
default: false
|
||||
redux-search-settings-feature:
|
||||
description: "This feature is for managing the roll out of redux on the search settings screen\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
remote-tab-management:
|
||||
description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n"
|
||||
variables:
|
||||
close-tabs-enabled:
|
||||
description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
search:
|
||||
description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n"
|
||||
variables:
|
||||
awesome-bar:
|
||||
description: Configuring the awesome bar.
|
||||
type: AwesomeBar
|
||||
default:
|
||||
min-search-term: 3
|
||||
position:
|
||||
is-bottom: true
|
||||
is-position-feature-enabled: true
|
||||
is-toolbar-cfr-on: false
|
||||
search-highlights: false
|
||||
use-page-content: false
|
||||
shopping2023:
|
||||
description: "The configuration setting for the status of the Fakespot feature\n"
|
||||
variables:
|
||||
back_in_stock_reporting:
|
||||
description: "If true, enables for users the reporting feature for products back in stock.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
config:
|
||||
description: "A Map of website configurations\n"
|
||||
type: "Map<String, WebsiteConfig>"
|
||||
default:
|
||||
amazon:
|
||||
productIdFromURLRegex: "(?:[\\\\/]|$|%2F)(?<productId>[A-Z0-9]{10})(?:[\\\\/]|$|\\\\#|\\\\?|%2F)"
|
||||
validTLDs:
|
||||
- com
|
||||
- de
|
||||
- fr
|
||||
walmart:
|
||||
productIdFromURLRegex: "\\\\/ip\\\\/(?:[A-Za-z0-9-]{1,320}\\\\/)?(?<productId>[0-9]{3,13})"
|
||||
validTLDs:
|
||||
- com
|
||||
bestbuy:
|
||||
productIdFromURLRegex: "\\\\/(?<productId>\\\\d+\\\\.p)"
|
||||
validTLDs:
|
||||
- com
|
||||
product_ads:
|
||||
description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
relay:
|
||||
description: "Configurable relay URL for production environment\n"
|
||||
type: String
|
||||
default: "https://mozilla-ohttp-fakespot.fastly-edge.com/"
|
||||
status:
|
||||
description: "Whether the Fakespot feature is enabled or disabled\n"
|
||||
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.\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "If true, the feature is active.\n"
|
||||
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.\n"
|
||||
type: Int
|
||||
default: 0
|
||||
spotlight-search:
|
||||
description: Add pages as items findable with Spotlight.
|
||||
variables:
|
||||
enabled:
|
||||
description: "If this is true, then on each page load adds a new item to Spotlight."
|
||||
type: Boolean
|
||||
default: false
|
||||
icon-type:
|
||||
description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n"
|
||||
type: Option<IconType>
|
||||
default: letter
|
||||
keep-for-days:
|
||||
description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n"
|
||||
type: Option<Int>
|
||||
default: ~
|
||||
searchable-content:
|
||||
description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n"
|
||||
type: Option<PageContent>
|
||||
default: text-excerpt
|
||||
tab-tray-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Tab Tray refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
tabTrayFeature:
|
||||
description: The tab tray screen that the user goes to when they open the tab tray.
|
||||
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<TabTraySection, Boolean>"
|
||||
default:
|
||||
inactive-tabs: true
|
||||
toolbar-refactor-feature:
|
||||
description: "This feature is for managing the roll out of the Toolbar refactor feature\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Enables the feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
navigation_hint:
|
||||
description: "If true, enables the navigation contextual hint.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
one_tap_new_tab:
|
||||
description: "If true, enables the one tap new tab feature for users.\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
unified_search:
|
||||
description: "Enables the unified search feature\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
tracking-protection-refactor:
|
||||
description: "The Enhanced Tracking Protection refactor\n"
|
||||
variables:
|
||||
enabled:
|
||||
description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n"
|
||||
type: Boolean
|
||||
default: false
|
||||
zoom-feature:
|
||||
description: "The configuration for the status of the zoom feature\n"
|
||||
variables:
|
||||
status:
|
||||
description: "Whether the page zoom feature is enabled or not\n"
|
||||
type: Boolean
|
||||
default: true
|
||||
enums:
|
||||
ContextualHint:
|
||||
description: The identifiers for a individual contextual hints.
|
||||
variants:
|
||||
toolbar-hint:
|
||||
description: The contextual hint bubble that appears to provide a hint about the toolbar.
|
||||
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.
|
||||
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.
|
||||
recent-explorations:
|
||||
description: The tab groups
|
||||
IconType:
|
||||
description: "The icon that will be added to the item in the device's search engine."
|
||||
variants:
|
||||
favicon:
|
||||
description: The favicon of the page
|
||||
letter:
|
||||
description: An icon generated from the first letter of the base domain.
|
||||
screenshot:
|
||||
description: A screenshot of the page at load time.
|
||||
MessageSurfaceId:
|
||||
description: "For messaging, we would like to have a message tell us which surface its associated with. This is a label that matches across both Android and iOS.\n"
|
||||
variants:
|
||||
Unknown:
|
||||
description: A message has NOT declared its target surface.
|
||||
microsurvey:
|
||||
description: This is a microsurvey that appears on top of the bottom toolbar to the user.
|
||||
new-tab-card:
|
||||
description: This is the card that appears at the top on the Firefox Home Page.
|
||||
notification:
|
||||
description: This is a local notification send to the user periodically with tips and updates.
|
||||
survey:
|
||||
description: This is a full-page that appears providing a survey to the user.
|
||||
NimbusOnboardingHeaderImage:
|
||||
description: "The identifiers for the different images available for cards in onboarding\n"
|
||||
variants:
|
||||
customize-firefox:
|
||||
description: "Corresponding to the fox window image\n"
|
||||
notifications:
|
||||
description: "Corresponding to the notifications image\n"
|
||||
notifications-ctd:
|
||||
description: "Corresponding to the notifications image for CTD\n"
|
||||
search-widget:
|
||||
description: "Corresponding to the fox search widget image\n"
|
||||
set-default-steps:
|
||||
description: "Corresponding to the set to default steps image\n"
|
||||
set-to-dock:
|
||||
description: "Corresponding to the set to dock image\n"
|
||||
sync-devices:
|
||||
description: "Corresponding to the sync-devices image\n"
|
||||
sync-devices-ctd:
|
||||
description: "Corresponding to the sync image for CTD\n"
|
||||
themeing:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
toolbar:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
welcome-ctd:
|
||||
description: "Corresponding to the welcome image for CTD\n"
|
||||
welcome-globe:
|
||||
description: "Corresponding to the fox world image\n"
|
||||
NimbusOnboardingMultipleChoiceButtonImage:
|
||||
description: "The identifiers for the different images available for multiple choice buttons in onboarding\n"
|
||||
variants:
|
||||
theme-dark:
|
||||
description: "Corresponding to the dark theme\n"
|
||||
theme-light:
|
||||
description: "Corresponding to the light theme\n"
|
||||
theme-system:
|
||||
description: "Corresponding to the system theme\n"
|
||||
toolbar-bottom:
|
||||
description: "Corresponding to the toolbar on the bottom\n"
|
||||
toolbar-top:
|
||||
description: "Corresponding to the toolbar on top\n"
|
||||
OnboardingActions:
|
||||
description: "The identifiers for the different actions available for cards in onboarding\n"
|
||||
variants:
|
||||
end-onboarding:
|
||||
description: "Will end the onboarding on a set card\n"
|
||||
forward-one-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
forward-three-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
forward-two-card:
|
||||
description: "Will take the user to the next card\n"
|
||||
open-instructions-popup:
|
||||
description: "Will open up a popup with instructions for something\n"
|
||||
open-ios-fx-settings:
|
||||
description: "Will take the user to the default browser settings in the iOS system settings\n"
|
||||
read-privacy-policy:
|
||||
description: "Will open a webview where the user can read the privacy policy\n"
|
||||
request-notifications:
|
||||
description: "Will request to allow notifications from the user\n"
|
||||
set-default-browser:
|
||||
description: "Will send the user to settings to set Firefox as their default browser and advance to next card\n"
|
||||
sync-sign-in:
|
||||
description: "Will take the user to the sync sign in flow\n"
|
||||
OnboardingCardType:
|
||||
description: "The identifiers for the different types of onboarding cards.\n"
|
||||
variants:
|
||||
basic:
|
||||
description: "Corresponding to basic info onboarding cards\n"
|
||||
multiple-choice:
|
||||
description: "Corresponding to onboarding cards with multiple choice buttons\n"
|
||||
OnboardingInstructionsPopupActions:
|
||||
description: "The identifiers for the different actions available for the insturction card in onboarding\n"
|
||||
variants:
|
||||
dismiss:
|
||||
description: "Will dismiss the popup\n"
|
||||
dismiss-and-next-card:
|
||||
description: "Will dismiss the popup and move to the next card\n"
|
||||
open-ios-fx-settings:
|
||||
description: "Will take the user to the default browser settings in the iOS system settings\n"
|
||||
OnboardingMultipleChoiceAction:
|
||||
description: "The identifiers for the different actions available for cards in onboarding\n"
|
||||
variants:
|
||||
theme-dark:
|
||||
description: "Will will set the theme to dark mode\n"
|
||||
theme-light:
|
||||
description: "Will set the theme to light mode\n"
|
||||
theme-system-default:
|
||||
description: "Will set the theme to use the system theme\n"
|
||||
toolbar-bottom:
|
||||
description: "Will set the toolbar on the bottom\n"
|
||||
toolbar-top:
|
||||
description: "Will set the toolbar on the top\n"
|
||||
OnboardingType:
|
||||
description: "The identifiers for the different types of onboarding cards.\n"
|
||||
variants:
|
||||
fresh-install:
|
||||
description: "Corresponding to onboarding cards that are for new users\n"
|
||||
upgrade:
|
||||
description: "Corresponding to onboarding cards that are for users who have updated\n"
|
||||
PageContent:
|
||||
description: "The page content that will be added as an item in the device's search engine."
|
||||
variants:
|
||||
html-content:
|
||||
description: Use all the page as HTML
|
||||
text-content:
|
||||
description: Use all the page as text
|
||||
text-excerpt:
|
||||
description: Only use the first paragraph
|
||||
SuggestionType:
|
||||
description: The type of a Firefox Suggest search suggestion.
|
||||
variants:
|
||||
amp:
|
||||
description: A Firefox Suggestion for desktop from adMarketplace.
|
||||
ampMobile:
|
||||
description: A Firefox Suggestion specifically for mobile from adMarketplace.
|
||||
wikipedia:
|
||||
description: A Firefox Suggestion for a Wikipedia page.
|
||||
TabTraySection:
|
||||
description: The identifiers for the sections of the tab tray.
|
||||
variants:
|
||||
inactive-tabs:
|
||||
description: Tabs that have been automatically closed for the user.
|
||||
objects:
|
||||
AwesomeBar:
|
||||
description: "A configuration option for the awesome bar. Part of the `search` feature."
|
||||
fields:
|
||||
min-search-term:
|
||||
description: The minimum number of characters that the user types before searching in the page.
|
||||
type: Int
|
||||
default: 3
|
||||
position:
|
||||
description: "This property defines whether or not the feature is enabled, and the position of the search bar\n"
|
||||
type: SearchBarPositionFeature
|
||||
default:
|
||||
is-position-feature-enabled: true
|
||||
is-bottom: true
|
||||
is-toolbar-cfr-on: true
|
||||
search-highlights:
|
||||
description: Whether or not search highlights are enabled
|
||||
type: Boolean
|
||||
default: false
|
||||
use-page-content:
|
||||
description: "Search in the open tab's text content when typing."
|
||||
type: Boolean
|
||||
default: false
|
||||
GeneralFeature:
|
||||
description: The configuration for the a feature that can be enabled or disabled
|
||||
fields:
|
||||
status:
|
||||
description: Whether or not the feature is enabled
|
||||
type: Boolean
|
||||
default: false
|
||||
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: "The name of a deeplink URL to be opened if the button is clicked.\n"
|
||||
type: Option<ActionName>
|
||||
default: ~
|
||||
action-params:
|
||||
description: Query parameters appended to the deeplink action URL
|
||||
type: "Map<String, String>"
|
||||
default: {}
|
||||
button-label:
|
||||
description: "The text on the button. If no text is present, the whole message is clickable.\n"
|
||||
type: Option<Text>
|
||||
default: ~
|
||||
except-if-any:
|
||||
description: "A list of strings corresponding to targeting expressions. If any of these expressions evaluate to `true`, the message will not be eligible.\n"
|
||||
type: List<TriggerName>
|
||||
default: []
|
||||
experiment:
|
||||
description: The experiment slug that this message is involved in.
|
||||
type: Option<ExperimentSlug>
|
||||
default: ~
|
||||
is-control:
|
||||
description: "Indicates if this message is the control message, if true shouldn't be displayed"
|
||||
type: Boolean
|
||||
default: false
|
||||
microsurveyConfig:
|
||||
description: Optional configuration data for a microsurvey.
|
||||
type: Option<MicrosurveyConfig>
|
||||
default: ~
|
||||
style:
|
||||
description: "The style as described in a `StyleData` from the styles table.\n"
|
||||
type: StyleName
|
||||
default: DEFAULT
|
||||
surface:
|
||||
description: Each message will tell us the surface it is targeting with this.
|
||||
type: MessageSurfaceId
|
||||
default: Unknown
|
||||
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-if-all:
|
||||
description: "A list of strings corresponding to targeting expressions. All named expressions must evaluate to true if the message is to be eligible to be shown.\n"
|
||||
type: List<TriggerName>
|
||||
default:
|
||||
- ALWAYS
|
||||
MicrosurveyConfig:
|
||||
description: "Attributes relating to microsurvey messaging.\n"
|
||||
fields:
|
||||
icon:
|
||||
description: The asset name in our bundle used as the icon shown in the survey.
|
||||
type: Image
|
||||
default: lightbulbLarge
|
||||
options:
|
||||
description: The list of survey options to present to the user.
|
||||
type: List<Text>
|
||||
default: []
|
||||
utm-content:
|
||||
description: The name used to provide as the utm_content parameter for the privacy notice.
|
||||
type: Option<String>
|
||||
default: ~
|
||||
NimbusOnboardingButton:
|
||||
description: "A group of properties describing the attributes of a card.\n"
|
||||
fields:
|
||||
action:
|
||||
description: "The action the button should take. The default for this will be \"forward-one-card\"\n"
|
||||
type: OnboardingActions
|
||||
default: forward-one-card
|
||||
title:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingButtons:
|
||||
description: "A set of buttons for the card. There can be up to two, but there must be at least one.\n"
|
||||
fields:
|
||||
primary:
|
||||
description: "The primary button for the card. This must exist.\n"
|
||||
type: NimbusOnboardingButton
|
||||
default:
|
||||
title: Primary Button
|
||||
action: forward-one-card
|
||||
secondary:
|
||||
description: "A secondary, optional, button for the card.\n"
|
||||
type: Option<NimbusOnboardingButton>
|
||||
default: ~
|
||||
NimbusOnboardingCardData:
|
||||
description: "A group of properties describing the attributes of a card.\n"
|
||||
fields:
|
||||
body:
|
||||
description: "The body text dispalyed on the card, in less prominent text. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
buttons:
|
||||
description: "The set of buttons associated with the card.\n"
|
||||
type: NimbusOnboardingButtons
|
||||
default:
|
||||
primary:
|
||||
title: Onboarding/Onboarding.Sync.Skip.Action.v114
|
||||
action: forward-one-card
|
||||
secondary: ~
|
||||
card-type:
|
||||
description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n"
|
||||
type: OnboardingCardType
|
||||
default: basic
|
||||
disqualifiers:
|
||||
description: "A list of ConditionName strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n"
|
||||
type: List<ConditionName>
|
||||
default: []
|
||||
image:
|
||||
description: "The image that should be dispalyed on the card.\n"
|
||||
type: NimbusOnboardingHeaderImage
|
||||
default: welcome-globe
|
||||
instructions-popup:
|
||||
description: "The object describing the specific instruction popup button for a card. If left empty, the card will have no instruction popup information\n"
|
||||
type: Option<NimbusOnboardingInstructionPopup>
|
||||
default: ~
|
||||
link:
|
||||
description: "The object describing the link button for a card. If left empty, the card will have no link.\n"
|
||||
type: Option<NimbusOnboardingLink>
|
||||
default: ~
|
||||
multiple-choice-buttons:
|
||||
description: "A list of multiple choice buttons that the card will display\n"
|
||||
type: List<NimbusOnboardingMultipleChoiceButton>
|
||||
default: []
|
||||
onboarding-type:
|
||||
description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n"
|
||||
type: OnboardingType
|
||||
default: fresh-install
|
||||
order:
|
||||
description: "The place in the order where the card will be found. The feature layer will then sort the cards based on this field.\n"
|
||||
type: Int
|
||||
default: 10
|
||||
prerequisites:
|
||||
description: "A list of ConditionName strings corresponding to targeting expressions. The card will be shown if all expressions `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n"
|
||||
type: List<ConditionName>
|
||||
default: []
|
||||
title:
|
||||
description: "The title displayed on the card, in prominent, bolded text. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingInstructionPopup:
|
||||
description: "The object outlining the content of the instruction card.\n"
|
||||
fields:
|
||||
button-action:
|
||||
description: "The action the button should have. Default is `dismiss-and-next-card`\n"
|
||||
type: OnboardingInstructionsPopupActions
|
||||
default: dismiss-and-next-card
|
||||
button-title:
|
||||
description: "The title the button should have. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
instructions:
|
||||
description: "A list of instructions, either as free text, or as Text identifiers.\n"
|
||||
type: List<Text>
|
||||
default: []
|
||||
title:
|
||||
description: "The text of the popup. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
NimbusOnboardingLink:
|
||||
description: "A group of properties describing the attributes for the active link on a card\n"
|
||||
fields:
|
||||
title:
|
||||
description: "The text of the link title.\n"
|
||||
type: Text
|
||||
default: Onboarding/Onboarding.Welcome.Link.Action.v114
|
||||
url:
|
||||
description: "The url that the link will lead to.\n"
|
||||
type: String
|
||||
default: "https://www.mozilla.org/privacy/firefox/"
|
||||
NimbusOnboardingMultipleChoiceButton:
|
||||
description: "A group of properties describing the attributes of a multiple choice button on a card\n"
|
||||
fields:
|
||||
action:
|
||||
description: "The action the button should take. The default for this will be \"theme-system-default\"\n"
|
||||
type: OnboardingMultipleChoiceAction
|
||||
default: theme-system-default
|
||||
image:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: NimbusOnboardingMultipleChoiceButtonImage
|
||||
default: theme-system
|
||||
title:
|
||||
description: "The text of the button title. This should never be defaulted.\n"
|
||||
type: Text
|
||||
default: ""
|
||||
SearchBarPositionFeature:
|
||||
description: The configuration for the bottom search bar on the homescreen
|
||||
fields:
|
||||
is-bottom:
|
||||
description: Whether or not the default position is at the bottom
|
||||
type: Boolean
|
||||
default: true
|
||||
is-position-feature-enabled:
|
||||
description: Whether or not the feature is enabled
|
||||
type: Boolean
|
||||
default: true
|
||||
is-toolbar-cfr-on:
|
||||
description: Whether or not the toolbar CFR shows. This is a temporary hack for Nimbus
|
||||
type: Boolean
|
||||
default: true
|
||||
StyleData:
|
||||
description: "A group of properities (predominantly visual) to the describe 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
|
||||
WebsiteConfig:
|
||||
description: "It represents a configuration for different e-commerce websites and includes regular expressions for extracting product IDs from their respective URLs\n"
|
||||
fields:
|
||||
productIdFromURLRegex:
|
||||
description: "It represents the product ID extracted from a regex query\n"
|
||||
type: String
|
||||
default: ""
|
||||
validTLDs:
|
||||
description: "Valid Top Level Domains\n"
|
||||
type: List<String>
|
||||
default: []
|
Загрузка…
Ссылка в новой задаче