diff --git a/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml b/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml index 0ba69abc4e..4a6b857b0a 100644 --- a/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/fenix/.ref-cache.yaml @@ -1,3 +1,3 @@ -beta: 1d2c49699acaffa690961417d5ddb7f332264db5 -master: 66aaf96f955d9bdc4bdb087a5075d5fbff2b9c8d -release: c204af1d49b724b88bc289ea38c4d50a78d133ef +beta: 55133241ef7a7ba6cf5b98af4ca9b8d74e06396e +master: 70fb2d2a702db4cb455d282be77ecfe9bdcea589 +release: af473f7473be7a851b294b3bb9edd7ca8968895e diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml b/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml index f2eaa6d7d7..0ccdd83987 100644 --- a/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/firefox-desktop/.ref-cache.yaml @@ -1,5 +1,5 @@ -beta: 87c5950960511db3f64a06208ea24bf212638a23 -central: f4d133d6555bf90b949f8d138bb32c88a55c1ceb -esr115: 7b461b7d80acc34e0193fa0fbed98f71242b388a -esr128: 38b1579734e224bc72cddd532877d3b864d7d910 -release: 6ad91dc44daed9cacf53946523ebf99649f04ef5 +beta: 8d362d0dd6ca9f65ab0e73d8609c4236cbd222f4 +central: d01b815e2e1a7baed43f9b0a1e04e109109648bf +esr115: 36fd7b6b3ddbffe940e402af3c6d1b44ce285543 +esr128: 80804a4f2b2df8460c9fca53a294ff945df9eeec +release: 85fef6eb8f2cd56494960fee7b000e0bf9f04aaa diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml b/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml index f974149a69..43452caaa8 100644 --- a/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/firefox-desktop/experimenter.yaml @@ -2852,7 +2852,7 @@ legacyHeartbeat: queryStripping: description: Query parameter stripping anti-tracking feature. - owner: pbz@mozilla.com + owner: emz@mozilla.com hasExposure: false variables: enabledNormalBrowsing: @@ -3504,7 +3504,7 @@ bookmarks: cookieBannerHandling: description: Automatically handle cookie banners on the user's behalf. - owner: pbz@mozilla.com + owner: emz@mozilla.com hasExposure: false variables: modeNormalBrowsing: @@ -3723,15 +3723,30 @@ nimbusIsReady: nimbusTelemetry: description: A feature that enables or disables Nimbus telemetry. - owner: chumphreys@mozilla.com + owner: nimbus-team@mozilla.com hasExposure: false applications: - firefox-desktop variables: gleanMetricConfiguration: - description: A Glean metric configuration JSON blob. + description: > + A Glean metric configuration JSON blob. + + This is limited to configuring the following categories: + - nimbus_events + - nimbus_targeting_context + - nimbus_targeting_environment + type: json + + nimbusTargetingEnvironment: + description: > + Configuration for the nimbus_targeting_environment telemetry category. type: json + schema: + uri: resource://nimbus/schemas/NimbusTelemetryFeature.schema.json + path: toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json + httpsFirst: description: >- Prefs for HTTPS-First, which upgrades all top-level page loads to HTTPS and @@ -3931,7 +3946,7 @@ certCompression: bounceTrackingProtection: description: Controls the Bounce Tracking Protection feature. - owner: pbz@mozilla.com + owner: emz@mozilla.com hasExposure: false variables: enabled: diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/schemas/toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json b/experimenter/experimenter/features/manifests/firefox-desktop/schemas/toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json new file mode 100644 index 0000000000..668236e81c --- /dev/null +++ b/experimenter/experimenter/features/manifests/firefox-desktop/schemas/toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "gleanMetricConfiguration": { + "type": "object", + "properties": { + "metrics_enabled": { + "type": "object", + "patternProperties": { + "^nimbus_targeting_environment\\..*": { "type": "boolean" }, + "^nimbus_targeting_context\\..*": { "type": "boolean" }, + "^nimbus_events\\..*": { "type": "boolean" } + }, + "additionalProperties": false + } + }, + "additionalProperties": true + }, + "nimbusTargetingEnvironment": { + "type": "object", + "properties": { + "recordAttrs": { + "description": "A list of attributes that should be recorded in the nimbus_targeting_environment.targeting_context_value metric. If not provided, it will default to all attributes.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": true + } + }, + "additionalProperties": true +} diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/experimenter.yaml b/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/experimenter.yaml index f974149a69..43452caaa8 100644 --- a/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/experimenter.yaml +++ b/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/experimenter.yaml @@ -2852,7 +2852,7 @@ legacyHeartbeat: queryStripping: description: Query parameter stripping anti-tracking feature. - owner: pbz@mozilla.com + owner: emz@mozilla.com hasExposure: false variables: enabledNormalBrowsing: @@ -3504,7 +3504,7 @@ bookmarks: cookieBannerHandling: description: Automatically handle cookie banners on the user's behalf. - owner: pbz@mozilla.com + owner: emz@mozilla.com hasExposure: false variables: modeNormalBrowsing: @@ -3723,15 +3723,30 @@ nimbusIsReady: nimbusTelemetry: description: A feature that enables or disables Nimbus telemetry. - owner: chumphreys@mozilla.com + owner: nimbus-team@mozilla.com hasExposure: false applications: - firefox-desktop variables: gleanMetricConfiguration: - description: A Glean metric configuration JSON blob. + description: > + A Glean metric configuration JSON blob. + + This is limited to configuring the following categories: + - nimbus_events + - nimbus_targeting_context + - nimbus_targeting_environment + type: json + + nimbusTargetingEnvironment: + description: > + Configuration for the nimbus_targeting_environment telemetry category. type: json + schema: + uri: resource://nimbus/schemas/NimbusTelemetryFeature.schema.json + path: toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json + httpsFirst: description: >- Prefs for HTTPS-First, which upgrades all top-level page loads to HTTPS and @@ -3931,7 +3946,7 @@ certCompression: bounceTrackingProtection: description: Controls the Bounce Tracking Protection feature. - owner: pbz@mozilla.com + owner: emz@mozilla.com hasExposure: false variables: enabled: diff --git a/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/schemas/toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json b/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/schemas/toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json new file mode 100644 index 0000000000..668236e81c --- /dev/null +++ b/experimenter/experimenter/features/manifests/firefox-desktop/v135.0.0/schemas/toolkit/components/nimbus/schemas/NimbusTelemetryFeature.schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "gleanMetricConfiguration": { + "type": "object", + "properties": { + "metrics_enabled": { + "type": "object", + "patternProperties": { + "^nimbus_targeting_environment\\..*": { "type": "boolean" }, + "^nimbus_targeting_context\\..*": { "type": "boolean" }, + "^nimbus_events\\..*": { "type": "boolean" } + }, + "additionalProperties": false + } + }, + "additionalProperties": true + }, + "nimbusTargetingEnvironment": { + "type": "object", + "properties": { + "recordAttrs": { + "description": "A list of attributes that should be recorded in the nimbus_targeting_environment.targeting_context_value metric. If not provided, it will default to all attributes.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": true + } + }, + "additionalProperties": true +} diff --git a/experimenter/experimenter/features/manifests/focus-ios/.ref-cache.yaml b/experimenter/experimenter/features/manifests/focus-ios/.ref-cache.yaml index 96fa6b6104..c498ea6901 100644 --- a/experimenter/experimenter/features/manifests/focus-ios/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/focus-ios/.ref-cache.yaml @@ -12,7 +12,7 @@ focus/klar-v131.0: 34d92c8df1b1522a1da88c23879b439d763ec133 focus/klar-v131.1: b7dca2271b14988837524a30eb154d91eb5e4912 focus/klar-v132.0: d9ed6134db59ff456d343e2bb211aefd040319ac focus/klar-v133.0: a3372669a06fa684d3c5945c317d6787e3125303 -main: 394d238bbc555d3e6c59f9bb672e586b4af58a2b +main: ae46dacb7a7b9b68d9d065ea5d146853f27439c3 release/v124: da250bed9e19c4978d4400d6d404cb312e33636e release/v125: a3e1e0773a00009e08d95726fd518ab642255ccd release/v126: 6f305409b4af68e8404401a2caad8cb0da9a0494 @@ -22,5 +22,5 @@ release/v129: 500c57e46f0de7c5125ba823eb4f72500934bdca release/v130: a48ec1b1f0219e1987bb38bc4f6b838f37dc6f12 release/v131: 7444df581b62d357df12ddc3c90d821d940efbb8 release/v132: cb318d0061ec6354167ecc1968020d5d75f1bffc -release/v133: 5230c008f4c592fb4bf229f435d24dc912d96d16 -release/v134: 9c03589c19b92066405ccfa66b76686a48d49824 +release/v133: 7c651ce29e94c6389af7a69ec6b5c44251976e92 +release/v134: be550d94c2c7bc8b8902cdf7fe542a64e73a381a diff --git a/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/beta.fml.yaml b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/beta.fml.yaml new file mode 100644 index 0000000000..46b77ec1d0 --- /dev/null +++ b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/beta.fml.yaml @@ -0,0 +1,21 @@ +--- +version: 1.0.0 +about: + description: The root level Feature Manifest for Focus for iOS +channels: + - beta +features: + nimbus-validation: + description: A tiny feature to validate that Nimbus is working + variables: + bold-tip-title: + description: Make the tips title label bold + type: Boolean + default: true + onboarding-variables: + description: A collection of variables about onboarding + variables: + show-new-onboarding: + description: Should the v2 of the onboarding be shown. + type: Boolean + default: false diff --git a/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/developer.fml.yaml b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/developer.fml.yaml new file mode 100644 index 0000000000..36e01f7f33 --- /dev/null +++ b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/developer.fml.yaml @@ -0,0 +1,21 @@ +--- +version: 1.0.0 +about: + description: The root level Feature Manifest for Focus for iOS +channels: + - developer +features: + nimbus-validation: + description: A tiny feature to validate that Nimbus is working + variables: + bold-tip-title: + description: Make the tips title label bold + type: Boolean + default: true + onboarding-variables: + description: A collection of variables about onboarding + variables: + show-new-onboarding: + description: Should the v2 of the onboarding be shown. + type: Boolean + default: true diff --git a/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/experimenter.yaml b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/experimenter.yaml new file mode 100644 index 0000000000..f544374809 --- /dev/null +++ b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/experimenter.yaml @@ -0,0 +1,17 @@ +--- +nimbus-validation: + description: A tiny feature to validate that Nimbus is working + hasExposure: true + exposureDescription: "" + variables: + bold-tip-title: + type: boolean + description: Make the tips title label bold +onboarding-variables: + description: A collection of variables about onboarding + hasExposure: true + exposureDescription: "" + variables: + show-new-onboarding: + type: boolean + description: Should the v2 of the onboarding be shown. diff --git a/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/release.fml.yaml b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/release.fml.yaml new file mode 100644 index 0000000000..5eabdc2f80 --- /dev/null +++ b/experimenter/experimenter/features/manifests/focus-ios/v133.5.0/release.fml.yaml @@ -0,0 +1,21 @@ +--- +version: 1.0.0 +about: + description: The root level Feature Manifest for Focus for iOS +channels: + - release +features: + nimbus-validation: + description: A tiny feature to validate that Nimbus is working + variables: + bold-tip-title: + description: Make the tips title label bold + type: Boolean + default: true + onboarding-variables: + description: A collection of variables about onboarding + variables: + show-new-onboarding: + description: Should the v2 of the onboarding be shown. + type: Boolean + default: false diff --git a/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml b/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml index d70ef1f119..108eacd1e0 100644 --- a/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml +++ b/experimenter/experimenter/features/manifests/ios/.ref-cache.yaml @@ -1,4 +1,4 @@ -main: 394d238bbc555d3e6c59f9bb672e586b4af58a2b +main: ae46dacb7a7b9b68d9d065ea5d146853f27439c3 release/v117: 43b690c450066d4dde1b2ccb93ed3714d244d502 release/v118: 89a7ea3c3372e5a4ef5b3c5b85499d26198d0524 release/v119: 7dc381f991c6d2a983c3ba7f0cffd880e8c29e7b @@ -15,8 +15,8 @@ release/v129: 500c57e46f0de7c5125ba823eb4f72500934bdca release/v130: a48ec1b1f0219e1987bb38bc4f6b838f37dc6f12 release/v131: 7444df581b62d357df12ddc3c90d821d940efbb8 release/v132: cb318d0061ec6354167ecc1968020d5d75f1bffc -release/v133: 5230c008f4c592fb4bf229f435d24dc912d96d16 -release/v134: 9c03589c19b92066405ccfa66b76686a48d49824 +release/v133: 7c651ce29e94c6389af7a69ec6b5c44251976e92 +release/v134: be550d94c2c7bc8b8902cdf7fe542a64e73a381a v117.0: 3b275ab1e4ccef769d84437033c0c68acfd2df8a v117.1: 55ddcf473a65d106d43f6d2ae5af4076d6d03688 v117.2: 5cc367aa8857199cd8a54d53e8faf6696c5614c3 diff --git a/experimenter/experimenter/features/manifests/ios/v133.5.0/beta.fml.yaml b/experimenter/experimenter/features/manifests/ios/v133.5.0/beta.fml.yaml new file mode 100644 index 0000000000..3352b2b5a7 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v133.5.0/beta.fml.yaml @@ -0,0 +1,1015 @@ +--- +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: + - beta +features: + account-settings-redux-feature: + description: "This feature is for managing the roll out of the Account Settings Redux implementation\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + address-autofill-edit: + description: This property defines if the address editing is enabled in Settings + variables: + status: + description: "If true, we will allow user to edit the address" + type: Boolean + default: false + bookmark-refactor-feature: + description: "The Feature for managing the roll out of the Bookmark refactor feature\n" + variables: + enabled: + description: "Enables the bookmark refactor feature\n" + type: Boolean + default: false + contextual-hint-feature: + description: This set holds all features pertaining to contextual hints. + variables: + features-enabled: + description: "This property provides a lookup table of whether specific contextual hints are enabled.\n" + type: "Map" + default: + toolbar-hint: true + credit-card-autofill: + description: This property defines the credit card autofill feature + variables: + credit-card-autofill-status: + description: "If true, we will allow user to use the credit autofill feature" + type: Boolean + default: true + felt-privacy-feature: + description: The feature that enhances private browsing mode + variables: + felt-deletion-enabled: + description: "If true, enable Felt Deletion part of Felt Privacy" + type: Boolean + default: false + simplified-ui-enabled: + description: "If true, enable simplified UI part of Felt Privacy" + type: Boolean + default: false + firefox-suggest-feature: + description: Configuration for the Firefox Suggest feature. + variables: + available-suggestions-types: + description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n" + type: "Map" + default: + amp: true + ampMobile: false + wikipedia: true + status: + description: "Whether the feature is enabled. When Firefox Suggest is enabled, Firefox will download and store new search suggestions in the background, and show additional Search settings to control which suggestions appear in the awesomebar. When Firefox Suggest is disabled, Firefox will not download new suggestions, and hide the additional Search settings.\n" + type: Boolean + default: false + general-app-features: + description: The feature that contains feature flags for the entire application + variables: + report-site-issue: + description: This property defines whether or not the feature is enabled + type: GeneralFeature + default: + status: true + glean-server-knobs: + description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs). + variables: + metrics-enabled: + description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric." + type: "Map" + default: {} + homepage-rebuild-feature: + description: "This feature is for managing the roll out of the Homepage rebuild feature\n" + variables: + enabled: + description: "If true, enables the feature\n" + type: Boolean + default: false + homescreenFeature: + description: The homescreen that the user goes to when they press home or new tab. + variables: + prefer-switch-to-open-tab: + description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n" + type: Boolean + default: false + sections-enabled: + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default.\n" + type: "Map" + default: + jump-back-in: true + recent-explorations: false + login-autofill: + description: This property defines the login autofill feature for automatically filling in usernames and passwords. + variables: + login-autofill-status: + description: "If true, allows the user to use the login autofill feature for usernames and passwords." + type: Boolean + default: true + menu-refactor-feature: + description: "Controls the menu refactor feature\n" + variables: + enabled: + description: "Controls which menu users will see\n" + type: Boolean + default: false + menu-hint: + description: "If true, enables the menu contextual hint.\n" + type: Boolean + default: false + messaging: + description: "The in-app messaging system\n" + documentation: + - name: User documentation + url: "https://experimenter.info/messaging/mobile-messaging" + contacts: + - jhugman@mozilla.com + - brennie@mozilla.com + - gbuciu@mozilla.com + - wteichmann@mozilla.com + events: + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_shown" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_clicked" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_expired" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_dismissed" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_malformed" + variables: + actions: + description: A growable map of action URLs. + type: "Map" + default: + OPEN_SETTINGS: "://deep-link?url=settings/general" + OPEN_SETTINGS_NEW_TAB: "://deep-link?url=settings/newtab" + OPEN_SETTINGS_HOMESCREEN: "://deep-link?url=settings/homepage" + OPEN_SETTINGS_WALLPAPERS: "://deep-link?url=settings/wallpaper" + OPEN_SETTINGS_EMAIL: "://deep-link?url=settings/mailto" + OPEN_SETTINGS_SEARCH_ENGINE: "://deep-link?url=settings/search" + OPEN_SETTINGS_PRIVACY: "://deep-link?url=settings/clear-private-data" + OPEN_SETTINGS_FXA: "://deep-link?url=settings/fxa" + OPEN_SETTINGS_THEME: "://deep-link?url=settings/theme" + OPEN_URL: "://open-url" + VIEW_BOOKMARKS: "://deep-link?url=homepanel/bookmarks" + VIEW_TOP_SITES: "://deep-link?url=homepanel/top-sites" + VIEW_READING_LIST: "://deep-link?url=homepanel/reading-list" + VIEW_HISTORY: "://deep-link?url=homepanel/history" + VIEW_DOWNLOADS: "://deep-link?url=homepanel/downloads" + ENABLE_PRIVATE_BROWSING: "://deep-link?url=homepanel/new-private-tab" + OPEN_NEW_TAB: "://deep-link?url=homepanel/new-tab" + MAKE_DEFAULT_BROWSER: "://deep-link?url=default-browser/system-settings" + MAKE_DEFAULT_BROWSER_WITH_TUTORIAL: "://deep-link?url=default-browser/tutorial" + string-alias: ActionName + message-under-experiment: + description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead." + type: Option + default: ~ + messages: + description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n" + type: "Map" + default: + default-browser: + surface: new-tab-card + style: FALLBACK + trigger-if-all: + - SUPPORTS_DEFAULT_BROWSER + - ON_FOURTH_LAUNCH_THIS_YEAR + except-if-any: + - I_AM_DEFAULT_BROWSER + title: Default Browser/DefaultBrowserCard.Title + text: Default Browser/DefaultBrowserCard.Description + button-label: Default Browser/DefaultBrowserCard.Button.v2 + action: MAKE_DEFAULT_BROWSER_WITH_TUTORIAL + homepage-microsurvey-message: + surface: microsurvey + style: MICROSURVEY + trigger-if-all: + - SECOND_HOMEPAGE_VIEW + title: Microsurvey/Microsurvey.Prompt.TitleLabel.v127 + text: How satisfied are you with your Firefox homepage? + button-label: Microsurvey/Microsurvey.Prompt.Button.v127 + microsurveyConfig: + utm-content: homepage + icon: homeLarge + options: + - Microsurvey/Microsurvey.Survey.Options.VerySatisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.Satisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.Neutral.v132 + - Microsurvey/Microsurvey.Survey.Options.Dissatisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.VeryDissatisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.NotApplicable.v132 + string-alias: MessageKey + on-control: + description: What should be displayed when a control message is selected. + type: ControlMessageBehavior + default: show-next-message + styles: + description: "A map of styles to configure message appearance.\n" + type: "Map" + default: + FALLBACK: + priority: 40 + max-display-count: 20 + DEFAULT: + priority: 50 + max-display-count: 5 + MICROSURVEY: + priority: 50 + max-display-count: 1 + NOTIFICATION: + priority: 50 + max-display-count: 1 + PERSISTENT: + priority: 50 + max-display-count: 20 + SURVEY: + priority: 55 + max-display-count: 10 + WARNING: + priority: 60 + max-display-count: 10 + URGENT: + priority: 100 + max-display-count: 10 + string-alias: StyleName + triggers: + description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n" + type: "Map" + default: + ALWAYS: "true" + NEVER: "false" + USER_RECENTLY_INSTALLED: days_since_install < 7 + USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update + USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)" + USER_EN_SPEAKER: "'en' in locale" + USER_ES_SPEAKER: "'es' in locale" + USER_DE_SPEAKER: "'de' in locale" + USER_FR_SPEAKER: "'fr' in locale" + DEVICE_ANDROID: "os == 'Android'" + DEVICE_IOS: "os == 'iOS'" + DAY_1_AFTER_INSTALL: days_since_install == 1 + DAY_2_AFTER_INSTALL: days_since_install == 2 + DAY_3_AFTER_INSTALL: days_since_install == 3 + DAY_4_AFTER_INSTALL: days_since_install == 4 + DAY_5_AFTER_INSTALL: days_since_install == 5 + MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1 + NOT_LAUNCHED_YESTERDAY: "'app_cycle.foreground'|eventLastSeen('Days', 1) > 1" + AFTER_THREE_LAUNCHES_THIS_WEEK: "'app_cycle.foreground'|eventSum('Weeks', 1, 0) >= 3" + I_AM_DEFAULT_BROWSER: is_default_browser + I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false + SUPPORTS_DEFAULT_BROWSER: "os_version|versionCompare('14.!') >= 0" + INACTIVE_NEW_USER: is_inactive_new_user + ALLOWED_TIPS_NOTIFICATIONS: allowed_tips_notifications + FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true + SECOND_HOMEPAGE_VIEW: "'homepage_viewed'|eventSum('Years', 4, 0) >= 2" + ON_FOURTH_LAUNCH_THIS_YEAR: "'app_cycle.foreground'|eventSum('Years', 1, 0) > 3" + string-alias: TriggerName + ~~experiment: + description: Not to be set by experiment. + type: ExperimentSlug + default: "{experiment}" + string-alias: ExperimentSlug + allow-coenrollment: true + microsurvey-feature: + description: "A feature that shows the microsurvey for users to interact with and submit responses.\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + native-error-page-feature: + description: "This feature is for managing the roll out of the native error page feature\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + night-mode-feature: + description: "Describes the night mode feature's configuration\n" + variables: + enabled: + description: "Whether night mode is available for users or not\n" + type: Boolean + default: true + onboarding-framework-feature: + description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n" + variables: + cards: + description: "The list of available cards for onboarding.\n" + type: "Map" + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + link: + title: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: "https://www.mozilla.org/privacy/firefox/" + buttons: + primary: + title: Onboarding/Onboarding.Welcome.ActionTreatementA.v114 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Welcome.Skip.v114 + action: forward-one-card + instructions-popup: + title: Onboarding/DefaultBrowserPopup.Title.v114 + button-title: Onboarding/DefaultBrowserPopup.ButtonTitle.v114 + button-action: open-ios-fx-settings + instructions: + - Onboarding/DefaultBrowserPopup.FirstLabel.v114 + - Onboarding/DefaultBrowserPopup.SecondLabel.v114 + - Onboarding/DefaultBrowserPopup.ThirdLabel.v114 + onboarding-type: fresh-install + prerequisites: + - ALWAYS + notification-permissions: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Notification.Title.v120 + body: Onboarding/Onboarding.Notification.Description.v120 + image: notifications + buttons: + primary: + title: Onboarding/Onboarding.Notification.TurnOnNotifications.Action.v114 + action: request-notifications + secondary: + title: Onboarding/Onboarding.Notification.Skip.Action.v115 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + sign-to-sync: + card-type: basic + order: 20 + title: Onboarding/Onboarding.Sync.Title.v120 + body: Onboarding/Onboarding.Sync.Description.v123 + image: sync-devices + buttons: + primary: + title: Onboarding/Onboarding.Sync.SignIn.Action.v114 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + customization-theme: + card-type: multiple-choice + order: 40 + title: Onboarding/Onboarding.Customization.Theme.Title.v123 + body: Onboarding/Onboarding.Customization.Theme.Description.v123 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Customization.Theme.Continue.Action.v123 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Customization.Theme.System.Action.v123 + image: theme-system + action: theme-system-default + - title: Onboarding/Onboarding.Customization.Theme.Light.Action.v123 + image: theme-light + action: theme-light + - title: Onboarding/Onboarding.Customization.Theme.Dark.Action.v123 + image: theme-dark + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + customization-toolbar: + card-type: multiple-choice + order: 41 + title: Onboarding/Onboarding.Customization.Toolbar.Title.v123 + body: Onboarding/Onboarding.Customization.Toolbar.Description.v123 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Customization.Toolbar.Continue.Action.v123 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Customization.Toolbar.Top.Action.v123 + image: toolbar-top + action: toolbar-top + - title: Onboarding/Onboarding.Customization.Toolbar.Bottom.Action.v123 + image: toolbar-bottom + action: toolbar-bottom + onboarding-type: fresh-install + prerequisites: + - ALWAYS + update-welcome: + card-type: basic + order: 10 + title: Upgrade/Upgrade.Welcome.Title.v114 + body: Upgrade/Upgrade.Welcome.Description.v114 + image: welcome-globe + buttons: + primary: + title: Upgrade/Upgrade.Welcome.Action.v114 + action: forward-one-card + onboarding-type: upgrade + prerequisites: + - NEVER + update-sign-to-sync: + card-type: basic + order: 20 + title: Upgrade/Upgrade.SyncSign.Title.v114 + body: Upgrade/Upgrade.SyncSign.Description.v114 + image: sync-devices + buttons: + primary: + title: Upgrade/Upgrade.SyncSign.Action.v114 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.LaterAction.v114 + action: forward-one-card + onboarding-type: upgrade + prerequisites: + - NEVER + string-alias: NimbusOnboardingCardKey + conditions: + description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n" + type: "Map" + default: + ALWAYS: "true" + NEVER: "false" + string-alias: ConditionName + dismissable: + description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n" + type: Boolean + default: true + password-generator-feature: + description: Password Generator Feature + variables: + enabled: + description: "If true, the password generator feature is enabled" + type: Boolean + default: false + redux-search-settings-feature: + description: "This feature is for managing the roll out of redux on the search settings screen\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + remote-tab-management: + description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n" + variables: + close-tabs-enabled: + description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n" + type: Boolean + default: false + search: + description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n" + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + is-toolbar-cfr-on: false + search-highlights: false + use-page-content: false + shopping2023: + description: "The configuration setting for the status of the Fakespot feature\n" + variables: + back_in_stock_reporting: + description: "If true, enables for users the reporting feature for products back in stock.\n" + type: Boolean + default: false + config: + description: "A Map of website configurations\n" + type: "Map" + default: + amazon: + productIdFromURLRegex: "(?:[\\\\/]|$|%2F)(?[A-Z0-9]{10})(?:[\\\\/]|$|\\\\#|\\\\?|%2F)" + validTLDs: + - com + - de + - fr + walmart: + productIdFromURLRegex: "\\\\/ip\\\\/(?:[A-Za-z0-9-]{1,320}\\\\/)?(?[0-9]{3,13})" + validTLDs: + - com + bestbuy: + productIdFromURLRegex: "\\\\/(?\\\\d+\\\\.p)" + validTLDs: + - com + product_ads: + description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n" + type: Boolean + default: false + relay: + description: "Configurable relay URL for production environment\n" + type: String + default: "https://mozilla-ohttp-fakespot.fastly-edge.com/" + status: + description: "Whether the Fakespot feature is enabled or disabled\n" + type: Boolean + default: false + splash-screen: + description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run.\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + maximum_duration_ms: + description: "The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.\n" + type: Int + default: 0 + spotlight-search: + description: Add pages as items findable with Spotlight. + variables: + enabled: + description: "If this is true, then on each page load adds a new item to Spotlight." + type: Boolean + default: false + icon-type: + description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n" + type: Option + default: letter + keep-for-days: + description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n" + type: Option + default: ~ + searchable-content: + description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n" + type: Option + default: text-excerpt + tab-tray-refactor-feature: + description: "This feature is for managing the roll out of the Tab Tray refactor feature\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: true + tabTrayFeature: + description: The tab tray screen that the user goes to when they open the tab tray. + variables: + sections-enabled: + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default." + type: "Map" + default: + inactive-tabs: true + toolbar-refactor-feature: + description: "This feature is for managing the roll out of the Toolbar refactor feature\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + navigation_hint: + description: "If true, enables the navigation contextual hint.\n" + type: Boolean + default: false + one_tap_new_tab: + description: "If true, enables the one tap new tab feature for users.\n" + type: Boolean + default: false + unified_search: + description: "Enables the unified search feature\n" + type: Boolean + default: false + tracking-protection-refactor: + description: "The Enhanced Tracking Protection refactor\n" + variables: + enabled: + description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n" + type: Boolean + default: false + zoom-feature: + description: "The configuration for the status of the zoom feature\n" + variables: + status: + description: "Whether the page zoom feature is enabled or not\n" + type: Boolean + default: true +enums: + ContextualHint: + description: The identifiers for a individual contextual hints. + variants: + toolbar-hint: + description: The contextual hint bubble that appears to provide a hint about the toolbar. + ControlMessageBehavior: + description: An enum to influence what should be displayed when a control message is selected. + variants: + show-next-message: + description: The next eligible message should be shown. + show-none: + description: The surface should show no message. + HomeScreenSection: + description: The identifiers for the sections of the homescreen. + variants: + jump-back-in: + description: The tabs the user was looking immediately before being interrupted. + recent-explorations: + description: The tab groups + IconType: + description: "The icon that will be added to the item in the device's search engine." + variants: + favicon: + description: The favicon of the page + letter: + description: An icon generated from the first letter of the base domain. + screenshot: + description: A screenshot of the page at load time. + MessageSurfaceId: + description: "For messaging, we would like to have a message tell us which surface its associated with. This is a label that matches across both Android and iOS.\n" + variants: + Unknown: + description: A message has NOT declared its target surface. + microsurvey: + description: This is a microsurvey that appears on top of the bottom toolbar to the user. + new-tab-card: + description: This is the card that appears at the top on the Firefox Home Page. + notification: + description: This is a local notification send to the user periodically with tips and updates. + survey: + description: This is a full-page that appears providing a survey to the user. + NimbusOnboardingHeaderImage: + description: "The identifiers for the different images available for cards in onboarding\n" + variants: + customize-firefox: + description: "Corresponding to the fox window image\n" + notifications: + description: "Corresponding to the notifications image\n" + notifications-ctd: + description: "Corresponding to the notifications image for CTD\n" + search-widget: + description: "Corresponding to the fox search widget image\n" + set-default-steps: + description: "Corresponding to the set to default steps image\n" + set-to-dock: + description: "Corresponding to the set to dock image\n" + sync-devices: + description: "Corresponding to the sync-devices image\n" + sync-devices-ctd: + description: "Corresponding to the sync image for CTD\n" + themeing: + description: "Corresponding to the fox world image\n" + toolbar: + description: "Corresponding to the fox world image\n" + welcome-ctd: + description: "Corresponding to the welcome image for CTD\n" + welcome-globe: + description: "Corresponding to the fox world image\n" + NimbusOnboardingMultipleChoiceButtonImage: + description: "The identifiers for the different images available for multiple choice buttons in onboarding\n" + variants: + theme-dark: + description: "Corresponding to the dark theme\n" + theme-light: + description: "Corresponding to the light theme\n" + theme-system: + description: "Corresponding to the system theme\n" + toolbar-bottom: + description: "Corresponding to the toolbar on the bottom\n" + toolbar-top: + description: "Corresponding to the toolbar on top\n" + OnboardingActions: + description: "The identifiers for the different actions available for cards in onboarding\n" + variants: + end-onboarding: + description: "Will end the onboarding on a set card\n" + forward-one-card: + description: "Will take the user to the next card\n" + forward-three-card: + description: "Will take the user to the next card\n" + forward-two-card: + description: "Will take the user to the next card\n" + open-instructions-popup: + description: "Will open up a popup with instructions for something\n" + open-ios-fx-settings: + description: "Will take the user to the default browser settings in the iOS system settings\n" + read-privacy-policy: + description: "Will open a webview where the user can read the privacy policy\n" + request-notifications: + description: "Will request to allow notifications from the user\n" + set-default-browser: + description: "Will send the user to settings to set Firefox as their default browser and advance to next card\n" + sync-sign-in: + description: "Will take the user to the sync sign in flow\n" + OnboardingCardType: + description: "The identifiers for the different types of onboarding cards.\n" + variants: + basic: + description: "Corresponding to basic info onboarding cards\n" + multiple-choice: + description: "Corresponding to onboarding cards with multiple choice buttons\n" + OnboardingInstructionsPopupActions: + description: "The identifiers for the different actions available for the insturction card in onboarding\n" + variants: + dismiss: + description: "Will dismiss the popup\n" + dismiss-and-next-card: + description: "Will dismiss the popup and move to the next card\n" + open-ios-fx-settings: + description: "Will take the user to the default browser settings in the iOS system settings\n" + OnboardingMultipleChoiceAction: + description: "The identifiers for the different actions available for cards in onboarding\n" + variants: + theme-dark: + description: "Will will set the theme to dark mode\n" + theme-light: + description: "Will set the theme to light mode\n" + theme-system-default: + description: "Will set the theme to use the system theme\n" + toolbar-bottom: + description: "Will set the toolbar on the bottom\n" + toolbar-top: + description: "Will set the toolbar on the top\n" + OnboardingType: + description: "The identifiers for the different types of onboarding cards.\n" + variants: + fresh-install: + description: "Corresponding to onboarding cards that are for new users\n" + upgrade: + description: "Corresponding to onboarding cards that are for users who have updated\n" + PageContent: + description: "The page content that will be added as an item in the device's search engine." + variants: + html-content: + description: Use all the page as HTML + text-content: + description: Use all the page as text + text-excerpt: + description: Only use the first paragraph + SuggestionType: + description: The type of a Firefox Suggest search suggestion. + variants: + amp: + description: A Firefox Suggestion for desktop from adMarketplace. + ampMobile: + description: A Firefox Suggestion specifically for mobile from adMarketplace. + wikipedia: + description: A Firefox Suggestion for a Wikipedia page. + TabTraySection: + description: The identifiers for the sections of the tab tray. + variants: + inactive-tabs: + description: Tabs that have been automatically closed for the user. +objects: + AwesomeBar: + description: "A configuration option for the awesome bar. Part of the `search` feature." + fields: + min-search-term: + description: The minimum number of characters that the user types before searching in the page. + type: Int + default: 3 + position: + description: "This property defines whether or not the feature is enabled, and the position of the search bar\n" + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: true + is-toolbar-cfr-on: true + search-highlights: + description: Whether or not search highlights are enabled + type: Boolean + default: false + use-page-content: + description: "Search in the open tab's text content when typing." + type: Boolean + default: false + GeneralFeature: + description: The configuration for the a feature that can be enabled or disabled + fields: + status: + description: Whether or not the feature is enabled + type: Boolean + default: false + MessageData: + description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n" + fields: + action: + description: "The name of a deeplink URL to be opened if the button is clicked.\n" + type: Option + default: ~ + 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.\n" + type: Option + default: ~ + except-if-any: + description: "A list of strings corresponding to targeting expressions. If any of these expressions evaluate to `true`, the message will not be eligible.\n" + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: ~ + is-control: + description: "Indicates if this message is the control message, if true shouldn't be displayed" + type: Boolean + default: false + microsurveyConfig: + description: Optional configuration data for a microsurvey. + type: Option + default: ~ + style: + description: "The style as described in a `StyleData` from the styles table.\n" + type: StyleName + default: DEFAULT + surface: + description: Each message will tell us the surface it is targeting with this. + type: MessageSurfaceId + default: Unknown + text: + description: The message text displayed to the user + type: Text + default: "" + title: + description: The title text displayed to the user + type: Option + default: ~ + trigger-if-all: + description: "A list of strings corresponding to targeting expressions. All named expressions must evaluate to true if the message is to be eligible to be shown.\n" + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: "Attributes relating to microsurvey messaging.\n" + fields: + icon: + description: The asset name in our bundle used as the icon shown in the survey. + type: Image + default: lightbulbLarge + options: + description: The list of survey options to present to the user. + type: List + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: ~ + NimbusOnboardingButton: + description: "A group of properties describing the attributes of a card.\n" + fields: + action: + description: "The action the button should take. The default for this will be \"forward-one-card\"\n" + type: OnboardingActions + default: forward-one-card + title: + description: "The text of the button title. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingButtons: + description: "A set of buttons for the card. There can be up to two, but there must be at least one.\n" + fields: + primary: + description: "The primary button for the card. This must exist.\n" + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: "A secondary, optional, button for the card.\n" + type: Option + default: ~ + NimbusOnboardingCardData: + description: "A group of properties describing the attributes of a card.\n" + fields: + body: + description: "The body text dispalyed on the card, in less prominent text. This should never be defaulted.\n" + type: Text + default: "" + buttons: + description: "The set of buttons associated with the card.\n" + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: ~ + card-type: + description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n" + type: OnboardingCardType + default: basic + disqualifiers: + description: "A list of ConditionName strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n" + type: List + default: [] + image: + description: "The image that should be dispalyed on the card.\n" + type: NimbusOnboardingHeaderImage + default: welcome-globe + instructions-popup: + description: "The object describing the specific instruction popup button for a card. If left empty, the card will have no instruction popup information\n" + type: Option + default: ~ + link: + description: "The object describing the link button for a card. If left empty, the card will have no link.\n" + type: Option + default: ~ + multiple-choice-buttons: + description: "A list of multiple choice buttons that the card will display\n" + 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.\n" + type: OnboardingType + default: fresh-install + order: + description: "The place in the order where the card will be found. The feature layer will then sort the cards based on this field.\n" + type: Int + default: 10 + prerequisites: + description: "A list of ConditionName strings corresponding to targeting expressions. The card will be shown if all expressions `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n" + type: List + default: [] + title: + description: "The title displayed on the card, in prominent, bolded text. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingInstructionPopup: + description: "The object outlining the content of the instruction card.\n" + fields: + button-action: + description: "The action the button should have. Default is `dismiss-and-next-card`\n" + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: "The title the button should have. This should never be defaulted.\n" + type: Text + default: "" + instructions: + description: "A list of instructions, either as free text, or as Text identifiers.\n" + type: List + default: [] + title: + description: "The text of the popup. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingLink: + description: "A group of properties describing the attributes for the active link on a card\n" + fields: + title: + description: "The text of the link title.\n" + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: "The url that the link will lead to.\n" + type: String + default: "https://www.mozilla.org/privacy/firefox/" + NimbusOnboardingMultipleChoiceButton: + description: "A group of properties describing the attributes of a multiple choice button on a card\n" + fields: + action: + description: "The action the button should take. The default for this will be \"theme-system-default\"\n" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: "The text of the button title. This should never be defaulted.\n" + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: "The text of the button title. This should never be defaulted.\n" + type: Text + default: "" + SearchBarPositionFeature: + description: The configuration for the bottom search bar on the homescreen + fields: + is-bottom: + description: Whether or not the default position is at the bottom + type: Boolean + default: true + is-position-feature-enabled: + description: Whether or not the feature is enabled + type: Boolean + default: true + is-toolbar-cfr-on: + description: Whether or not the toolbar CFR shows. This is a temporary hack for Nimbus + type: Boolean + default: true + StyleData: + description: "A group of properities (predominantly visual) to the describe style of the message.\n" + fields: + max-display-count: + description: "How many sessions will this message be shown to the user before it is expired.\n" + type: Int + default: 5 + priority: + description: "The importance of this message. 0 is not very important, 100 is very important.\n" + type: Int + default: 50 + WebsiteConfig: + description: "It represents a configuration for different e-commerce websites and includes regular expressions for extracting product IDs from their respective URLs\n" + fields: + productIdFromURLRegex: + description: "It represents the product ID extracted from a regex query\n" + type: String + default: "" + validTLDs: + description: "Valid Top Level Domains\n" + type: List + default: [] diff --git a/experimenter/experimenter/features/manifests/ios/v133.5.0/developer.fml.yaml b/experimenter/experimenter/features/manifests/ios/v133.5.0/developer.fml.yaml new file mode 100644 index 0000000000..064cceaccb --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v133.5.0/developer.fml.yaml @@ -0,0 +1,1025 @@ +--- +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: + - developer +features: + account-settings-redux-feature: + description: "This feature is for managing the roll out of the Account Settings Redux implementation\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + address-autofill-edit: + description: This property defines if the address editing is enabled in Settings + variables: + status: + description: "If true, we will allow user to edit the address" + type: Boolean + default: true + bookmark-refactor-feature: + description: "The Feature for managing the roll out of the Bookmark refactor feature\n" + variables: + enabled: + description: "Enables the bookmark refactor feature\n" + type: Boolean + default: false + contextual-hint-feature: + description: This set holds all features pertaining to contextual hints. + variables: + features-enabled: + description: "This property provides a lookup table of whether specific contextual hints are enabled.\n" + type: "Map" + default: + toolbar-hint: true + credit-card-autofill: + description: This property defines the credit card autofill feature + variables: + credit-card-autofill-status: + description: "If true, we will allow user to use the credit autofill feature" + type: Boolean + default: true + felt-privacy-feature: + description: The feature that enhances private browsing mode + variables: + felt-deletion-enabled: + description: "If true, enable Felt Deletion part of Felt Privacy" + type: Boolean + default: true + simplified-ui-enabled: + description: "If true, enable simplified UI part of Felt Privacy" + 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.\n" + 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.\n" + 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 + glean-server-knobs: + description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs). + variables: + metrics-enabled: + description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric." + type: "Map" + default: {} + homepage-rebuild-feature: + description: "This feature is for managing the roll out of the Homepage rebuild feature\n" + variables: + enabled: + description: "If true, enables the feature\n" + type: Boolean + default: false + homescreenFeature: + description: The homescreen that the user goes to when they press home or new tab. + variables: + prefer-switch-to-open-tab: + description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n" + type: Boolean + default: true + sections-enabled: + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default.\n" + type: "Map" + default: + jump-back-in: true + recent-explorations: false + login-autofill: + description: This property defines the login autofill feature for automatically filling in usernames and passwords. + variables: + login-autofill-status: + description: "If true, allows the user to use the login autofill feature for usernames and passwords." + type: Boolean + default: true + menu-refactor-feature: + description: "Controls the menu refactor feature\n" + variables: + enabled: + description: "Controls which menu users will see\n" + type: Boolean + default: false + menu-hint: + description: "If true, enables the menu contextual hint.\n" + type: Boolean + default: true + messaging: + description: "The in-app messaging system\n" + documentation: + - name: User documentation + url: "https://experimenter.info/messaging/mobile-messaging" + contacts: + - jhugman@mozilla.com + - brennie@mozilla.com + - gbuciu@mozilla.com + - wteichmann@mozilla.com + events: + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_shown" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_clicked" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_expired" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_dismissed" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_malformed" + variables: + actions: + description: A growable map of action URLs. + type: "Map" + default: + OPEN_SETTINGS: "://deep-link?url=settings/general" + OPEN_SETTINGS_NEW_TAB: "://deep-link?url=settings/newtab" + OPEN_SETTINGS_HOMESCREEN: "://deep-link?url=settings/homepage" + OPEN_SETTINGS_WALLPAPERS: "://deep-link?url=settings/wallpaper" + OPEN_SETTINGS_EMAIL: "://deep-link?url=settings/mailto" + OPEN_SETTINGS_SEARCH_ENGINE: "://deep-link?url=settings/search" + OPEN_SETTINGS_PRIVACY: "://deep-link?url=settings/clear-private-data" + OPEN_SETTINGS_FXA: "://deep-link?url=settings/fxa" + OPEN_SETTINGS_THEME: "://deep-link?url=settings/theme" + OPEN_URL: "://open-url" + VIEW_BOOKMARKS: "://deep-link?url=homepanel/bookmarks" + VIEW_TOP_SITES: "://deep-link?url=homepanel/top-sites" + VIEW_READING_LIST: "://deep-link?url=homepanel/reading-list" + VIEW_HISTORY: "://deep-link?url=homepanel/history" + VIEW_DOWNLOADS: "://deep-link?url=homepanel/downloads" + ENABLE_PRIVATE_BROWSING: "://deep-link?url=homepanel/new-private-tab" + OPEN_NEW_TAB: "://deep-link?url=homepanel/new-tab" + MAKE_DEFAULT_BROWSER: "://deep-link?url=default-browser/system-settings" + MAKE_DEFAULT_BROWSER_WITH_TUTORIAL: "://deep-link?url=default-browser/tutorial" + string-alias: ActionName + message-under-experiment: + description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead." + type: Option + default: ~ + messages: + description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n" + type: "Map" + default: + default-browser: + surface: new-tab-card + style: FALLBACK + trigger-if-all: + - SUPPORTS_DEFAULT_BROWSER + - ON_FOURTH_LAUNCH_THIS_YEAR + except-if-any: + - I_AM_DEFAULT_BROWSER + title: Default Browser/DefaultBrowserCard.Title + text: Default Browser/DefaultBrowserCard.Description + button-label: Default Browser/DefaultBrowserCard.Button.v2 + action: MAKE_DEFAULT_BROWSER_WITH_TUTORIAL + homepage-microsurvey-message: + surface: microsurvey + style: MICROSURVEY + trigger-if-all: + - SECOND_HOMEPAGE_VIEW + title: Microsurvey/Microsurvey.Prompt.TitleLabel.v127 + text: How satisfied are you with your Firefox homepage? + button-label: Microsurvey/Microsurvey.Prompt.Button.v127 + microsurveyConfig: + utm-content: homepage + icon: homeLarge + options: + - Microsurvey/Microsurvey.Survey.Options.VerySatisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.Satisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.Neutral.v132 + - Microsurvey/Microsurvey.Survey.Options.Dissatisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.VeryDissatisfied.v132 + - Microsurvey/Microsurvey.Survey.Options.NotApplicable.v132 + 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.\n" + 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.\n" + 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.\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: true + native-error-page-feature: + description: "This feature is for managing the roll out of the native error page feature\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + night-mode-feature: + description: "Describes the night mode feature's configuration\n" + variables: + enabled: + description: "Whether night mode is available for users or not\n" + type: Boolean + default: true + onboarding-framework-feature: + description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n" + variables: + cards: + description: "The list of available cards for onboarding.\n" + type: "Map" + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + link: + title: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: "https://www.mozilla.org/privacy/firefox/" + buttons: + primary: + title: Onboarding/Onboarding.Welcome.ActionTreatementA.v114 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Welcome.Skip.v114 + action: forward-one-card + instructions-popup: + title: Onboarding/DefaultBrowserPopup.Title.v114 + button-title: Onboarding/DefaultBrowserPopup.ButtonTitle.v114 + button-action: open-ios-fx-settings + instructions: + - Onboarding/DefaultBrowserPopup.FirstLabel.v114 + - Onboarding/DefaultBrowserPopup.SecondLabel.v114 + - Onboarding/DefaultBrowserPopup.ThirdLabel.v114 + onboarding-type: fresh-install + prerequisites: + - ALWAYS + notification-permissions: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Notification.Title.v120 + body: Onboarding/Onboarding.Notification.Description.v120 + image: notifications + buttons: + primary: + title: Onboarding/Onboarding.Notification.TurnOnNotifications.Action.v114 + action: request-notifications + secondary: + title: Onboarding/Onboarding.Notification.Skip.Action.v115 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + sign-to-sync: + card-type: basic + order: 20 + title: Onboarding/Onboarding.Sync.Title.v120 + body: Onboarding/Onboarding.Sync.Description.v123 + image: sync-devices + buttons: + primary: + title: Onboarding/Onboarding.Sync.SignIn.Action.v114 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + customization-theme: + card-type: multiple-choice + order: 40 + title: Onboarding/Onboarding.Customization.Theme.Title.v123 + body: Onboarding/Onboarding.Customization.Theme.Description.v123 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Customization.Theme.Continue.Action.v123 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Customization.Theme.System.Action.v123 + image: theme-system + action: theme-system-default + - title: Onboarding/Onboarding.Customization.Theme.Light.Action.v123 + image: theme-light + action: theme-light + - title: Onboarding/Onboarding.Customization.Theme.Dark.Action.v123 + image: theme-dark + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + customization-toolbar: + card-type: multiple-choice + order: 41 + title: Onboarding/Onboarding.Customization.Toolbar.Title.v123 + body: Onboarding/Onboarding.Customization.Toolbar.Description.v123 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Customization.Toolbar.Continue.Action.v123 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Customization.Toolbar.Top.Action.v123 + image: toolbar-top + action: toolbar-top + - title: Onboarding/Onboarding.Customization.Toolbar.Bottom.Action.v123 + image: toolbar-bottom + action: toolbar-bottom + onboarding-type: fresh-install + prerequisites: + - ALWAYS + update-welcome: + card-type: basic + order: 10 + title: Upgrade/Upgrade.Welcome.Title.v114 + body: Upgrade/Upgrade.Welcome.Description.v114 + image: welcome-globe + buttons: + primary: + title: Upgrade/Upgrade.Welcome.Action.v114 + action: forward-one-card + onboarding-type: upgrade + prerequisites: + - NEVER + update-sign-to-sync: + card-type: basic + order: 20 + title: Upgrade/Upgrade.SyncSign.Title.v114 + body: Upgrade/Upgrade.SyncSign.Description.v114 + image: sync-devices + buttons: + primary: + title: Upgrade/Upgrade.SyncSign.Action.v114 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.LaterAction.v114 + action: forward-one-card + onboarding-type: upgrade + prerequisites: + - NEVER + string-alias: NimbusOnboardingCardKey + conditions: + description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n" + type: "Map" + default: + ALWAYS: "true" + NEVER: "false" + string-alias: ConditionName + dismissable: + description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n" + type: Boolean + default: true + password-generator-feature: + description: Password Generator Feature + variables: + enabled: + description: "If true, the password generator feature is enabled" + type: Boolean + default: true + redux-search-settings-feature: + description: "This feature is for managing the roll out of redux on the search settings screen\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + remote-tab-management: + description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n" + variables: + close-tabs-enabled: + description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n" + type: Boolean + default: true + search: + description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n" + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: false + is-position-feature-enabled: true + is-toolbar-cfr-on: false + search-highlights: false + use-page-content: false + shopping2023: + description: "The configuration setting for the status of the Fakespot feature\n" + variables: + back_in_stock_reporting: + description: "If true, enables for users the reporting feature for products back in stock.\n" + type: Boolean + default: false + config: + description: "A Map of website configurations\n" + type: "Map" + default: + amazon: + productIdFromURLRegex: "(?:[\\\\/]|$|%2F)(?[A-Z0-9]{10})(?:[\\\\/]|$|\\\\#|\\\\?|%2F)" + validTLDs: + - com + - de + - fr + walmart: + productIdFromURLRegex: "\\\\/ip\\\\/(?:[A-Za-z0-9-]{1,320}\\\\/)?(?[0-9]{3,13})" + validTLDs: + - com + bestbuy: + productIdFromURLRegex: "\\\\/(?\\\\d+\\\\.p)" + validTLDs: + - com + product_ads: + description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n" + type: Boolean + default: false + relay: + description: "Configurable relay URL for production environment\n" + type: String + default: "https://mozilla-ohttp-fakespot.fastly-edge.com/" + status: + description: "Whether the Fakespot feature is enabled or disabled\n" + type: Boolean + default: false + splash-screen: + description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run.\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: true + maximum_duration_ms: + description: "The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.\n" + type: Int + default: 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.\n" + 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.\n" + type: Option + default: ~ + searchable-content: + description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n" + type: Option + default: text-excerpt + tab-tray-refactor-feature: + description: "This feature is for managing the roll out of the Tab Tray refactor feature\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: true + tabTrayFeature: + description: The tab tray screen that the user goes to when they open the tab tray. + variables: + sections-enabled: + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default." + type: "Map" + default: + inactive-tabs: true + toolbar-refactor-feature: + description: "This feature is for managing the roll out of the Toolbar refactor feature\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + navigation_hint: + description: "If true, enables the navigation contextual hint.\n" + type: Boolean + default: false + one_tap_new_tab: + description: "If true, enables the one tap new tab feature for users.\n" + type: Boolean + default: false + unified_search: + description: "Enables the unified search feature\n" + type: Boolean + default: false + tracking-protection-refactor: + description: "The Enhanced Tracking Protection refactor\n" + variables: + enabled: + description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n" + type: Boolean + default: true + zoom-feature: + description: "The configuration for the status of the zoom feature\n" + variables: + status: + description: "Whether the page zoom feature is enabled or not\n" + type: Boolean + default: true +enums: + ContextualHint: + description: The identifiers for a individual contextual hints. + variants: + toolbar-hint: + description: The contextual hint bubble that appears to provide a hint about the toolbar. + ControlMessageBehavior: + description: An enum to influence what should be displayed when a control message is selected. + variants: + show-next-message: + description: The next eligible message should be shown. + show-none: + description: The surface should show no message. + HomeScreenSection: + description: The identifiers for the sections of the homescreen. + variants: + jump-back-in: + description: The tabs the user was looking immediately before being interrupted. + recent-explorations: + description: The tab groups + IconType: + description: "The icon that will be added to the item in the device's search engine." + variants: + favicon: + description: The favicon of the page + letter: + description: An icon generated from the first letter of the base domain. + screenshot: + description: A screenshot of the page at load time. + MessageSurfaceId: + description: "For messaging, we would like to have a message tell us which surface its associated with. This is a label that matches across both Android and iOS.\n" + variants: + Unknown: + description: A message has NOT declared its target surface. + microsurvey: + description: This is a microsurvey that appears on top of the bottom toolbar to the user. + new-tab-card: + description: This is the card that appears at the top on the Firefox Home Page. + notification: + description: This is a local notification send to the user periodically with tips and updates. + survey: + description: This is a full-page that appears providing a survey to the user. + NimbusOnboardingHeaderImage: + description: "The identifiers for the different images available for cards in onboarding\n" + variants: + customize-firefox: + description: "Corresponding to the fox window image\n" + notifications: + description: "Corresponding to the notifications image\n" + notifications-ctd: + description: "Corresponding to the notifications image for CTD\n" + search-widget: + description: "Corresponding to the fox search widget image\n" + set-default-steps: + description: "Corresponding to the set to default steps image\n" + set-to-dock: + description: "Corresponding to the set to dock image\n" + sync-devices: + description: "Corresponding to the sync-devices image\n" + sync-devices-ctd: + description: "Corresponding to the sync image for CTD\n" + themeing: + description: "Corresponding to the fox world image\n" + toolbar: + description: "Corresponding to the fox world image\n" + welcome-ctd: + description: "Corresponding to the welcome image for CTD\n" + welcome-globe: + description: "Corresponding to the fox world image\n" + NimbusOnboardingMultipleChoiceButtonImage: + description: "The identifiers for the different images available for multiple choice buttons in onboarding\n" + variants: + theme-dark: + description: "Corresponding to the dark theme\n" + theme-light: + description: "Corresponding to the light theme\n" + theme-system: + description: "Corresponding to the system theme\n" + toolbar-bottom: + description: "Corresponding to the toolbar on the bottom\n" + toolbar-top: + description: "Corresponding to the toolbar on top\n" + OnboardingActions: + description: "The identifiers for the different actions available for cards in onboarding\n" + variants: + end-onboarding: + description: "Will end the onboarding on a set card\n" + forward-one-card: + description: "Will take the user to the next card\n" + forward-three-card: + description: "Will take the user to the next card\n" + forward-two-card: + description: "Will take the user to the next card\n" + open-instructions-popup: + description: "Will open up a popup with instructions for something\n" + open-ios-fx-settings: + description: "Will take the user to the default browser settings in the iOS system settings\n" + read-privacy-policy: + description: "Will open a webview where the user can read the privacy policy\n" + request-notifications: + description: "Will request to allow notifications from the user\n" + set-default-browser: + description: "Will send the user to settings to set Firefox as their default browser and advance to next card\n" + sync-sign-in: + description: "Will take the user to the sync sign in flow\n" + OnboardingCardType: + description: "The identifiers for the different types of onboarding cards.\n" + variants: + basic: + description: "Corresponding to basic info onboarding cards\n" + multiple-choice: + description: "Corresponding to onboarding cards with multiple choice buttons\n" + OnboardingInstructionsPopupActions: + description: "The identifiers for the different actions available for the insturction card in onboarding\n" + variants: + dismiss: + description: "Will dismiss the popup\n" + dismiss-and-next-card: + description: "Will dismiss the popup and move to the next card\n" + open-ios-fx-settings: + description: "Will take the user to the default browser settings in the iOS system settings\n" + OnboardingMultipleChoiceAction: + description: "The identifiers for the different actions available for cards in onboarding\n" + variants: + theme-dark: + description: "Will will set the theme to dark mode\n" + theme-light: + description: "Will set the theme to light mode\n" + theme-system-default: + description: "Will set the theme to use the system theme\n" + toolbar-bottom: + description: "Will set the toolbar on the bottom\n" + toolbar-top: + description: "Will set the toolbar on the top\n" + OnboardingType: + description: "The identifiers for the different types of onboarding cards.\n" + variants: + fresh-install: + description: "Corresponding to onboarding cards that are for new users\n" + upgrade: + description: "Corresponding to onboarding cards that are for users who have updated\n" + PageContent: + description: "The page content that will be added as an item in the device's search engine." + variants: + html-content: + description: Use all the page as HTML + text-content: + description: Use all the page as text + text-excerpt: + description: Only use the first paragraph + SuggestionType: + description: The type of a Firefox Suggest search suggestion. + variants: + amp: + description: A Firefox Suggestion for desktop from adMarketplace. + ampMobile: + description: A Firefox Suggestion specifically for mobile from adMarketplace. + wikipedia: + description: A Firefox Suggestion for a Wikipedia page. + TabTraySection: + description: The identifiers for the sections of the tab tray. + variants: + inactive-tabs: + description: Tabs that have been automatically closed for the user. +objects: + AwesomeBar: + description: "A configuration option for the awesome bar. Part of the `search` feature." + fields: + min-search-term: + description: The minimum number of characters that the user types before searching in the page. + type: Int + default: 3 + position: + description: "This property defines whether or not the feature is enabled, and the position of the search bar\n" + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: true + is-toolbar-cfr-on: true + search-highlights: + description: Whether or not search highlights are enabled + type: Boolean + default: false + use-page-content: + description: "Search in the open tab's text content when typing." + type: Boolean + default: false + GeneralFeature: + description: The configuration for the a feature that can be enabled or disabled + fields: + status: + description: Whether or not the feature is enabled + type: Boolean + default: false + MessageData: + description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n" + fields: + action: + description: "The name of a deeplink URL to be opened if the button is clicked.\n" + type: Option + default: ~ + 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.\n" + type: Option + default: ~ + except-if-any: + description: "A list of strings corresponding to targeting expressions. If any of these expressions evaluate to `true`, the message will not be eligible.\n" + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: ~ + is-control: + description: "Indicates if this message is the control message, if true shouldn't be displayed" + type: Boolean + default: false + microsurveyConfig: + description: Optional configuration data for a microsurvey. + type: Option + default: ~ + style: + description: "The style as described in a `StyleData` from the styles table.\n" + type: StyleName + default: DEFAULT + surface: + description: Each message will tell us the surface it is targeting with this. + type: MessageSurfaceId + default: Unknown + text: + description: The message text displayed to the user + type: Text + default: "" + title: + description: The title text displayed to the user + type: Option + default: ~ + trigger-if-all: + description: "A list of strings corresponding to targeting expressions. All named expressions must evaluate to true if the message is to be eligible to be shown.\n" + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: "Attributes relating to microsurvey messaging.\n" + fields: + icon: + description: The asset name in our bundle used as the icon shown in the survey. + type: Image + default: lightbulbLarge + options: + description: The list of survey options to present to the user. + type: List + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: ~ + NimbusOnboardingButton: + description: "A group of properties describing the attributes of a card.\n" + fields: + action: + description: "The action the button should take. The default for this will be \"forward-one-card\"\n" + type: OnboardingActions + default: forward-one-card + title: + description: "The text of the button title. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingButtons: + description: "A set of buttons for the card. There can be up to two, but there must be at least one.\n" + fields: + primary: + description: "The primary button for the card. This must exist.\n" + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: "A secondary, optional, button for the card.\n" + type: Option + default: ~ + NimbusOnboardingCardData: + description: "A group of properties describing the attributes of a card.\n" + fields: + body: + description: "The body text dispalyed on the card, in less prominent text. This should never be defaulted.\n" + type: Text + default: "" + buttons: + description: "The set of buttons associated with the card.\n" + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: ~ + card-type: + description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n" + type: OnboardingCardType + default: basic + disqualifiers: + description: "A list of ConditionName strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n" + type: List + default: [] + image: + description: "The image that should be dispalyed on the card.\n" + type: NimbusOnboardingHeaderImage + default: welcome-globe + instructions-popup: + description: "The object describing the specific instruction popup button for a card. If left empty, the card will have no instruction popup information\n" + type: Option + default: ~ + link: + description: "The object describing the link button for a card. If left empty, the card will have no link.\n" + type: Option + default: ~ + multiple-choice-buttons: + description: "A list of multiple choice buttons that the card will display\n" + 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.\n" + type: OnboardingType + default: fresh-install + order: + description: "The place in the order where the card will be found. The feature layer will then sort the cards based on this field.\n" + type: Int + default: 10 + prerequisites: + description: "A list of ConditionName strings corresponding to targeting expressions. The card will be shown if all expressions `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n" + type: List + default: [] + title: + description: "The title displayed on the card, in prominent, bolded text. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingInstructionPopup: + description: "The object outlining the content of the instruction card.\n" + fields: + button-action: + description: "The action the button should have. Default is `dismiss-and-next-card`\n" + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: "The title the button should have. This should never be defaulted.\n" + type: Text + default: "" + instructions: + description: "A list of instructions, either as free text, or as Text identifiers.\n" + type: List + default: [] + title: + description: "The text of the popup. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingLink: + description: "A group of properties describing the attributes for the active link on a card\n" + fields: + title: + description: "The text of the link title.\n" + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: "The url that the link will lead to.\n" + type: String + default: "https://www.mozilla.org/privacy/firefox/" + NimbusOnboardingMultipleChoiceButton: + description: "A group of properties describing the attributes of a multiple choice button on a card\n" + fields: + action: + description: "The action the button should take. The default for this will be \"theme-system-default\"\n" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: "The text of the button title. This should never be defaulted.\n" + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: "The text of the button title. This should never be defaulted.\n" + type: Text + default: "" + SearchBarPositionFeature: + description: The configuration for the bottom search bar on the homescreen + fields: + is-bottom: + description: Whether or not the default position is at the bottom + type: Boolean + default: true + is-position-feature-enabled: + description: Whether or not the feature is enabled + type: Boolean + default: true + is-toolbar-cfr-on: + description: Whether or not the toolbar CFR shows. This is a temporary hack for Nimbus + type: Boolean + default: true + StyleData: + description: "A group of properities (predominantly visual) to the describe style of the message.\n" + fields: + max-display-count: + description: "How many sessions will this message be shown to the user before it is expired.\n" + type: Int + default: 5 + priority: + description: "The importance of this message. 0 is not very important, 100 is very important.\n" + type: Int + default: 50 + WebsiteConfig: + description: "It represents a configuration for different e-commerce websites and includes regular expressions for extracting product IDs from their respective URLs\n" + fields: + productIdFromURLRegex: + description: "It represents the product ID extracted from a regex query\n" + type: String + default: "" + validTLDs: + description: "Valid Top Level Domains\n" + type: List + default: [] diff --git a/experimenter/experimenter/features/manifests/ios/v133.5.0/experimenter.yaml b/experimenter/experimenter/features/manifests/ios/v133.5.0/experimenter.yaml new file mode 100644 index 0000000000..00076a00b3 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v133.5.0/experimenter.yaml @@ -0,0 +1,313 @@ +--- +account-settings-redux-feature: + description: "This feature is for managing the roll out of the Account Settings Redux implementation\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Enables the feature\n" +address-autofill-edit: + description: This property defines if the address editing is enabled in Settings + hasExposure: true + exposureDescription: "" + variables: + status: + type: boolean + description: "If true, we will allow user to edit the address" +bookmark-refactor-feature: + description: "The Feature for managing the roll out of the Bookmark refactor feature\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Enables the bookmark refactor feature\n" +contextual-hint-feature: + description: This set holds all features pertaining to contextual hints. + hasExposure: true + exposureDescription: "" + variables: + features-enabled: + type: json + description: "This property provides a lookup table of whether specific contextual hints are enabled.\n" +credit-card-autofill: + description: This property defines the credit card autofill feature + hasExposure: true + exposureDescription: "" + variables: + credit-card-autofill-status: + type: boolean + description: "If true, we will allow user to use the credit autofill feature" +felt-privacy-feature: + description: The feature that enhances private browsing mode + hasExposure: true + exposureDescription: "" + variables: + felt-deletion-enabled: + type: boolean + description: "If true, enable Felt Deletion part of Felt Privacy" + simplified-ui-enabled: + type: boolean + description: "If true, enable simplified UI part of Felt Privacy" +firefox-suggest-feature: + description: Configuration for the Firefox Suggest feature. + hasExposure: true + exposureDescription: "" + variables: + available-suggestions-types: + type: json + description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n" + status: + type: boolean + description: "Whether the feature is enabled. When Firefox Suggest is enabled, Firefox will download and store new search suggestions in the background, and show additional Search settings to control which suggestions appear in the awesomebar. When Firefox Suggest is disabled, Firefox will not download new suggestions, and hide the additional Search settings.\n" +general-app-features: + description: The feature that contains feature flags for the entire application + hasExposure: true + exposureDescription: "" + variables: + report-site-issue: + type: json + description: This property defines whether or not the feature is enabled +glean-server-knobs: + description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs). + hasExposure: true + exposureDescription: "" + variables: + metrics-enabled: + type: json + description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric." +homepage-rebuild-feature: + description: "This feature is for managing the roll out of the Homepage rebuild feature\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If true, enables the feature\n" +homescreenFeature: + description: The homescreen that the user goes to when they press home or new tab. + hasExposure: true + exposureDescription: "" + variables: + prefer-switch-to-open-tab: + type: boolean + description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n" + sections-enabled: + type: json + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default.\n" +login-autofill: + description: This property defines the login autofill feature for automatically filling in usernames and passwords. + hasExposure: true + exposureDescription: "" + variables: + login-autofill-status: + type: boolean + description: "If true, allows the user to use the login autofill feature for usernames and passwords." +menu-refactor-feature: + description: "Controls the menu refactor feature\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Controls which menu users will see\n" + menu-hint: + type: boolean + description: "If true, enables the menu contextual hint.\n" +messaging: + description: "The in-app messaging system\n" + hasExposure: true + exposureDescription: "" + variables: + actions: + type: json + description: A growable map of action URLs. + message-under-experiment: + type: string + description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead." + messages: + type: json + description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n" + on-control: + type: string + description: What should be displayed when a control message is selected. + enum: + - show-next-message + - show-none + styles: + type: json + description: "A map of styles to configure message appearance.\n" + triggers: + type: json + description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n" + ~~experiment: + type: string + description: Not to be set by experiment. +microsurvey-feature: + description: "A feature that shows the microsurvey for users to interact with and submit responses.\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If true, the feature is active.\n" +native-error-page-feature: + description: "This feature is for managing the roll out of the native error page feature\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If true, the feature is active.\n" +night-mode-feature: + description: "Describes the night mode feature's configuration\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Whether night mode is available for users or not\n" +onboarding-framework-feature: + description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n" + hasExposure: true + exposureDescription: "" + variables: + cards: + type: json + description: "The list of available cards for onboarding.\n" + conditions: + type: json + description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n" + dismissable: + type: boolean + description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n" +password-generator-feature: + description: Password Generator Feature + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If true, the password generator feature is enabled" +redux-search-settings-feature: + description: "This feature is for managing the roll out of redux on the search settings screen\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Enables the feature\n" +remote-tab-management: + description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n" + hasExposure: true + exposureDescription: "" + variables: + close-tabs-enabled: + type: boolean + description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n" +search: + description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n" + hasExposure: true + exposureDescription: "" + variables: + awesome-bar: + type: json + description: Configuring the awesome bar. +shopping2023: + description: "The configuration setting for the status of the Fakespot feature\n" + hasExposure: true + exposureDescription: "" + variables: + back_in_stock_reporting: + type: boolean + description: "If true, enables for users the reporting feature for products back in stock.\n" + config: + type: json + description: "A Map of website configurations\n" + product_ads: + type: boolean + description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n" + relay: + type: string + description: "Configurable relay URL for production environment\n" + status: + type: boolean + description: "Whether the Fakespot feature is enabled or disabled\n" +splash-screen: + description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run.\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If true, the feature is active.\n" + maximum_duration_ms: + type: int + description: "The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.\n" +spotlight-search: + description: Add pages as items findable with Spotlight. + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If this is true, then on each page load adds a new item to Spotlight." + icon-type: + type: string + description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n" + keep-for-days: + type: int + description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n" + searchable-content: + type: string + description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n" +tab-tray-refactor-feature: + description: "This feature is for managing the roll out of the Tab Tray refactor feature\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Enables the feature\n" +tabTrayFeature: + description: The tab tray screen that the user goes to when they open the tab tray. + hasExposure: true + exposureDescription: "" + variables: + sections-enabled: + type: json + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default." +toolbar-refactor-feature: + description: "This feature is for managing the roll out of the Toolbar refactor feature\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Enables the feature\n" + navigation_hint: + type: boolean + description: "If true, enables the navigation contextual hint.\n" + one_tap_new_tab: + type: boolean + description: "If true, enables the one tap new tab feature for users.\n" + unified_search: + type: boolean + description: "Enables the unified search feature\n" +tracking-protection-refactor: + description: "The Enhanced Tracking Protection refactor\n" + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n" +zoom-feature: + description: "The configuration for the status of the zoom feature\n" + hasExposure: true + exposureDescription: "" + variables: + status: + type: boolean + description: "Whether the page zoom feature is enabled or not\n" diff --git a/experimenter/experimenter/features/manifests/ios/v133.5.0/release.fml.yaml b/experimenter/experimenter/features/manifests/ios/v133.5.0/release.fml.yaml new file mode 100644 index 0000000000..e4b0052c70 --- /dev/null +++ b/experimenter/experimenter/features/manifests/ios/v133.5.0/release.fml.yaml @@ -0,0 +1,997 @@ +--- +version: 1.0.0 +about: + description: The root level Feature Manifest for Firefox for iOS +channels: + - release +features: + account-settings-redux-feature: + description: "This feature is for managing the roll out of the Account Settings Redux implementation\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + address-autofill-edit: + description: This property defines if the address editing is enabled in Settings + variables: + status: + description: "If true, we will allow user to edit the address" + type: Boolean + default: false + bookmark-refactor-feature: + description: "The Feature for managing the roll out of the Bookmark refactor feature\n" + variables: + enabled: + description: "Enables the bookmark refactor feature\n" + type: Boolean + default: false + contextual-hint-feature: + description: This set holds all features pertaining to contextual hints. + variables: + features-enabled: + description: "This property provides a lookup table of whether specific contextual hints are enabled.\n" + type: "Map" + default: + toolbar-hint: true + credit-card-autofill: + description: This property defines the credit card autofill feature + variables: + credit-card-autofill-status: + description: "If true, we will allow user to use the credit autofill feature" + type: Boolean + default: true + felt-privacy-feature: + description: The feature that enhances private browsing mode + variables: + felt-deletion-enabled: + description: "If true, enable Felt Deletion part of Felt Privacy" + type: Boolean + default: false + simplified-ui-enabled: + description: "If true, enable simplified UI part of Felt Privacy" + type: Boolean + default: false + firefox-suggest-feature: + description: Configuration for the Firefox Suggest feature. + variables: + available-suggestions-types: + description: "A map of suggestion types to booleans that indicate whether or not the provider should return suggestions of those types.\n" + type: "Map" + default: + amp: true + ampMobile: false + wikipedia: true + status: + description: "Whether the feature is enabled. When Firefox Suggest is enabled, Firefox will download and store new search suggestions in the background, and show additional Search settings to control which suggestions appear in the awesomebar. When Firefox Suggest is disabled, Firefox will not download new suggestions, and hide the additional Search settings.\n" + type: Boolean + default: false + general-app-features: + description: The feature that contains feature flags for the entire application + variables: + report-site-issue: + description: This property defines whether or not the feature is enabled + type: GeneralFeature + default: + status: false + glean-server-knobs: + description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs). + variables: + metrics-enabled: + description: "A map of metric base-identifiers to booleans representing the state of the 'enabled' flag for that metric." + type: "Map" + default: {} + homepage-rebuild-feature: + description: "This feature is for managing the roll out of the Homepage rebuild feature\n" + variables: + enabled: + description: "If true, enables the feature\n" + type: Boolean + default: false + homescreenFeature: + description: The homescreen that the user goes to when they press home or new tab. + variables: + prefer-switch-to-open-tab: + description: "Enables the feature to automatically switch to an existing tab with the same content instead of opening a new one.\n" + type: Boolean + default: false + sections-enabled: + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default.\n" + type: "Map" + default: + jump-back-in: true + recent-explorations: false + login-autofill: + description: This property defines the login autofill feature for automatically filling in usernames and passwords. + variables: + login-autofill-status: + description: "If true, allows the user to use the login autofill feature for usernames and passwords." + type: Boolean + default: true + menu-refactor-feature: + description: "Controls the menu refactor feature\n" + variables: + enabled: + description: "Controls which menu users will see\n" + type: Boolean + default: false + menu-hint: + description: "If true, enables the menu contextual hint.\n" + type: Boolean + default: false + messaging: + description: "The in-app messaging system\n" + documentation: + - name: User documentation + url: "https://experimenter.info/messaging/mobile-messaging" + contacts: + - jhugman@mozilla.com + - brennie@mozilla.com + - gbuciu@mozilla.com + - wteichmann@mozilla.com + events: + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_shown" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_clicked" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_expired" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_dismissed" + - "https://dictionary.telemetry.mozilla.org/apps/firefox_ios/metrics/messaging_malformed" + variables: + actions: + description: A growable map of action URLs. + type: "Map" + default: + OPEN_SETTINGS: "://deep-link?url=settings/general" + OPEN_SETTINGS_NEW_TAB: "://deep-link?url=settings/newtab" + OPEN_SETTINGS_HOMESCREEN: "://deep-link?url=settings/homepage" + OPEN_SETTINGS_WALLPAPERS: "://deep-link?url=settings/wallpaper" + OPEN_SETTINGS_EMAIL: "://deep-link?url=settings/mailto" + OPEN_SETTINGS_SEARCH_ENGINE: "://deep-link?url=settings/search" + OPEN_SETTINGS_PRIVACY: "://deep-link?url=settings/clear-private-data" + OPEN_SETTINGS_FXA: "://deep-link?url=settings/fxa" + OPEN_SETTINGS_THEME: "://deep-link?url=settings/theme" + OPEN_URL: "://open-url" + VIEW_BOOKMARKS: "://deep-link?url=homepanel/bookmarks" + VIEW_TOP_SITES: "://deep-link?url=homepanel/top-sites" + VIEW_READING_LIST: "://deep-link?url=homepanel/reading-list" + VIEW_HISTORY: "://deep-link?url=homepanel/history" + VIEW_DOWNLOADS: "://deep-link?url=homepanel/downloads" + ENABLE_PRIVATE_BROWSING: "://deep-link?url=homepanel/new-private-tab" + OPEN_NEW_TAB: "://deep-link?url=homepanel/new-tab" + MAKE_DEFAULT_BROWSER: "://deep-link?url=default-browser/system-settings" + MAKE_DEFAULT_BROWSER_WITH_TUTORIAL: "://deep-link?url=default-browser/tutorial" + string-alias: ActionName + message-under-experiment: + description: "Deprecated. Please use \"experiment\": \"{experiment}\" instead." + type: Option + default: ~ + messages: + description: "A growable collection of messages, where the Key is the message identifier and the value is its associated MessageData.\n" + type: "Map" + default: + default-browser: + surface: new-tab-card + style: FALLBACK + trigger-if-all: + - SUPPORTS_DEFAULT_BROWSER + - ON_FOURTH_LAUNCH_THIS_YEAR + except-if-any: + - I_AM_DEFAULT_BROWSER + title: Default Browser/DefaultBrowserCard.Title + text: Default Browser/DefaultBrowserCard.Description + button-label: Default Browser/DefaultBrowserCard.Button.v2 + action: MAKE_DEFAULT_BROWSER_WITH_TUTORIAL + string-alias: MessageKey + on-control: + description: What should be displayed when a control message is selected. + type: ControlMessageBehavior + default: show-next-message + styles: + description: "A map of styles to configure message appearance.\n" + type: "Map" + default: + FALLBACK: + priority: 40 + max-display-count: 20 + DEFAULT: + priority: 50 + max-display-count: 5 + MICROSURVEY: + priority: 50 + max-display-count: 1 + NOTIFICATION: + priority: 50 + max-display-count: 1 + PERSISTENT: + priority: 50 + max-display-count: 20 + SURVEY: + priority: 55 + max-display-count: 10 + WARNING: + priority: 60 + max-display-count: 10 + URGENT: + priority: 100 + max-display-count: 10 + string-alias: StyleName + triggers: + description: "A collection of out the box trigger expressions. Each entry maps to a valid JEXL expression.\n" + type: "Map" + default: + ALWAYS: "true" + NEVER: "false" + USER_RECENTLY_INSTALLED: days_since_install < 7 + USER_RECENTLY_UPDATED: days_since_update < 7 && days_since_install != days_since_update + USER_TIER_ONE_COUNTRY: "('US' in locale || 'GB' in locale || 'CA' in locale || 'DE' in locale || 'FR' in locale)" + USER_EN_SPEAKER: "'en' in locale" + USER_ES_SPEAKER: "'es' in locale" + USER_DE_SPEAKER: "'de' in locale" + USER_FR_SPEAKER: "'fr' in locale" + DEVICE_ANDROID: "os == 'Android'" + DEVICE_IOS: "os == 'iOS'" + DAY_1_AFTER_INSTALL: days_since_install == 1 + DAY_2_AFTER_INSTALL: days_since_install == 2 + DAY_3_AFTER_INSTALL: days_since_install == 3 + DAY_4_AFTER_INSTALL: days_since_install == 4 + DAY_5_AFTER_INSTALL: days_since_install == 5 + MORE_THAN_24H_SINCE_INSTALLED_OR_UPDATED: days_since_update >= 1 + NOT_LAUNCHED_YESTERDAY: "'app_cycle.foreground'|eventLastSeen('Days', 1) > 1" + AFTER_THREE_LAUNCHES_THIS_WEEK: "'app_cycle.foreground'|eventSum('Weeks', 1, 0) >= 3" + I_AM_DEFAULT_BROWSER: is_default_browser + I_AM_NOT_DEFAULT_BROWSER: is_default_browser == false + SUPPORTS_DEFAULT_BROWSER: "os_version|versionCompare('14.!') >= 0" + INACTIVE_NEW_USER: is_inactive_new_user + ALLOWED_TIPS_NOTIFICATIONS: allowed_tips_notifications + FXA_CURRENTLY_SIGNED_IN: is_fxa_signed_in == true + SECOND_HOMEPAGE_VIEW: "'homepage_viewed'|eventSum('Years', 4, 0) >= 2" + ON_FOURTH_LAUNCH_THIS_YEAR: "'app_cycle.foreground'|eventSum('Years', 1, 0) > 3" + string-alias: TriggerName + ~~experiment: + description: Not to be set by experiment. + type: ExperimentSlug + default: "{experiment}" + string-alias: ExperimentSlug + allow-coenrollment: true + microsurvey-feature: + description: "A feature that shows the microsurvey for users to interact with and submit responses.\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + native-error-page-feature: + description: "This feature is for managing the roll out of the native error page feature\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + night-mode-feature: + description: "Describes the night mode feature's configuration\n" + variables: + enabled: + description: "Whether night mode is available for users or not\n" + type: Boolean + default: true + onboarding-framework-feature: + description: "The new onboarding framework feature that will allow onboarding to be experimentable through initial experiments.\n" + variables: + cards: + description: "The list of available cards for onboarding.\n" + type: "Map" + default: + welcome: + card-type: basic + order: 10 + title: Onboarding/Onboarding.Welcome.Title.TreatementA.v120 + body: Onboarding/Onboarding.Welcome.Description.TreatementA.v120 + image: welcome-globe + link: + title: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: "https://www.mozilla.org/privacy/firefox/" + buttons: + primary: + title: Onboarding/Onboarding.Welcome.ActionTreatementA.v114 + action: open-instructions-popup + secondary: + title: Onboarding/Onboarding.Welcome.Skip.v114 + action: forward-one-card + instructions-popup: + title: Onboarding/DefaultBrowserPopup.Title.v114 + button-title: Onboarding/DefaultBrowserPopup.ButtonTitle.v114 + button-action: open-ios-fx-settings + instructions: + - Onboarding/DefaultBrowserPopup.FirstLabel.v114 + - Onboarding/DefaultBrowserPopup.SecondLabel.v114 + - Onboarding/DefaultBrowserPopup.ThirdLabel.v114 + onboarding-type: fresh-install + prerequisites: + - ALWAYS + notification-permissions: + card-type: basic + order: 30 + title: Onboarding/Onboarding.Notification.Title.v120 + body: Onboarding/Onboarding.Notification.Description.v120 + image: notifications + buttons: + primary: + title: Onboarding/Onboarding.Notification.TurnOnNotifications.Action.v114 + action: request-notifications + secondary: + title: Onboarding/Onboarding.Notification.Skip.Action.v115 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + sign-to-sync: + card-type: basic + order: 20 + title: Onboarding/Onboarding.Sync.Title.v120 + body: Onboarding/Onboarding.Sync.Description.v123 + image: sync-devices + buttons: + primary: + title: Onboarding/Onboarding.Sync.SignIn.Action.v114 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + onboarding-type: fresh-install + prerequisites: + - ALWAYS + customization-theme: + card-type: multiple-choice + order: 40 + title: Onboarding/Onboarding.Customization.Theme.Title.v123 + body: Onboarding/Onboarding.Customization.Theme.Description.v123 + image: themeing + buttons: + primary: + title: Onboarding/Onboarding.Customization.Theme.Continue.Action.v123 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Customization.Theme.System.Action.v123 + image: theme-system + action: theme-system-default + - title: Onboarding/Onboarding.Customization.Theme.Light.Action.v123 + image: theme-light + action: theme-light + - title: Onboarding/Onboarding.Customization.Theme.Dark.Action.v123 + image: theme-dark + action: theme-dark + onboarding-type: fresh-install + prerequisites: + - ALWAYS + customization-toolbar: + card-type: multiple-choice + order: 41 + title: Onboarding/Onboarding.Customization.Toolbar.Title.v123 + body: Onboarding/Onboarding.Customization.Toolbar.Description.v123 + image: toolbar + buttons: + primary: + title: Onboarding/Onboarding.Customization.Toolbar.Continue.Action.v123 + action: forward-one-card + multiple-choice-buttons: + - title: Onboarding/Onboarding.Customization.Toolbar.Top.Action.v123 + image: toolbar-top + action: toolbar-top + - title: Onboarding/Onboarding.Customization.Toolbar.Bottom.Action.v123 + image: toolbar-bottom + action: toolbar-bottom + onboarding-type: fresh-install + prerequisites: + - ALWAYS + update-welcome: + card-type: basic + order: 10 + title: Upgrade/Upgrade.Welcome.Title.v114 + body: Upgrade/Upgrade.Welcome.Description.v114 + image: welcome-globe + buttons: + primary: + title: Upgrade/Upgrade.Welcome.Action.v114 + action: forward-one-card + onboarding-type: upgrade + prerequisites: + - NEVER + update-sign-to-sync: + card-type: basic + order: 20 + title: Upgrade/Upgrade.SyncSign.Title.v114 + body: Upgrade/Upgrade.SyncSign.Description.v114 + image: sync-devices + buttons: + primary: + title: Upgrade/Upgrade.SyncSign.Action.v114 + action: sync-sign-in + secondary: + title: Onboarding/Onboarding.LaterAction.v114 + action: forward-one-card + onboarding-type: upgrade + prerequisites: + - NEVER + string-alias: NimbusOnboardingCardKey + conditions: + description: "A collection of out the box conditional expressions to be used in determining whether a card should show or not. Each entry maps to a valid JEXL expression.\n" + type: "Map" + default: + ALWAYS: "true" + NEVER: "false" + string-alias: ConditionName + dismissable: + description: "Whether or not the entire onboarding is dismissable by pressing an X at the top right corner of the screen.\n" + type: Boolean + default: true + password-generator-feature: + description: Password Generator Feature + variables: + enabled: + description: "If true, the password generator feature is enabled" + type: Boolean + default: false + redux-search-settings-feature: + description: "This feature is for managing the roll out of redux on the search settings screen\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + remote-tab-management: + description: "Features that let users manage tabs on other devices that are connected to the same Mozilla account.\n" + variables: + close-tabs-enabled: + description: "Whether the feature to close synced tabs is enabled. When enabled, this device will allow other devices to close tabs that are open on this device, and show a \"close\" button for tabs that are currently open on other supported devices in the synced tabs tray.\n" + type: Boolean + default: false + search: + description: "Configuring the functionality to do with search. This will be separated into smaller sub-features in later releases.\n" + variables: + awesome-bar: + description: Configuring the awesome bar. + type: AwesomeBar + default: + min-search-term: 3 + position: + is-bottom: true + is-position-feature-enabled: true + is-toolbar-cfr-on: false + search-highlights: false + use-page-content: false + shopping2023: + description: "The configuration setting for the status of the Fakespot feature\n" + variables: + back_in_stock_reporting: + description: "If true, enables for users the reporting feature for products back in stock.\n" + type: Boolean + default: false + config: + description: "A Map of website configurations\n" + type: "Map" + default: + amazon: + productIdFromURLRegex: "(?:[\\\\/]|$|%2F)(?[A-Z0-9]{10})(?:[\\\\/]|$|\\\\#|\\\\?|%2F)" + validTLDs: + - com + - de + - fr + walmart: + productIdFromURLRegex: "\\\\/ip\\\\/(?:[A-Za-z0-9-]{1,320}\\\\/)?(?[0-9]{3,13})" + validTLDs: + - com + bestbuy: + productIdFromURLRegex: "\\\\/(?\\\\d+\\\\.p)" + validTLDs: + - com + product_ads: + description: "If true, enables the product advertisement feature, allowing users to see and interact with ads for various products.\n" + type: Boolean + default: false + relay: + description: "Configurable relay URL for production environment\n" + type: String + default: "https://mozilla-ohttp-fakespot.fastly-edge.com/" + status: + description: "Whether the Fakespot feature is enabled or disabled\n" + type: Boolean + default: false + splash-screen: + description: "A feature that extends splash screen duration, allowing additional data fetching time for the app's initial run.\n" + variables: + enabled: + description: "If true, the feature is active.\n" + type: Boolean + default: false + maximum_duration_ms: + description: "The maximum amount of time in milliseconds the splashscreen will be visible while waiting for initialization calls to complete.\n" + type: Int + default: 0 + spotlight-search: + description: Add pages as items findable with Spotlight. + variables: + enabled: + description: "If this is true, then on each page load adds a new item to Spotlight." + type: Boolean + default: false + icon-type: + description: "The icon that is displayed next to the item in the search results. If this is `null`, then no icon is displayed.\n" + type: Option + default: letter + keep-for-days: + description: "Number of days to keep the item before automatic deletion. If this is left `null`, then it is left to iOS's default.\n" + type: Option + default: ~ + searchable-content: + description: "The text content that is made searchable. If this is `null` then no additional content is used, and only the title and URL will be used.\n" + type: Option + default: text-excerpt + tab-tray-refactor-feature: + description: "This feature is for managing the roll out of the Tab Tray refactor feature\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: true + tabTrayFeature: + description: The tab tray screen that the user goes to when they open the tab tray. + variables: + sections-enabled: + description: "This property provides a lookup table of whether or not the given section should be enabled. If the section is enabled, it should be toggleable in the settings screen, and on by default." + type: "Map" + default: + inactive-tabs: true + toolbar-refactor-feature: + description: "This feature is for managing the roll out of the Toolbar refactor feature\n" + variables: + enabled: + description: "Enables the feature\n" + type: Boolean + default: false + navigation_hint: + description: "If true, enables the navigation contextual hint.\n" + type: Boolean + default: false + one_tap_new_tab: + description: "If true, enables the one tap new tab feature for users.\n" + type: Boolean + default: false + unified_search: + description: "Enables the unified search feature\n" + type: Boolean + default: false + tracking-protection-refactor: + description: "The Enhanced Tracking Protection refactor\n" + variables: + enabled: + description: "Whether the Enhanced Tracking Protection refactor is enabled or not\n" + type: Boolean + default: false + zoom-feature: + description: "The configuration for the status of the zoom feature\n" + variables: + status: + description: "Whether the page zoom feature is enabled or not\n" + type: Boolean + default: true +enums: + ContextualHint: + description: The identifiers for a individual contextual hints. + variants: + toolbar-hint: + description: The contextual hint bubble that appears to provide a hint about the toolbar. + ControlMessageBehavior: + description: An enum to influence what should be displayed when a control message is selected. + variants: + show-next-message: + description: The next eligible message should be shown. + show-none: + description: The surface should show no message. + HomeScreenSection: + description: The identifiers for the sections of the homescreen. + variants: + jump-back-in: + description: The tabs the user was looking immediately before being interrupted. + recent-explorations: + description: The tab groups + IconType: + description: "The icon that will be added to the item in the device's search engine." + variants: + favicon: + description: The favicon of the page + letter: + description: An icon generated from the first letter of the base domain. + screenshot: + description: A screenshot of the page at load time. + MessageSurfaceId: + description: "For messaging, we would like to have a message tell us which surface its associated with. This is a label that matches across both Android and iOS.\n" + variants: + Unknown: + description: A message has NOT declared its target surface. + microsurvey: + description: This is a microsurvey that appears on top of the bottom toolbar to the user. + new-tab-card: + description: This is the card that appears at the top on the Firefox Home Page. + notification: + description: This is a local notification send to the user periodically with tips and updates. + survey: + description: This is a full-page that appears providing a survey to the user. + NimbusOnboardingHeaderImage: + description: "The identifiers for the different images available for cards in onboarding\n" + variants: + customize-firefox: + description: "Corresponding to the fox window image\n" + notifications: + description: "Corresponding to the notifications image\n" + notifications-ctd: + description: "Corresponding to the notifications image for CTD\n" + search-widget: + description: "Corresponding to the fox search widget image\n" + set-default-steps: + description: "Corresponding to the set to default steps image\n" + set-to-dock: + description: "Corresponding to the set to dock image\n" + sync-devices: + description: "Corresponding to the sync-devices image\n" + sync-devices-ctd: + description: "Corresponding to the sync image for CTD\n" + themeing: + description: "Corresponding to the fox world image\n" + toolbar: + description: "Corresponding to the fox world image\n" + welcome-ctd: + description: "Corresponding to the welcome image for CTD\n" + welcome-globe: + description: "Corresponding to the fox world image\n" + NimbusOnboardingMultipleChoiceButtonImage: + description: "The identifiers for the different images available for multiple choice buttons in onboarding\n" + variants: + theme-dark: + description: "Corresponding to the dark theme\n" + theme-light: + description: "Corresponding to the light theme\n" + theme-system: + description: "Corresponding to the system theme\n" + toolbar-bottom: + description: "Corresponding to the toolbar on the bottom\n" + toolbar-top: + description: "Corresponding to the toolbar on top\n" + OnboardingActions: + description: "The identifiers for the different actions available for cards in onboarding\n" + variants: + end-onboarding: + description: "Will end the onboarding on a set card\n" + forward-one-card: + description: "Will take the user to the next card\n" + forward-three-card: + description: "Will take the user to the next card\n" + forward-two-card: + description: "Will take the user to the next card\n" + open-instructions-popup: + description: "Will open up a popup with instructions for something\n" + open-ios-fx-settings: + description: "Will take the user to the default browser settings in the iOS system settings\n" + read-privacy-policy: + description: "Will open a webview where the user can read the privacy policy\n" + request-notifications: + description: "Will request to allow notifications from the user\n" + set-default-browser: + description: "Will send the user to settings to set Firefox as their default browser and advance to next card\n" + sync-sign-in: + description: "Will take the user to the sync sign in flow\n" + OnboardingCardType: + description: "The identifiers for the different types of onboarding cards.\n" + variants: + basic: + description: "Corresponding to basic info onboarding cards\n" + multiple-choice: + description: "Corresponding to onboarding cards with multiple choice buttons\n" + OnboardingInstructionsPopupActions: + description: "The identifiers for the different actions available for the insturction card in onboarding\n" + variants: + dismiss: + description: "Will dismiss the popup\n" + dismiss-and-next-card: + description: "Will dismiss the popup and move to the next card\n" + open-ios-fx-settings: + description: "Will take the user to the default browser settings in the iOS system settings\n" + OnboardingMultipleChoiceAction: + description: "The identifiers for the different actions available for cards in onboarding\n" + variants: + theme-dark: + description: "Will will set the theme to dark mode\n" + theme-light: + description: "Will set the theme to light mode\n" + theme-system-default: + description: "Will set the theme to use the system theme\n" + toolbar-bottom: + description: "Will set the toolbar on the bottom\n" + toolbar-top: + description: "Will set the toolbar on the top\n" + OnboardingType: + description: "The identifiers for the different types of onboarding cards.\n" + variants: + fresh-install: + description: "Corresponding to onboarding cards that are for new users\n" + upgrade: + description: "Corresponding to onboarding cards that are for users who have updated\n" + PageContent: + description: "The page content that will be added as an item in the device's search engine." + variants: + html-content: + description: Use all the page as HTML + text-content: + description: Use all the page as text + text-excerpt: + description: Only use the first paragraph + SuggestionType: + description: The type of a Firefox Suggest search suggestion. + variants: + amp: + description: A Firefox Suggestion for desktop from adMarketplace. + ampMobile: + description: A Firefox Suggestion specifically for mobile from adMarketplace. + wikipedia: + description: A Firefox Suggestion for a Wikipedia page. + TabTraySection: + description: The identifiers for the sections of the tab tray. + variants: + inactive-tabs: + description: Tabs that have been automatically closed for the user. +objects: + AwesomeBar: + description: "A configuration option for the awesome bar. Part of the `search` feature." + fields: + min-search-term: + description: The minimum number of characters that the user types before searching in the page. + type: Int + default: 3 + position: + description: "This property defines whether or not the feature is enabled, and the position of the search bar\n" + type: SearchBarPositionFeature + default: + is-position-feature-enabled: true + is-bottom: true + is-toolbar-cfr-on: true + search-highlights: + description: Whether or not search highlights are enabled + type: Boolean + default: false + use-page-content: + description: "Search in the open tab's text content when typing." + type: Boolean + default: false + GeneralFeature: + description: The configuration for the a feature that can be enabled or disabled + fields: + status: + description: Whether or not the feature is enabled + type: Boolean + default: false + MessageData: + description: "An object to describe a message. It uses human readable strings to describe the triggers, action and style of the message as well as the text of the message and call to action.\n" + fields: + action: + description: "The name of a deeplink URL to be opened if the button is clicked.\n" + type: Option + default: ~ + 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.\n" + type: Option + default: ~ + except-if-any: + description: "A list of strings corresponding to targeting expressions. If any of these expressions evaluate to `true`, the message will not be eligible.\n" + type: List + default: [] + experiment: + description: The experiment slug that this message is involved in. + type: Option + default: ~ + is-control: + description: "Indicates if this message is the control message, if true shouldn't be displayed" + type: Boolean + default: false + microsurveyConfig: + description: Optional configuration data for a microsurvey. + type: Option + default: ~ + style: + description: "The style as described in a `StyleData` from the styles table.\n" + type: StyleName + default: DEFAULT + surface: + description: Each message will tell us the surface it is targeting with this. + type: MessageSurfaceId + default: Unknown + text: + description: The message text displayed to the user + type: Text + default: "" + title: + description: The title text displayed to the user + type: Option + default: ~ + trigger-if-all: + description: "A list of strings corresponding to targeting expressions. All named expressions must evaluate to true if the message is to be eligible to be shown.\n" + type: List + default: + - ALWAYS + MicrosurveyConfig: + description: "Attributes relating to microsurvey messaging.\n" + fields: + icon: + description: The asset name in our bundle used as the icon shown in the survey. + type: Image + default: lightbulbLarge + options: + description: The list of survey options to present to the user. + type: List + default: [] + utm-content: + description: The name used to provide as the utm_content parameter for the privacy notice. + type: Option + default: ~ + NimbusOnboardingButton: + description: "A group of properties describing the attributes of a card.\n" + fields: + action: + description: "The action the button should take. The default for this will be \"forward-one-card\"\n" + type: OnboardingActions + default: forward-one-card + title: + description: "The text of the button title. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingButtons: + description: "A set of buttons for the card. There can be up to two, but there must be at least one.\n" + fields: + primary: + description: "The primary button for the card. This must exist.\n" + type: NimbusOnboardingButton + default: + title: Primary Button + action: forward-one-card + secondary: + description: "A secondary, optional, button for the card.\n" + type: Option + default: ~ + NimbusOnboardingCardData: + description: "A group of properties describing the attributes of a card.\n" + fields: + body: + description: "The body text dispalyed on the card, in less prominent text. This should never be defaulted.\n" + type: Text + default: "" + buttons: + description: "The set of buttons associated with the card.\n" + type: NimbusOnboardingButtons + default: + primary: + title: Onboarding/Onboarding.Sync.Skip.Action.v114 + action: forward-one-card + secondary: ~ + card-type: + description: "The type of onboarding this card should be shown in, whether it a fresh install or an update. The default is fresh-install.\n" + type: OnboardingCardType + default: basic + disqualifiers: + description: "A list of ConditionName strings corresponding to targeting expressions. The card will not be shown if any expression is `true`.\n" + type: List + default: [] + image: + description: "The image that should be dispalyed on the card.\n" + type: NimbusOnboardingHeaderImage + default: welcome-globe + instructions-popup: + description: "The object describing the specific instruction popup button for a card. If left empty, the card will have no instruction popup information\n" + type: Option + default: ~ + link: + description: "The object describing the link button for a card. If left empty, the card will have no link.\n" + type: Option + default: ~ + multiple-choice-buttons: + description: "A list of multiple choice buttons that the card will display\n" + 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.\n" + type: OnboardingType + default: fresh-install + order: + description: "The place in the order where the card will be found. The feature layer will then sort the cards based on this field.\n" + type: Int + default: 10 + prerequisites: + description: "A list of ConditionName strings corresponding to targeting expressions. The card will be shown if all expressions `true` and if no expressions in the `disqualifiers` table are true, or if the `disqualifiers` table is empty.\n" + type: List + default: [] + title: + description: "The title displayed on the card, in prominent, bolded text. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingInstructionPopup: + description: "The object outlining the content of the instruction card.\n" + fields: + button-action: + description: "The action the button should have. Default is `dismiss-and-next-card`\n" + type: OnboardingInstructionsPopupActions + default: dismiss-and-next-card + button-title: + description: "The title the button should have. This should never be defaulted.\n" + type: Text + default: "" + instructions: + description: "A list of instructions, either as free text, or as Text identifiers.\n" + type: List + default: [] + title: + description: "The text of the popup. This should never be defaulted.\n" + type: Text + default: "" + NimbusOnboardingLink: + description: "A group of properties describing the attributes for the active link on a card\n" + fields: + title: + description: "The text of the link title.\n" + type: Text + default: Onboarding/Onboarding.Welcome.Link.Action.v114 + url: + description: "The url that the link will lead to.\n" + type: String + default: "https://www.mozilla.org/privacy/firefox/" + NimbusOnboardingMultipleChoiceButton: + description: "A group of properties describing the attributes of a multiple choice button on a card\n" + fields: + action: + description: "The action the button should take. The default for this will be \"theme-system-default\"\n" + type: OnboardingMultipleChoiceAction + default: theme-system-default + image: + description: "The text of the button title. This should never be defaulted.\n" + type: NimbusOnboardingMultipleChoiceButtonImage + default: theme-system + title: + description: "The text of the button title. This should never be defaulted.\n" + type: Text + default: "" + SearchBarPositionFeature: + description: The configuration for the bottom search bar on the homescreen + fields: + is-bottom: + description: Whether or not the default position is at the bottom + type: Boolean + default: true + is-position-feature-enabled: + description: Whether or not the feature is enabled + type: Boolean + default: true + is-toolbar-cfr-on: + description: Whether or not the toolbar CFR shows. This is a temporary hack for Nimbus + type: Boolean + default: true + StyleData: + description: "A group of properities (predominantly visual) to the describe style of the message.\n" + fields: + max-display-count: + description: "How many sessions will this message be shown to the user before it is expired.\n" + type: Int + default: 5 + priority: + description: "The importance of this message. 0 is not very important, 100 is very important.\n" + type: Int + default: 50 + WebsiteConfig: + description: "It represents a configuration for different e-commerce websites and includes regular expressions for extracting product IDs from their respective URLs\n" + fields: + productIdFromURLRegex: + description: "It represents the product ID extracted from a regex query\n" + type: String + default: "" + validTLDs: + description: "Valid Top Level Domains\n" + type: List + default: []