119 lines
2.7 KiB
JSON
119 lines
2.7 KiB
JSON
[
|
|
{
|
|
"namespace": "manifest",
|
|
"types": [
|
|
{
|
|
"$extend": "Permission",
|
|
"choices": [
|
|
{
|
|
"type": "string",
|
|
"pattern": "^experiments(\\.\\w+)+$"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"$extend": "WebExtensionManifest",
|
|
"properties": {
|
|
"experiment_apis": {
|
|
"type": "object",
|
|
"additionalProperties": { "$ref": "experiments.ExperimentAPI" },
|
|
"optional": true,
|
|
"privileged": true
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"namespace": "experiments",
|
|
"types": [
|
|
{
|
|
"id": "ExperimentAPI",
|
|
"type": "object",
|
|
"properties": {
|
|
"schema": { "$ref": "ExperimentURL" },
|
|
|
|
"parent": {
|
|
"type": "object",
|
|
"properties": {
|
|
"events": {
|
|
"$ref": "APIEvents",
|
|
"optional": true,
|
|
"default": []
|
|
},
|
|
|
|
"paths": {
|
|
"$ref": "APIPaths",
|
|
"optional": true,
|
|
"default": []
|
|
},
|
|
|
|
"script": { "$ref": "ExperimentURL" },
|
|
|
|
"scopes": {
|
|
"type": "array",
|
|
"items": { "$ref": "APIParentScope", "onError": "warn" },
|
|
"optional": true,
|
|
"default": []
|
|
}
|
|
},
|
|
"optional": true
|
|
},
|
|
|
|
"child": {
|
|
"type": "object",
|
|
"properties": {
|
|
"paths": { "$ref": "APIPaths" },
|
|
|
|
"script": { "$ref": "ExperimentURL" },
|
|
|
|
"scopes": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "$ref": "APIChildScope", "onError": "warn" }
|
|
}
|
|
},
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "ExperimentURL",
|
|
"type": "string",
|
|
"format": "unresolvedRelativeUrl"
|
|
},
|
|
{
|
|
"id": "APIPaths",
|
|
"type": "array",
|
|
"items": { "$ref": "APIPath" },
|
|
"minItems": 1
|
|
},
|
|
{
|
|
"id": "APIPath",
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"minItems": 1
|
|
},
|
|
{
|
|
"id": "APIEvents",
|
|
"type": "array",
|
|
"items": { "$ref": "APIEvent", "onError": "warn" }
|
|
},
|
|
{
|
|
"id": "APIEvent",
|
|
"type": "string",
|
|
"enum": ["startup"]
|
|
},
|
|
{
|
|
"id": "APIParentScope",
|
|
"type": "string",
|
|
"enum": ["addon_parent", "content_parent", "devtools_parent"]
|
|
},
|
|
{
|
|
"id": "APIChildScope",
|
|
"type": "string",
|
|
"enum": ["addon_child", "content_child", "devtools_child"]
|
|
}
|
|
]
|
|
}
|
|
]
|