You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iceraven-browser/nimbus.fml.yaml

330 lines
10 KiB
YAML

---
channels:
- release
- beta
- nightly
- developer
features:
homescreen:
description: The homescreen that the user goes to when they press home or new tab.
variables:
sections-enabled:
description: "This property provides a lookup table of whether or not the given section should be enabled.
If the section is enabled, it should be toggleable in the settings screen, and on by default."
type: Map<HomeScreenSection, Boolean>
default:
{
"top-sites": true,
"jump-back-in": true,
"recently-saved": true,
"recent-explorations": true,
"pocket": true,
"contile-top-sites": false,
}
defaults:
- channel: nightly
value: {
"sections-enabled": {
"top-sites": true,
"jump-back-in": true,
"recently-saved": true,
"recent-explorations": true,
"pocket": true,
"contile-top-sites": false,
}
}
nimbus-validation:
description: "A feature that does not correspond to an application feature suitable for showing
that Nimbus is working. This should never be used in production."
variables:
settings-title:
description: The title of displayed in the Settings screen and app menu.
type: Text
default: browser_menu_settings
settings-punctuation:
description: The emoji displayed in the Settings screen title.
type: String
default: ""
settings-icon:
description: The drawable displayed in the app menu for Settings
type: String
default: mozac_ic_settings
search-term-groups:
description: A feature allowing the grouping of URLs around the search term that it came from.
variables:
enabled:
description: If true, the feature shows up on the homescreen and on the new tab screen.
type: Boolean
default: false
defaults:
- channel: nightly
value:
enabled: true
- channel: developer
value:
enabled: true
default-browser-message:
description: A small feature allowing experiments on the placement of a default browser message.
variables:
message-location:
description: Where is the message to be put.
type: Option<MessageSurfaceId>
default: null
messaging:
description: |
Configuration for the messaging system.
In practice this is a set of growable lookup tables for the
message controller to piece together.
variables:
message-under-experiment:
description: Id or prefix of the message under experiment.
type: Option<String>
default: null
messages:
description: A growable collection of messages
type: Map<String, MessageData>
default: {}
triggers:
description: >
A collection of out the box trigger
expressions. Each entry maps to a
valid JEXL expression.
type: Map<String, String>
default:
english-speaking: "'en' in locale"
ALWAYS: "true"
NEW_USER: "days_since_install < 7"
styles:
description: >
A map of styles to configure message
appearance.
type: Map<String, StyleData>
default:
urgent:
background-color: red
text-color: white
button-background: bright-blue
button-text-color: white
priority: 70
warning:
background-color: cyan,
text-color: black,
button-background: bright-blue
button-text-color: white
priority: 55
default:
background-color: blue
text-color: white
button-background: bright-blue
button-text-color: white
priority: 50
excited:
background-color: blue
text-color: white
button-background: bright-blue
button-text-color: white
priority: 60
actions:
type: Map<String, String>
description: A growable map of action URLs.
default:
OPEN_SYNC_SETTINGS: firefox://settings/sync
OPEN_POCKET_SETTINGS: https:///getpocket.com/settings?fxa={fxa-token}
OPEN_SETTINGS: ://settings
defaults:
- channel: developer
value: {
"messages": {
"my-viewpoint-survey": {
"title": "Message tile",
"text": "Love Firefox? Fill in our survey!",
"action": "https://surveyprovider.com/survey-id/{uuid}",
"trigger": [ "ALWAYS" ],
"max-display-count": 5,
"style": "warning",
"button-label": "Go to the survey"
}
},
"message-under-experiment": "my-viewpoint-survey"
}
- channel: developer
value: {
"messages": {
"private-tabs-auto-close": {
"action": "OPEN_SETTINGS",
"text": "Sharing your phone? Autoclosing private tabs is for you!",
"style": "warning",
"trigger": [
"NEW_USER",
"first-private-tabs-opened"
],
"max-display-count": 5
}
},
"message-under-experiment": "private-tabs-auto-close"
}
- channel: developer
value: {
"triggers": {
"ireland": "'IE' in locale"
},
"styles": {
"irish-green": {
"background-color": "green",
"text-color": "dark-green",
"button-background": "foo",
"button-text-color": "very-green",
"priority": 50
}
},
"actions": {
"OPEN_SETTINGS": "://settings"
},
"messages": {
"eu-tracking-protection-for-ireland": {
"action": "OPEN_SETTINGS",
"text": "GDPR has you covered. Firefox has GDPR covered",
"style": "irish-green",
"trigger": [
"NEW_USER",
"ireland"
],
"max-display-count": 5
}
},
"message-under-experiment": "eu-tracking-protection-for-"
}
types:
objects:
MessageData:
description: >
An object to describe a message. It uses human
readable strings to describe the triggers, action and
style of the message as well as the text of the message
and call to action.
fields:
action:
type: String
description: >
A URL of a page or a deeplink.
This may have substitution variables in.
# This should never be defaulted.
default: empty_string
title:
type: Option<Text>
description: "The title text displayed to the user"
default: null
text:
type: Text
description: "The message text displayed to the user"
# This should never be defaulted.
default: empty_string
is-control:
type: Boolean
description: "Indicates if this message is the control message, if true shouldn't be displayed"
default: false
button-label:
type: Option<Text>
description: >
The text on the button. If no text
is present, the whole message is clickable.
default: null
style:
type: String
description: >
The style as described in a
`StyleData` from the styles table.
default: "default"
max-display-count:
type: Int
description: >
The number of sessions the user is
shown the message before the message expires.
If the user is able to dismiss the message,
this is the number of times they dismiss
it before the message expires.
A count of -1 means that the message will
never expire.
default: 5
# These triggers aren't part of the MVP,
# so may be excluded.
trigger:
type: List<String>
description: >
A list of strings corresponding to
targeting expressions. The message will be
shown if all expressions `true`.
default: []
StyleData:
description: >
A group of properities (predominantly visual) to
describe the style of the message.
fields:
# How the string is transformed into a color is unspecified
background-color:
type: String
description: The color of the background.
default: "blue"
text-color:
type: String
description: The color of the background.
default: "white"
button-background:
type: String
description: The color of the button background.
default: "bright-blue"
button-text-color:
type: String
description: The color of the button text.
default: "white"
priority:
type: Int
description: >
The importance of this message.
0 is not very important, 100 is very important.
default: 50
enums:
HomeScreenSection:
description: The identifiers for the sections of the homescreen.
variants:
top-sites:
description: The frecency and pinned sites.
recently-saved:
description: The sites the user has bookmarked recently.
jump-back-in:
description: The tabs the user was looking immediately before being interrupted.
recent-explorations:
description: The tab groups
pocket:
description: The pocket section. This should only be available in the US.
contile-top-sites:
description: The sponsored shortcuts in the homescreen.
MessageSurfaceId:
description: The identity of a message surface, used in the default browser experiments
variants:
app-menu-item:
description: An item in the default toolbar menu.
settings:
description: A setting in the settings screen.
homescreen-banner:
description: A banner in the homescreen.