-
Notifications
You must be signed in to change notification settings - Fork 47
Expand file tree
/
Copy pathbrowsers.schema.json
More file actions
135 lines (128 loc) · 4.09 KB
/
browsers.schema.json
File metadata and controls
135 lines (128 loc) · 4.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
{
"$schema": "http://json-schema.org/schema",
"definitions": {
"browser_type": {
"type": "string",
"enum": ["desktop", "mobile", "xr", "server"]
},
"browser_engine": {
"type": "string",
"enum": [
"Blink",
"EdgeHTML",
"Gecko",
"Presto",
"Trident",
"WebKit",
"V8"
]
},
"browser_status": {
"type": "string",
"enum": ["retired", "current", "beta", "nightly", "esr", "planned"]
},
"browsers": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/browser_statement"
},
"minProperties": 1,
"maxProperties": 1,
"errorMessage": {
"minProperties": "A browser must be described within the file.",
"maxProperties": "Each browser JSON file may only describe one browser."
},
"tsType": "Record<BrowserName, BrowserStatement>"
},
"browser_statement": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The browser brand name (e.g. Firefox, Firefox Android, Chrome, etc.)."
},
"type": {
"$ref": "#/definitions/browser_type",
"description": "The platform the browser runs on (e.g. desktop, mobile, XR, or server engine).",
"tsType": "BrowserType"
},
"upstream": {
"type": "string",
"description": "The upstream browser this browser derives from (e.g. Firefox Android is derived from Firefox, Edge is derived from Chrome).",
"tsType": "BrowserName"
},
"preview_name": {
"type": "string",
"description": "The name of the browser's preview channel (e.g. 'Nightly' for Firefox or 'TP' for Safari)."
},
"pref_url": {
"type": "string",
"description": "URL of the page where feature flags can be changed (e.g. 'about:config' for Firefox or 'chrome://flags' for Chrome)."
},
"accepts_flags": {
"type": "boolean",
"description": "Whether the browser supports user-toggleable flags that enable or disable features."
},
"accepts_webextensions": {
"type": "boolean",
"description": "Whether the browser supports extensions."
},
"releases": {
"type": "object",
"additionalProperties": { "$ref": "#/definitions/release_statement" },
"description": "The known versions of this browser.",
"tsType": "{ [version: string]: ReleaseStatement };"
}
},
"required": [
"name",
"type",
"releases",
"accepts_flags",
"accepts_webextensions"
],
"additionalProperties": false
},
"release_statement": {
"type": "object",
"properties": {
"release_date": {
"type": "string",
"format": "date",
"description": "The date on which this version was released, formatted as `YYYY-MM-DD`."
},
"release_notes": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"description": "A link to the release notes or changelog for a given release."
},
"status": {
"$ref": "#/definitions/browser_status",
"description": "A property indicating where in the lifetime cycle this release is in (e.g. current, retired, beta, nightly).",
"tsType": "BrowserStatus"
},
"engine": {
"$ref": "#/definitions/browser_engine",
"description": "Name of the browser's underlying engine.",
"tsType": "BrowserEngine"
},
"engine_version": {
"type": "string",
"description": "Version of the engine corresponding to the browser version."
}
},
"required": ["status"],
"dependencies": {
"engine": ["engine_version"]
},
"additionalProperties": false
}
},
"title": "BrowserDataFile",
"type": "object",
"properties": {
"browsers": { "$ref": "#/definitions/browsers" }
},
"additionalProperties": false
}