tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

messaging.fml.yaml (7621B)


      1 ---
      2 about:
      3  description: Nimbus Feature Manifest for Android
      4  kotlin:
      5    package: mozilla.components.service.nimbus
      6    class: .messaging.FxNimbusMessaging
      7 channels:
      8  - release
      9  - debug
     10 features:
     11  nimbus-system:
     12    description: |
     13      Configuration of the Nimbus System in Android.
     14    variables:
     15      refresh-interval-foreground:
     16        description: |
     17          The minimum interval in minutes between fetching experiment
     18          recipes in the foreground.
     19        type: Int
     20        default: 60 # 1 hour
     21 
     22  messaging:
     23    description: |
     24      The in-app messaging system.
     25 
     26    allow-coenrollment: true
     27 
     28    variables:
     29      messages:
     30        description: A growable collection of messages
     31        type: Map<MessageKey, MessageData>
     32        string-alias: MessageKey
     33        default: {}
     34 
     35      triggers:
     36        description: >
     37          A collection of out the box trigger
     38          expressions. Each entry maps to a
     39          valid JEXL expression.
     40        type: Map<TriggerName, String>
     41        string-alias: TriggerName
     42        default: {}
     43      styles:
     44        description: >
     45          A map of styles to configure message
     46          appearance.
     47        type: Map<StyleName, StyleData>
     48        string-alias: StyleName
     49        default: {}
     50 
     51      $$surfaces:
     52        description: |
     53          A list available surfaces for this app.
     54 
     55          This should not be written to by experiments, and should be hidden to users.
     56        type: List<SurfaceName>
     57        string-alias: SurfaceName
     58        default: []
     59 
     60      actions:
     61        type: Map<ActionName, String>
     62        description: A growable map of action URLs.
     63        string-alias: ActionName
     64        default:
     65          OPEN_URL: ://open
     66 
     67      on-control:
     68        type: ControlMessageBehavior
     69        description: What should be displayed when a control message is selected.
     70        default: show-next-message
     71      notification-config:
     72        description: Configuration of the notification worker for all notification messages.
     73        type: NotificationConfig
     74        default: {}
     75      message-under-experiment:
     76        description: Deprecated in favor of `MessageData#experiment`. This will be removed in future releases.
     77        type: Option<MessageKey>
     78        default: null
     79      $$experiment:
     80        description: The only acceptable value for `MessageData#experiment`. This should not be set by experiment.
     81        type: ExperimentSlug
     82        string-alias: ExperimentSlug
     83        default: "{experiment}"
     84    defaults:
     85 
     86 objects:
     87  MessageData:
     88    description: >
     89      An object to describe a message. It uses human
     90      readable strings to describe the triggers, action and
     91      style of the message as well as the text of the message
     92      and call to action.
     93    fields:
     94      action:
     95        type: ActionName
     96        description: >
     97          A URL of a page or a deeplink.
     98          This may have substitution variables in.
     99        default: OPEN_URL # This should never be defaulted.
    100      action-params:
    101        description: >
    102          A string map containing query parameters that will be appended to the action URL.
    103          This is useful for opening URLs in tabs, or specifying that the tab should be private.
    104          The values may have substitutions, e.g. "url": "https://example.com/id={uuid}",
    105          "private": "true".
    106 
    107          The params and their values are all determined downstream of the messaging component, by
    108          the embedding app's deeplink processing machinery.
    109        type: Map<String, String>
    110        default: {}
    111      title:
    112        type: Option<Text>
    113        description: The title text displayed to the user
    114        default: null
    115      text:
    116        type: Text
    117        description: The message text displayed to the user
    118        default: "" # This should never be defaulted.
    119      microsurvey-config:
    120        type: Option<MicrosurveyConfig>
    121        description: Optional configuration data for a microsurvey.
    122      is-control:
    123        type: Boolean
    124        description: Indicates if this message is the control message, if true shouldn't be displayed
    125        default: false
    126      experiment:
    127        type: Option<ExperimentSlug>
    128        description: The slug of the experiment that this message came from.
    129        default: null
    130      button-label:
    131        type: Option<Text>
    132        description: >
    133          The text on the button. If no text
    134          is present, the whole message is clickable.
    135        default: null
    136      style:
    137        type: StyleName
    138        description: >
    139          The style as described in a
    140          `StyleData` from the styles table.
    141        default: DEFAULT
    142      surface:
    143        description:
    144          The surface identifier for this message.
    145        type: SurfaceName
    146        default: homescreen
    147      trigger-if-all:
    148        type: List<TriggerName>
    149        description: >
    150          A list of strings corresponding to
    151          targeting expressions. The message will be
    152          shown if all expressions are `true`.
    153        default: []
    154      exclude-if-any:
    155        type: List<TriggerName>
    156        description: >
    157          A list of strings corresponding to
    158          targeting expressions. The message will not be
    159          shown if any of the expressions are `true`.
    160        default: [ ]
    161  StyleData:
    162    description: >
    163      A group of properties (predominantly visual) to
    164      describe the style of the message.
    165    fields:
    166      priority:
    167        type: Int
    168        description: >
    169          The importance of this message.
    170          0 is not very important, 100 is very important.
    171        default: 50
    172      max-display-count:
    173        type: Int
    174        description: >
    175          How many sessions will this message be shown to the user
    176          before it is expired.
    177        default: 5
    178  NotificationConfig:
    179    description: Attributes controlling the global configuration of notification messages.
    180    fields:
    181      refresh-interval:
    182        type: Int
    183        description: >
    184          How often, in minutes, the notification message worker will wake up and check for new
    185          messages.
    186        default: 240 # 4 hours
    187  MicrosurveyConfig:
    188    description: Attributes relating to microsurvey content.
    189    fields:
    190      utm-content:
    191        description: Optional "utm_content" parameter for the privacy notice URL to specify the feature being surveyed.
    192        type: Option<String>
    193        default: null
    194      icon:
    195        type: Option<Image>
    196        description: The icon shown in the survey.
    197        default: null # If null, a default will be provided.
    198      answers:
    199        description: The list of answers to present to the user e.g. "Satisfied, Dissatisfied...".
    200        type: List<MicrosurveyAnswer>
    201        default: [] # Should not be defaulted
    202  MicrosurveyAnswer:
    203    description: Attributes relating to microsurvey content.
    204    fields:
    205      ordering:
    206        type: Int
    207        description: >
    208          Used to sequence the answers top to bottom. E.g. 0 will be the first/top item, 1 will be next and so on.
    209          Always set either ALL the provided answers ordering or NONE. If ALL answers are default, the the ordering
    210          used will be the same as provided by the experiment.
    211        default: 0
    212      text:
    213        type: Text
    214        description: The text for the answer.
    215        default: "" # This should never be defaulted.
    216 
    217 enums:
    218  ControlMessageBehavior:
    219    description: An enum to influence what should be displayed when a control message is selected.
    220    variants:
    221      show-next-message:
    222        description: The next eligible message should be shown.
    223      show-none:
    224        description: The surface should show no message.