Source code
Revision control
Copy as Markdown
Other Tools
{
"$id": "chrome://browser/content/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json",
"title": "Messaging Experiment",
"description": "A Firefox Messaging System message.",
"if": {
"type": "object",
"properties": {
"template": {
"const": "multi"
}
},
"required": [
"template"
]
},
"then": {
},
"else": {
},
"$defs": {
"ToastNotification": {
"title": "ToastNotification",
"description": "A template for toast notifications displayed by the Alert service.",
"allOf": [
{
}
],
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"title": {
"description": "Id of localized string or message override of toast notification title"
},
"body": {
"description": "Id of localized string or message override of toast notification body"
},
"icon_url": {
"description": "The URL of the image used as an icon of the toast notification.",
"type": "string",
"format": "moz-url-format"
},
"image_url": {
"description": "The URL of an image to be displayed as part of the notification.",
"type": "string",
"format": "moz-url-format"
},
"launch_url": {
"description": "The URL to launch when the notification or an action button is clicked.",
"type": "string",
"format": "moz-url-format"
},
"launch_action": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The launch action to be performed when Firefox is launched."
},
"data": {
"type": "object"
}
},
"required": [
"type"
],
"additionalProperties": true
},
"requireInteraction": {
"type": "boolean",
"description": "Whether the toast notification should remain active until the user clicks or dismisses it, rather than closing automatically."
},
"tag": {
"type": "string",
"description": "An identifying tag for the toast notification."
},
"data": {
"type": "object",
"description": "Arbitrary data associated with the toast notification."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"description": "The action text to be shown to the user."
},
"action": {
"type": "string",
"description": "Opaque identifer that identifies action."
},
"iconURL": {
"type": "string",
"format": "uri",
"description": "URL of an icon to display with the action."
},
"windowsSystemActivationType": {
"type": "boolean",
"description": "Whether to have Windows process the given `action`."
},
"launch_action": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The launch action to be performed when Firefox is launched."
},
"data": {
"type": "object"
}
},
"required": [
"type"
],
"additionalProperties": true
}
},
"required": [
"action",
"title"
],
"additionalProperties": true
}
}
},
"additionalProperties": true,
"required": [
"title",
"body"
]
},
"template": {
"type": "string",
"const": "toast_notification"
}
},
"required": [
"content",
"targeting",
"template",
"trigger"
],
"additionalProperties": true
},
"Message": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The message identifier"
},
"groups": {
"description": "Array of preferences used to control `enabled` status of the group. If any is `false` the group is disabled.",
"type": "array",
"items": {
"type": "string",
"description": "Preference name"
}
},
"template": {
"type": "string",
"description": "Which messaging template this message is using.",
"enum": [
"toast_notification"
]
},
"frequency": {
"type": "object",
"description": "An object containing frequency cap information for a message.",
"properties": {
"lifetime": {
"type": "integer",
"description": "The maximum lifetime impressions for a message.",
"minimum": 1,
"maximum": 100
},
"custom": {
"type": "array",
"description": "An array of custom frequency cap definitions.",
"items": {
"description": "A frequency cap definition containing time and max impression information",
"type": "object",
"properties": {
"period": {
"type": "integer",
"description": "Period of time in milliseconds (e.g. 86400000 for one day)"
},
"cap": {
"type": "integer",
"description": "The maximum impressions for the message within the defined period.",
"minimum": 1,
"maximum": 100
}
},
"required": [
"period",
"cap"
]
}
}
}
},
"priority": {
"description": "The priority of the message. If there are two competing messages to show, the one with the highest priority will be shown",
"type": "integer"
},
"order": {
"description": "The order in which messages should be shown. Messages will be shown in increasing order.",
"type": "integer"
},
"targeting": {
"description": "A JEXL expression representing targeting information",
"type": "string"
},
"trigger": {
"description": "An action to trigger potentially showing the message",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A string identifying the trigger action"
},
"params": {
"type": "array",
"description": "An optional array of string parameters for the trigger action",
"items": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
}
}
},
"required": [
"id"
]
},
"provider": {
"description": "An identifier for the provider of this message, such as \"cfr\" or \"preview\".",
"type": "string"
}
},
"additionalProperties": true,
"dependentRequired": {
"content": [
"id",
"template"
],
"template": [
"id",
"content"
]
}
},
"localizedText": {
"type": "object",
"properties": {
"string_id": {
"description": "Id of localized string to be rendered.",
"type": "string"
}
},
"required": [
"string_id"
]
},
"localizableText": {
"description": "Either a raw string or an object containing the string_id of the localized text",
"oneOf": [
{
"type": "string",
"description": "The string to be rendered."
},
{
}
]
},
"TemplatedMessage": {
"description": "An FxMS message of one of a variety of types.",
"type": "object",
"allOf": [
{
},
{
"if": {
"type": "object",
"properties": {
"template": {
"type": "string",
"enum": [
"toast_notification"
]
}
},
"required": [
"template"
]
},
"then": {
}
}
]
},
"MultiMessage": {
"description": "An object containing an array of messages.",
"type": "object",
"properties": {
"template": {
"type": "string",
"const": "multi"
},
"messages": {
"type": "array",
"description": "An array of messages.",
"items": {
}
}
},
"required": [
"template",
"messages"
]
}
}
}