summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/schemas/experiments.json
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /toolkit/components/extensions/schemas/experiments.json
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/extensions/schemas/experiments.json')
-rw-r--r--toolkit/components/extensions/schemas/experiments.json119
1 files changed, 119 insertions, 0 deletions
diff --git a/toolkit/components/extensions/schemas/experiments.json b/toolkit/components/extensions/schemas/experiments.json
new file mode 100644
index 0000000000..78f23cd8f2
--- /dev/null
+++ b/toolkit/components/extensions/schemas/experiments.json
@@ -0,0 +1,119 @@
+[
+ {
+ "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"]
+ }
+ ]
+ }
+]