From 7566a30e13e945523c496d5c617539999ec8e091 Mon Sep 17 00:00:00 2001 From: Experimenter CircleCI Bot Date: Tue, 3 Feb 2026 19:14:50 +0000 Subject: [PATCH] chore(nimbus): Update External Configs --- .../features/manifests/fenix/.ref-cache.yaml | 6 +- .../features/manifests/fenix/beta.fml.yaml | 88 +- .../manifests/fenix/developer.fml.yaml | 15 + .../manifests/fenix/experimenter.yaml | 17 + .../features/manifests/fenix/nightly.fml.yaml | 15 + .../features/manifests/fenix/release.fml.yaml | 15 + .../manifests/fenix/v148.0.0/beta.fml.yaml | 73 +- .../fenix/v148.0.0/developer.fml.yaml | 75 +- .../manifests/fenix/v148.0.0/nightly.fml.yaml | 72 +- .../manifests/fenix/v149.0.0/beta.fml.yaml | 88 +- .../fenix/v149.0.0/developer.fml.yaml | 15 + .../fenix/v149.0.0/experimenter.yaml | 17 + .../manifests/fenix/v149.0.0/nightly.fml.yaml | 15 + .../manifests/fenix/v149.0.0/release.fml.yaml | 15 + .../manifests/firefox-desktop/.ref-cache.yaml | 10 +- .../firefox-desktop/experimenter.yaml | 24 - .../v149.0.0/experimenter.yaml | 24 - .../features/manifests/ios/.ref-cache.yaml | 6 +- .../features/manifests/ios/beta.fml.yaml | 22 +- .../features/manifests/ios/developer.fml.yaml | 22 +- .../features/manifests/ios/experimenter.yaml | 17 +- .../features/manifests/ios/release.fml.yaml | 22 +- .../manifests/ios/v147.3.1/beta.fml.yaml | 1634 ++++++++++++++++ .../manifests/ios/v147.3.1/developer.fml.yaml | 1644 ++++++++++++++++ .../manifests/ios/v147.3.1/experimenter.yaml | 561 ++++++ .../manifests/ios/v147.3.1/release.fml.yaml | 1616 ++++++++++++++++ .../manifests/ios/v147.4.0/beta.fml.yaml | 14 + .../manifests/ios/v147.4.0/developer.fml.yaml | 14 + .../manifests/ios/v147.4.0/experimenter.yaml | 8 + .../manifests/ios/v147.4.0/release.fml.yaml | 14 + .../manifests/ios/v147.5.0/beta.fml.yaml | 1647 ++++++++++++++++ .../manifests/ios/v147.5.0/developer.fml.yaml | 1657 +++++++++++++++++ .../manifests/ios/v147.5.0/experimenter.yaml | 568 ++++++ .../manifests/ios/v147.5.0/release.fml.yaml | 1629 ++++++++++++++++ 34 files changed, 11411 insertions(+), 268 deletions(-) create mode 100644 experimenter/experimenter/features/manifests/ios/v147.3.1/beta.fml.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.3.1/developer.fml.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.3.1/experimenter.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.3.1/release.fml.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.5.0/beta.fml.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.5.0/developer.fml.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.5.0/experimenter.yaml create mode 100644 experimenter/experimenter/features/manifests/ios/v147.5.0/release.fml.yaml diff --git a/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml b/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml index 7696adbc6b..453eac26da 100644 --- a/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml @@ -1,3 +1,3 @@ -beta: e789d5a0e41c3f40b6375d9a24a443e1bbf62587 -main: 8d8cb89b010e9214fdb87a915511f265eeb06530 -release: 451468750d7eab9ca939192716703acf7d085100 +beta: 658f7baa4d91287dd39549f77313fdb9edda9941 +main: a750d5f4c159b541fcf62fe6df92f46f36474f25 +release: cd3b8173f16a0d8d2ef764a8840ef20209ad4d9f diff --git a/experimenter/experimenter/features/manifests/fenix/beta.fml.yaml b/experimenter/experimenter/features/manifests/fenix/beta.fml.yaml index ace0ad62fd..08dbe8da1f 100644 --- a/experimenter/experimenter/features/manifests/fenix/beta.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/beta.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: false isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -304,21 +312,22 @@ features: enabled: true extra-data: term-of-service-data: - line-one-text: onboarding_term_of_service_line_one_2 - line-one-link-text: onboarding_term_of_service_line_one_link_text_2 - line-two-text: onboarding_term_of_service_line_two_2 - line-two-link-text: onboarding_term_of_service_line_two_link_text - line-three-text: onboarding_term_of_service_line_three - line-three-link-text: onboarding_term_of_service_line_three_link_text - image-res: ic_firefox + line-one-text: nova_onboarding_tou_body_line_1 + line-one-link-text: nova_onboarding_tou_body_line_1_link_text + line-two-text: nova_onboarding_tou_body_line_2 + line-two-link-text: nova_onboarding_tou_body_line_2_link_text + line-three-text: nova_onboarding_tou_body_line_3 + line-three-link-text: nova_onboarding_tou_body_line_3_link_text + subheader-one-text: nova_onboarding_tou_subtitle + image-res: nova_onboarding_tou ordering: 1 prerequisites: - ALWAYS - primary-button-label: onboarding_term_of_service_agree_and_continue_button_label_2 + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_welcome_to_firefox + title: nova_onboarding_tou_title default-browser: - body: juno_onboarding_default_browser_description_nimbus_3 + body: nova_onboarding_set_to_default_subtitle card-type: default-browser disqualifiers: - NEVER @@ -328,11 +337,11 @@ features: 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 + primary-button-label: nova_onboarding_set_to_default_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_set_to_default_title_2 add-search-widget: - body: juno_onboarding_add_search_widget_description + body: nova_onboarding_add_search_widget_subtitle card-type: add-search-widget disqualifiers: - NEVER @@ -342,11 +351,11 @@ features: 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 + primary-button-label: nova_onboarding_add_search_widget_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_add_search_widget_title sync-sign-in: - body: juno_onboarding_sign_in_description_3 + body: nova_onboarding_sync_subtitle card-type: sync-sign-in disqualifiers: - NEVER @@ -356,11 +365,11 @@ features: 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 + primary-button-label: nova_onboarding_sync_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_sync_title notification-permission: - body: juno_onboarding_enable_notifications_description_nimbus_2 + body: nova_onboarding_notifications_subtitle card-type: notification-permission disqualifiers: - NEVER @@ -370,15 +379,15 @@ features: 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 + primary-button-label: nova_onboarding_notifications_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_notifications_title theme-selection: body: onboarding_customize_theme_description card-type: theme-selection disqualifiers: - NEVER - enabled: true + enabled: false extra-data: customization-theme-data: - theme-type: theme-system @@ -406,18 +415,18 @@ features: extra-data: customization-toolbar-data: - toolbar-type: toolbar-top - label: onboarding_customize_toolbar_top_option + label: nova_onboarding_toolbar_selection_top_label image-res: ic_onboarding_top_toolbar - toolbar-type: toolbar-bottom - label: onboarding_customize_toolbar_bottom_option + label: nova_onboarding_toolbar_selection_bottom_label image-res: ic_onboarding_bottom_toolbar image-res: ic_onboarding_customize_toolbar ordering: 37 prerequisites: - ALWAYS - primary-button-label: onboarding_save_and_continue_button + primary-button-label: onboarding_redesign_continue_button secondary-button-label: '' - title: onboarding_customize_toolbar_title + title: nova_onboarding_toolbar_selection_title marketing: body: onboarding_marketing_body card-type: marketing-data @@ -426,16 +435,16 @@ features: enabled: true extra-data: marketing-data: - body-line-one-text: onboarding_marketing_learn_more - body-line-one-link-text: onboarding_marketing_learn_more + body-line-one-text: nova_onboarding_marketing_body + body-line-one-link-text: nova_onboarding_marketing_body_link_text body-line-two-text: onboarding_marketing_opt_out_checkbox - image-res: ic_onboarding_welcome + image-res: nova_onboarding_marketing ordering: 40 prerequisites: - ALWAYS - primary-button-label: onboarding_marketing_positive_button + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_marketing_title + title: nova_onboarding_marketing_title string-alias: OnboardingCardKey conditions: description: | @@ -448,7 +457,7 @@ features: use-onboarding-redesign: description: If true, use the onboarding redesign. type: Boolean - default: false + default: true lna-blocking: description: Feature that allows blocking local network or device access. variables: @@ -662,6 +671,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/developer.fml.yaml b/experimenter/experimenter/features/manifests/fenix/developer.fml.yaml index 3a77c2fdae..0bac6534f9 100644 --- a/experimenter/experimenter/features/manifests/fenix/developer.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/developer.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: true isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -775,6 +783,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/experimenter.yaml b/experimenter/experimenter/features/manifests/fenix/experimenter.yaml index fa8c1f4150..f55c174052 100644 --- a/experimenter/experimenter/features/manifests/fenix/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/fenix/experimenter.yaml @@ -242,6 +242,15 @@ homescreen: 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. +homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: Enables the feature isolated-content-processes: description: Feature that controls content process isolation. hasExposure: true @@ -374,6 +383,14 @@ minimal-addressbar: type: boolean description: | Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. +mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: If true, Mozilla Ads Client is enabled. native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. hasExposure: true diff --git a/experimenter/experimenter/features/manifests/fenix/nightly.fml.yaml b/experimenter/experimenter/features/manifests/fenix/nightly.fml.yaml index 3c907a5fbc..9104b1bb72 100644 --- a/experimenter/experimenter/features/manifests/fenix/nightly.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/nightly.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: true isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -686,6 +694,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/release.fml.yaml b/experimenter/experimenter/features/manifests/fenix/release.fml.yaml index e7b8ba4ead..1a1b511f7c 100644 --- a/experimenter/experimenter/features/manifests/fenix/release.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/release.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: false isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -662,6 +670,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/v148.0.0/beta.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v148.0.0/beta.fml.yaml index f6c7d3933e..360ba0a24a 100644 --- a/experimenter/experimenter/features/manifests/fenix/v148.0.0/beta.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v148.0.0/beta.fml.yaml @@ -290,21 +290,22 @@ features: enabled: true extra-data: term-of-service-data: - line-one-text: onboarding_term_of_service_line_one_2 - line-one-link-text: onboarding_term_of_service_line_one_link_text_2 - line-two-text: onboarding_term_of_service_line_two_2 - line-two-link-text: onboarding_term_of_service_line_two_link_text - line-three-text: onboarding_term_of_service_line_three - line-three-link-text: onboarding_term_of_service_line_three_link_text - image-res: ic_firefox + line-one-text: nova_onboarding_tou_body_line_1 + line-one-link-text: nova_onboarding_tou_body_line_1_link_text + line-two-text: nova_onboarding_tou_body_line_2 + line-two-link-text: nova_onboarding_tou_body_line_2_link_text + line-three-text: nova_onboarding_tou_body_line_3 + line-three-link-text: nova_onboarding_tou_body_line_3_link_text + subheader-one-text: nova_onboarding_tou_subtitle + image-res: nova_onboarding_tou ordering: 1 prerequisites: - ALWAYS - primary-button-label: onboarding_term_of_service_agree_and_continue_button_label_2 + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_welcome_to_firefox + title: nova_onboarding_tou_title default-browser: - body: juno_onboarding_default_browser_description_nimbus_3 + body: nova_onboarding_set_to_default_subtitle card-type: default-browser disqualifiers: - NEVER @@ -314,11 +315,11 @@ features: 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 + primary-button-label: nova_onboarding_set_to_default_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_set_to_default_title_2 add-search-widget: - body: juno_onboarding_add_search_widget_description + body: nova_onboarding_add_search_widget_subtitle card-type: add-search-widget disqualifiers: - NEVER @@ -328,11 +329,11 @@ features: 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 + primary-button-label: nova_onboarding_add_search_widget_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_add_search_widget_title sync-sign-in: - body: juno_onboarding_sign_in_description_3 + body: nova_onboarding_sync_subtitle card-type: sync-sign-in disqualifiers: - NEVER @@ -342,11 +343,11 @@ features: 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 + primary-button-label: nova_onboarding_sync_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_sync_title notification-permission: - body: juno_onboarding_enable_notifications_description_nimbus_2 + body: nova_onboarding_notifications_subtitle card-type: notification-permission disqualifiers: - NEVER @@ -356,15 +357,15 @@ features: 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 + primary-button-label: nova_onboarding_notifications_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_notifications_title theme-selection: body: onboarding_customize_theme_description card-type: theme-selection disqualifiers: - NEVER - enabled: true + enabled: false extra-data: customization-theme-data: - theme-type: theme-system @@ -392,18 +393,18 @@ features: extra-data: customization-toolbar-data: - toolbar-type: toolbar-top - label: onboarding_customize_toolbar_top_option + label: nova_onboarding_toolbar_selection_top_label image-res: ic_onboarding_top_toolbar - toolbar-type: toolbar-bottom - label: onboarding_customize_toolbar_bottom_option + label: nova_onboarding_toolbar_selection_bottom_label image-res: ic_onboarding_bottom_toolbar image-res: ic_onboarding_customize_toolbar ordering: 37 prerequisites: - ALWAYS - primary-button-label: onboarding_save_and_continue_button + primary-button-label: onboarding_redesign_continue_button secondary-button-label: '' - title: onboarding_customize_toolbar_title + title: nova_onboarding_toolbar_selection_title marketing: body: onboarding_marketing_body card-type: marketing-data @@ -412,16 +413,16 @@ features: enabled: true extra-data: marketing-data: - body-line-one-text: onboarding_marketing_learn_more - body-line-one-link-text: onboarding_marketing_learn_more + body-line-one-text: nova_onboarding_marketing_body + body-line-one-link-text: nova_onboarding_marketing_body_link_text body-line-two-text: onboarding_marketing_opt_out_checkbox - image-res: ic_onboarding_welcome + image-res: nova_onboarding_marketing ordering: 40 prerequisites: - ALWAYS - primary-button-label: onboarding_marketing_positive_button + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_marketing_title + title: nova_onboarding_marketing_title string-alias: OnboardingCardKey conditions: description: | @@ -434,7 +435,7 @@ features: use-onboarding-redesign: description: If true, use the onboarding redesign. type: Boolean - default: false + default: true lna-blocking: description: Feature that allows blocking local network or device access. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/v148.0.0/developer.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v148.0.0/developer.fml.yaml index c8e91a436c..00e835ac26 100644 --- a/experimenter/experimenter/features/manifests/fenix/v148.0.0/developer.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v148.0.0/developer.fml.yaml @@ -425,52 +425,65 @@ features: terms-of-service-redesign: card-type: terms-of-service enabled: false - title: onboarding_redesign_tou_title + title: nova_onboarding_tou_title ordering: 0 - image-res: ic_firefox - primary-button-label: onboarding_redesign_tou_agree_and_continue_button_label + image-res: nova_onboarding_tou + primary-button-label: nova_onboarding_continue_button extra-data: term-of-service-data: - subheader-one-text: onboarding_redesign_tou_subheader_one - subheader-two-text: onboarding_redesign_tou_subheader_two - subheader-three-text: onboarding_redesign_tou_subheader_three - line-one-text: onboarding_redesign_tou_body_one - line-one-link-text: onboarding_redesign_tou_body_one_link_text - line-two-text: onboarding_redesign_tou_body_two - line-two-link-text: onboarding_redesign_tou_body_two_link_text - line-three-text: onboarding_redesign_tou_body_three - line-three-link-text: onboarding_redesign_tou_body_three_link_text + subheader-one-text: nova_onboarding_tou_subtitle + line-one-text: nova_onboarding_tou_body_line_1 + line-one-link-text: nova_onboarding_tou_body_line_1_link_text + line-two-text: nova_onboarding_tou_body_line_2 + line-two-link-text: nova_onboarding_tou_body_line_2_link_text + line-three-text: nova_onboarding_tou_body_line_3 + line-three-link-text: nova_onboarding_tou_body_line_3_link_text default-browser-redesign: card-type: default-browser enabled: false - title: onboarding_redesign_set_default_browser_title + title: nova_onboarding_set_to_default_title_2 ordering: 5 - body: onboarding_redesign_set_default_browser_body - primary-button-label: juno_onboarding_default_browser_positive_button - secondary-button-label: juno_onboarding_default_browser_negative_button + body: nova_onboarding_set_to_default_subtitle + primary-button-label: nova_onboarding_set_to_default_button + secondary-button-label: nova_onboarding_negative_button + add-search-widget-redesign: + enabled: false + card-type: add-search-widget + title: nova_onboarding_add_search_widget_title + body: nova_onboarding_add_search_widget_subtitle + ordering: 10 + primary-button-label: nova_onboarding_add_search_widget_button + secondary-button-label: nova_onboarding_negative_button sync-sign-in-redesign: enabled: false card-type: sync-sign-in - title: onboarding_redesign_sync_title - body: onboarding_redesign_sync_body + title: nova_onboarding_sync_title + body: nova_onboarding_sync_subtitle ordering: 15 - primary-button-label: onboarding_redesign_sync_positive_button - secondary-button-label: onboarding_redesign_sync_negative_button + primary-button-label: nova_onboarding_sync_button + secondary-button-label: nova_onboarding_negative_button + notification-permission-redesign: + enabled: false + card-type: notification-permission + title: nova_onboarding_notifications_title + body: nova_onboarding_notifications_subtitle + ordering: 20 + primary-button-label: nova_onboarding_notifications_button + secondary-button-label: nova_onboarding_negative_button toolbar-placement-redesign: card-type: toolbar-placement enabled: false - title: onboarding_redesign_customize_toolbar_title + title: nova_onboarding_toolbar_selection_title body: onboarding_customize_toolbar_description - image-res: ic_onboarding_customize_toolbar ordering: 35 - primary-button-label: onboarding_redesign_continue_button + primary-button-label: nova_onboarding_continue_button extra-data: customization-toolbar-data: - toolbar-type: toolbar-top - label: onboarding_customize_toolbar_top_option + label: nova_onboarding_toolbar_selection_top_label image-res: ic_onboarding_top_toolbar - toolbar-type: toolbar-bottom - label: onboarding_customize_toolbar_bottom_option + label: nova_onboarding_toolbar_selection_bottom_label image-res: ic_onboarding_bottom_toolbar marketing-data: card-type: marketing-data @@ -488,16 +501,14 @@ features: marketing-data-redesign: card-type: marketing-data enabled: false - title: onboarding_marketing_redesign_title - body: onboarding_marketing_body - image-res: ic_onboarding_marketing_redesign + title: nova_onboarding_marketing_title + image-res: nova_onboarding_marketing ordering: 40 - primary-button-label: onboarding_marketing_redesign_positive_button + primary-button-label: nova_onboarding_continue_button extra-data: marketing-data: - body-line-one-text: onboarding_marketing_redesign_learn_more - body-line-one-link-text: onboarding_marketing_redesign_learn_more - body-line-two-text: onboarding_marketing_redesign_opt_out_checkbox + body-line-one-text: nova_onboarding_marketing_body + body-line-one-link-text: nova_onboarding_marketing_body_link_text string-alias: OnboardingCardKey conditions: description: | diff --git a/experimenter/experimenter/features/manifests/fenix/v148.0.0/nightly.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v148.0.0/nightly.fml.yaml index 531cf79c71..6495fc15ec 100644 --- a/experimenter/experimenter/features/manifests/fenix/v148.0.0/nightly.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v148.0.0/nightly.fml.yaml @@ -290,24 +290,22 @@ features: enabled: true extra-data: term-of-service-data: - line-one-text: onboarding_redesign_tou_body_one - line-one-link-text: onboarding_redesign_tou_body_one_link_text - line-two-text: onboarding_redesign_tou_body_two - line-two-link-text: onboarding_redesign_tou_body_two_link_text - line-three-text: onboarding_redesign_tou_body_three - line-three-link-text: onboarding_redesign_tou_body_three_link_text - subheader-one-text: onboarding_redesign_tou_subheader_one - subheader-two-text: onboarding_redesign_tou_subheader_two - subheader-three-text: onboarding_redesign_tou_subheader_three - image-res: ic_firefox + line-one-text: nova_onboarding_tou_body_line_1 + line-one-link-text: nova_onboarding_tou_body_line_1_link_text + line-two-text: nova_onboarding_tou_body_line_2 + line-two-link-text: nova_onboarding_tou_body_line_2_link_text + line-three-text: nova_onboarding_tou_body_line_3 + line-three-link-text: nova_onboarding_tou_body_line_3_link_text + subheader-one-text: nova_onboarding_tou_subtitle + image-res: nova_onboarding_tou ordering: 1 prerequisites: - ALWAYS - primary-button-label: onboarding_redesign_tou_agree_and_continue_button_label + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_redesign_tou_title + title: nova_onboarding_tou_title default-browser: - body: onboarding_redesign_set_default_browser_body + body: nova_onboarding_set_to_default_subtitle card-type: default-browser disqualifiers: - NEVER @@ -317,11 +315,11 @@ features: ordering: 10 prerequisites: - ALWAYS - primary-button-label: juno_onboarding_default_browser_positive_button - secondary-button-label: juno_onboarding_default_browser_negative_button - title: onboarding_redesign_set_default_browser_title + primary-button-label: nova_onboarding_set_to_default_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_set_to_default_title_2 add-search-widget: - body: juno_onboarding_add_search_widget_description + body: nova_onboarding_add_search_widget_subtitle card-type: add-search-widget disqualifiers: - NEVER @@ -331,11 +329,11 @@ features: 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 + primary-button-label: nova_onboarding_add_search_widget_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_add_search_widget_title sync-sign-in: - body: onboarding_redesign_sync_body + body: nova_onboarding_sync_subtitle card-type: sync-sign-in disqualifiers: - NEVER @@ -345,11 +343,11 @@ features: ordering: 20 prerequisites: - ALWAYS - primary-button-label: onboarding_redesign_sync_positive_button - secondary-button-label: onboarding_redesign_sync_negative_button - title: onboarding_redesign_sync_title + primary-button-label: nova_onboarding_sync_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_sync_title notification-permission: - body: juno_onboarding_enable_notifications_description_nimbus_2 + body: nova_onboarding_notifications_subtitle card-type: notification-permission disqualifiers: - NEVER @@ -359,9 +357,9 @@ features: 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 + primary-button-label: nova_onboarding_notifications_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_notifications_title theme-selection: body: onboarding_customize_theme_description card-type: theme-selection @@ -395,10 +393,10 @@ features: extra-data: customization-toolbar-data: - toolbar-type: toolbar-top - label: onboarding_customize_toolbar_top_option + label: nova_onboarding_toolbar_selection_top_label image-res: ic_onboarding_top_toolbar - toolbar-type: toolbar-bottom - label: onboarding_customize_toolbar_bottom_option + label: nova_onboarding_toolbar_selection_bottom_label image-res: ic_onboarding_bottom_toolbar image-res: ic_onboarding_customize_toolbar ordering: 37 @@ -406,7 +404,7 @@ features: - ALWAYS primary-button-label: onboarding_redesign_continue_button secondary-button-label: '' - title: onboarding_redesign_customize_toolbar_title + title: nova_onboarding_toolbar_selection_title marketing: body: onboarding_marketing_body card-type: marketing-data @@ -415,16 +413,16 @@ features: enabled: true extra-data: marketing-data: - body-line-one-text: onboarding_marketing_redesign_learn_more - body-line-one-link-text: onboarding_marketing_redesign_learn_more - body-line-two-text: onboarding_marketing_redesign_opt_out_checkbox - image-res: ic_onboarding_marketing_redesign + body-line-one-text: nova_onboarding_marketing_body + body-line-one-link-text: nova_onboarding_marketing_body_link_text + body-line-two-text: onboarding_marketing_opt_out_checkbox + image-res: nova_onboarding_marketing ordering: 40 prerequisites: - ALWAYS - primary-button-label: onboarding_marketing_redesign_positive_button + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_marketing_redesign_title + title: nova_onboarding_marketing_title string-alias: OnboardingCardKey conditions: description: | diff --git a/experimenter/experimenter/features/manifests/fenix/v149.0.0/beta.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v149.0.0/beta.fml.yaml index ace0ad62fd..08dbe8da1f 100644 --- a/experimenter/experimenter/features/manifests/fenix/v149.0.0/beta.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v149.0.0/beta.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: false isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -304,21 +312,22 @@ features: enabled: true extra-data: term-of-service-data: - line-one-text: onboarding_term_of_service_line_one_2 - line-one-link-text: onboarding_term_of_service_line_one_link_text_2 - line-two-text: onboarding_term_of_service_line_two_2 - line-two-link-text: onboarding_term_of_service_line_two_link_text - line-three-text: onboarding_term_of_service_line_three - line-three-link-text: onboarding_term_of_service_line_three_link_text - image-res: ic_firefox + line-one-text: nova_onboarding_tou_body_line_1 + line-one-link-text: nova_onboarding_tou_body_line_1_link_text + line-two-text: nova_onboarding_tou_body_line_2 + line-two-link-text: nova_onboarding_tou_body_line_2_link_text + line-three-text: nova_onboarding_tou_body_line_3 + line-three-link-text: nova_onboarding_tou_body_line_3_link_text + subheader-one-text: nova_onboarding_tou_subtitle + image-res: nova_onboarding_tou ordering: 1 prerequisites: - ALWAYS - primary-button-label: onboarding_term_of_service_agree_and_continue_button_label_2 + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_welcome_to_firefox + title: nova_onboarding_tou_title default-browser: - body: juno_onboarding_default_browser_description_nimbus_3 + body: nova_onboarding_set_to_default_subtitle card-type: default-browser disqualifiers: - NEVER @@ -328,11 +337,11 @@ features: 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 + primary-button-label: nova_onboarding_set_to_default_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_set_to_default_title_2 add-search-widget: - body: juno_onboarding_add_search_widget_description + body: nova_onboarding_add_search_widget_subtitle card-type: add-search-widget disqualifiers: - NEVER @@ -342,11 +351,11 @@ features: 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 + primary-button-label: nova_onboarding_add_search_widget_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_add_search_widget_title sync-sign-in: - body: juno_onboarding_sign_in_description_3 + body: nova_onboarding_sync_subtitle card-type: sync-sign-in disqualifiers: - NEVER @@ -356,11 +365,11 @@ features: 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 + primary-button-label: nova_onboarding_sync_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_sync_title notification-permission: - body: juno_onboarding_enable_notifications_description_nimbus_2 + body: nova_onboarding_notifications_subtitle card-type: notification-permission disqualifiers: - NEVER @@ -370,15 +379,15 @@ features: 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 + primary-button-label: nova_onboarding_notifications_button + secondary-button-label: nova_onboarding_negative_button + title: nova_onboarding_notifications_title theme-selection: body: onboarding_customize_theme_description card-type: theme-selection disqualifiers: - NEVER - enabled: true + enabled: false extra-data: customization-theme-data: - theme-type: theme-system @@ -406,18 +415,18 @@ features: extra-data: customization-toolbar-data: - toolbar-type: toolbar-top - label: onboarding_customize_toolbar_top_option + label: nova_onboarding_toolbar_selection_top_label image-res: ic_onboarding_top_toolbar - toolbar-type: toolbar-bottom - label: onboarding_customize_toolbar_bottom_option + label: nova_onboarding_toolbar_selection_bottom_label image-res: ic_onboarding_bottom_toolbar image-res: ic_onboarding_customize_toolbar ordering: 37 prerequisites: - ALWAYS - primary-button-label: onboarding_save_and_continue_button + primary-button-label: onboarding_redesign_continue_button secondary-button-label: '' - title: onboarding_customize_toolbar_title + title: nova_onboarding_toolbar_selection_title marketing: body: onboarding_marketing_body card-type: marketing-data @@ -426,16 +435,16 @@ features: enabled: true extra-data: marketing-data: - body-line-one-text: onboarding_marketing_learn_more - body-line-one-link-text: onboarding_marketing_learn_more + body-line-one-text: nova_onboarding_marketing_body + body-line-one-link-text: nova_onboarding_marketing_body_link_text body-line-two-text: onboarding_marketing_opt_out_checkbox - image-res: ic_onboarding_welcome + image-res: nova_onboarding_marketing ordering: 40 prerequisites: - ALWAYS - primary-button-label: onboarding_marketing_positive_button + primary-button-label: nova_onboarding_continue_button secondary-button-label: '' - title: onboarding_marketing_title + title: nova_onboarding_marketing_title string-alias: OnboardingCardKey conditions: description: | @@ -448,7 +457,7 @@ features: use-onboarding-redesign: description: If true, use the onboarding redesign. type: Boolean - default: false + default: true lna-blocking: description: Feature that allows blocking local network or device access. variables: @@ -662,6 +671,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/v149.0.0/developer.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v149.0.0/developer.fml.yaml index 3a77c2fdae..0bac6534f9 100644 --- a/experimenter/experimenter/features/manifests/fenix/v149.0.0/developer.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v149.0.0/developer.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: true isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -775,6 +783,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/v149.0.0/experimenter.yaml b/experimenter/experimenter/features/manifests/fenix/v149.0.0/experimenter.yaml index fa8c1f4150..f55c174052 100644 --- a/experimenter/experimenter/features/manifests/fenix/v149.0.0/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v149.0.0/experimenter.yaml @@ -242,6 +242,15 @@ homescreen: 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. +homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: Enables the feature isolated-content-processes: description: Feature that controls content process isolation. hasExposure: true @@ -374,6 +383,14 @@ minimal-addressbar: type: boolean description: | Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. +mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: If true, Mozilla Ads Client is enabled. native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. hasExposure: true diff --git a/experimenter/experimenter/features/manifests/fenix/v149.0.0/nightly.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v149.0.0/nightly.fml.yaml index 3c907a5fbc..9104b1bb72 100644 --- a/experimenter/experimenter/features/manifests/fenix/v149.0.0/nightly.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v149.0.0/nightly.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: true isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -686,6 +694,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/fenix/v149.0.0/release.fml.yaml b/experimenter/experimenter/features/manifests/fenix/v149.0.0/release.fml.yaml index e7b8ba4ead..1a1b511f7c 100644 --- a/experimenter/experimenter/features/manifests/fenix/v149.0.0/release.fml.yaml +++ b/experimenter/experimenter/features/manifests/fenix/v149.0.0/release.fml.yaml @@ -268,6 +268,14 @@ features: pocket-sponsored-stories: true synced-tabs: true collections: true + homescreen-edge-to-edge-background: + description: | + Feature that sets an edge to edge background on the Home Screen if the user hasn't selected a custom wallpaper + variables: + enabled: + description: Enables the feature + type: Boolean + default: false isolated-content-processes: description: Feature that controls content process isolation. variables: @@ -662,6 +670,13 @@ features: Whether to show the smaller height bottom addressbar with just the URL when entering text in a website. type: Boolean default: false + mozilla-ads-client: + description: Feature to enable the Mozilla Ads Client for users on Firefox on Android. + variables: + enabled: + description: If true, Mozilla Ads Client is enabled. + type: Boolean + default: false native-share-sheet: description: Feature to enable the Native Share Sheet for users on Firefox on Android. variables: diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml b/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml index e1b7b4038e..04db9ef456 100644 --- a/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml @@ -1,6 +1,6 @@ -beta: e789d5a0e41c3f40b6375d9a24a443e1bbf62587 -esr115: 917a94d38d61837c676b0c4ebc1ae6d9c5ecc12a +beta: 658f7baa4d91287dd39549f77313fdb9edda9941 +esr115: c1afb5fd39f0aae0e80906032ce2b7dadb7314d1 esr128: ed38f9209e39bd7ad247c81a7c20c99c874e0a62 -esr140: fd8b8585e688b396b9522892c161f1c70e1473a1 -main: 8d8cb89b010e9214fdb87a915511f265eeb06530 -release: 451468750d7eab9ca939192716703acf7d085100 +esr140: b5a31ca833c1d6065be430f83ac673f6b0f17cd3 +main: a750d5f4c159b541fcf62fe6df92f46f36474f25 +release: cd3b8173f16a0d8d2ef764a8840ef20209ad4d9f diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml b/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml index d9ccb906da..c9b60bde2f 100644 --- a/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml @@ -1286,18 +1286,6 @@ newtabPublisherFavicons: pref: browser.newtabpage.activity-stream.discoverystream.publisherFavicon.enabled description: Enables publisher favicons on cards in newtab -newtabRefinedCardsLayout: - description: Enable layout and styling refinements for content and ad cards across different card sizes - owner: rhamoui@mozilla.com - hasExposure: false - variables: - enabled: - type: boolean - setPref: - branch: user - pref: browser.newtabpage.activity-stream.discoverystream.refinedCardsLayout.enabled - description: Enables the refined cards layout for newtab - newTabSectionsExperiment: description: about:newtab section UI update owner: nbarrett@mozilla.com, mcrawford@mozilla.com @@ -1889,18 +1877,6 @@ pocketNewtab: pref: browser.newtabpage.activity-stream.weather.locationSearchEnabled description: >- Turns on and off location search for newtab weather widget - recsPersonalized: - type: boolean - fallbackPref: >- - browser.newtabpage.activity-stream.discoverystream.recs.personalized - description: >- - Enables Pocket stories personalization. - spocsPersonalized: - type: boolean - fallbackPref: >- - browser.newtabpage.activity-stream.discoverystream.spocs.personalized - description: >- - Enables Pocket sponsored content personalization. discoveryStreamConfig: description: A JSON blob of discovery stream configuration. type: string diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/v149.0.0/experimenter.yaml b/experimenter/experimenter/features/manifests/firefox-desktop/v149.0.0/experimenter.yaml index d9ccb906da..c9b60bde2f 100644 --- a/experimenter/experimenter/features/manifests/firefox-desktop/v149.0.0/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/firefox-desktop/v149.0.0/experimenter.yaml @@ -1286,18 +1286,6 @@ newtabPublisherFavicons: pref: browser.newtabpage.activity-stream.discoverystream.publisherFavicon.enabled description: Enables publisher favicons on cards in newtab -newtabRefinedCardsLayout: - description: Enable layout and styling refinements for content and ad cards across different card sizes - owner: rhamoui@mozilla.com - hasExposure: false - variables: - enabled: - type: boolean - setPref: - branch: user - pref: browser.newtabpage.activity-stream.discoverystream.refinedCardsLayout.enabled - description: Enables the refined cards layout for newtab - newTabSectionsExperiment: description: about:newtab section UI update owner: nbarrett@mozilla.com, mcrawford@mozilla.com @@ -1889,18 +1877,6 @@ pocketNewtab: pref: browser.newtabpage.activity-stream.weather.locationSearchEnabled description: >- Turns on and off location search for newtab weather widget - recsPersonalized: - type: boolean - fallbackPref: >- - browser.newtabpage.activity-stream.discoverystream.recs.personalized - description: >- - Enables Pocket stories personalization. - spocsPersonalized: - type: boolean - fallbackPref: >- - browser.newtabpage.activity-stream.discoverystream.spocs.personalized - description: >- - Enables Pocket sponsored content personalization. discoveryStreamConfig: description: A JSON blob of discovery stream configuration. type: string diff --git a/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml b/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml index 5c6f9edf4e..68e51f38fe 100644 --- a/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml @@ -75,7 +75,8 @@ firefox-v146.1: dacd8c4bd43b9f1cfea462460e56f4a0445428ab firefox-v147.0: f46e2b4822278910a63f8aaf0ad753ce6504f9b4 firefox-v147.1: 9e21c0bc53bb598ded45b478077a3b2bd17266db firefox-v147.2: 1931e0204698064de1e292ea873b617cf44b1244 -main: 24a708261c2e3f84d1a8e0fcf382f1c610717fff +firefox-v147.3: 33730a472dd94e2638307078cf2ffd124d12db21 +main: 5e0eebafa5abe3acfe85ba98aa167c55900d28e3 release/v117: 43b690c450066d4dde1b2ccb93ed3714d244d502 release/v118: 89a7ea3c3372e5a4ef5b3c5b85499d26198d0524 release/v119: 7dc381f991c6d2a983c3ba7f0cffd880e8c29e7b @@ -120,7 +121,8 @@ release/v146.1: ea643ef53e70c48ca25bb674f894945e55220d03 release/v147.0: b4245fd8bf7e102c01055a1c4b418afa48093429 release/v147.1: a220c06a8c6c3bb57c19049d903d6a37396df085 release/v147.2: 306eb1b46e5c1672ef7c8901cca054ff46b4ae82 -release/v147.3: 33730a472dd94e2638307078cf2ffd124d12db21 +release/v147.3: 9c2728a4bba87405151a16d0a63eccf3c1f29163 +release/v147.4: 1fe8bc1836b4326ec15207c61b1363fe83f53a92 v117.0: 3b275ab1e4ccef769d84437033c0c68acfd2df8a v117.1: 55ddcf473a65d106d43f6d2ae5af4076d6d03688 v117.2: 5cc367aa8857199cd8a54d53e8faf6696c5614c3 diff --git a/experimenter/experimenter/features/manifests/ios/beta.fml.yaml b/experimenter/experimenter/features/manifests/ios/beta.fml.yaml index bcbd029ba6..a0e1065f83 100644 --- a/experimenter/experimenter/features/manifests/ios/beta.fml.yaml +++ b/experimenter/experimenter/features/manifests/ios/beta.fml.yaml @@ -161,6 +161,11 @@ features: If true, enables the search bar feature on homepage for users. type: Boolean default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -1050,14 +1055,6 @@ features: description: The number of maximum suggestions. type: Int default: 5 - updated-password-manager-feature: - description: | - This property determines if we use the updated password manager or the legacy one. - variables: - status: - description: If true, firefox will use the the updated password manager. - type: Boolean - default: false voice-search-feature: description: | The feature flag to manage the roll out of the voice search feature. @@ -1306,6 +1303,15 @@ enums: description: Use all the page as text text-excerpt: description: Only use the first paragraph + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. StartAtHome: description: The option for what screen to open the app to variants: diff --git a/experimenter/experimenter/features/manifests/ios/developer.fml.yaml b/experimenter/experimenter/features/manifests/ios/developer.fml.yaml index d8aadd9945..648f79e750 100644 --- a/experimenter/experimenter/features/manifests/ios/developer.fml.yaml +++ b/experimenter/experimenter/features/manifests/ios/developer.fml.yaml @@ -161,6 +161,11 @@ features: If true, enables the search bar feature on homepage for users. type: Boolean default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -1060,14 +1065,6 @@ features: description: The number of maximum suggestions. type: Int default: 5 - updated-password-manager-feature: - description: | - This property determines if we use the updated password manager or the legacy one. - variables: - status: - description: If true, firefox will use the the updated password manager. - type: Boolean - default: false voice-search-feature: description: | The feature flag to manage the roll out of the voice search feature. @@ -1316,6 +1313,15 @@ enums: description: Use all the page as text text-excerpt: description: Only use the first paragraph + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. StartAtHome: description: The option for what screen to open the app to variants: diff --git a/experimenter/experimenter/features/manifests/ios/experimenter.yaml b/experimenter/experimenter/features/manifests/ios/experimenter.yaml index 16335392e7..1911f8e645 100644 --- a/experimenter/experimenter/features/manifests/ios/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/ios/experimenter.yaml @@ -160,6 +160,14 @@ homepage-redesign-feature: type: boolean description: | If true, enables the search bar feature on homepage for users. + stories-scroll-direction: + type: string + description: | + Controls the layout direction for stories on the homepage. + enum: + - baseline + - horizontal + - vertical hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -538,15 +546,6 @@ trending-searches-feature: max-suggestions: type: int description: The number of maximum suggestions. -updated-password-manager-feature: - description: | - This property determines if we use the updated password manager or the legacy one. - hasExposure: true - exposureDescription: '' - variables: - status: - type: boolean - description: If true, firefox will use the the updated password manager. voice-search-feature: description: | The feature flag to manage the roll out of the voice search feature. diff --git a/experimenter/experimenter/features/manifests/ios/release.fml.yaml b/experimenter/experimenter/features/manifests/ios/release.fml.yaml index 4e7f99a6d9..bae9b7676c 100644 --- a/experimenter/experimenter/features/manifests/ios/release.fml.yaml +++ b/experimenter/experimenter/features/manifests/ios/release.fml.yaml @@ -161,6 +161,11 @@ features: If true, enables the search bar feature on homepage for users. type: Boolean default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -1032,14 +1037,6 @@ features: description: The number of maximum suggestions. type: Int default: 5 - updated-password-manager-feature: - description: | - This property determines if we use the updated password manager or the legacy one. - variables: - status: - description: If true, firefox will use the the updated password manager. - type: Boolean - default: false voice-search-feature: description: | The feature flag to manage the roll out of the voice search feature. @@ -1288,6 +1285,15 @@ enums: description: Use all the page as text text-excerpt: description: Only use the first paragraph + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. StartAtHome: description: The option for what screen to open the app to variants: diff --git a/experimenter/experimenter/features/manifests/ios/v147.3.1/beta.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.3.1/beta.fml.yaml new file mode 100644 index 0000000000..73503e0f7d --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.3.1/beta.fml.yaml @@ -0,0 +1,1634 @@ +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: +- beta +features: + 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 + address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + variables: + status: + description: If true, we will show the new address bar menu entry + type: Boolean + default: true + app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + variables: + funIconsEnabled: + description: | + Controls whether users see the fun icons in the app icon settings. + type: Boolean + default: true + appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + variables: + status: + description: If true, we will show the new appearance menu entry + type: Boolean + default: true + apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + variables: + enabled: + description: | + Enables the apple summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + variables: + enabled: + description: | + Variable description + type: Boolean + default: false + default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + variables: + enabled: + description: | + If true, page zoom settings and default zoom feature are shown + type: Boolean + default: true + download-live-activities-feature: + description: | + Download Live Activities Feature + variables: + enabled: + description: | + If true, the download live activities feature is enabled + 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: true + firefox-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + variables: + enabled: + description: | + Enables the feature. + 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. + type: Map + 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. + 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 + hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + variables: + enabled: + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings + type: Boolean + default: true + homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + variables: + enabled: + description: | + If true, enables the feature + type: Boolean + default: true + homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + variables: + bookmarks-section-default: + description: | + If true, enables the bookmarks homepage section by default + type: Boolean + default: false + jbi-section-default: + description: | + If true, enables the jump back in homepage section by default + type: Boolean + default: false + search-bar: + description: | + If true, enables the search bar feature on homepage for users. + type: Boolean + default: false + hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + variables: + enabled: + description: | + Enables the hosted summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + menu-refactor-feature: + description: | + Controls the menu refactor feature + variables: + enabled: + description: | + Controls which menu users will see + type: Boolean + default: true + menu-default-browser-banner: + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + type: Boolean + default: true + menu-redesign-hint: + description: | + If true, enables the menu contextual hint for menu redesign. + type: Boolean + default: true + messaging: + description: | + The in-app messaging system + 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 + 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_SETTINGS_APP_ICON: ://deep-link?url=settings/app-icon + 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 + OPEN_SHARE_SHEET: ://share-sheet + string-alias: ActionName + message-under-experiment: + description: 'Deprecated. Please use "experiment": "{experiment}" instead.' + type: Option + default: null + messages: + description: | + A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData. + type: Map + default: + 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. + type: Map + 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. + type: Map + 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. + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + no_internet_connection_error: + description: | + This feature is for managing the roll out of the no interet connection native error page feature + type: Boolean + default: false + other-error-pages: + description: | + This feature is for managing the roll out of other native error pages + type: Boolean + default: false + onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + variables: + cards: + description: | + The list of available cards for onboarding. + type: Map + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + 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 + welcome-modern: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v140 + body: Onboarding/Onboarding.Modern.Welcome.Description.v140 + image: trackers + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatementA.v140 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v140 + 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 + uiVariant: modern + sign-to-sync-modern: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v140 + body: Onboarding/Onboarding.Modern.Sync.Description.v140 + image: sync-with-icons + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v140 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v140 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-toolbar-modern: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v140 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-theme-modern: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Customization.Theme.Title.v143 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + 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 + uiVariant: modern + welcome-modern-japan: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v145 + body: Onboarding/Onboarding.Modern.Welcome.Description.v145 + image: trackers-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatmentA.v145 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v145 + 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 + uiVariant: japan + sign-to-sync-modern-japan: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v145 + body: Onboarding/Onboarding.Modern.Sync.Description.v145 + image: sync-with-icons-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v145 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v145 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-toolbar-modern-japan: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Toolbar.Description.v145 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v145 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v145 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-theme-modern-japan: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.Customization.Theme.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Theme.Description.v145 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Theme.Automatic.v145 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.Customization.Theme.Light.v145 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.Customization.Theme.Dark.v145 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + welcome-brand-refresh: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Title.v148.v2 + body: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Description.v148 + image: trackers-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.ActionTreatmentA.v148 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Skip.v148 + 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 + uiVariant: brandRefresh + customization-toolbar-brand-refresh: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Description.v148 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + customization-theme-brand-refresh: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Description.v148 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Automatic.v148 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Light.v148 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Dark.v148 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + sign-to-sync-brand-refresh: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Description.v148 + image: sync-with-icons-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.SignIn.Action.v148 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Skip.Action.v148 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + 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. + type: Map + 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. + type: Boolean + default: true + enable-modern-ui: + description: | + Toggle between legacy (false) and modern (true) UI variants. + type: Boolean + default: false + should-use-brand-refresh-configuration: + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + type: Boolean + default: false + should-use-japan-configuration: + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. + type: Boolean + default: false + privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + variables: + enabled: + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions + type: Boolean + default: false + recent-searches-feature: + description: | + Enables recent searches. + variables: + enabled: + description: | + Whether or not to enable recent searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: false + search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + search-highlights: false + use-page-content: false + sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + variables: + enabled: + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + type: Boolean + default: false + isTreatmentA: + description: | + If true, shares the treatment A text. If false, shares the treatment B text. + 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 + 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. + type: Option + 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. + type: Option + default: null + 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. + type: Option + default: text-excerpt + start-at-home-feature: + description: This feature is for experimenting with opening screen + variables: + setting: + description: This property provides a default setting for the start at home feature + type: StartAtHome + default: afterFourHours + tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + variables: + enabled: + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll + type: Boolean + default: false + tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + variables: + enabled: + description: | + If true, enables the tab tray UI experiments. + type: Boolean + default: true + translucency: + description: | + If true, enables translucency for tab tray actions at the bottom. + type: Boolean + default: false + toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: true + layout: + description: | + The type of layout of the toolbars. + type: Option + default: version1 + middle_button_customization: + description: | + Enables the middle button customization for navigation toolbar. + type: Boolean + default: true + minimal_address_bar: + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + type: Boolean + default: true + navigation_hint: + description: | + If true, enables the navigation contextual hint. + type: Boolean + default: true + one_tap_new_tab: + description: | + If true, enables the one tap new tab feature for users. + type: Boolean + default: true + swiping_tabs: + description: | + Enables swipe gestures to switch between browser tabs. + type: Boolean + default: true + toolbar_update_hint: + description: | + If true, enables the toolbar update contextual hint. + type: Boolean + default: false + translucency: + description: | + Enables translucency for toolbars. + type: Boolean + default: true + translucency-refactor: + description: | + Enables translucency refactor for toolbars. + type: Boolean + default: false + unified_search: + description: | + Enables the unified search feature. + type: Boolean + default: false + tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + variables: + status: + description: | + Enables the feature + type: Boolean + default: true + tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + variables: + content-option: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + type: TermsOfUsePromptContentOption + default: value-0 + enable-drag-to-dismiss: + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + type: Boolean + default: true + max-reminders-count: + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + type: Int + default: 2 + status: + description: | + Enables the feature + type: Boolean + default: false + tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + variables: + enabled: + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not + type: Boolean + default: true + translations-feature: + description: | + Enables translations feature. + variables: + enabled: + description: | + Whether or not to enable translations feature. + type: Boolean + default: false + trending-searches-feature: + description: | + Enables trending searches. + variables: + enabled: + description: | + Whether or not to enable trending searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + updated-password-manager-feature: + description: | + This property determines if we use the updated password manager or the legacy one. + variables: + status: + description: If true, firefox will use the the updated password manager. + type: Boolean + default: false + voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false + web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false +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. + 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. + 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 + variants: + customize-firefox: + description: | + Corresponding to the fox window image + notifications: + description: | + Corresponding to the notifications image + notifications-ctd: + description: | + Corresponding to the notifications image for CTD + search-widget: + description: | + Corresponding to the fox search widget image + set-default-steps: + description: | + Corresponding to the set to default steps image + set-to-dock: + description: | + Corresponding to the set to dock image + sync-devices: + description: | + Corresponding to the sync-devices image + sync-devices-ctd: + description: | + Corresponding to the sync image for CTD + sync-with-icons: + description: | + Corresponding to the sync-devices image + sync-with-icons-brand-refresh: + description: | + Corresponding to the sync-with-icons image for Brand Refresh variant (different from Japan variant) + sync-with-icons-japan: + description: | + Corresponding to the sync-with-icons image for Japan variant + themeing: + description: | + Corresponding to the fox world image + toolbar: + description: | + Corresponding to the fox world image + trackers: + description: | + Corresponding to the trackers image + trackers-brand-refresh: + description: | + Corresponding to the trackers image for Brand Refresh variant (does not contain Japanese text, different from Japan variant) + trackers-japan: + description: | + Corresponding to the trackers image for Japan variant (contains Japanese text) + welcome-ctd: + description: | + Corresponding to the welcome image for CTD + welcome-globe: + description: | + Corresponding to the fox world image + NimbusOnboardingMultipleChoiceButtonImage: + description: | + The identifiers for the different images available for multiple choice buttons in onboarding + variants: + theme-dark: + description: | + Corresponding to the dark theme + theme-dark-japan: + description: | + Corresponding to the dark theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-light: + description: | + Corresponding to the light theme + theme-light-japan: + description: | + Corresponding to the light theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-system: + description: | + Corresponding to the system theme + theme-system-japan: + description: | + Corresponding to the system theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-bottom: + description: | + Corresponding to the toolbar on the bottom + toolbar-bottom-japan: + description: | + Corresponding to the toolbar on the bottom image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-top: + description: | + Corresponding to the toolbar on top + toolbar-top-japan: + description: | + Corresponding to the toolbar on top image for Japan variant. Also used by Brand Refresh variant as the images are identical. + OnboardingActions: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + end-onboarding: + description: | + Will end the onboarding on a set card + forward-one-card: + description: | + Will take the user to the next card + forward-three-card: + description: | + Will take the user to the next card + forward-two-card: + description: | + Will take the user to the next card + open-instructions-popup: + description: | + Will open up a popup with instructions for something + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + read-privacy-policy: + description: | + Will open a webview where the user can read the privacy policy + request-notifications: + description: | + Will request to allow notifications from the user + set-default-browser: + description: | + Will send the user to settings to set Firefox as their default browser and advance to next card + sync-sign-in: + description: | + Will take the user to the sync sign in flow + OnboardingCardType: + description: | + The identifiers for the different types of onboarding cards. + variants: + basic: + description: | + Corresponding to basic info onboarding cards + multiple-choice: + description: | + Corresponding to onboarding cards with multiple choice buttons + OnboardingInstructionsPopupActions: + description: | + The identifiers for the different actions available for the insturction card in onboarding + variants: + dismiss: + description: | + Will dismiss the popup + dismiss-and-next-card: + description: | + Will dismiss the popup and move to the next card + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + OnboardingMultipleChoiceAction: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + theme-dark: + description: | + Will will set the theme to dark mode + theme-light: + description: | + Will set the theme to light mode + theme-system-default: + description: | + Will set the theme to use the system theme + toolbar-bottom: + description: | + Will set the toolbar on the bottom + toolbar-top: + description: | + Will set the toolbar on the top + OnboardingType: + description: | + The identifiers for the different types of onboarding cards. + variants: + fresh-install: + description: | + Corresponding to onboarding cards that are for new users + upgrade: + description: | + Corresponding to onboarding cards that are for users who have updated + OnboardingVariant: + description: | + Which UI style this onboarding card is designed for. + variants: + brandRefresh: + description: Use the brand refresh onboarding UI with v148 strings. + japan: + description: Use the Japan-specific onboarding UI with localized assets. + legacy: + description: Use the existing (legacy) onboarding UI. + modern: + description: Use the new (modern) onboarding UI. + 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 + StartAtHome: + description: The option for what screen to open the app to + variants: + afterFourHours: + description: Starts the app at the homepage after four hours of inactivity, otherwise starts the app at the most recently viewed tab. + always: + description: Starts the app at the homepage. + disabled: + description: Starts the app at the most recently viewed tab. + 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. + TermsOfUsePromptContentOption: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + variants: + value-0: + description: | + Uses the current defaults: + - Title: "We've got an update" + - Learn more: "Please take a moment to review and accept. Learn more." + value-1: + description: | + Uses the following copy: + - Title: "Terms of Use" + - Learn more: "You can learn more here." + value-2: + description: | + Uses the following copy: + - Title: "A note from Firefox" + - Learn more: "You can learn more here." + ToolbarLayoutType: + description: The type of toolbar layout. + variants: + version1: + description: Shows the add new tab, menu and tabs button in the navigation toolbar. The share button is displayed in the address toolbar. + version2: + description: Like version1 but the menu and tabs buttons are inverted. +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 + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: 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. + fields: + action: + description: | + The name of a deeplink URL to be opened if the button is clicked. + type: Option + default: null + action-params: + description: Query parameters appended to the deeplink action URL + type: Map + default: {} + button-label: + description: | + The text on the button. If no text is present, the whole message is clickable. + type: Option + default: null + 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. + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: null + 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 + default: null + style: + description: | + The style as described in a `StyleData` from the styles table. + 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 + default: null + 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. + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: | + Attributes relating to microsurvey messaging. + 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 + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: null + NimbusOnboardingButton: + description: | + A group of properties describing the attributes of a card. + fields: + action: + description: | + The action the button should take. The default for this will be "forward-one-card" + type: OnboardingActions + default: forward-one-card + title: + description: | + The text of the button title. This should never be defaulted. + 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. + fields: + primary: + description: | + The primary button for the card. This must exist. + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: | + A secondary, optional, button for the card. + type: Option + default: null + NimbusOnboardingCardData: + description: | + A group of properties describing the attributes of a card. + fields: + body: + description: | + The body text dispalyed on the card, in less prominent text. This should never be defaulted. + type: Text + default: '' + buttons: + description: | + The set of buttons associated with the card. + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: null + 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. + 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`. + type: List + default: [] + image: + description: | + The image that should be dispalyed on the card. + 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 + type: Option + default: null + link: + description: | + The object describing the link button for a card. If left empty, the card will have no link. + type: Option + default: null + multiple-choice-buttons: + description: | + A list of multiple choice buttons that the card will display + type: List + 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. + 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. + 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. + type: List + default: [] + title: + description: | + The title displayed on the card, in prominent, bolded text. This should never be defaulted. + type: Text + default: '' + uiVariant: + description: | + If set, this card will only be shown in the specified UI variant. If null, it will appear in both legacy and modern UIs. + type: Option + default: null + NimbusOnboardingInstructionPopup: + description: | + The object outlining the content of the instruction card. + fields: + button-action: + description: | + The action the button should have. Default is `dismiss-and-next-card` + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: | + The title the button should have. This should never be defaulted. + type: Text + default: '' + instructions: + description: | + A list of instructions, either as free text, or as Text identifiers. + type: List + default: [] + title: + description: | + The text of the popup. This should never be defaulted. + type: Text + default: '' + NimbusOnboardingLink: + description: | + A group of properties describing the attributes for the active link on a card + fields: + title: + description: | + The text of the link title. + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: | + The url that the link will lead to. + 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 + fields: + action: + description: | + The action the button should take. The default for this will be "theme-system-default" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: | + The text of the button title. This should never be defaulted. + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: | + The text of the button title. This should never be defaulted. + 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 + StyleData: + description: | + A group of properities (predominantly visual) to the describe style of the message. + fields: + max-display-count: + description: | + How many sessions will this message be shown to the user before it is expired. + type: Int + default: 5 + priority: + description: | + The importance of this message. 0 is not very important, 100 is very important. + type: Int + default: 50 diff --git a/experimenter/experimenter/features/manifests/ios/v147.3.1/developer.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.3.1/developer.fml.yaml new file mode 100644 index 0000000000..cf2e116177 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.3.1/developer.fml.yaml @@ -0,0 +1,1644 @@ +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: +- developer +features: + 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: true + address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + variables: + status: + description: If true, we will show the new address bar menu entry + type: Boolean + default: true + app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + variables: + funIconsEnabled: + description: | + Controls whether users see the fun icons in the app icon settings. + type: Boolean + default: true + appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + variables: + status: + description: If true, we will show the new appearance menu entry + type: Boolean + default: true + apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + variables: + enabled: + description: | + Enables the apple summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + variables: + enabled: + description: | + Variable description + type: Boolean + default: false + default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + variables: + enabled: + description: | + If true, page zoom settings and default zoom feature are shown + type: Boolean + default: true + download-live-activities-feature: + description: | + Download Live Activities Feature + variables: + enabled: + description: | + If true, the download live activities feature is enabled + 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: true + firefox-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: true + 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. + type: Map + 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. + type: Boolean + default: true + 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 + hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + variables: + enabled: + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings + type: Boolean + default: true + homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + variables: + enabled: + description: | + If true, enables the feature + type: Boolean + default: true + homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + variables: + bookmarks-section-default: + description: | + If true, enables the bookmarks homepage section by default + type: Boolean + default: false + jbi-section-default: + description: | + If true, enables the jump back in homepage section by default + type: Boolean + default: false + search-bar: + description: | + If true, enables the search bar feature on homepage for users. + type: Boolean + default: false + hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + variables: + enabled: + description: | + Enables the hosted summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + menu-refactor-feature: + description: | + Controls the menu refactor feature + variables: + enabled: + description: | + Controls which menu users will see + type: Boolean + default: true + menu-default-browser-banner: + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + type: Boolean + default: true + menu-redesign-hint: + description: | + If true, enables the menu contextual hint for menu redesign. + type: Boolean + default: true + messaging: + description: | + The in-app messaging system + 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 + 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_SETTINGS_APP_ICON: ://deep-link?url=settings/app-icon + 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 + OPEN_SHARE_SHEET: ://share-sheet + string-alias: ActionName + message-under-experiment: + description: 'Deprecated. Please use "experiment": "{experiment}" instead.' + type: Option + default: null + messages: + description: | + A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData. + type: Map + default: + 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 + survey-surface-message: + surface: survey + style: SURVEY + trigger-if-all: + - NEVER + text: ResearchSurface/Body.Text.v112 + button-label: ResearchSurface/PrimaryButton.Label.v112 + action: OPEN_URL + action-params: + url: https://www.macrumors.com + 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. + type: Map + 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. + type: Map + 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. + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: true + native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: true + no_internet_connection_error: + description: | + This feature is for managing the roll out of the no interet connection native error page feature + type: Boolean + default: true + other-error-pages: + description: | + This feature is for managing the roll out of other native error pages + type: Boolean + default: false + onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + variables: + cards: + description: | + The list of available cards for onboarding. + type: Map + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + 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 + welcome-modern: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v140 + body: Onboarding/Onboarding.Modern.Welcome.Description.v140 + image: trackers + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatementA.v140 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v140 + 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 + uiVariant: modern + sign-to-sync-modern: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v140 + body: Onboarding/Onboarding.Modern.Sync.Description.v140 + image: sync-with-icons + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v140 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v140 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-toolbar-modern: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v140 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-theme-modern: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Customization.Theme.Title.v143 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + 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 + uiVariant: modern + welcome-modern-japan: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v145 + body: Onboarding/Onboarding.Modern.Welcome.Description.v145 + image: trackers-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatmentA.v145 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v145 + 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 + uiVariant: japan + sign-to-sync-modern-japan: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v145 + body: Onboarding/Onboarding.Modern.Sync.Description.v145 + image: sync-with-icons-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v145 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v145 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-toolbar-modern-japan: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Toolbar.Description.v145 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v145 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v145 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-theme-modern-japan: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.Customization.Theme.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Theme.Description.v145 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Theme.Automatic.v145 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.Customization.Theme.Light.v145 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.Customization.Theme.Dark.v145 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + welcome-brand-refresh: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Title.v148.v2 + body: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Description.v148 + image: trackers-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.ActionTreatmentA.v148 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Skip.v148 + 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 + uiVariant: brandRefresh + customization-toolbar-brand-refresh: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Description.v148 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + customization-theme-brand-refresh: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Description.v148 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Automatic.v148 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Light.v148 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Dark.v148 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + sign-to-sync-brand-refresh: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Description.v148 + image: sync-with-icons-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.SignIn.Action.v148 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Skip.Action.v148 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + 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. + type: Map + 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. + type: Boolean + default: true + enable-modern-ui: + description: | + Toggle between legacy (false) and modern (true) UI variants. + type: Boolean + default: false + should-use-brand-refresh-configuration: + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + type: Boolean + default: false + should-use-japan-configuration: + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. + type: Boolean + default: false + privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + variables: + enabled: + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions + type: Boolean + default: true + recent-searches-feature: + description: | + Enables recent searches. + variables: + enabled: + description: | + Whether or not to enable recent searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: false + search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + search-highlights: false + use-page-content: false + sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + variables: + enabled: + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + type: Boolean + default: true + isTreatmentA: + description: | + If true, shares the treatment A text. If false, shares the treatment B text. + 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: 6000 + 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: true + 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. + type: Option + default: screenshot + 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. + type: Option + default: null + 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. + type: Option + default: text-excerpt + start-at-home-feature: + description: This feature is for experimenting with opening screen + variables: + setting: + description: This property provides a default setting for the start at home feature + type: StartAtHome + default: afterFourHours + tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + variables: + enabled: + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll + type: Boolean + default: false + tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + variables: + enabled: + description: | + If true, enables the tab tray UI experiments. + type: Boolean + default: true + translucency: + description: | + If true, enables translucency for tab tray actions at the bottom. + type: Boolean + default: true + toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: true + layout: + description: | + The type of layout of the toolbars. + type: Option + default: version1 + middle_button_customization: + description: | + Enables the middle button customization for navigation toolbar. + type: Boolean + default: true + minimal_address_bar: + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + type: Boolean + default: true + navigation_hint: + description: | + If true, enables the navigation contextual hint. + type: Boolean + default: true + one_tap_new_tab: + description: | + If true, enables the one tap new tab feature for users. + type: Boolean + default: true + swiping_tabs: + description: | + Enables swipe gestures to switch between browser tabs. + type: Boolean + default: true + toolbar_update_hint: + description: | + If true, enables the toolbar update contextual hint. + type: Boolean + default: false + translucency: + description: | + Enables translucency for toolbars. + type: Boolean + default: true + translucency-refactor: + description: | + Enables translucency refactor for toolbars. + type: Boolean + default: false + unified_search: + description: | + Enables the unified search feature. + type: Boolean + default: false + tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + variables: + status: + description: | + Enables the feature + type: Boolean + default: true + tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + variables: + content-option: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + type: TermsOfUsePromptContentOption + default: value-0 + enable-drag-to-dismiss: + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + type: Boolean + default: true + max-reminders-count: + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + type: Int + default: 2 + status: + description: | + Enables the feature + type: Boolean + default: false + tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + variables: + enabled: + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not + type: Boolean + default: true + translations-feature: + description: | + Enables translations feature. + variables: + enabled: + description: | + Whether or not to enable translations feature. + type: Boolean + default: false + trending-searches-feature: + description: | + Enables trending searches. + variables: + enabled: + description: | + Whether or not to enable trending searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + updated-password-manager-feature: + description: | + This property determines if we use the updated password manager or the legacy one. + variables: + status: + description: If true, firefox will use the the updated password manager. + type: Boolean + default: false + voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false + web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false +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. + 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. + 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 + variants: + customize-firefox: + description: | + Corresponding to the fox window image + notifications: + description: | + Corresponding to the notifications image + notifications-ctd: + description: | + Corresponding to the notifications image for CTD + search-widget: + description: | + Corresponding to the fox search widget image + set-default-steps: + description: | + Corresponding to the set to default steps image + set-to-dock: + description: | + Corresponding to the set to dock image + sync-devices: + description: | + Corresponding to the sync-devices image + sync-devices-ctd: + description: | + Corresponding to the sync image for CTD + sync-with-icons: + description: | + Corresponding to the sync-devices image + sync-with-icons-brand-refresh: + description: | + Corresponding to the sync-with-icons image for Brand Refresh variant (different from Japan variant) + sync-with-icons-japan: + description: | + Corresponding to the sync-with-icons image for Japan variant + themeing: + description: | + Corresponding to the fox world image + toolbar: + description: | + Corresponding to the fox world image + trackers: + description: | + Corresponding to the trackers image + trackers-brand-refresh: + description: | + Corresponding to the trackers image for Brand Refresh variant (does not contain Japanese text, different from Japan variant) + trackers-japan: + description: | + Corresponding to the trackers image for Japan variant (contains Japanese text) + welcome-ctd: + description: | + Corresponding to the welcome image for CTD + welcome-globe: + description: | + Corresponding to the fox world image + NimbusOnboardingMultipleChoiceButtonImage: + description: | + The identifiers for the different images available for multiple choice buttons in onboarding + variants: + theme-dark: + description: | + Corresponding to the dark theme + theme-dark-japan: + description: | + Corresponding to the dark theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-light: + description: | + Corresponding to the light theme + theme-light-japan: + description: | + Corresponding to the light theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-system: + description: | + Corresponding to the system theme + theme-system-japan: + description: | + Corresponding to the system theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-bottom: + description: | + Corresponding to the toolbar on the bottom + toolbar-bottom-japan: + description: | + Corresponding to the toolbar on the bottom image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-top: + description: | + Corresponding to the toolbar on top + toolbar-top-japan: + description: | + Corresponding to the toolbar on top image for Japan variant. Also used by Brand Refresh variant as the images are identical. + OnboardingActions: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + end-onboarding: + description: | + Will end the onboarding on a set card + forward-one-card: + description: | + Will take the user to the next card + forward-three-card: + description: | + Will take the user to the next card + forward-two-card: + description: | + Will take the user to the next card + open-instructions-popup: + description: | + Will open up a popup with instructions for something + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + read-privacy-policy: + description: | + Will open a webview where the user can read the privacy policy + request-notifications: + description: | + Will request to allow notifications from the user + set-default-browser: + description: | + Will send the user to settings to set Firefox as their default browser and advance to next card + sync-sign-in: + description: | + Will take the user to the sync sign in flow + OnboardingCardType: + description: | + The identifiers for the different types of onboarding cards. + variants: + basic: + description: | + Corresponding to basic info onboarding cards + multiple-choice: + description: | + Corresponding to onboarding cards with multiple choice buttons + OnboardingInstructionsPopupActions: + description: | + The identifiers for the different actions available for the insturction card in onboarding + variants: + dismiss: + description: | + Will dismiss the popup + dismiss-and-next-card: + description: | + Will dismiss the popup and move to the next card + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + OnboardingMultipleChoiceAction: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + theme-dark: + description: | + Will will set the theme to dark mode + theme-light: + description: | + Will set the theme to light mode + theme-system-default: + description: | + Will set the theme to use the system theme + toolbar-bottom: + description: | + Will set the toolbar on the bottom + toolbar-top: + description: | + Will set the toolbar on the top + OnboardingType: + description: | + The identifiers for the different types of onboarding cards. + variants: + fresh-install: + description: | + Corresponding to onboarding cards that are for new users + upgrade: + description: | + Corresponding to onboarding cards that are for users who have updated + OnboardingVariant: + description: | + Which UI style this onboarding card is designed for. + variants: + brandRefresh: + description: Use the brand refresh onboarding UI with v148 strings. + japan: + description: Use the Japan-specific onboarding UI with localized assets. + legacy: + description: Use the existing (legacy) onboarding UI. + modern: + description: Use the new (modern) onboarding UI. + 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 + StartAtHome: + description: The option for what screen to open the app to + variants: + afterFourHours: + description: Starts the app at the homepage after four hours of inactivity, otherwise starts the app at the most recently viewed tab. + always: + description: Starts the app at the homepage. + disabled: + description: Starts the app at the most recently viewed tab. + 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. + TermsOfUsePromptContentOption: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + variants: + value-0: + description: | + Uses the current defaults: + - Title: "We've got an update" + - Learn more: "Please take a moment to review and accept. Learn more." + value-1: + description: | + Uses the following copy: + - Title: "Terms of Use" + - Learn more: "You can learn more here." + value-2: + description: | + Uses the following copy: + - Title: "A note from Firefox" + - Learn more: "You can learn more here." + ToolbarLayoutType: + description: The type of toolbar layout. + variants: + version1: + description: Shows the add new tab, menu and tabs button in the navigation toolbar. The share button is displayed in the address toolbar. + version2: + description: Like version1 but the menu and tabs buttons are inverted. +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 + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: 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. + fields: + action: + description: | + The name of a deeplink URL to be opened if the button is clicked. + type: Option + default: null + action-params: + description: Query parameters appended to the deeplink action URL + type: Map + default: {} + button-label: + description: | + The text on the button. If no text is present, the whole message is clickable. + type: Option + default: null + 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. + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: null + 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 + default: null + style: + description: | + The style as described in a `StyleData` from the styles table. + 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 + default: null + 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. + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: | + Attributes relating to microsurvey messaging. + 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 + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: null + NimbusOnboardingButton: + description: | + A group of properties describing the attributes of a card. + fields: + action: + description: | + The action the button should take. The default for this will be "forward-one-card" + type: OnboardingActions + default: forward-one-card + title: + description: | + The text of the button title. This should never be defaulted. + 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. + fields: + primary: + description: | + The primary button for the card. This must exist. + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: | + A secondary, optional, button for the card. + type: Option + default: null + NimbusOnboardingCardData: + description: | + A group of properties describing the attributes of a card. + fields: + body: + description: | + The body text dispalyed on the card, in less prominent text. This should never be defaulted. + type: Text + default: '' + buttons: + description: | + The set of buttons associated with the card. + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: null + 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. + 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`. + type: List + default: [] + image: + description: | + The image that should be dispalyed on the card. + 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 + type: Option + default: null + link: + description: | + The object describing the link button for a card. If left empty, the card will have no link. + type: Option + default: null + multiple-choice-buttons: + description: | + A list of multiple choice buttons that the card will display + type: List + 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. + 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. + 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. + type: List + default: [] + title: + description: | + The title displayed on the card, in prominent, bolded text. This should never be defaulted. + type: Text + default: '' + uiVariant: + description: | + If set, this card will only be shown in the specified UI variant. If null, it will appear in both legacy and modern UIs. + type: Option + default: null + NimbusOnboardingInstructionPopup: + description: | + The object outlining the content of the instruction card. + fields: + button-action: + description: | + The action the button should have. Default is `dismiss-and-next-card` + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: | + The title the button should have. This should never be defaulted. + type: Text + default: '' + instructions: + description: | + A list of instructions, either as free text, or as Text identifiers. + type: List + default: [] + title: + description: | + The text of the popup. This should never be defaulted. + type: Text + default: '' + NimbusOnboardingLink: + description: | + A group of properties describing the attributes for the active link on a card + fields: + title: + description: | + The text of the link title. + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: | + The url that the link will lead to. + 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 + fields: + action: + description: | + The action the button should take. The default for this will be "theme-system-default" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: | + The text of the button title. This should never be defaulted. + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: | + The text of the button title. This should never be defaulted. + 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 + StyleData: + description: | + A group of properities (predominantly visual) to the describe style of the message. + fields: + max-display-count: + description: | + How many sessions will this message be shown to the user before it is expired. + type: Int + default: 5 + priority: + description: | + The importance of this message. 0 is not very important, 100 is very important. + type: Int + default: 50 diff --git a/experimenter/experimenter/features/manifests/ios/v147.3.1/experimenter.yaml b/experimenter/experimenter/features/manifests/ios/v147.3.1/experimenter.yaml new file mode 100644 index 0000000000..2ccaf808ed --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.3.1/experimenter.yaml @@ -0,0 +1,561 @@ +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 +address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: If true, we will show the new address bar menu entry +app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + hasExposure: true + exposureDescription: '' + variables: + funIconsEnabled: + type: boolean + description: | + Controls whether users see the fun icons in the app icon settings. +appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: If true, we will show the new appearance menu entry +apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the apple summarizer feature. + shakeGesture: + type: boolean + description: | + Enables the shake gesture for the summarizer feature. + toolbarEntrypoint: + type: boolean + description: | + Enables the toolbar entrypoint for the summarizer feature. +deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Variable description +default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, page zoom settings and default zoom feature are shown +download-live-activities-feature: + description: | + Download Live Activities Feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, the download live activities feature is enabled +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-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature. +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. + 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. +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 +hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings +homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, enables the feature +homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + hasExposure: true + exposureDescription: '' + variables: + bookmarks-section-default: + type: boolean + description: | + If true, enables the bookmarks homepage section by default + jbi-section-default: + type: boolean + description: | + If true, enables the jump back in homepage section by default + search-bar: + type: boolean + description: | + If true, enables the search bar feature on homepage for users. +hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the hosted summarizer feature. + shakeGesture: + type: boolean + description: | + Enables the shake gesture for the summarizer feature. + toolbarEntrypoint: + type: boolean + description: | + Enables the toolbar entrypoint for the summarizer feature. +menu-refactor-feature: + description: | + Controls the menu refactor feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Controls which menu users will see + menu-default-browser-banner: + type: boolean + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + menu-redesign-hint: + type: boolean + description: | + If true, enables the menu contextual hint for menu redesign. +messaging: + description: | + The in-app messaging system + 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. + 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. + triggers: + type: json + description: | + A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression. + ~~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. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, the feature is active. +native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, the feature is active. + no_internet_connection_error: + type: boolean + description: | + This feature is for managing the roll out of the no interet connection native error page feature + other-error-pages: + type: boolean + description: | + This feature is for managing the roll out of other native error pages +onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + hasExposure: true + exposureDescription: '' + variables: + cards: + type: json + description: | + The list of available cards for onboarding. + 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. + dismissable: + type: boolean + description: | + Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen. + enable-modern-ui: + type: boolean + description: | + Toggle between legacy (false) and modern (true) UI variants. + should-use-brand-refresh-configuration: + type: boolean + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + should-use-japan-configuration: + type: boolean + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. +privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions +recent-searches-feature: + description: | + Enables recent searches. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether or not to enable recent searches. + max-suggestions: + type: int + description: The number of maximum suggestions. +relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature +search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + hasExposure: true + exposureDescription: '' + variables: + awesome-bar: + type: json + description: Configuring the awesome bar. +sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + isTreatmentA: + type: boolean + description: | + If true, shares the treatment A text. If false, shares the treatment B text. +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. +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. + 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. + 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. +start-at-home-feature: + description: This feature is for experimenting with opening screen + hasExposure: true + exposureDescription: '' + variables: + setting: + type: string + description: This property provides a default setting for the start at home feature + enum: + - afterFourHours + - always + - disabled +tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll +tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, enables the tab tray UI experiments. + translucency: + type: boolean + description: | + If true, enables translucency for tab tray actions at the bottom. +toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature + layout: + type: string + description: | + The type of layout of the toolbars. + middle_button_customization: + type: boolean + description: | + Enables the middle button customization for navigation toolbar. + minimal_address_bar: + type: boolean + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + navigation_hint: + type: boolean + description: | + If true, enables the navigation contextual hint. + one_tap_new_tab: + type: boolean + description: | + If true, enables the one tap new tab feature for users. + swiping_tabs: + type: boolean + description: | + Enables swipe gestures to switch between browser tabs. + toolbar_update_hint: + type: boolean + description: | + If true, enables the toolbar update contextual hint. + translucency: + type: boolean + description: | + Enables translucency for toolbars. + translucency-refactor: + type: boolean + description: | + Enables translucency refactor for toolbars. + unified_search: + type: boolean + description: | + Enables the unified search feature. +tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: | + Enables the feature +tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + hasExposure: true + exposureDescription: '' + variables: + content-option: + type: string + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + enum: + - value-0 + - value-1 + - value-2 + enable-drag-to-dismiss: + type: boolean + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + max-reminders-count: + type: int + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + status: + type: boolean + description: | + Enables the feature +tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not +translations-feature: + description: | + Enables translations feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether or not to enable translations feature. +trending-searches-feature: + description: | + Enables trending searches. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether or not to enable trending searches. + max-suggestions: + type: int + description: The number of maximum suggestions. +updated-password-manager-feature: + description: | + This property determines if we use the updated password manager or the legacy one. + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: If true, firefox will use the the updated password manager. +voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature. +web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature. diff --git a/experimenter/experimenter/features/manifests/ios/v147.3.1/release.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.3.1/release.fml.yaml new file mode 100644 index 0000000000..18472e0110 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.3.1/release.fml.yaml @@ -0,0 +1,1616 @@ +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: +- release +features: + 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 + address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + variables: + status: + description: If true, we will show the new address bar menu entry + type: Boolean + default: true + app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + variables: + funIconsEnabled: + description: | + Controls whether users see the fun icons in the app icon settings. + type: Boolean + default: true + appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + variables: + status: + description: If true, we will show the new appearance menu entry + type: Boolean + default: true + apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + variables: + enabled: + description: | + Enables the apple summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + variables: + enabled: + description: | + Variable description + type: Boolean + default: false + default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + variables: + enabled: + description: | + If true, page zoom settings and default zoom feature are shown + type: Boolean + default: true + download-live-activities-feature: + description: | + Download Live Activities Feature + variables: + enabled: + description: | + If true, the download live activities feature is enabled + type: Boolean + default: false + 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: true + firefox-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + variables: + enabled: + description: | + Enables the feature. + 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. + type: Map + 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. + 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 + hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + variables: + enabled: + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings + type: Boolean + default: true + homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + variables: + enabled: + description: | + If true, enables the feature + type: Boolean + default: true + homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + variables: + bookmarks-section-default: + description: | + If true, enables the bookmarks homepage section by default + type: Boolean + default: false + jbi-section-default: + description: | + If true, enables the jump back in homepage section by default + type: Boolean + default: false + search-bar: + description: | + If true, enables the search bar feature on homepage for users. + type: Boolean + default: false + hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + variables: + enabled: + description: | + Enables the hosted summarizer feature. + type: Boolean + default: false + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: false + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: false + menu-refactor-feature: + description: | + Controls the menu refactor feature + variables: + enabled: + description: | + Controls which menu users will see + type: Boolean + default: true + menu-default-browser-banner: + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + type: Boolean + default: true + menu-redesign-hint: + description: | + If true, enables the menu contextual hint for menu redesign. + type: Boolean + default: true + messaging: + description: | + The in-app messaging system + 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 + 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_SETTINGS_APP_ICON: ://deep-link?url=settings/app-icon + 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 + OPEN_SHARE_SHEET: ://share-sheet + string-alias: ActionName + message-under-experiment: + description: 'Deprecated. Please use "experiment": "{experiment}" instead.' + type: Option + default: null + messages: + description: | + A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData. + type: Map + default: {} + 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. + type: Map + 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. + type: Map + 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. + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + no_internet_connection_error: + description: | + This feature is for managing the roll out of the no interet connection native error page feature + type: Boolean + default: false + other-error-pages: + description: | + This feature is for managing the roll out of other native error pages + type: Boolean + default: false + onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + variables: + cards: + description: | + The list of available cards for onboarding. + type: Map + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + 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 + welcome-modern: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v140 + body: Onboarding/Onboarding.Modern.Welcome.Description.v140 + image: trackers + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatementA.v140 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v140 + 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 + uiVariant: modern + sign-to-sync-modern: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v140 + body: Onboarding/Onboarding.Modern.Sync.Description.v140 + image: sync-with-icons + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v140 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v140 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-toolbar-modern: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v140 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-theme-modern: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Customization.Theme.Title.v143 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + 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 + uiVariant: modern + welcome-modern-japan: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v145 + body: Onboarding/Onboarding.Modern.Welcome.Description.v145 + image: trackers-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatmentA.v145 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v145 + 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 + uiVariant: japan + sign-to-sync-modern-japan: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v145 + body: Onboarding/Onboarding.Modern.Sync.Description.v145 + image: sync-with-icons-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v145 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v145 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-toolbar-modern-japan: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Toolbar.Description.v145 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v145 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v145 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-theme-modern-japan: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.Customization.Theme.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Theme.Description.v145 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Theme.Automatic.v145 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.Customization.Theme.Light.v145 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.Customization.Theme.Dark.v145 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + welcome-brand-refresh: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Title.v148.v2 + body: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Description.v148 + image: trackers-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.ActionTreatmentA.v148 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Skip.v148 + 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 + uiVariant: brandRefresh + customization-toolbar-brand-refresh: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Description.v148 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + customization-theme-brand-refresh: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Description.v148 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Automatic.v148 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Light.v148 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Dark.v148 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + sign-to-sync-brand-refresh: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Description.v148 + image: sync-with-icons-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.SignIn.Action.v148 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Skip.Action.v148 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + 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. + type: Map + 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. + type: Boolean + default: true + enable-modern-ui: + description: | + Toggle between legacy (false) and modern (true) UI variants. + type: Boolean + default: false + should-use-brand-refresh-configuration: + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + type: Boolean + default: false + should-use-japan-configuration: + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. + type: Boolean + default: false + privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + variables: + enabled: + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions + type: Boolean + default: false + recent-searches-feature: + description: | + Enables recent searches. + variables: + enabled: + description: | + Whether or not to enable recent searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: false + search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + search-highlights: false + use-page-content: false + sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + variables: + enabled: + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + type: Boolean + default: false + isTreatmentA: + description: | + If true, shares the treatment A text. If false, shares the treatment B text. + 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 + 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. + type: Option + 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. + type: Option + default: null + 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. + type: Option + default: text-excerpt + start-at-home-feature: + description: This feature is for experimenting with opening screen + variables: + setting: + description: This property provides a default setting for the start at home feature + type: StartAtHome + default: afterFourHours + tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + variables: + enabled: + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll + type: Boolean + default: false + tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + variables: + enabled: + description: | + If true, enables the tab tray UI experiments. + type: Boolean + default: true + translucency: + description: | + If true, enables translucency for tab tray actions at the bottom. + type: Boolean + default: false + toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: true + layout: + description: | + The type of layout of the toolbars. + type: Option + default: version1 + middle_button_customization: + description: | + Enables the middle button customization for navigation toolbar. + type: Boolean + default: true + minimal_address_bar: + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + type: Boolean + default: true + navigation_hint: + description: | + If true, enables the navigation contextual hint. + type: Boolean + default: true + one_tap_new_tab: + description: | + If true, enables the one tap new tab feature for users. + type: Boolean + default: true + swiping_tabs: + description: | + Enables swipe gestures to switch between browser tabs. + type: Boolean + default: true + toolbar_update_hint: + description: | + If true, enables the toolbar update contextual hint. + type: Boolean + default: false + translucency: + description: | + Enables translucency for toolbars. + type: Boolean + default: true + translucency-refactor: + description: | + Enables translucency refactor for toolbars. + type: Boolean + default: false + unified_search: + description: | + Enables the unified search feature. + type: Boolean + default: false + tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + variables: + status: + description: | + Enables the feature + type: Boolean + default: true + tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + variables: + content-option: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + type: TermsOfUsePromptContentOption + default: value-0 + enable-drag-to-dismiss: + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + type: Boolean + default: true + max-reminders-count: + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + type: Int + default: 2 + status: + description: | + Enables the feature + type: Boolean + default: false + tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + variables: + enabled: + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not + type: Boolean + default: true + translations-feature: + description: | + Enables translations feature. + variables: + enabled: + description: | + Whether or not to enable translations feature. + type: Boolean + default: false + trending-searches-feature: + description: | + Enables trending searches. + variables: + enabled: + description: | + Whether or not to enable trending searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + updated-password-manager-feature: + description: | + This property determines if we use the updated password manager or the legacy one. + variables: + status: + description: If true, firefox will use the the updated password manager. + type: Boolean + default: false + voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false + web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false +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. + 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. + 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 + variants: + customize-firefox: + description: | + Corresponding to the fox window image + notifications: + description: | + Corresponding to the notifications image + notifications-ctd: + description: | + Corresponding to the notifications image for CTD + search-widget: + description: | + Corresponding to the fox search widget image + set-default-steps: + description: | + Corresponding to the set to default steps image + set-to-dock: + description: | + Corresponding to the set to dock image + sync-devices: + description: | + Corresponding to the sync-devices image + sync-devices-ctd: + description: | + Corresponding to the sync image for CTD + sync-with-icons: + description: | + Corresponding to the sync-devices image + sync-with-icons-brand-refresh: + description: | + Corresponding to the sync-with-icons image for Brand Refresh variant (different from Japan variant) + sync-with-icons-japan: + description: | + Corresponding to the sync-with-icons image for Japan variant + themeing: + description: | + Corresponding to the fox world image + toolbar: + description: | + Corresponding to the fox world image + trackers: + description: | + Corresponding to the trackers image + trackers-brand-refresh: + description: | + Corresponding to the trackers image for Brand Refresh variant (does not contain Japanese text, different from Japan variant) + trackers-japan: + description: | + Corresponding to the trackers image for Japan variant (contains Japanese text) + welcome-ctd: + description: | + Corresponding to the welcome image for CTD + welcome-globe: + description: | + Corresponding to the fox world image + NimbusOnboardingMultipleChoiceButtonImage: + description: | + The identifiers for the different images available for multiple choice buttons in onboarding + variants: + theme-dark: + description: | + Corresponding to the dark theme + theme-dark-japan: + description: | + Corresponding to the dark theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-light: + description: | + Corresponding to the light theme + theme-light-japan: + description: | + Corresponding to the light theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-system: + description: | + Corresponding to the system theme + theme-system-japan: + description: | + Corresponding to the system theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-bottom: + description: | + Corresponding to the toolbar on the bottom + toolbar-bottom-japan: + description: | + Corresponding to the toolbar on the bottom image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-top: + description: | + Corresponding to the toolbar on top + toolbar-top-japan: + description: | + Corresponding to the toolbar on top image for Japan variant. Also used by Brand Refresh variant as the images are identical. + OnboardingActions: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + end-onboarding: + description: | + Will end the onboarding on a set card + forward-one-card: + description: | + Will take the user to the next card + forward-three-card: + description: | + Will take the user to the next card + forward-two-card: + description: | + Will take the user to the next card + open-instructions-popup: + description: | + Will open up a popup with instructions for something + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + read-privacy-policy: + description: | + Will open a webview where the user can read the privacy policy + request-notifications: + description: | + Will request to allow notifications from the user + set-default-browser: + description: | + Will send the user to settings to set Firefox as their default browser and advance to next card + sync-sign-in: + description: | + Will take the user to the sync sign in flow + OnboardingCardType: + description: | + The identifiers for the different types of onboarding cards. + variants: + basic: + description: | + Corresponding to basic info onboarding cards + multiple-choice: + description: | + Corresponding to onboarding cards with multiple choice buttons + OnboardingInstructionsPopupActions: + description: | + The identifiers for the different actions available for the insturction card in onboarding + variants: + dismiss: + description: | + Will dismiss the popup + dismiss-and-next-card: + description: | + Will dismiss the popup and move to the next card + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + OnboardingMultipleChoiceAction: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + theme-dark: + description: | + Will will set the theme to dark mode + theme-light: + description: | + Will set the theme to light mode + theme-system-default: + description: | + Will set the theme to use the system theme + toolbar-bottom: + description: | + Will set the toolbar on the bottom + toolbar-top: + description: | + Will set the toolbar on the top + OnboardingType: + description: | + The identifiers for the different types of onboarding cards. + variants: + fresh-install: + description: | + Corresponding to onboarding cards that are for new users + upgrade: + description: | + Corresponding to onboarding cards that are for users who have updated + OnboardingVariant: + description: | + Which UI style this onboarding card is designed for. + variants: + brandRefresh: + description: Use the brand refresh onboarding UI with v148 strings. + japan: + description: Use the Japan-specific onboarding UI with localized assets. + legacy: + description: Use the existing (legacy) onboarding UI. + modern: + description: Use the new (modern) onboarding UI. + 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 + StartAtHome: + description: The option for what screen to open the app to + variants: + afterFourHours: + description: Starts the app at the homepage after four hours of inactivity, otherwise starts the app at the most recently viewed tab. + always: + description: Starts the app at the homepage. + disabled: + description: Starts the app at the most recently viewed tab. + 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. + TermsOfUsePromptContentOption: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + variants: + value-0: + description: | + Uses the current defaults: + - Title: "We've got an update" + - Learn more: "Please take a moment to review and accept. Learn more." + value-1: + description: | + Uses the following copy: + - Title: "Terms of Use" + - Learn more: "You can learn more here." + value-2: + description: | + Uses the following copy: + - Title: "A note from Firefox" + - Learn more: "You can learn more here." + ToolbarLayoutType: + description: The type of toolbar layout. + variants: + version1: + description: Shows the add new tab, menu and tabs button in the navigation toolbar. The share button is displayed in the address toolbar. + version2: + description: Like version1 but the menu and tabs buttons are inverted. +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 + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: 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. + fields: + action: + description: | + The name of a deeplink URL to be opened if the button is clicked. + type: Option + default: null + action-params: + description: Query parameters appended to the deeplink action URL + type: Map + default: {} + button-label: + description: | + The text on the button. If no text is present, the whole message is clickable. + type: Option + default: null + 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. + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: null + 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 + default: null + style: + description: | + The style as described in a `StyleData` from the styles table. + 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 + default: null + 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. + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: | + Attributes relating to microsurvey messaging. + 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 + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: null + NimbusOnboardingButton: + description: | + A group of properties describing the attributes of a card. + fields: + action: + description: | + The action the button should take. The default for this will be "forward-one-card" + type: OnboardingActions + default: forward-one-card + title: + description: | + The text of the button title. This should never be defaulted. + 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. + fields: + primary: + description: | + The primary button for the card. This must exist. + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: | + A secondary, optional, button for the card. + type: Option + default: null + NimbusOnboardingCardData: + description: | + A group of properties describing the attributes of a card. + fields: + body: + description: | + The body text dispalyed on the card, in less prominent text. This should never be defaulted. + type: Text + default: '' + buttons: + description: | + The set of buttons associated with the card. + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: null + 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. + 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`. + type: List + default: [] + image: + description: | + The image that should be dispalyed on the card. + 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 + type: Option + default: null + link: + description: | + The object describing the link button for a card. If left empty, the card will have no link. + type: Option + default: null + multiple-choice-buttons: + description: | + A list of multiple choice buttons that the card will display + type: List + 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. + 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. + 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. + type: List + default: [] + title: + description: | + The title displayed on the card, in prominent, bolded text. This should never be defaulted. + type: Text + default: '' + uiVariant: + description: | + If set, this card will only be shown in the specified UI variant. If null, it will appear in both legacy and modern UIs. + type: Option + default: null + NimbusOnboardingInstructionPopup: + description: | + The object outlining the content of the instruction card. + fields: + button-action: + description: | + The action the button should have. Default is `dismiss-and-next-card` + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: | + The title the button should have. This should never be defaulted. + type: Text + default: '' + instructions: + description: | + A list of instructions, either as free text, or as Text identifiers. + type: List + default: [] + title: + description: | + The text of the popup. This should never be defaulted. + type: Text + default: '' + NimbusOnboardingLink: + description: | + A group of properties describing the attributes for the active link on a card + fields: + title: + description: | + The text of the link title. + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: | + The url that the link will lead to. + 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 + fields: + action: + description: | + The action the button should take. The default for this will be "theme-system-default" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: | + The text of the button title. This should never be defaulted. + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: | + The text of the button title. This should never be defaulted. + 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 + StyleData: + description: | + A group of properities (predominantly visual) to the describe style of the message. + fields: + max-display-count: + description: | + How many sessions will this message be shown to the user before it is expired. + type: Int + default: 5 + priority: + description: | + The importance of this message. 0 is not very important, 100 is very important. + type: Int + default: 50 diff --git a/experimenter/experimenter/features/manifests/ios/v147.4.0/beta.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.4.0/beta.fml.yaml index bcbd029ba6..aaae313c5b 100644 --- a/experimenter/experimenter/features/manifests/ios/v147.4.0/beta.fml.yaml +++ b/experimenter/experimenter/features/manifests/ios/v147.4.0/beta.fml.yaml @@ -161,6 +161,11 @@ features: If true, enables the search bar feature on homepage for users. type: Boolean default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -1306,6 +1311,15 @@ enums: description: Use all the page as text text-excerpt: description: Only use the first paragraph + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. StartAtHome: description: The option for what screen to open the app to variants: diff --git a/experimenter/experimenter/features/manifests/ios/v147.4.0/developer.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.4.0/developer.fml.yaml index d8aadd9945..78673723e0 100644 --- a/experimenter/experimenter/features/manifests/ios/v147.4.0/developer.fml.yaml +++ b/experimenter/experimenter/features/manifests/ios/v147.4.0/developer.fml.yaml @@ -161,6 +161,11 @@ features: If true, enables the search bar feature on homepage for users. type: Boolean default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -1316,6 +1321,15 @@ enums: description: Use all the page as text text-excerpt: description: Only use the first paragraph + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. StartAtHome: description: The option for what screen to open the app to variants: diff --git a/experimenter/experimenter/features/manifests/ios/v147.4.0/experimenter.yaml b/experimenter/experimenter/features/manifests/ios/v147.4.0/experimenter.yaml index 16335392e7..24c27d8435 100644 --- a/experimenter/experimenter/features/manifests/ios/v147.4.0/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/ios/v147.4.0/experimenter.yaml @@ -160,6 +160,14 @@ homepage-redesign-feature: type: boolean description: | If true, enables the search bar feature on homepage for users. + stories-scroll-direction: + type: string + description: | + Controls the layout direction for stories on the homepage. + enum: + - baseline + - horizontal + - vertical hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. diff --git a/experimenter/experimenter/features/manifests/ios/v147.4.0/release.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.4.0/release.fml.yaml index 4e7f99a6d9..c120af23b4 100644 --- a/experimenter/experimenter/features/manifests/ios/v147.4.0/release.fml.yaml +++ b/experimenter/experimenter/features/manifests/ios/v147.4.0/release.fml.yaml @@ -161,6 +161,11 @@ features: If true, enables the search bar feature on homepage for users. type: Boolean default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline hosted-summarizer-feature: description: | This feature enables the hosted summarizer feature. @@ -1288,6 +1293,15 @@ enums: description: Use all the page as text text-excerpt: description: Only use the first paragraph + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. StartAtHome: description: The option for what screen to open the app to variants: diff --git a/experimenter/experimenter/features/manifests/ios/v147.5.0/beta.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.5.0/beta.fml.yaml new file mode 100644 index 0000000000..a0e1065f83 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.5.0/beta.fml.yaml @@ -0,0 +1,1647 @@ +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: +- beta +features: + 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 + address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + variables: + status: + description: If true, we will show the new address bar menu entry + type: Boolean + default: true + app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + variables: + funIconsEnabled: + description: | + Controls whether users see the fun icons in the app icon settings. + type: Boolean + default: true + appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + variables: + status: + description: If true, we will show the new appearance menu entry + type: Boolean + default: true + apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + variables: + enabled: + description: | + Enables the apple summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + variables: + enabled: + description: | + Variable description + type: Boolean + default: false + default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + variables: + enabled: + description: | + If true, page zoom settings and default zoom feature are shown + type: Boolean + default: true + download-live-activities-feature: + description: | + Download Live Activities Feature + variables: + enabled: + description: | + If true, the download live activities feature is enabled + 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: true + firefox-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + variables: + enabled: + description: | + Enables the feature. + 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. + type: Map + 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. + 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 + hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + variables: + enabled: + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings + type: Boolean + default: true + homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + variables: + enabled: + description: | + If true, enables the feature + type: Boolean + default: true + homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + variables: + bookmarks-section-default: + description: | + If true, enables the bookmarks homepage section by default + type: Boolean + default: false + jbi-section-default: + description: | + If true, enables the jump back in homepage section by default + type: Boolean + default: false + search-bar: + description: | + If true, enables the search bar feature on homepage for users. + type: Boolean + default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline + hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + variables: + enabled: + description: | + Enables the hosted summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + menu-refactor-feature: + description: | + Controls the menu refactor feature + variables: + enabled: + description: | + Controls which menu users will see + type: Boolean + default: true + menu-default-browser-banner: + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + type: Boolean + default: true + menu-redesign-hint: + description: | + If true, enables the menu contextual hint for menu redesign. + type: Boolean + default: true + messaging: + description: | + The in-app messaging system + 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 + 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_SETTINGS_APP_ICON: ://deep-link?url=settings/app-icon + 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 + OPEN_SHARE_SHEET: ://share-sheet + string-alias: ActionName + message-under-experiment: + description: 'Deprecated. Please use "experiment": "{experiment}" instead.' + type: Option + default: null + messages: + description: | + A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData. + type: Map + default: + 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. + type: Map + 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. + type: Map + 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. + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + no_internet_connection_error: + description: | + This feature is for managing the roll out of the no interet connection native error page feature + type: Boolean + default: false + other-error-pages: + description: | + This feature is for managing the roll out of other native error pages + type: Boolean + default: false + onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + variables: + cards: + description: | + The list of available cards for onboarding. + type: Map + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + 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 + welcome-modern: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v140 + body: Onboarding/Onboarding.Modern.Welcome.Description.v140 + image: trackers + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatementA.v140 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v140 + 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 + uiVariant: modern + sign-to-sync-modern: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v140 + body: Onboarding/Onboarding.Modern.Sync.Description.v140 + image: sync-with-icons + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v140 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v140 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-toolbar-modern: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v140 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-theme-modern: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Customization.Theme.Title.v143 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + 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 + uiVariant: modern + welcome-modern-japan: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v145 + body: Onboarding/Onboarding.Modern.Welcome.Description.v145 + image: trackers-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatmentA.v145 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v145 + 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 + uiVariant: japan + sign-to-sync-modern-japan: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v145 + body: Onboarding/Onboarding.Modern.Sync.Description.v145 + image: sync-with-icons-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v145 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v145 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-toolbar-modern-japan: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Toolbar.Description.v145 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v145 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v145 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-theme-modern-japan: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.Customization.Theme.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Theme.Description.v145 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Theme.Automatic.v145 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.Customization.Theme.Light.v145 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.Customization.Theme.Dark.v145 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + welcome-brand-refresh: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Title.v148.v2 + body: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Description.v148 + image: trackers-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.ActionTreatmentA.v148 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Skip.v148 + 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 + uiVariant: brandRefresh + customization-toolbar-brand-refresh: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Description.v148 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + customization-theme-brand-refresh: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Description.v148 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Automatic.v148 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Light.v148 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Dark.v148 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + sign-to-sync-brand-refresh: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Description.v148 + image: sync-with-icons-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.SignIn.Action.v148 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Skip.Action.v148 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + 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. + type: Map + 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. + type: Boolean + default: true + enable-modern-ui: + description: | + Toggle between legacy (false) and modern (true) UI variants. + type: Boolean + default: false + should-use-brand-refresh-configuration: + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + type: Boolean + default: false + should-use-japan-configuration: + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. + type: Boolean + default: false + privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + variables: + enabled: + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions + type: Boolean + default: false + recent-searches-feature: + description: | + Enables recent searches. + variables: + enabled: + description: | + Whether or not to enable recent searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: false + search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + search-highlights: false + use-page-content: false + sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + variables: + enabled: + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + type: Boolean + default: false + isTreatmentA: + description: | + If true, shares the treatment A text. If false, shares the treatment B text. + type: Boolean + default: true + snapkit-removal-refactor: + description: This property defines if SnapKit removal refactor is enbaled + variables: + enabled: + description: If true the SnapKit removal refactor version will be used + 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 + 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. + type: Option + 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. + type: Option + default: null + 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. + type: Option + default: text-excerpt + start-at-home-feature: + description: This feature is for experimenting with opening screen + variables: + setting: + description: This property provides a default setting for the start at home feature + type: StartAtHome + default: afterFourHours + tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + variables: + enabled: + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll + type: Boolean + default: false + tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + variables: + enabled: + description: | + If true, enables the tab tray UI experiments. + type: Boolean + default: true + translucency: + description: | + If true, enables translucency for tab tray actions at the bottom. + type: Boolean + default: false + toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: true + layout: + description: | + The type of layout of the toolbars. + type: Option + default: version1 + middle_button_customization: + description: | + Enables the middle button customization for navigation toolbar. + type: Boolean + default: true + minimal_address_bar: + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + type: Boolean + default: true + navigation_hint: + description: | + If true, enables the navigation contextual hint. + type: Boolean + default: true + one_tap_new_tab: + description: | + If true, enables the one tap new tab feature for users. + type: Boolean + default: true + swiping_tabs: + description: | + Enables swipe gestures to switch between browser tabs. + type: Boolean + default: true + toolbar_update_hint: + description: | + If true, enables the toolbar update contextual hint. + type: Boolean + default: false + translucency: + description: | + Enables translucency for toolbars. + type: Boolean + default: true + translucency-refactor: + description: | + Enables translucency refactor for toolbars. + type: Boolean + default: false + unified_search: + description: | + Enables the unified search feature. + type: Boolean + default: false + tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + variables: + status: + description: | + Enables the feature + type: Boolean + default: true + tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + variables: + content-option: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + type: TermsOfUsePromptContentOption + default: value-0 + enable-drag-to-dismiss: + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + type: Boolean + default: true + max-reminders-count: + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + type: Int + default: 2 + status: + description: | + Enables the feature + type: Boolean + default: false + tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + variables: + enabled: + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not + type: Boolean + default: true + translations-feature: + description: | + Enables translations feature. + variables: + enabled: + description: | + Whether or not to enable translations feature. + type: Boolean + default: false + trending-searches-feature: + description: | + Enables trending searches. + variables: + enabled: + description: | + Whether or not to enable trending searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false + web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false +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. + 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. + 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 + variants: + customize-firefox: + description: | + Corresponding to the fox window image + notifications: + description: | + Corresponding to the notifications image + notifications-ctd: + description: | + Corresponding to the notifications image for CTD + search-widget: + description: | + Corresponding to the fox search widget image + set-default-steps: + description: | + Corresponding to the set to default steps image + set-to-dock: + description: | + Corresponding to the set to dock image + sync-devices: + description: | + Corresponding to the sync-devices image + sync-devices-ctd: + description: | + Corresponding to the sync image for CTD + sync-with-icons: + description: | + Corresponding to the sync-devices image + sync-with-icons-brand-refresh: + description: | + Corresponding to the sync-with-icons image for Brand Refresh variant (different from Japan variant) + sync-with-icons-japan: + description: | + Corresponding to the sync-with-icons image for Japan variant + themeing: + description: | + Corresponding to the fox world image + toolbar: + description: | + Corresponding to the fox world image + trackers: + description: | + Corresponding to the trackers image + trackers-brand-refresh: + description: | + Corresponding to the trackers image for Brand Refresh variant (does not contain Japanese text, different from Japan variant) + trackers-japan: + description: | + Corresponding to the trackers image for Japan variant (contains Japanese text) + welcome-ctd: + description: | + Corresponding to the welcome image for CTD + welcome-globe: + description: | + Corresponding to the fox world image + NimbusOnboardingMultipleChoiceButtonImage: + description: | + The identifiers for the different images available for multiple choice buttons in onboarding + variants: + theme-dark: + description: | + Corresponding to the dark theme + theme-dark-japan: + description: | + Corresponding to the dark theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-light: + description: | + Corresponding to the light theme + theme-light-japan: + description: | + Corresponding to the light theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-system: + description: | + Corresponding to the system theme + theme-system-japan: + description: | + Corresponding to the system theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-bottom: + description: | + Corresponding to the toolbar on the bottom + toolbar-bottom-japan: + description: | + Corresponding to the toolbar on the bottom image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-top: + description: | + Corresponding to the toolbar on top + toolbar-top-japan: + description: | + Corresponding to the toolbar on top image for Japan variant. Also used by Brand Refresh variant as the images are identical. + OnboardingActions: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + end-onboarding: + description: | + Will end the onboarding on a set card + forward-one-card: + description: | + Will take the user to the next card + forward-three-card: + description: | + Will take the user to the next card + forward-two-card: + description: | + Will take the user to the next card + open-instructions-popup: + description: | + Will open up a popup with instructions for something + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + read-privacy-policy: + description: | + Will open a webview where the user can read the privacy policy + request-notifications: + description: | + Will request to allow notifications from the user + set-default-browser: + description: | + Will send the user to settings to set Firefox as their default browser and advance to next card + sync-sign-in: + description: | + Will take the user to the sync sign in flow + OnboardingCardType: + description: | + The identifiers for the different types of onboarding cards. + variants: + basic: + description: | + Corresponding to basic info onboarding cards + multiple-choice: + description: | + Corresponding to onboarding cards with multiple choice buttons + OnboardingInstructionsPopupActions: + description: | + The identifiers for the different actions available for the insturction card in onboarding + variants: + dismiss: + description: | + Will dismiss the popup + dismiss-and-next-card: + description: | + Will dismiss the popup and move to the next card + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + OnboardingMultipleChoiceAction: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + theme-dark: + description: | + Will will set the theme to dark mode + theme-light: + description: | + Will set the theme to light mode + theme-system-default: + description: | + Will set the theme to use the system theme + toolbar-bottom: + description: | + Will set the toolbar on the bottom + toolbar-top: + description: | + Will set the toolbar on the top + OnboardingType: + description: | + The identifiers for the different types of onboarding cards. + variants: + fresh-install: + description: | + Corresponding to onboarding cards that are for new users + upgrade: + description: | + Corresponding to onboarding cards that are for users who have updated + OnboardingVariant: + description: | + Which UI style this onboarding card is designed for. + variants: + brandRefresh: + description: Use the brand refresh onboarding UI with v148 strings. + japan: + description: Use the Japan-specific onboarding UI with localized assets. + legacy: + description: Use the existing (legacy) onboarding UI. + modern: + description: Use the new (modern) onboarding UI. + 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 + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. + StartAtHome: + description: The option for what screen to open the app to + variants: + afterFourHours: + description: Starts the app at the homepage after four hours of inactivity, otherwise starts the app at the most recently viewed tab. + always: + description: Starts the app at the homepage. + disabled: + description: Starts the app at the most recently viewed tab. + 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. + TermsOfUsePromptContentOption: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + variants: + value-0: + description: | + Uses the current defaults: + - Title: "We've got an update" + - Learn more: "Please take a moment to review and accept. Learn more." + value-1: + description: | + Uses the following copy: + - Title: "Terms of Use" + - Learn more: "You can learn more here." + value-2: + description: | + Uses the following copy: + - Title: "A note from Firefox" + - Learn more: "You can learn more here." + ToolbarLayoutType: + description: The type of toolbar layout. + variants: + version1: + description: Shows the add new tab, menu and tabs button in the navigation toolbar. The share button is displayed in the address toolbar. + version2: + description: Like version1 but the menu and tabs buttons are inverted. +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 + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: 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. + fields: + action: + description: | + The name of a deeplink URL to be opened if the button is clicked. + type: Option + default: null + action-params: + description: Query parameters appended to the deeplink action URL + type: Map + default: {} + button-label: + description: | + The text on the button. If no text is present, the whole message is clickable. + type: Option + default: null + 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. + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: null + 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 + default: null + style: + description: | + The style as described in a `StyleData` from the styles table. + 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 + default: null + 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. + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: | + Attributes relating to microsurvey messaging. + 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 + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: null + NimbusOnboardingButton: + description: | + A group of properties describing the attributes of a card. + fields: + action: + description: | + The action the button should take. The default for this will be "forward-one-card" + type: OnboardingActions + default: forward-one-card + title: + description: | + The text of the button title. This should never be defaulted. + 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. + fields: + primary: + description: | + The primary button for the card. This must exist. + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: | + A secondary, optional, button for the card. + type: Option + default: null + NimbusOnboardingCardData: + description: | + A group of properties describing the attributes of a card. + fields: + body: + description: | + The body text dispalyed on the card, in less prominent text. This should never be defaulted. + type: Text + default: '' + buttons: + description: | + The set of buttons associated with the card. + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: null + 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. + 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`. + type: List + default: [] + image: + description: | + The image that should be dispalyed on the card. + 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 + type: Option + default: null + link: + description: | + The object describing the link button for a card. If left empty, the card will have no link. + type: Option + default: null + multiple-choice-buttons: + description: | + A list of multiple choice buttons that the card will display + type: List + 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. + 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. + 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. + type: List + default: [] + title: + description: | + The title displayed on the card, in prominent, bolded text. This should never be defaulted. + type: Text + default: '' + uiVariant: + description: | + If set, this card will only be shown in the specified UI variant. If null, it will appear in both legacy and modern UIs. + type: Option + default: null + NimbusOnboardingInstructionPopup: + description: | + The object outlining the content of the instruction card. + fields: + button-action: + description: | + The action the button should have. Default is `dismiss-and-next-card` + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: | + The title the button should have. This should never be defaulted. + type: Text + default: '' + instructions: + description: | + A list of instructions, either as free text, or as Text identifiers. + type: List + default: [] + title: + description: | + The text of the popup. This should never be defaulted. + type: Text + default: '' + NimbusOnboardingLink: + description: | + A group of properties describing the attributes for the active link on a card + fields: + title: + description: | + The text of the link title. + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: | + The url that the link will lead to. + 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 + fields: + action: + description: | + The action the button should take. The default for this will be "theme-system-default" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: | + The text of the button title. This should never be defaulted. + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: | + The text of the button title. This should never be defaulted. + 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 + StyleData: + description: | + A group of properities (predominantly visual) to the describe style of the message. + fields: + max-display-count: + description: | + How many sessions will this message be shown to the user before it is expired. + type: Int + default: 5 + priority: + description: | + The importance of this message. 0 is not very important, 100 is very important. + type: Int + default: 50 diff --git a/experimenter/experimenter/features/manifests/ios/v147.5.0/developer.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.5.0/developer.fml.yaml new file mode 100644 index 0000000000..648f79e750 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.5.0/developer.fml.yaml @@ -0,0 +1,1657 @@ +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: +- developer +features: + 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: true + address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + variables: + status: + description: If true, we will show the new address bar menu entry + type: Boolean + default: true + app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + variables: + funIconsEnabled: + description: | + Controls whether users see the fun icons in the app icon settings. + type: Boolean + default: true + appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + variables: + status: + description: If true, we will show the new appearance menu entry + type: Boolean + default: true + apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + variables: + enabled: + description: | + Enables the apple summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + variables: + enabled: + description: | + Variable description + type: Boolean + default: false + default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + variables: + enabled: + description: | + If true, page zoom settings and default zoom feature are shown + type: Boolean + default: true + download-live-activities-feature: + description: | + Download Live Activities Feature + variables: + enabled: + description: | + If true, the download live activities feature is enabled + 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: true + firefox-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: true + 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. + type: Map + 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. + type: Boolean + default: true + 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 + hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + variables: + enabled: + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings + type: Boolean + default: true + homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + variables: + enabled: + description: | + If true, enables the feature + type: Boolean + default: true + homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + variables: + bookmarks-section-default: + description: | + If true, enables the bookmarks homepage section by default + type: Boolean + default: false + jbi-section-default: + description: | + If true, enables the jump back in homepage section by default + type: Boolean + default: false + search-bar: + description: | + If true, enables the search bar feature on homepage for users. + type: Boolean + default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline + hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + variables: + enabled: + description: | + Enables the hosted summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + menu-refactor-feature: + description: | + Controls the menu refactor feature + variables: + enabled: + description: | + Controls which menu users will see + type: Boolean + default: true + menu-default-browser-banner: + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + type: Boolean + default: true + menu-redesign-hint: + description: | + If true, enables the menu contextual hint for menu redesign. + type: Boolean + default: true + messaging: + description: | + The in-app messaging system + 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 + 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_SETTINGS_APP_ICON: ://deep-link?url=settings/app-icon + 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 + OPEN_SHARE_SHEET: ://share-sheet + string-alias: ActionName + message-under-experiment: + description: 'Deprecated. Please use "experiment": "{experiment}" instead.' + type: Option + default: null + messages: + description: | + A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData. + type: Map + default: + 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 + survey-surface-message: + surface: survey + style: SURVEY + trigger-if-all: + - NEVER + text: ResearchSurface/Body.Text.v112 + button-label: ResearchSurface/PrimaryButton.Label.v112 + action: OPEN_URL + action-params: + url: https://www.macrumors.com + 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. + type: Map + 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. + type: Map + 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. + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: true + native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: true + no_internet_connection_error: + description: | + This feature is for managing the roll out of the no interet connection native error page feature + type: Boolean + default: true + other-error-pages: + description: | + This feature is for managing the roll out of other native error pages + type: Boolean + default: false + onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + variables: + cards: + description: | + The list of available cards for onboarding. + type: Map + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + 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 + welcome-modern: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v140 + body: Onboarding/Onboarding.Modern.Welcome.Description.v140 + image: trackers + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatementA.v140 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v140 + 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 + uiVariant: modern + sign-to-sync-modern: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v140 + body: Onboarding/Onboarding.Modern.Sync.Description.v140 + image: sync-with-icons + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v140 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v140 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-toolbar-modern: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v140 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-theme-modern: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Customization.Theme.Title.v143 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + 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 + uiVariant: modern + welcome-modern-japan: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v145 + body: Onboarding/Onboarding.Modern.Welcome.Description.v145 + image: trackers-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatmentA.v145 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v145 + 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 + uiVariant: japan + sign-to-sync-modern-japan: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v145 + body: Onboarding/Onboarding.Modern.Sync.Description.v145 + image: sync-with-icons-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v145 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v145 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-toolbar-modern-japan: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Toolbar.Description.v145 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v145 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v145 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-theme-modern-japan: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.Customization.Theme.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Theme.Description.v145 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Theme.Automatic.v145 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.Customization.Theme.Light.v145 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.Customization.Theme.Dark.v145 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + welcome-brand-refresh: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Title.v148.v2 + body: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Description.v148 + image: trackers-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.ActionTreatmentA.v148 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Skip.v148 + 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 + uiVariant: brandRefresh + customization-toolbar-brand-refresh: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Description.v148 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + customization-theme-brand-refresh: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Description.v148 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Automatic.v148 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Light.v148 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Dark.v148 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + sign-to-sync-brand-refresh: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Description.v148 + image: sync-with-icons-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.SignIn.Action.v148 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Skip.Action.v148 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + 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. + type: Map + 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. + type: Boolean + default: true + enable-modern-ui: + description: | + Toggle between legacy (false) and modern (true) UI variants. + type: Boolean + default: false + should-use-brand-refresh-configuration: + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + type: Boolean + default: false + should-use-japan-configuration: + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. + type: Boolean + default: false + privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + variables: + enabled: + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions + type: Boolean + default: true + recent-searches-feature: + description: | + Enables recent searches. + variables: + enabled: + description: | + Whether or not to enable recent searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: false + search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + search-highlights: false + use-page-content: false + sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + variables: + enabled: + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + type: Boolean + default: true + isTreatmentA: + description: | + If true, shares the treatment A text. If false, shares the treatment B text. + type: Boolean + default: true + snapkit-removal-refactor: + description: This property defines if SnapKit removal refactor is enbaled + variables: + enabled: + description: If true the SnapKit removal refactor version will be used + 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: 6000 + 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: true + 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. + type: Option + default: screenshot + 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. + type: Option + default: null + 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. + type: Option + default: text-excerpt + start-at-home-feature: + description: This feature is for experimenting with opening screen + variables: + setting: + description: This property provides a default setting for the start at home feature + type: StartAtHome + default: afterFourHours + tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + variables: + enabled: + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll + type: Boolean + default: false + tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + variables: + enabled: + description: | + If true, enables the tab tray UI experiments. + type: Boolean + default: true + translucency: + description: | + If true, enables translucency for tab tray actions at the bottom. + type: Boolean + default: true + toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: true + layout: + description: | + The type of layout of the toolbars. + type: Option + default: version1 + middle_button_customization: + description: | + Enables the middle button customization for navigation toolbar. + type: Boolean + default: true + minimal_address_bar: + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + type: Boolean + default: true + navigation_hint: + description: | + If true, enables the navigation contextual hint. + type: Boolean + default: true + one_tap_new_tab: + description: | + If true, enables the one tap new tab feature for users. + type: Boolean + default: true + swiping_tabs: + description: | + Enables swipe gestures to switch between browser tabs. + type: Boolean + default: true + toolbar_update_hint: + description: | + If true, enables the toolbar update contextual hint. + type: Boolean + default: false + translucency: + description: | + Enables translucency for toolbars. + type: Boolean + default: true + translucency-refactor: + description: | + Enables translucency refactor for toolbars. + type: Boolean + default: false + unified_search: + description: | + Enables the unified search feature. + type: Boolean + default: false + tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + variables: + status: + description: | + Enables the feature + type: Boolean + default: true + tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + variables: + content-option: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + type: TermsOfUsePromptContentOption + default: value-0 + enable-drag-to-dismiss: + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + type: Boolean + default: true + max-reminders-count: + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + type: Int + default: 2 + status: + description: | + Enables the feature + type: Boolean + default: false + tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + variables: + enabled: + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not + type: Boolean + default: true + translations-feature: + description: | + Enables translations feature. + variables: + enabled: + description: | + Whether or not to enable translations feature. + type: Boolean + default: false + trending-searches-feature: + description: | + Enables trending searches. + variables: + enabled: + description: | + Whether or not to enable trending searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false + web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false +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. + 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. + 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 + variants: + customize-firefox: + description: | + Corresponding to the fox window image + notifications: + description: | + Corresponding to the notifications image + notifications-ctd: + description: | + Corresponding to the notifications image for CTD + search-widget: + description: | + Corresponding to the fox search widget image + set-default-steps: + description: | + Corresponding to the set to default steps image + set-to-dock: + description: | + Corresponding to the set to dock image + sync-devices: + description: | + Corresponding to the sync-devices image + sync-devices-ctd: + description: | + Corresponding to the sync image for CTD + sync-with-icons: + description: | + Corresponding to the sync-devices image + sync-with-icons-brand-refresh: + description: | + Corresponding to the sync-with-icons image for Brand Refresh variant (different from Japan variant) + sync-with-icons-japan: + description: | + Corresponding to the sync-with-icons image for Japan variant + themeing: + description: | + Corresponding to the fox world image + toolbar: + description: | + Corresponding to the fox world image + trackers: + description: | + Corresponding to the trackers image + trackers-brand-refresh: + description: | + Corresponding to the trackers image for Brand Refresh variant (does not contain Japanese text, different from Japan variant) + trackers-japan: + description: | + Corresponding to the trackers image for Japan variant (contains Japanese text) + welcome-ctd: + description: | + Corresponding to the welcome image for CTD + welcome-globe: + description: | + Corresponding to the fox world image + NimbusOnboardingMultipleChoiceButtonImage: + description: | + The identifiers for the different images available for multiple choice buttons in onboarding + variants: + theme-dark: + description: | + Corresponding to the dark theme + theme-dark-japan: + description: | + Corresponding to the dark theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-light: + description: | + Corresponding to the light theme + theme-light-japan: + description: | + Corresponding to the light theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-system: + description: | + Corresponding to the system theme + theme-system-japan: + description: | + Corresponding to the system theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-bottom: + description: | + Corresponding to the toolbar on the bottom + toolbar-bottom-japan: + description: | + Corresponding to the toolbar on the bottom image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-top: + description: | + Corresponding to the toolbar on top + toolbar-top-japan: + description: | + Corresponding to the toolbar on top image for Japan variant. Also used by Brand Refresh variant as the images are identical. + OnboardingActions: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + end-onboarding: + description: | + Will end the onboarding on a set card + forward-one-card: + description: | + Will take the user to the next card + forward-three-card: + description: | + Will take the user to the next card + forward-two-card: + description: | + Will take the user to the next card + open-instructions-popup: + description: | + Will open up a popup with instructions for something + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + read-privacy-policy: + description: | + Will open a webview where the user can read the privacy policy + request-notifications: + description: | + Will request to allow notifications from the user + set-default-browser: + description: | + Will send the user to settings to set Firefox as their default browser and advance to next card + sync-sign-in: + description: | + Will take the user to the sync sign in flow + OnboardingCardType: + description: | + The identifiers for the different types of onboarding cards. + variants: + basic: + description: | + Corresponding to basic info onboarding cards + multiple-choice: + description: | + Corresponding to onboarding cards with multiple choice buttons + OnboardingInstructionsPopupActions: + description: | + The identifiers for the different actions available for the insturction card in onboarding + variants: + dismiss: + description: | + Will dismiss the popup + dismiss-and-next-card: + description: | + Will dismiss the popup and move to the next card + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + OnboardingMultipleChoiceAction: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + theme-dark: + description: | + Will will set the theme to dark mode + theme-light: + description: | + Will set the theme to light mode + theme-system-default: + description: | + Will set the theme to use the system theme + toolbar-bottom: + description: | + Will set the toolbar on the bottom + toolbar-top: + description: | + Will set the toolbar on the top + OnboardingType: + description: | + The identifiers for the different types of onboarding cards. + variants: + fresh-install: + description: | + Corresponding to onboarding cards that are for new users + upgrade: + description: | + Corresponding to onboarding cards that are for users who have updated + OnboardingVariant: + description: | + Which UI style this onboarding card is designed for. + variants: + brandRefresh: + description: Use the brand refresh onboarding UI with v148 strings. + japan: + description: Use the Japan-specific onboarding UI with localized assets. + legacy: + description: Use the existing (legacy) onboarding UI. + modern: + description: Use the new (modern) onboarding UI. + 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 + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. + StartAtHome: + description: The option for what screen to open the app to + variants: + afterFourHours: + description: Starts the app at the homepage after four hours of inactivity, otherwise starts the app at the most recently viewed tab. + always: + description: Starts the app at the homepage. + disabled: + description: Starts the app at the most recently viewed tab. + 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. + TermsOfUsePromptContentOption: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + variants: + value-0: + description: | + Uses the current defaults: + - Title: "We've got an update" + - Learn more: "Please take a moment to review and accept. Learn more." + value-1: + description: | + Uses the following copy: + - Title: "Terms of Use" + - Learn more: "You can learn more here." + value-2: + description: | + Uses the following copy: + - Title: "A note from Firefox" + - Learn more: "You can learn more here." + ToolbarLayoutType: + description: The type of toolbar layout. + variants: + version1: + description: Shows the add new tab, menu and tabs button in the navigation toolbar. The share button is displayed in the address toolbar. + version2: + description: Like version1 but the menu and tabs buttons are inverted. +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 + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: 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. + fields: + action: + description: | + The name of a deeplink URL to be opened if the button is clicked. + type: Option + default: null + action-params: + description: Query parameters appended to the deeplink action URL + type: Map + default: {} + button-label: + description: | + The text on the button. If no text is present, the whole message is clickable. + type: Option + default: null + 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. + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: null + 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 + default: null + style: + description: | + The style as described in a `StyleData` from the styles table. + 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 + default: null + 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. + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: | + Attributes relating to microsurvey messaging. + 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 + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: null + NimbusOnboardingButton: + description: | + A group of properties describing the attributes of a card. + fields: + action: + description: | + The action the button should take. The default for this will be "forward-one-card" + type: OnboardingActions + default: forward-one-card + title: + description: | + The text of the button title. This should never be defaulted. + 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. + fields: + primary: + description: | + The primary button for the card. This must exist. + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: | + A secondary, optional, button for the card. + type: Option + default: null + NimbusOnboardingCardData: + description: | + A group of properties describing the attributes of a card. + fields: + body: + description: | + The body text dispalyed on the card, in less prominent text. This should never be defaulted. + type: Text + default: '' + buttons: + description: | + The set of buttons associated with the card. + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: null + 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. + 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`. + type: List + default: [] + image: + description: | + The image that should be dispalyed on the card. + 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 + type: Option + default: null + link: + description: | + The object describing the link button for a card. If left empty, the card will have no link. + type: Option + default: null + multiple-choice-buttons: + description: | + A list of multiple choice buttons that the card will display + type: List + 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. + 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. + 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. + type: List + default: [] + title: + description: | + The title displayed on the card, in prominent, bolded text. This should never be defaulted. + type: Text + default: '' + uiVariant: + description: | + If set, this card will only be shown in the specified UI variant. If null, it will appear in both legacy and modern UIs. + type: Option + default: null + NimbusOnboardingInstructionPopup: + description: | + The object outlining the content of the instruction card. + fields: + button-action: + description: | + The action the button should have. Default is `dismiss-and-next-card` + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: | + The title the button should have. This should never be defaulted. + type: Text + default: '' + instructions: + description: | + A list of instructions, either as free text, or as Text identifiers. + type: List + default: [] + title: + description: | + The text of the popup. This should never be defaulted. + type: Text + default: '' + NimbusOnboardingLink: + description: | + A group of properties describing the attributes for the active link on a card + fields: + title: + description: | + The text of the link title. + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: | + The url that the link will lead to. + 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 + fields: + action: + description: | + The action the button should take. The default for this will be "theme-system-default" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: | + The text of the button title. This should never be defaulted. + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: | + The text of the button title. This should never be defaulted. + 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 + StyleData: + description: | + A group of properities (predominantly visual) to the describe style of the message. + fields: + max-display-count: + description: | + How many sessions will this message be shown to the user before it is expired. + type: Int + default: 5 + priority: + description: | + The importance of this message. 0 is not very important, 100 is very important. + type: Int + default: 50 diff --git a/experimenter/experimenter/features/manifests/ios/v147.5.0/experimenter.yaml b/experimenter/experimenter/features/manifests/ios/v147.5.0/experimenter.yaml new file mode 100644 index 0000000000..1911f8e645 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.5.0/experimenter.yaml @@ -0,0 +1,568 @@ +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 +address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: If true, we will show the new address bar menu entry +app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + hasExposure: true + exposureDescription: '' + variables: + funIconsEnabled: + type: boolean + description: | + Controls whether users see the fun icons in the app icon settings. +appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: If true, we will show the new appearance menu entry +apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the apple summarizer feature. + shakeGesture: + type: boolean + description: | + Enables the shake gesture for the summarizer feature. + toolbarEntrypoint: + type: boolean + description: | + Enables the toolbar entrypoint for the summarizer feature. +deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Variable description +default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, page zoom settings and default zoom feature are shown +download-live-activities-feature: + description: | + Download Live Activities Feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, the download live activities feature is enabled +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-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature. +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. + 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. +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 +hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings +homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, enables the feature +homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + hasExposure: true + exposureDescription: '' + variables: + bookmarks-section-default: + type: boolean + description: | + If true, enables the bookmarks homepage section by default + jbi-section-default: + type: boolean + description: | + If true, enables the jump back in homepage section by default + search-bar: + type: boolean + description: | + If true, enables the search bar feature on homepage for users. + stories-scroll-direction: + type: string + description: | + Controls the layout direction for stories on the homepage. + enum: + - baseline + - horizontal + - vertical +hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the hosted summarizer feature. + shakeGesture: + type: boolean + description: | + Enables the shake gesture for the summarizer feature. + toolbarEntrypoint: + type: boolean + description: | + Enables the toolbar entrypoint for the summarizer feature. +menu-refactor-feature: + description: | + Controls the menu refactor feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Controls which menu users will see + menu-default-browser-banner: + type: boolean + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + menu-redesign-hint: + type: boolean + description: | + If true, enables the menu contextual hint for menu redesign. +messaging: + description: | + The in-app messaging system + 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. + 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. + triggers: + type: json + description: | + A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression. + ~~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. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, the feature is active. +native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, the feature is active. + no_internet_connection_error: + type: boolean + description: | + This feature is for managing the roll out of the no interet connection native error page feature + other-error-pages: + type: boolean + description: | + This feature is for managing the roll out of other native error pages +onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + hasExposure: true + exposureDescription: '' + variables: + cards: + type: json + description: | + The list of available cards for onboarding. + 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. + dismissable: + type: boolean + description: | + Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen. + enable-modern-ui: + type: boolean + description: | + Toggle between legacy (false) and modern (true) UI variants. + should-use-brand-refresh-configuration: + type: boolean + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + should-use-japan-configuration: + type: boolean + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. +privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions +recent-searches-feature: + description: | + Enables recent searches. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether or not to enable recent searches. + max-suggestions: + type: int + description: The number of maximum suggestions. +relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature +search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + hasExposure: true + exposureDescription: '' + variables: + awesome-bar: + type: json + description: Configuring the awesome bar. +sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + isTreatmentA: + type: boolean + description: | + If true, shares the treatment A text. If false, shares the treatment B text. +snapkit-removal-refactor: + description: This property defines if SnapKit removal refactor is enbaled + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: If true the SnapKit removal refactor version will be used +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. +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. + 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. + 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. +start-at-home-feature: + description: This feature is for experimenting with opening screen + hasExposure: true + exposureDescription: '' + variables: + setting: + type: string + description: This property provides a default setting for the start at home feature + enum: + - afterFourHours + - always + - disabled +tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll +tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + If true, enables the tab tray UI experiments. + translucency: + type: boolean + description: | + If true, enables translucency for tab tray actions at the bottom. +toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature + layout: + type: string + description: | + The type of layout of the toolbars. + middle_button_customization: + type: boolean + description: | + Enables the middle button customization for navigation toolbar. + minimal_address_bar: + type: boolean + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + navigation_hint: + type: boolean + description: | + If true, enables the navigation contextual hint. + one_tap_new_tab: + type: boolean + description: | + If true, enables the one tap new tab feature for users. + swiping_tabs: + type: boolean + description: | + Enables swipe gestures to switch between browser tabs. + toolbar_update_hint: + type: boolean + description: | + If true, enables the toolbar update contextual hint. + translucency: + type: boolean + description: | + Enables translucency for toolbars. + translucency-refactor: + type: boolean + description: | + Enables translucency refactor for toolbars. + unified_search: + type: boolean + description: | + Enables the unified search feature. +tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + hasExposure: true + exposureDescription: '' + variables: + status: + type: boolean + description: | + Enables the feature +tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + hasExposure: true + exposureDescription: '' + variables: + content-option: + type: string + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + enum: + - value-0 + - value-1 + - value-2 + enable-drag-to-dismiss: + type: boolean + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + max-reminders-count: + type: int + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + status: + type: boolean + description: | + Enables the feature +tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not +translations-feature: + description: | + Enables translations feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether or not to enable translations feature. +trending-searches-feature: + description: | + Enables trending searches. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Whether or not to enable trending searches. + max-suggestions: + type: int + description: The number of maximum suggestions. +voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature. +web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + hasExposure: true + exposureDescription: '' + variables: + enabled: + type: boolean + description: | + Enables the feature. diff --git a/experimenter/experimenter/features/manifests/ios/v147.5.0/release.fml.yaml b/experimenter/experimenter/features/manifests/ios/v147.5.0/release.fml.yaml new file mode 100644 index 0000000000..bae9b7676c --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v147.5.0/release.fml.yaml @@ -0,0 +1,1629 @@ +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: +- release +features: + 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 + address-bar-menu-feature: + description: | + This property determines if we show the new address bar menu entry or the toolbar menu in settings + variables: + status: + description: If true, we will show the new address bar menu entry + type: Boolean + default: true + app-icon-selection-feature: + description: | + Controls which app icons users can select as their default app icon from the App Icon Selection screen in Settings. + variables: + funIconsEnabled: + description: | + Controls whether users see the fun icons in the app icon settings. + type: Boolean + default: true + appearance-menu-feature: + description: | + This property determines if we show the new appearance menu entry or the old theme settings + variables: + status: + description: If true, we will show the new appearance menu entry + type: Boolean + default: true + apple-summarizer-feature: + description: | + This feature enables the apple summarizer feature. + variables: + enabled: + description: | + Enables the apple summarizer feature. + type: Boolean + default: true + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: true + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: true + deeplink-optimization-refactor-feature: + description: | + The feature flag to manage the rollout of deeplink optimization feature. + variables: + enabled: + description: | + Variable description + type: Boolean + default: false + default-zoom-feature: + description: | + The feature flag to manage the rollout of default zoom feature. + variables: + enabled: + description: | + If true, page zoom settings and default zoom feature are shown + type: Boolean + default: true + download-live-activities-feature: + description: | + Download Live Activities Feature + variables: + enabled: + description: | + If true, the download live activities feature is enabled + type: Boolean + default: false + 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: true + firefox-jp-guide-default-site: + description: | + This feature is for managing the visibility of the Firefox Japanese Guide default suggested site shortcut + variables: + enabled: + description: | + Enables the feature. + 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. + type: Map + 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. + 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 + hnt-sponsored-shortcuts-feature: + description: This feature manages the visibility of sponsored shortcuts on the homepage + variables: + enabled: + description: Setting 'enabled' to false will hide sponsored shortcuts on the homepage and disable the respective toggle in the homepage settings + type: Boolean + default: true + homepage-rebuild-feature: + description: | + This feature is for managing the roll out of the Homepage rebuild feature + variables: + enabled: + description: | + If true, enables the feature + type: Boolean + default: true + homepage-redesign-feature: + description: | + This feature is for managing the roll out of the Homepage New Tab Redesign feature. + variables: + bookmarks-section-default: + description: | + If true, enables the bookmarks homepage section by default + type: Boolean + default: false + jbi-section-default: + description: | + If true, enables the jump back in homepage section by default + type: Boolean + default: false + search-bar: + description: | + If true, enables the search bar feature on homepage for users. + type: Boolean + default: false + stories-scroll-direction: + description: | + Controls the layout direction for stories on the homepage. + type: ScrollDirection + default: baseline + hosted-summarizer-feature: + description: | + This feature enables the hosted summarizer feature. + variables: + enabled: + description: | + Enables the hosted summarizer feature. + type: Boolean + default: false + shakeGesture: + description: | + Enables the shake gesture for the summarizer feature. + type: Boolean + default: false + toolbarEntrypoint: + description: | + Enables the toolbar entrypoint for the summarizer feature. + type: Boolean + default: false + menu-refactor-feature: + description: | + Controls the menu refactor feature + variables: + enabled: + description: | + Controls which menu users will see + type: Boolean + default: true + menu-default-browser-banner: + description: | + If true, enables the menu Make Firefox your default banner, on top of the menu. + type: Boolean + default: true + menu-redesign-hint: + description: | + If true, enables the menu contextual hint for menu redesign. + type: Boolean + default: true + messaging: + description: | + The in-app messaging system + 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 + 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_SETTINGS_APP_ICON: ://deep-link?url=settings/app-icon + 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 + OPEN_SHARE_SHEET: ://share-sheet + string-alias: ActionName + message-under-experiment: + description: 'Deprecated. Please use "experiment": "{experiment}" instead.' + type: Option + default: null + messages: + description: | + A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData. + type: Map + default: {} + 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. + type: Map + 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. + type: Map + 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. + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + native-error-page-feature: + description: | + This feature is for managing the roll out of the native error page feature + variables: + enabled: + description: | + If true, the feature is active. + type: Boolean + default: false + no_internet_connection_error: + description: | + This feature is for managing the roll out of the no interet connection native error page feature + type: Boolean + default: false + other-error-pages: + description: | + This feature is for managing the roll out of other native error pages + type: Boolean + default: false + onboarding-framework-feature: + description: | + The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments. + variables: + cards: + description: | + The list of available cards for onboarding. + type: Map + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + 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 + welcome-modern: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v140 + body: Onboarding/Onboarding.Modern.Welcome.Description.v140 + image: trackers + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatementA.v140 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v140 + 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 + uiVariant: modern + sign-to-sync-modern: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v140 + body: Onboarding/Onboarding.Modern.Sync.Description.v140 + image: sync-with-icons + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v140 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v140 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-toolbar-modern: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v140 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: modern + customization-theme-modern: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Customization.Theme.Title.v143 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Theme.Continue.Action.v140 + 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 + uiVariant: modern + welcome-modern-japan: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.Welcome.Title.v145 + body: Onboarding/Onboarding.Modern.Welcome.Description.v145 + image: trackers-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Welcome.ActionTreatmentA.v145 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.Welcome.Skip.v145 + 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 + uiVariant: japan + sign-to-sync-modern-japan: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.Sync.Title.v145 + body: Onboarding/Onboarding.Modern.Sync.Description.v145 + image: sync-with-icons-japan + buttons: + primary: + title: Onboarding/Onboarding.Modern.Sync.SignIn.Action.v145 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.Sync.Skip.Action.v145 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-toolbar-modern-japan: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Toolbar.Description.v145 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v145 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v145 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + customization-theme-modern-japan: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.Customization.Theme.Title.v145 + body: Onboarding/Onboarding.Modern.Customization.Theme.Description.v145 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.Customization.Toolbar.Continue.Action.v145 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Theme.Automatic.v145 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.Customization.Theme.Light.v145 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.Customization.Theme.Dark.v145 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: japan + welcome-brand-refresh: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Title.v148.v2 + body: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Description.v148 + image: trackers-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.ActionTreatmentA.v148 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Welcome.Skip.v148 + 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 + uiVariant: brandRefresh + customization-toolbar-brand-refresh: + card-type: multiple-choice + order: 20 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Description.v148 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Toolbar.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Bottom.Action.v140 + image: toolbar-bottom-japan + action: toolbar-bottom + - title: Onboarding/Onboarding.Modern.Customization.Toolbar.Top.Action.v140 + image: toolbar-top-japan + action: toolbar-top + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + customization-theme-brand-refresh: + card-type: multiple-choice + order: 25 + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Description.v148 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Continue.Action.v148 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Automatic.v148 + image: theme-system-japan + action: theme-system-default + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Light.v148 + image: theme-light-japan + action: theme-light + - title: Onboarding/Onboarding.Modern.BrandRefresh.Customization.Theme.Dark.v148 + image: theme-dark-japan + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + sign-to-sync-brand-refresh: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Title.v148 + body: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Description.v148 + image: sync-with-icons-brand-refresh + buttons: + primary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.SignIn.Action.v148 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Modern.BrandRefresh.Sync.Skip.Action.v148 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + uiVariant: brandRefresh + 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. + type: Map + 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. + type: Boolean + default: true + enable-modern-ui: + description: | + Toggle between legacy (false) and modern (true) UI variants. + type: Boolean + default: false + should-use-brand-refresh-configuration: + description: | + Toggle between standard (false) and brand refresh (true) onboarding content. + type: Boolean + default: false + should-use-japan-configuration: + description: | + Toggle between standard (false) and Japan-specific (true) assets and content. + type: Boolean + default: false + privacy-notice-feature: + description: This feature manages the prviacy notice homepage card + variables: + enabled: + description: Setting 'enabled' to true will allow the privacy notice homepage card to be presented under certain conditions + type: Boolean + default: false + recent-searches-feature: + description: | + Enables recent searches. + variables: + enabled: + description: | + Whether or not to enable recent searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + relay-integration-feature: + description: | + This feature is for managing the roll out of Relay email masking integration in iOS + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: false + search: + description: | + Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases. + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + search-highlights: false + use-page-content: false + sent-from-firefox-feature: + description: | + Adds additional promo text to links shared to WhatsApp. + variables: + enabled: + description: | + Controls whether promo text is added to WhatsApp shares and an on/off toggle is added to Settings. + type: Boolean + default: false + isTreatmentA: + description: | + If true, shares the treatment A text. If false, shares the treatment B text. + type: Boolean + default: true + snapkit-removal-refactor: + description: This property defines if SnapKit removal refactor is enbaled + variables: + enabled: + description: If true the SnapKit removal refactor version will be used + 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 + 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. + type: Option + 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. + type: Option + default: null + 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. + type: Option + default: text-excerpt + start-at-home-feature: + description: This feature is for experimenting with opening screen + variables: + setting: + description: This property provides a default setting for the start at home feature + type: StartAtHome + default: afterFourHours + tab-scroll-refactor-feature: + description: | + The feature flag to manage the rollout of tab scroll refactor feature. + variables: + enabled: + description: | + If true, tab scroll new implementation is used to show and hide toolbar views reacting to user scroll + type: Boolean + default: false + tab-tray-ui-experiments: + description: | + The tab tray will undergo some UI experimentation to test potential improvements. + variables: + enabled: + description: | + If true, enables the tab tray UI experiments. + type: Boolean + default: true + translucency: + description: | + If true, enables translucency for tab tray actions at the bottom. + type: Boolean + default: false + toolbar-refactor-feature: + description: | + This feature is for managing the roll out of the Toolbar refactor feature + variables: + enabled: + description: | + Enables the feature + type: Boolean + default: true + layout: + description: | + The type of layout of the toolbars. + type: Option + default: version1 + middle_button_customization: + description: | + Enables the middle button customization for navigation toolbar. + type: Boolean + default: true + minimal_address_bar: + description: | + Enables minimal address bar mode on scroll to ensure the url is always visible. + type: Boolean + default: true + navigation_hint: + description: | + If true, enables the navigation contextual hint. + type: Boolean + default: true + one_tap_new_tab: + description: | + If true, enables the one tap new tab feature for users. + type: Boolean + default: true + swiping_tabs: + description: | + Enables swipe gestures to switch between browser tabs. + type: Boolean + default: true + toolbar_update_hint: + description: | + If true, enables the toolbar update contextual hint. + type: Boolean + default: false + translucency: + description: | + Enables translucency for toolbars. + type: Boolean + default: true + translucency-refactor: + description: | + Enables translucency refactor for toolbars. + type: Boolean + default: false + unified_search: + description: | + Enables the unified search feature. + type: Boolean + default: false + tos-feature: + description: | + This feature is for managing the roll out of the ToS (Term of Service) implementation + variables: + status: + description: | + Enables the feature + type: Boolean + default: true + tou-feature: + description: | + This feature is for managing the rollout of the Terms of Use (ToU) implementation. + variables: + content-option: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + type: TermsOfUsePromptContentOption + default: value-0 + enable-drag-to-dismiss: + description: | + Whether to show a drag handle on the prompt and allows users to use it to dismiss the prompt. + type: Boolean + default: true + max-reminders-count: + description: | + Maximum number of ToU bottom sheet reminders that can be displayed + type: Int + default: 2 + status: + description: | + Enables the feature + type: Boolean + default: false + tracking-protection-refactor: + description: | + The Enhanced Tracking Protection refactor + variables: + enabled: + description: | + Whether the Enhanced Tracking Protection refactor is enabled or not + type: Boolean + default: true + translations-feature: + description: | + Enables translations feature. + variables: + enabled: + description: | + Whether or not to enable translations feature. + type: Boolean + default: false + trending-searches-feature: + description: | + Enables trending searches. + variables: + enabled: + description: | + Whether or not to enable trending searches. + type: Boolean + default: false + max-suggestions: + description: The number of maximum suggestions. + type: Int + default: 5 + voice-search-feature: + description: | + The feature flag to manage the roll out of the voice search feature. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false + web-engine-integration-refactor: + description: | + The feature flag to manage the roll out of the integration of WebEngine into Firefox. + variables: + enabled: + description: | + Enables the feature. + type: Boolean + default: false +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. + 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. + 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 + variants: + customize-firefox: + description: | + Corresponding to the fox window image + notifications: + description: | + Corresponding to the notifications image + notifications-ctd: + description: | + Corresponding to the notifications image for CTD + search-widget: + description: | + Corresponding to the fox search widget image + set-default-steps: + description: | + Corresponding to the set to default steps image + set-to-dock: + description: | + Corresponding to the set to dock image + sync-devices: + description: | + Corresponding to the sync-devices image + sync-devices-ctd: + description: | + Corresponding to the sync image for CTD + sync-with-icons: + description: | + Corresponding to the sync-devices image + sync-with-icons-brand-refresh: + description: | + Corresponding to the sync-with-icons image for Brand Refresh variant (different from Japan variant) + sync-with-icons-japan: + description: | + Corresponding to the sync-with-icons image for Japan variant + themeing: + description: | + Corresponding to the fox world image + toolbar: + description: | + Corresponding to the fox world image + trackers: + description: | + Corresponding to the trackers image + trackers-brand-refresh: + description: | + Corresponding to the trackers image for Brand Refresh variant (does not contain Japanese text, different from Japan variant) + trackers-japan: + description: | + Corresponding to the trackers image for Japan variant (contains Japanese text) + welcome-ctd: + description: | + Corresponding to the welcome image for CTD + welcome-globe: + description: | + Corresponding to the fox world image + NimbusOnboardingMultipleChoiceButtonImage: + description: | + The identifiers for the different images available for multiple choice buttons in onboarding + variants: + theme-dark: + description: | + Corresponding to the dark theme + theme-dark-japan: + description: | + Corresponding to the dark theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-light: + description: | + Corresponding to the light theme + theme-light-japan: + description: | + Corresponding to the light theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + theme-system: + description: | + Corresponding to the system theme + theme-system-japan: + description: | + Corresponding to the system theme image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-bottom: + description: | + Corresponding to the toolbar on the bottom + toolbar-bottom-japan: + description: | + Corresponding to the toolbar on the bottom image for Japan variant. Also used by Brand Refresh variant as the images are identical. + toolbar-top: + description: | + Corresponding to the toolbar on top + toolbar-top-japan: + description: | + Corresponding to the toolbar on top image for Japan variant. Also used by Brand Refresh variant as the images are identical. + OnboardingActions: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + end-onboarding: + description: | + Will end the onboarding on a set card + forward-one-card: + description: | + Will take the user to the next card + forward-three-card: + description: | + Will take the user to the next card + forward-two-card: + description: | + Will take the user to the next card + open-instructions-popup: + description: | + Will open up a popup with instructions for something + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + read-privacy-policy: + description: | + Will open a webview where the user can read the privacy policy + request-notifications: + description: | + Will request to allow notifications from the user + set-default-browser: + description: | + Will send the user to settings to set Firefox as their default browser and advance to next card + sync-sign-in: + description: | + Will take the user to the sync sign in flow + OnboardingCardType: + description: | + The identifiers for the different types of onboarding cards. + variants: + basic: + description: | + Corresponding to basic info onboarding cards + multiple-choice: + description: | + Corresponding to onboarding cards with multiple choice buttons + OnboardingInstructionsPopupActions: + description: | + The identifiers for the different actions available for the insturction card in onboarding + variants: + dismiss: + description: | + Will dismiss the popup + dismiss-and-next-card: + description: | + Will dismiss the popup and move to the next card + open-ios-fx-settings: + description: | + Will take the user to the default browser settings in the iOS system settings + OnboardingMultipleChoiceAction: + description: | + The identifiers for the different actions available for cards in onboarding + variants: + theme-dark: + description: | + Will will set the theme to dark mode + theme-light: + description: | + Will set the theme to light mode + theme-system-default: + description: | + Will set the theme to use the system theme + toolbar-bottom: + description: | + Will set the toolbar on the bottom + toolbar-top: + description: | + Will set the toolbar on the top + OnboardingType: + description: | + The identifiers for the different types of onboarding cards. + variants: + fresh-install: + description: | + Corresponding to onboarding cards that are for new users + upgrade: + description: | + Corresponding to onboarding cards that are for users who have updated + OnboardingVariant: + description: | + Which UI style this onboarding card is designed for. + variants: + brandRefresh: + description: Use the brand refresh onboarding UI with v148 strings. + japan: + description: Use the Japan-specific onboarding UI with localized assets. + legacy: + description: Use the existing (legacy) onboarding UI. + modern: + description: Use the new (modern) onboarding UI. + 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 + ScrollDirection: + description: The layout direction for stories on the homepage. + variants: + baseline: + description: Uses the current default stories layout. + horizontal: + description: Shows stories in a horizontal layout. + vertical: + description: Shows stories in a vertical layout. + StartAtHome: + description: The option for what screen to open the app to + variants: + afterFourHours: + description: Starts the app at the homepage after four hours of inactivity, otherwise starts the app at the most recently viewed tab. + always: + description: Starts the app at the homepage. + disabled: + description: Starts the app at the most recently viewed tab. + 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. + TermsOfUsePromptContentOption: + description: | + Determines which predefined title and "learn more" strings are used for the Terms of Use prompt. + variants: + value-0: + description: | + Uses the current defaults: + - Title: "We've got an update" + - Learn more: "Please take a moment to review and accept. Learn more." + value-1: + description: | + Uses the following copy: + - Title: "Terms of Use" + - Learn more: "You can learn more here." + value-2: + description: | + Uses the following copy: + - Title: "A note from Firefox" + - Learn more: "You can learn more here." + ToolbarLayoutType: + description: The type of toolbar layout. + variants: + version1: + description: Shows the add new tab, menu and tabs button in the navigation toolbar. The share button is displayed in the address toolbar. + version2: + description: Like version1 but the menu and tabs buttons are inverted. +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 + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: 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. + fields: + action: + description: | + The name of a deeplink URL to be opened if the button is clicked. + type: Option + default: null + action-params: + description: Query parameters appended to the deeplink action URL + type: Map + default: {} + button-label: + description: | + The text on the button. If no text is present, the whole message is clickable. + type: Option + default: null + 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. + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: null + 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 + default: null + style: + description: | + The style as described in a `StyleData` from the styles table. + 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 + default: null + 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. + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: | + Attributes relating to microsurvey messaging. + 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 + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: null + NimbusOnboardingButton: + description: | + A group of properties describing the attributes of a card. + fields: + action: + description: | + The action the button should take. The default for this will be "forward-one-card" + type: OnboardingActions + default: forward-one-card + title: + description: | + The text of the button title. This should never be defaulted. + 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. + fields: + primary: + description: | + The primary button for the card. This must exist. + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: | + A secondary, optional, button for the card. + type: Option + default: null + NimbusOnboardingCardData: + description: | + A group of properties describing the attributes of a card. + fields: + body: + description: | + The body text dispalyed on the card, in less prominent text. This should never be defaulted. + type: Text + default: '' + buttons: + description: | + The set of buttons associated with the card. + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: null + 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. + 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`. + type: List + default: [] + image: + description: | + The image that should be dispalyed on the card. + 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 + type: Option + default: null + link: + description: | + The object describing the link button for a card. If left empty, the card will have no link. + type: Option + default: null + multiple-choice-buttons: + description: | + A list of multiple choice buttons that the card will display + type: List + 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. + 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. + 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. + type: List + default: [] + title: + description: | + The title displayed on the card, in prominent, bolded text. This should never be defaulted. + type: Text + default: '' + uiVariant: + description: | + If set, this card will only be shown in the specified UI variant. If null, it will appear in both legacy and modern UIs. + type: Option + default: null + NimbusOnboardingInstructionPopup: + description: | + The object outlining the content of the instruction card. + fields: + button-action: + description: | + The action the button should have. Default is `dismiss-and-next-card` + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: | + The title the button should have. This should never be defaulted. + type: Text + default: '' + instructions: + description: | + A list of instructions, either as free text, or as Text identifiers. + type: List + default: [] + title: + description: | + The text of the popup. This should never be defaulted. + type: Text + default: '' + NimbusOnboardingLink: + description: | + A group of properties describing the attributes for the active link on a card + fields: + title: + description: | + The text of the link title. + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: | + The url that the link will lead to. + 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 + fields: + action: + description: | + The action the button should take. The default for this will be "theme-system-default" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: | + The text of the button title. This should never be defaulted. + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: | + The text of the button title. This should never be defaulted. + 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 + StyleData: + description: | + A group of properities (predominantly visual) to the describe style of the message. + fields: + max-display-count: + description: | + How many sessions will this message be shown to the user before it is expired. + type: Int + default: 5 + priority: + description: | + The importance of this message. 0 is not very important, 100 is very important. + type: Int + default: 50