summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/schemas/experiments.json
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /toolkit/components/extensions/schemas/experiments.json
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
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.json129
1 files changed, 129 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..2f5d596366
--- /dev/null
+++ b/toolkit/components/extensions/schemas/experiments.json
@@ -0,0 +1,129 @@
+[
+ {
+ "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"
+ ]
+ }
+ ]
+ }
+]