fugu-api-data 1.21.0 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/patterns.js +77 -67
- package/patterns.mjs +77 -67
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fugu-api-data",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.23.0",
|
|
4
4
|
"description": "Data about Project Fugu 🐡 APIs.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"homepage": "https://github.com/tomayac/fugu-api-data#readme",
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"node-fetch": "^3.3.2",
|
|
27
|
-
"prettier": "^3.
|
|
27
|
+
"prettier": "^3.6.2"
|
|
28
28
|
}
|
|
29
29
|
}
|
package/patterns.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const patterns = {
|
|
2
2
|
'Absolute Orientation Sensor': {
|
|
3
|
-
regEx:
|
|
3
|
+
regEx: /\bnew\s+AbsoluteOrientationSensor\s*\(/g,
|
|
4
4
|
where: 'JavaScript',
|
|
5
5
|
supported: (async () => 'AbsoluteOrientationSensor' in self)(),
|
|
6
6
|
featureDetection: `(async () => 'AbsoluteOrientationSensor' in self)()`,
|
|
@@ -9,7 +9,7 @@ const patterns = {
|
|
|
9
9
|
chromeStatusID: 5698781827825664,
|
|
10
10
|
},
|
|
11
11
|
'Accelerometer': {
|
|
12
|
-
regEx:
|
|
12
|
+
regEx: /\bnew\s+Accelerometer\s*\(/g,
|
|
13
13
|
where: 'JavaScript',
|
|
14
14
|
supported: (async () => 'Accelerometer' in self)(),
|
|
15
15
|
featureDetection: `(async () => 'Accelerometer' in self)()`,
|
|
@@ -28,7 +28,7 @@ const patterns = {
|
|
|
28
28
|
chromeStatusID: 6560913322672128,
|
|
29
29
|
},
|
|
30
30
|
'Ambient Light Sensor': {
|
|
31
|
-
regEx:
|
|
31
|
+
regEx: /\bnew\s+AmbientLightSensor\s*\(\)/g,
|
|
32
32
|
where: 'JavaScript',
|
|
33
33
|
supported: (async () => 'AmbientLightSensor' in self)(),
|
|
34
34
|
featureDetection: `(async () => 'AmbientLightSensor' in self)()`,
|
|
@@ -37,7 +37,7 @@ const patterns = {
|
|
|
37
37
|
chromeStatusID: 5298357018820608,
|
|
38
38
|
},
|
|
39
39
|
'Async Clipboard': {
|
|
40
|
-
regEx:
|
|
40
|
+
regEx: /\bnavigator\.clipboard\.writeText\s*\(/g,
|
|
41
41
|
where: 'JavaScript',
|
|
42
42
|
supported: (async () =>
|
|
43
43
|
'clipboard' in navigator && 'writeText' in navigator.clipboard)(),
|
|
@@ -47,7 +47,7 @@ const patterns = {
|
|
|
47
47
|
chromeStatusID: 5861289330999296,
|
|
48
48
|
},
|
|
49
49
|
'Async Clipboard (Images)': {
|
|
50
|
-
regEx:
|
|
50
|
+
regEx: /\bnavigator\.clipboard\.write\s*\(/g,
|
|
51
51
|
where: 'JavaScript',
|
|
52
52
|
supported: (async () =>
|
|
53
53
|
'clipboard' in navigator && 'write' in navigator.clipboard)(),
|
|
@@ -80,7 +80,7 @@ const patterns = {
|
|
|
80
80
|
chromeStatusID: 6170807885627392,
|
|
81
81
|
},
|
|
82
82
|
'Badging': {
|
|
83
|
-
regEx:
|
|
83
|
+
regEx: /\bnavigator\.setAppBadge\s*\(/g,
|
|
84
84
|
where: 'JavaScript',
|
|
85
85
|
supported: (async () => 'setAppBadge' in navigator)(),
|
|
86
86
|
featureDetection: `(async () => 'setAppBadge' in navigator)()`,
|
|
@@ -89,7 +89,7 @@ const patterns = {
|
|
|
89
89
|
chromeStatusID: 6068482055602176,
|
|
90
90
|
},
|
|
91
91
|
'Cache Storage': {
|
|
92
|
-
regEx:
|
|
92
|
+
regEx: /\bcaches\.open\s*\(/g,
|
|
93
93
|
where: 'JavaScript',
|
|
94
94
|
supported: (async () => 'serviceWorker' in navigator && 'caches' in self)(),
|
|
95
95
|
featureDetection: `(async () => 'serviceWorker' in navigator && 'caches' in self)()`,
|
|
@@ -99,7 +99,7 @@ const patterns = {
|
|
|
99
99
|
chromeStatusID: 6461631328419840,
|
|
100
100
|
},
|
|
101
101
|
'Compression Streams': {
|
|
102
|
-
regEx:
|
|
102
|
+
regEx: /\bnew\s+CompressionStream\s*\(/g,
|
|
103
103
|
where: 'JavaScript',
|
|
104
104
|
supported: (async () => 'CompressionStream' in self)(),
|
|
105
105
|
featureDetection: `(async () => 'CompressionStream' in self)()`,
|
|
@@ -108,7 +108,7 @@ const patterns = {
|
|
|
108
108
|
chromeStatusID: 5855937971617792,
|
|
109
109
|
},
|
|
110
110
|
'Compute Pressure': {
|
|
111
|
-
regEx:
|
|
111
|
+
regEx: /\bnew\s+ComputePressureObserver\s*\(/g,
|
|
112
112
|
where: 'JavaScript',
|
|
113
113
|
supported: (async () => 'ComputePressureObserver' in self)(),
|
|
114
114
|
featureDetection: `(async () => 'ComputePressureObserver' in self)()`,
|
|
@@ -118,7 +118,7 @@ const patterns = {
|
|
|
118
118
|
chromeStatusID: 5597608644968448,
|
|
119
119
|
},
|
|
120
120
|
'Contact Picker': {
|
|
121
|
-
regEx:
|
|
121
|
+
regEx: /\bnavigator\.contacts\.select\s*\(/g,
|
|
122
122
|
where: 'JavaScript',
|
|
123
123
|
supported: (async () => 'contacts' in navigator)(),
|
|
124
124
|
featureDetection: `(async () => 'contacts' in navigator)()`,
|
|
@@ -127,7 +127,7 @@ const patterns = {
|
|
|
127
127
|
chromeStatusID: 6511327140904960,
|
|
128
128
|
},
|
|
129
129
|
'Content Index': {
|
|
130
|
-
regEx:
|
|
130
|
+
regEx: /\bindex\.getAll\s*\(/g,
|
|
131
131
|
where: 'JavaScript',
|
|
132
132
|
supported: (async () =>
|
|
133
133
|
'serviceWorker' in navigator &&
|
|
@@ -140,7 +140,7 @@ const patterns = {
|
|
|
140
140
|
chromeStatusID: 5658416729030656,
|
|
141
141
|
},
|
|
142
142
|
'Credential Management': {
|
|
143
|
-
regEx:
|
|
143
|
+
regEx: /\bnavigator\.credentials\.get\s*\(/g,
|
|
144
144
|
where: 'JavaScript',
|
|
145
145
|
supported: (async () => 'credentials' in navigator)(),
|
|
146
146
|
featureDetection: `(async () => 'credentials' in navigator)()`,
|
|
@@ -150,7 +150,7 @@ const patterns = {
|
|
|
150
150
|
chromeStatusID: 5026422640869376,
|
|
151
151
|
},
|
|
152
152
|
'Device Memory': {
|
|
153
|
-
regEx:
|
|
153
|
+
regEx: /\bnavigator\.deviceMemory/g,
|
|
154
154
|
where: 'JavaScript',
|
|
155
155
|
supported: (async () => 'deviceMemory' in navigator)(),
|
|
156
156
|
featureDetection: `(async () => 'deviceMemory' in navigator)()`,
|
|
@@ -160,7 +160,7 @@ const patterns = {
|
|
|
160
160
|
chromeStatusID: 5119701235531776,
|
|
161
161
|
},
|
|
162
162
|
'Device Posture': {
|
|
163
|
-
regEx:
|
|
163
|
+
regEx: /\bnavigator\.devicePosture/g,
|
|
164
164
|
where: 'JavaScript',
|
|
165
165
|
supported: (async () => 'devicePosture' in navigator)(),
|
|
166
166
|
featureDetection: `(async () => 'devicePosture' in navigator)()`,
|
|
@@ -170,7 +170,7 @@ const patterns = {
|
|
|
170
170
|
chromeStatusID: 5185813744975872,
|
|
171
171
|
},
|
|
172
172
|
'Digital Goods': {
|
|
173
|
-
regEx:
|
|
173
|
+
regEx: /\bgetDigitalGoodsService\s*\(/g,
|
|
174
174
|
where: 'JavaScript',
|
|
175
175
|
supported: (async () => 'getDigitalGoodsService' in self)(),
|
|
176
176
|
featureDetection: `(async () => 'getDigitalGoodsService' in self)()`,
|
|
@@ -180,7 +180,7 @@ const patterns = {
|
|
|
180
180
|
chromeStatusID: 5339955595313152,
|
|
181
181
|
},
|
|
182
182
|
'EyeDropper': {
|
|
183
|
-
regEx:
|
|
183
|
+
regEx: /\bnew\s+EyeDropper\s*\(\)/g,
|
|
184
184
|
where: 'JavaScript',
|
|
185
185
|
supported: (async () => 'EyeDropper' in self)(),
|
|
186
186
|
featureDetection: `(async () => 'EyeDropper' in self)()`,
|
|
@@ -199,7 +199,7 @@ const patterns = {
|
|
|
199
199
|
chromeStatusID: 5721776357113856,
|
|
200
200
|
},
|
|
201
201
|
'File System Observer': {
|
|
202
|
-
regEx:
|
|
202
|
+
regEx: /\bnew\s+FileSystemObserver\s*\(/g,
|
|
203
203
|
where: 'JavaScript',
|
|
204
204
|
supported: (async () => 'FileSystemObserver' in self)(),
|
|
205
205
|
featureDetection: `(async () => 'FileSystemObserver' in self)()`,
|
|
@@ -210,7 +210,7 @@ const patterns = {
|
|
|
210
210
|
},
|
|
211
211
|
'File System Access': {
|
|
212
212
|
regEx:
|
|
213
|
-
|
|
213
|
+
/\bshowOpenFilePicker\s*\(|showSaveFilePicker\s*\(|showDirectoryPicker\s*\(/g,
|
|
214
214
|
where: 'JavaScript',
|
|
215
215
|
supported: (async () => 'showOpenFilePicker' in self)(),
|
|
216
216
|
featureDetection: `(async () => 'showOpenFilePicker' in self)()`,
|
|
@@ -219,7 +219,7 @@ const patterns = {
|
|
|
219
219
|
chromeStatusID: 6284708426022912,
|
|
220
220
|
},
|
|
221
221
|
'Gamepad': {
|
|
222
|
-
regEx:
|
|
222
|
+
regEx: /\bnavigator\.getGamepads\s*\(/g,
|
|
223
223
|
where: 'JavaScript',
|
|
224
224
|
supported: (async () => 'getGamepads' in navigator)(),
|
|
225
225
|
featureDetection: `(async () => 'getGamepads' in navigator)()`,
|
|
@@ -228,7 +228,7 @@ const patterns = {
|
|
|
228
228
|
chromeStatusID: 5118776383111168,
|
|
229
229
|
},
|
|
230
230
|
'getInstalledRelatedApps': {
|
|
231
|
-
regEx:
|
|
231
|
+
regEx: /\bnavigator\.getInstalledRelatedApps\s*\(/g,
|
|
232
232
|
where: 'JavaScript',
|
|
233
233
|
supported: (async () => 'getInstalledRelatedApps' in navigator)(),
|
|
234
234
|
featureDetection: `(async () => 'getInstalledRelatedApps' in navigator)()`,
|
|
@@ -237,7 +237,7 @@ const patterns = {
|
|
|
237
237
|
chromeStatusID: 5695378309513216,
|
|
238
238
|
},
|
|
239
239
|
'Gravity Sensor': {
|
|
240
|
-
regEx:
|
|
240
|
+
regEx: /\bnew\s+GravitySensor\s*\(/g,
|
|
241
241
|
where: 'JavaScript',
|
|
242
242
|
supported: (async () => 'GravitySensor' in self)(),
|
|
243
243
|
featureDetection: `(async () => 'GravitySensor' in self)()`,
|
|
@@ -246,7 +246,7 @@ const patterns = {
|
|
|
246
246
|
chromeStatusID: 5384099747332096,
|
|
247
247
|
},
|
|
248
248
|
'Gyroscope': {
|
|
249
|
-
regEx:
|
|
249
|
+
regEx: /\bnew\s+Gyroscope\s*\(/g,
|
|
250
250
|
where: 'JavaScript',
|
|
251
251
|
supported: (async () => 'Gyroscope' in self)(),
|
|
252
252
|
featureDetection: `(async () => 'Gyroscope' in self)()`,
|
|
@@ -255,7 +255,7 @@ const patterns = {
|
|
|
255
255
|
chromeStatusID: 5698781827825664,
|
|
256
256
|
},
|
|
257
257
|
'Handwriting Recognition': {
|
|
258
|
-
regEx:
|
|
258
|
+
regEx: /\bnavigator\.queryHandwritingRecognizerSupport\s*\(/g,
|
|
259
259
|
where: 'JavaScript',
|
|
260
260
|
supported: (async () => 'queryHandwritingRecognizerSupport' in navigator)(),
|
|
261
261
|
featureDetection: `(async () => 'queryHandwritingRecognizerSupport' in navigator)()`,
|
|
@@ -275,7 +275,7 @@ const patterns = {
|
|
|
275
275
|
chromeStatusID: 5720648543371264,
|
|
276
276
|
},
|
|
277
277
|
'Idle Detection': {
|
|
278
|
-
regEx:
|
|
278
|
+
regEx: /\bnew\s+IdleDetector\s*\(/g,
|
|
279
279
|
where: 'JavaScript',
|
|
280
280
|
supported: (async () => 'IdleDetector' in self)(),
|
|
281
281
|
featureDetection: `(async () => 'IdleDetector' in self)()`,
|
|
@@ -284,7 +284,7 @@ const patterns = {
|
|
|
284
284
|
chromeStatusID: 4590256452009984,
|
|
285
285
|
},
|
|
286
286
|
'Ink': {
|
|
287
|
-
regEx:
|
|
287
|
+
regEx: /\bnavigator\.ink\.requestPresenter\s*\(/g,
|
|
288
288
|
where: 'JavaScript',
|
|
289
289
|
supported: (async () => 'ink' in navigator)(),
|
|
290
290
|
featureDetection: `(async () => 'ink' in navigator)()`,
|
|
@@ -294,7 +294,7 @@ const patterns = {
|
|
|
294
294
|
chromeStatusID: 5961434129235968,
|
|
295
295
|
},
|
|
296
296
|
'Insertable streams for MediaStreamTrack': {
|
|
297
|
-
regEx:
|
|
297
|
+
regEx: /\bMediaStreamTrackProcessor\s*\(/g,
|
|
298
298
|
where: 'JavaScript',
|
|
299
299
|
supported: (async () =>
|
|
300
300
|
'MediaStreamTrackProcessor' in self &&
|
|
@@ -317,7 +317,7 @@ const patterns = {
|
|
|
317
317
|
chromeStatusID: 5722383233056768,
|
|
318
318
|
},
|
|
319
319
|
'Linear Acceleration Sensor': {
|
|
320
|
-
regEx:
|
|
320
|
+
regEx: /\bnew\s+LinearAccelerationSensor\s*\(/g,
|
|
321
321
|
where: 'JavaScript',
|
|
322
322
|
supported: (async () => 'LinearAccelerationSensor' in self)(),
|
|
323
323
|
featureDetection: `(async () => 'LinearAccelerationSensor' in self)()`,
|
|
@@ -326,7 +326,7 @@ const patterns = {
|
|
|
326
326
|
chromeStatusID: 5698781827825664,
|
|
327
327
|
},
|
|
328
328
|
'Local Font Access': {
|
|
329
|
-
regEx:
|
|
329
|
+
regEx: /\bqueryLocalFonts\s*\(/g,
|
|
330
330
|
where: 'JavaScript',
|
|
331
331
|
supported: (async () => 'queryLocalFonts' in self)(),
|
|
332
332
|
featureDetection: `(async () => 'queryLocalFonts' in self)()`,
|
|
@@ -335,7 +335,7 @@ const patterns = {
|
|
|
335
335
|
chromeStatusID: 6234451761692672,
|
|
336
336
|
},
|
|
337
337
|
'Magnetometer': {
|
|
338
|
-
regEx:
|
|
338
|
+
regEx: /\bnew\s+Magnetometer\s*\(/g,
|
|
339
339
|
where: 'JavaScript',
|
|
340
340
|
supported: (async () => 'Magnetometer' in self)(),
|
|
341
341
|
featureDetection: `(async () => 'Magnetometer' in self)()`,
|
|
@@ -344,7 +344,7 @@ const patterns = {
|
|
|
344
344
|
chromeStatusID: 5698781827825664,
|
|
345
345
|
},
|
|
346
346
|
'Media Capabilities': {
|
|
347
|
-
regEx:
|
|
347
|
+
regEx: /\bnavigator\.mediaCapabilities\.decodingInfo\s*\(/g,
|
|
348
348
|
where: 'JavaScript',
|
|
349
349
|
supported: (async () => 'mediaCapabilities' in navigator)(),
|
|
350
350
|
featureDetection: `(async () => 'mediaCapabilities' in navigator)()`,
|
|
@@ -355,7 +355,7 @@ const patterns = {
|
|
|
355
355
|
},
|
|
356
356
|
'Media Session': {
|
|
357
357
|
regEx:
|
|
358
|
-
|
|
358
|
+
/\bnavigator\.mediaSession\.setActionHandler|navigator\.mediaSession\.metadata/g,
|
|
359
359
|
where: 'JavaScript',
|
|
360
360
|
supported: (async () => 'mediaSession' in navigator)(),
|
|
361
361
|
featureDetection: `(async () => 'mediaSession' in navigator)()`,
|
|
@@ -365,7 +365,7 @@ const patterns = {
|
|
|
365
365
|
chromeStatusID: 5639924124483584,
|
|
366
366
|
},
|
|
367
367
|
'Window Management': {
|
|
368
|
-
regEx:
|
|
368
|
+
regEx: /\bgetScreenDetails\s*\(\)/g,
|
|
369
369
|
where: 'JavaScript',
|
|
370
370
|
supported: (async () => 'getScreenDetails' in self)(),
|
|
371
371
|
featureDetection: `(async () => 'getScreenDetails' in self)()`,
|
|
@@ -387,7 +387,7 @@ const patterns = {
|
|
|
387
387
|
chromeStatusID: 5734842339688448,
|
|
388
388
|
},
|
|
389
389
|
'Origin Private File System': {
|
|
390
|
-
regEx:
|
|
390
|
+
regEx: /\bnavigator\.storage\.getDirectory\s*\(\)/g,
|
|
391
391
|
where: 'JavaScript',
|
|
392
392
|
supported: (async () =>
|
|
393
393
|
'StorageManager' in self && 'getDirectory' in StorageManager.prototype)(),
|
|
@@ -406,7 +406,7 @@ const patterns = {
|
|
|
406
406
|
chromeStatusID: 5160285237149696,
|
|
407
407
|
},
|
|
408
408
|
'Payment Request': {
|
|
409
|
-
regEx:
|
|
409
|
+
regEx: /\bnew\s+PaymentRequest\s*\(/g,
|
|
410
410
|
where: 'JavaScript',
|
|
411
411
|
supported: (async () => 'PaymentRequest' in self)(),
|
|
412
412
|
featureDetection: `(async () => 'PaymentRequest' in self)()`,
|
|
@@ -416,7 +416,7 @@ const patterns = {
|
|
|
416
416
|
chromeStatusID: 5639348045217792,
|
|
417
417
|
},
|
|
418
418
|
'Periodic Background Sync': {
|
|
419
|
-
regEx:
|
|
419
|
+
regEx: /\bperiodicSync\.register\s*\(/g,
|
|
420
420
|
where: 'JavaScript',
|
|
421
421
|
supported: (async () => 'PeriodicSyncManager' in self)(),
|
|
422
422
|
featureDetection: `(async () => 'PeriodicSyncManager' in self)()`,
|
|
@@ -426,7 +426,7 @@ const patterns = {
|
|
|
426
426
|
chromeStatusID: 5689383275462656,
|
|
427
427
|
},
|
|
428
428
|
'Persistent Storage': {
|
|
429
|
-
regEx:
|
|
429
|
+
regEx: /\bnavigator\.storage\.persist\s*\(\)/g,
|
|
430
430
|
where: 'JavaScript',
|
|
431
431
|
supported: (async () =>
|
|
432
432
|
'storage' in navigator && 'persist' in navigator.storage)(),
|
|
@@ -437,7 +437,7 @@ const patterns = {
|
|
|
437
437
|
chromeStatusID: 5715811364765696,
|
|
438
438
|
},
|
|
439
439
|
'Storage Buckets': {
|
|
440
|
-
regEx:
|
|
440
|
+
regEx: /\bnavigator\.storageBuckets\.open\s*\(/g,
|
|
441
441
|
where: 'JavaScript',
|
|
442
442
|
supported: (async () => 'storageBuckets' in navigator)(),
|
|
443
443
|
featureDetection: `(async () => 'storageBuckets' in navigator)()`,
|
|
@@ -446,7 +446,7 @@ const patterns = {
|
|
|
446
446
|
chromeStatusID: 5739224579964928,
|
|
447
447
|
},
|
|
448
448
|
'Pointer Lock (unadjustedMovement)': {
|
|
449
|
-
regEx:
|
|
449
|
+
regEx: /\bunadjustedMovement\s*:\s*/g,
|
|
450
450
|
where: 'JavaScript',
|
|
451
451
|
supported: (async () =>
|
|
452
452
|
'HTMLParagraphElement' in self
|
|
@@ -488,7 +488,7 @@ const patterns = {
|
|
|
488
488
|
chromeStatusID: 5416033485586432,
|
|
489
489
|
},
|
|
490
490
|
'Relative Orientation Sensor': {
|
|
491
|
-
regEx:
|
|
491
|
+
regEx: /\bnew\s+RelativeOrientationSensor\s*\(/g,
|
|
492
492
|
where: 'JavaScript',
|
|
493
493
|
supported: (async () => 'RelativeOrientationSensor' in self)(),
|
|
494
494
|
featureDetection: `(async () => 'RelativeOrientationSensor' in self)()`,
|
|
@@ -497,7 +497,7 @@ const patterns = {
|
|
|
497
497
|
chromeStatusID: 5698781827825664,
|
|
498
498
|
},
|
|
499
499
|
'Screen Wake Lock': {
|
|
500
|
-
regEx:
|
|
500
|
+
regEx: /\bnavigator\.wakeLock\.request\s*\(/g,
|
|
501
501
|
where: 'JavaScript',
|
|
502
502
|
supported: (async () => 'wakeLock' in navigator)(),
|
|
503
503
|
featureDetection: `(async () => 'wakeLock' in navigator)()`,
|
|
@@ -506,7 +506,7 @@ const patterns = {
|
|
|
506
506
|
chromeStatusID: 4636879949398016,
|
|
507
507
|
},
|
|
508
508
|
'Service Worker': {
|
|
509
|
-
regEx:
|
|
509
|
+
regEx: /\bnavigator\.serviceWorker\.register\s*\(/g,
|
|
510
510
|
where: 'JavaScript',
|
|
511
511
|
supported: (async () => 'serviceWorker' in navigator)(),
|
|
512
512
|
featureDetection: `(async () => 'serviceWorker' in navigator)()`,
|
|
@@ -516,7 +516,7 @@ const patterns = {
|
|
|
516
516
|
chromeStatusID: 6561526227927040,
|
|
517
517
|
},
|
|
518
518
|
'Shape Detection (Barcodes)': {
|
|
519
|
-
regEx:
|
|
519
|
+
regEx: /\bnew\s+BarcodeDetector\s*\(/g,
|
|
520
520
|
where: 'JavaScript',
|
|
521
521
|
supported: (async () => 'BarcodeDetector' in self)(),
|
|
522
522
|
featureDetection: `(async () => 'BarcodeDetector' in self)()`,
|
|
@@ -525,7 +525,7 @@ const patterns = {
|
|
|
525
525
|
chromeStatusID: 4757990523535360,
|
|
526
526
|
},
|
|
527
527
|
'Shape Detection (Faces)': {
|
|
528
|
-
regEx:
|
|
528
|
+
regEx: /\bnew\s+FaceDetector\s*\(/g,
|
|
529
529
|
where: 'JavaScript',
|
|
530
530
|
supported: (async () => 'FaceDetector' in self)(),
|
|
531
531
|
featureDetection: `(async () => 'FaceDetector' in self)()`,
|
|
@@ -534,7 +534,7 @@ const patterns = {
|
|
|
534
534
|
chromeStatusID: 5678216012365824,
|
|
535
535
|
},
|
|
536
536
|
'Shape Detection (Texts)': {
|
|
537
|
-
regEx:
|
|
537
|
+
regEx: /\bnew\s+TextDetector\s*\(/g,
|
|
538
538
|
where: 'JavaScript',
|
|
539
539
|
supported: (async () => 'TextDetector' in self)(),
|
|
540
540
|
featureDetection: `(async () => 'TextDetector' in self)()`,
|
|
@@ -552,7 +552,7 @@ const patterns = {
|
|
|
552
552
|
chromeStatusID: 5706099464339456,
|
|
553
553
|
},
|
|
554
554
|
'Storage Estimation': {
|
|
555
|
-
regEx:
|
|
555
|
+
regEx: /\bnavigator\.storage\.estimate\s*\(\)/g,
|
|
556
556
|
where: 'JavaScript',
|
|
557
557
|
supported: (async () =>
|
|
558
558
|
'storage' in navigator && 'estimate' in navigator.storage)(),
|
|
@@ -572,7 +572,7 @@ const patterns = {
|
|
|
572
572
|
chromeStatusID: 5128143454076928,
|
|
573
573
|
},
|
|
574
574
|
'VirtualKeyboard': {
|
|
575
|
-
regEx:
|
|
575
|
+
regEx: /\bnavigator\.virtualKeyboard/g,
|
|
576
576
|
where: 'JavaScript',
|
|
577
577
|
supported: (async () => 'virtualKeyboard' in navigator)(),
|
|
578
578
|
featureDetection: `(async () => 'virtualKeyboard' in navigator)()`,
|
|
@@ -592,7 +592,7 @@ const patterns = {
|
|
|
592
592
|
chromeStatusID: 5740751225880576,
|
|
593
593
|
},
|
|
594
594
|
'Web Audio': {
|
|
595
|
-
regEx:
|
|
595
|
+
regEx: /\bnew\s+AudioContext\s*\(/g,
|
|
596
596
|
where: 'JavaScript',
|
|
597
597
|
supported: (async () => 'AudioContext' in self)(),
|
|
598
598
|
featureDetection: `(async () => 'AudioContext' in self)()`,
|
|
@@ -602,7 +602,7 @@ const patterns = {
|
|
|
602
602
|
chromeStatusID: 6261718720184320,
|
|
603
603
|
},
|
|
604
604
|
'Web Share': {
|
|
605
|
-
regEx:
|
|
605
|
+
regEx: /\bnavigator\.share\s*\(/g,
|
|
606
606
|
where: 'JavaScript',
|
|
607
607
|
supported: (async () => 'share' in navigator)(),
|
|
608
608
|
featureDetection: `(async () => 'share' in navigator)()`,
|
|
@@ -611,7 +611,7 @@ const patterns = {
|
|
|
611
611
|
chromeStatusID: 5668769141620736,
|
|
612
612
|
},
|
|
613
613
|
'Web Share (Files)': {
|
|
614
|
-
regEx:
|
|
614
|
+
regEx: /\bnavigator\.canShare\s*\(/g,
|
|
615
615
|
where: 'JavaScript',
|
|
616
616
|
supported: (async () => 'canShare' in navigator)(),
|
|
617
617
|
featureDetection: `(async () => 'canShare' in navigator)()`,
|
|
@@ -638,7 +638,7 @@ const patterns = {
|
|
|
638
638
|
chromeStatusID: 6124071381106688,
|
|
639
639
|
},
|
|
640
640
|
'Web Bluetooth': {
|
|
641
|
-
regEx:
|
|
641
|
+
regEx: /\bnavigator\.bluetooth\.requestDevice\s*\(/g,
|
|
642
642
|
where: 'JavaScript',
|
|
643
643
|
supported: (async () => 'bluetooth' in navigator)(),
|
|
644
644
|
featureDetection: `(async () => 'bluetooth' in navigator)()`,
|
|
@@ -647,7 +647,7 @@ const patterns = {
|
|
|
647
647
|
chromeStatusID: 5264933985976320,
|
|
648
648
|
},
|
|
649
649
|
'WebCodecs': {
|
|
650
|
-
regEx:
|
|
650
|
+
regEx: /\bnew\s+MediaStreamTrackProcessor\s*\(/g,
|
|
651
651
|
where: 'JavaScript',
|
|
652
652
|
supported: (async () => 'MediaStreamTrackProcessor' in self)(),
|
|
653
653
|
featureDetection: `(async () => 'MediaStreamTrackProcessor' in self)()`,
|
|
@@ -656,7 +656,7 @@ const patterns = {
|
|
|
656
656
|
chromeStatusID: 5669293909868544,
|
|
657
657
|
},
|
|
658
658
|
'WebGPU': {
|
|
659
|
-
regEx:
|
|
659
|
+
regEx: /\bnavigator\.gpu\.requestAdapter\s*\(/g,
|
|
660
660
|
where: 'JavaScript',
|
|
661
661
|
supported: (async () => 'gpu' in navigator)(),
|
|
662
662
|
featureDetection: `(async () => 'gpu' in navigator)()`,
|
|
@@ -665,7 +665,7 @@ const patterns = {
|
|
|
665
665
|
chromeStatusID: 6213121689518080,
|
|
666
666
|
},
|
|
667
667
|
'WebHID': {
|
|
668
|
-
regEx:
|
|
668
|
+
regEx: /\bnavigator\.hid\.requestDevice\s*\(/g,
|
|
669
669
|
where: 'JavaScript',
|
|
670
670
|
supported: (async () => 'hid' in navigator)(),
|
|
671
671
|
featureDetection: `(async () => 'hid' in navigator)()`,
|
|
@@ -674,7 +674,7 @@ const patterns = {
|
|
|
674
674
|
chromeStatusID: 5172464636133376,
|
|
675
675
|
},
|
|
676
676
|
'Web MIDI': {
|
|
677
|
-
regEx:
|
|
677
|
+
regEx: /\bnavigator\.requestMIDIAccess\s*\(/g,
|
|
678
678
|
where: 'JavaScript',
|
|
679
679
|
supported: (async () => 'requestMIDIAccess' in navigator)(),
|
|
680
680
|
featureDetection: `(async () => 'requestMIDIAccess' in navigator)()`,
|
|
@@ -684,7 +684,7 @@ const patterns = {
|
|
|
684
684
|
chromeStatusID: 4923613069180928,
|
|
685
685
|
},
|
|
686
686
|
'Web NFC': {
|
|
687
|
-
regEx:
|
|
687
|
+
regEx: /\bnew\s+NDEFReader\s*\(/g,
|
|
688
688
|
where: 'JavaScript',
|
|
689
689
|
supported: (async () => 'NDEFReader' in self)(),
|
|
690
690
|
featureDetection: `(async () => 'NDEFReader' in self)()`,
|
|
@@ -693,7 +693,7 @@ const patterns = {
|
|
|
693
693
|
chromeStatusID: 6261030015467520,
|
|
694
694
|
},
|
|
695
695
|
'WebOTP': {
|
|
696
|
-
regEx:
|
|
696
|
+
regEx: /\btransport\s*:\s*\[["']sms["']\]/g,
|
|
697
697
|
where: 'JavaScript',
|
|
698
698
|
supported: (async () => 'OTPCredential' in self)(),
|
|
699
699
|
featureDetection: `(async () => 'OTPCredential' in self)()`,
|
|
@@ -702,7 +702,7 @@ const patterns = {
|
|
|
702
702
|
chromeStatusID: 5873577578463232,
|
|
703
703
|
},
|
|
704
704
|
'Web Serial': {
|
|
705
|
-
regEx:
|
|
705
|
+
regEx: /\bnavigator\.serial\.requestPort\s*\(/g,
|
|
706
706
|
where: 'JavaScript',
|
|
707
707
|
supported: (async () => 'serial' in navigator)(),
|
|
708
708
|
featureDetection: `(async () => 'serial' in navigator)()`,
|
|
@@ -711,7 +711,7 @@ const patterns = {
|
|
|
711
711
|
chromeStatusID: 6577673212002304,
|
|
712
712
|
},
|
|
713
713
|
'WebSocketStream': {
|
|
714
|
-
regEx:
|
|
714
|
+
regEx: /\bnew\s+WebSocketStream\s*\(/g,
|
|
715
715
|
where: 'JavaScript',
|
|
716
716
|
supported: (async () => 'WebSocketStream' in self)(),
|
|
717
717
|
featureDetection: `(async () => 'WebSocketStream' in self)()`,
|
|
@@ -720,7 +720,7 @@ const patterns = {
|
|
|
720
720
|
chromeStatusID: 5189728691290112,
|
|
721
721
|
},
|
|
722
722
|
'WebTransport': {
|
|
723
|
-
regEx:
|
|
723
|
+
regEx: /\bnew\s+WebTransport\s*\(/g,
|
|
724
724
|
where: 'JavaScript',
|
|
725
725
|
supported: (async () => 'WebTransport' in self)(),
|
|
726
726
|
featureDetection: `(async () => 'WebTransport' in self)()`,
|
|
@@ -729,7 +729,7 @@ const patterns = {
|
|
|
729
729
|
chromeStatusID: 4854144902889472,
|
|
730
730
|
},
|
|
731
731
|
'WebUSB': {
|
|
732
|
-
regEx:
|
|
732
|
+
regEx: /\bnavigator\.usb\.requestDevice\s*\(/g,
|
|
733
733
|
where: 'JavaScript',
|
|
734
734
|
supported: (async () => 'usb' in navigator)(),
|
|
735
735
|
featureDetection: `(async () => 'usb' in navigator)()`,
|
|
@@ -747,7 +747,7 @@ const patterns = {
|
|
|
747
747
|
chromeStatusID: 5741247866077184,
|
|
748
748
|
},
|
|
749
749
|
'Prompt': {
|
|
750
|
-
regEx:
|
|
750
|
+
regEx: /\bLanguageModel\.create\s*\(/g,
|
|
751
751
|
where: 'JavaScript',
|
|
752
752
|
supported: (async () => 'LanguageModel' in self)(),
|
|
753
753
|
featureDetection: `(async () => 'LanguageModel' in self)()`,
|
|
@@ -756,7 +756,7 @@ const patterns = {
|
|
|
756
756
|
chromeStatusID: 5134603979063296,
|
|
757
757
|
},
|
|
758
758
|
'Summarizer': {
|
|
759
|
-
regEx:
|
|
759
|
+
regEx: /\bSummarizer\.create\s*\(/g,
|
|
760
760
|
where: 'JavaScript',
|
|
761
761
|
supported: (async () => 'Summarizer' in self)(),
|
|
762
762
|
featureDetection: `(async () => 'Summarizer' in self)()`,
|
|
@@ -765,7 +765,7 @@ const patterns = {
|
|
|
765
765
|
chromeStatusID: 5193953788559360,
|
|
766
766
|
},
|
|
767
767
|
'Writer': {
|
|
768
|
-
regEx:
|
|
768
|
+
regEx: /\bWriter\.create\s*\(/g,
|
|
769
769
|
where: 'JavaScript',
|
|
770
770
|
supported: (async () => 'Writer' in self)(),
|
|
771
771
|
featureDetection: `(async () => 'Writer' in self)()`,
|
|
@@ -774,7 +774,7 @@ const patterns = {
|
|
|
774
774
|
chromeStatusID: 4712595362414592,
|
|
775
775
|
},
|
|
776
776
|
'Rewriter': {
|
|
777
|
-
regEx:
|
|
777
|
+
regEx: /\bRewriter\.create\s*\(/g,
|
|
778
778
|
where: 'JavaScript',
|
|
779
779
|
supported: (async () => 'Rewriter' in self)(),
|
|
780
780
|
featureDetection: `(async () => 'Rewriter' in self)()`,
|
|
@@ -783,7 +783,7 @@ const patterns = {
|
|
|
783
783
|
chromeStatusID: 5112320150470656,
|
|
784
784
|
},
|
|
785
785
|
'Proofreader': {
|
|
786
|
-
regEx:
|
|
786
|
+
regEx: /\bProofreader\.create\s*\(/g,
|
|
787
787
|
where: 'JavaScript',
|
|
788
788
|
supported: (async () => 'Proofreader' in self)(),
|
|
789
789
|
featureDetection: `(async () => 'Proofreader' in self)()`,
|
|
@@ -792,7 +792,7 @@ const patterns = {
|
|
|
792
792
|
chromeStatusID: 5164677291835392,
|
|
793
793
|
},
|
|
794
794
|
'Translator': {
|
|
795
|
-
regEx:
|
|
795
|
+
regEx: /\bTranslator\.create\s*\(/g,
|
|
796
796
|
where: 'JavaScript',
|
|
797
797
|
supported: (async () => 'Translator' in self)(),
|
|
798
798
|
featureDetection: `(async () => 'Translator' in self)()`,
|
|
@@ -801,7 +801,7 @@ const patterns = {
|
|
|
801
801
|
chromeStatusID: 5172811302961152,
|
|
802
802
|
},
|
|
803
803
|
'LanguageDetector': {
|
|
804
|
-
regEx:
|
|
804
|
+
regEx: /\bLanguageDetector\.create\s*\(/g,
|
|
805
805
|
where: 'JavaScript',
|
|
806
806
|
supported: (async () => 'LanguageDetector' in self)(),
|
|
807
807
|
featureDetection: `(async () => 'LanguageDetector' in self)()`,
|
|
@@ -809,4 +809,14 @@ const patterns = {
|
|
|
809
809
|
blinkFeatureID: 5401,
|
|
810
810
|
chromeStatusID: 6494349985841152,
|
|
811
811
|
},
|
|
812
|
+
'Web Install': {
|
|
813
|
+
regEx: /\bnavigator\.install\s*\(/g,
|
|
814
|
+
where: 'JavaScript',
|
|
815
|
+
supported: (async () => 'install' in navigator)(),
|
|
816
|
+
featureDetection: `(async () => 'install' in navigator)()`,
|
|
817
|
+
documentation:
|
|
818
|
+
'https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/WebInstall/explainer.md',
|
|
819
|
+
blinkFeatureID: undefined,
|
|
820
|
+
chromeStatusID: 5183481574850560,
|
|
821
|
+
},
|
|
812
822
|
};
|
package/patterns.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
'Absolute Orientation Sensor': {
|
|
3
|
-
regEx:
|
|
3
|
+
regEx: /\bnew\s+AbsoluteOrientationSensor\s*\(/g,
|
|
4
4
|
where: 'JavaScript',
|
|
5
5
|
supported: (async () => 'AbsoluteOrientationSensor' in self)(),
|
|
6
6
|
featureDetection: `(async () => 'AbsoluteOrientationSensor' in self)()`,
|
|
@@ -9,7 +9,7 @@ export default {
|
|
|
9
9
|
chromeStatusID: 5698781827825664,
|
|
10
10
|
},
|
|
11
11
|
'Accelerometer': {
|
|
12
|
-
regEx:
|
|
12
|
+
regEx: /\bnew\s+Accelerometer\s*\(/g,
|
|
13
13
|
where: 'JavaScript',
|
|
14
14
|
supported: (async () => 'Accelerometer' in self)(),
|
|
15
15
|
featureDetection: `(async () => 'Accelerometer' in self)()`,
|
|
@@ -28,7 +28,7 @@ export default {
|
|
|
28
28
|
chromeStatusID: 6560913322672128,
|
|
29
29
|
},
|
|
30
30
|
'Ambient Light Sensor': {
|
|
31
|
-
regEx:
|
|
31
|
+
regEx: /\bnew\s+AmbientLightSensor\s*\(\)/g,
|
|
32
32
|
where: 'JavaScript',
|
|
33
33
|
supported: (async () => 'AmbientLightSensor' in self)(),
|
|
34
34
|
featureDetection: `(async () => 'AmbientLightSensor' in self)()`,
|
|
@@ -37,7 +37,7 @@ export default {
|
|
|
37
37
|
chromeStatusID: 5298357018820608,
|
|
38
38
|
},
|
|
39
39
|
'Async Clipboard': {
|
|
40
|
-
regEx:
|
|
40
|
+
regEx: /\bnavigator\.clipboard\.writeText\s*\(/g,
|
|
41
41
|
where: 'JavaScript',
|
|
42
42
|
supported: (async () =>
|
|
43
43
|
'clipboard' in navigator && 'writeText' in navigator.clipboard)(),
|
|
@@ -47,7 +47,7 @@ export default {
|
|
|
47
47
|
chromeStatusID: 5861289330999296,
|
|
48
48
|
},
|
|
49
49
|
'Async Clipboard (Images)': {
|
|
50
|
-
regEx:
|
|
50
|
+
regEx: /\bnavigator\.clipboard\.write\s*\(/g,
|
|
51
51
|
where: 'JavaScript',
|
|
52
52
|
supported: (async () =>
|
|
53
53
|
'clipboard' in navigator && 'write' in navigator.clipboard)(),
|
|
@@ -80,7 +80,7 @@ export default {
|
|
|
80
80
|
chromeStatusID: 6170807885627392,
|
|
81
81
|
},
|
|
82
82
|
'Badging': {
|
|
83
|
-
regEx:
|
|
83
|
+
regEx: /\bnavigator\.setAppBadge\s*\(/g,
|
|
84
84
|
where: 'JavaScript',
|
|
85
85
|
supported: (async () => 'setAppBadge' in navigator)(),
|
|
86
86
|
featureDetection: `(async () => 'setAppBadge' in navigator)()`,
|
|
@@ -89,7 +89,7 @@ export default {
|
|
|
89
89
|
chromeStatusID: 6068482055602176,
|
|
90
90
|
},
|
|
91
91
|
'Cache Storage': {
|
|
92
|
-
regEx:
|
|
92
|
+
regEx: /\bcaches\.open\s*\(/g,
|
|
93
93
|
where: 'JavaScript',
|
|
94
94
|
supported: (async () => 'serviceWorker' in navigator && 'caches' in self)(),
|
|
95
95
|
featureDetection: `(async () => 'serviceWorker' in navigator && 'caches' in self)()`,
|
|
@@ -99,7 +99,7 @@ export default {
|
|
|
99
99
|
chromeStatusID: 6461631328419840,
|
|
100
100
|
},
|
|
101
101
|
'Compression Streams': {
|
|
102
|
-
regEx:
|
|
102
|
+
regEx: /\bnew\s+CompressionStream\s*\(/g,
|
|
103
103
|
where: 'JavaScript',
|
|
104
104
|
supported: (async () => 'CompressionStream' in self)(),
|
|
105
105
|
featureDetection: `(async () => 'CompressionStream' in self)()`,
|
|
@@ -108,7 +108,7 @@ export default {
|
|
|
108
108
|
chromeStatusID: 5855937971617792,
|
|
109
109
|
},
|
|
110
110
|
'Compute Pressure': {
|
|
111
|
-
regEx:
|
|
111
|
+
regEx: /\bnew\s+ComputePressureObserver\s*\(/g,
|
|
112
112
|
where: 'JavaScript',
|
|
113
113
|
supported: (async () => 'ComputePressureObserver' in self)(),
|
|
114
114
|
featureDetection: `(async () => 'ComputePressureObserver' in self)()`,
|
|
@@ -118,7 +118,7 @@ export default {
|
|
|
118
118
|
chromeStatusID: 5597608644968448,
|
|
119
119
|
},
|
|
120
120
|
'Contact Picker': {
|
|
121
|
-
regEx:
|
|
121
|
+
regEx: /\bnavigator\.contacts\.select\s*\(/g,
|
|
122
122
|
where: 'JavaScript',
|
|
123
123
|
supported: (async () => 'contacts' in navigator)(),
|
|
124
124
|
featureDetection: `(async () => 'contacts' in navigator)()`,
|
|
@@ -127,7 +127,7 @@ export default {
|
|
|
127
127
|
chromeStatusID: 6511327140904960,
|
|
128
128
|
},
|
|
129
129
|
'Content Index': {
|
|
130
|
-
regEx:
|
|
130
|
+
regEx: /\bindex\.getAll\s*\(/g,
|
|
131
131
|
where: 'JavaScript',
|
|
132
132
|
supported: (async () =>
|
|
133
133
|
'serviceWorker' in navigator &&
|
|
@@ -140,7 +140,7 @@ export default {
|
|
|
140
140
|
chromeStatusID: 5658416729030656,
|
|
141
141
|
},
|
|
142
142
|
'Credential Management': {
|
|
143
|
-
regEx:
|
|
143
|
+
regEx: /\bnavigator\.credentials\.get\s*\(/g,
|
|
144
144
|
where: 'JavaScript',
|
|
145
145
|
supported: (async () => 'credentials' in navigator)(),
|
|
146
146
|
featureDetection: `(async () => 'credentials' in navigator)()`,
|
|
@@ -150,7 +150,7 @@ export default {
|
|
|
150
150
|
chromeStatusID: 5026422640869376,
|
|
151
151
|
},
|
|
152
152
|
'Device Memory': {
|
|
153
|
-
regEx:
|
|
153
|
+
regEx: /\bnavigator\.deviceMemory/g,
|
|
154
154
|
where: 'JavaScript',
|
|
155
155
|
supported: (async () => 'deviceMemory' in navigator)(),
|
|
156
156
|
featureDetection: `(async () => 'deviceMemory' in navigator)()`,
|
|
@@ -160,7 +160,7 @@ export default {
|
|
|
160
160
|
chromeStatusID: 5119701235531776,
|
|
161
161
|
},
|
|
162
162
|
'Device Posture': {
|
|
163
|
-
regEx:
|
|
163
|
+
regEx: /\bnavigator\.devicePosture/g,
|
|
164
164
|
where: 'JavaScript',
|
|
165
165
|
supported: (async () => 'devicePosture' in navigator)(),
|
|
166
166
|
featureDetection: `(async () => 'devicePosture' in navigator)()`,
|
|
@@ -170,7 +170,7 @@ export default {
|
|
|
170
170
|
chromeStatusID: 5185813744975872,
|
|
171
171
|
},
|
|
172
172
|
'Digital Goods': {
|
|
173
|
-
regEx:
|
|
173
|
+
regEx: /\bgetDigitalGoodsService\s*\(/g,
|
|
174
174
|
where: 'JavaScript',
|
|
175
175
|
supported: (async () => 'getDigitalGoodsService' in self)(),
|
|
176
176
|
featureDetection: `(async () => 'getDigitalGoodsService' in self)()`,
|
|
@@ -180,7 +180,7 @@ export default {
|
|
|
180
180
|
chromeStatusID: 5339955595313152,
|
|
181
181
|
},
|
|
182
182
|
'EyeDropper': {
|
|
183
|
-
regEx:
|
|
183
|
+
regEx: /\bnew\s+EyeDropper\s*\(\)/g,
|
|
184
184
|
where: 'JavaScript',
|
|
185
185
|
supported: (async () => 'EyeDropper' in self)(),
|
|
186
186
|
featureDetection: `(async () => 'EyeDropper' in self)()`,
|
|
@@ -199,7 +199,7 @@ export default {
|
|
|
199
199
|
chromeStatusID: 5721776357113856,
|
|
200
200
|
},
|
|
201
201
|
'File System Observer': {
|
|
202
|
-
regEx:
|
|
202
|
+
regEx: /\bnew\s+FileSystemObserver\s*\(/g,
|
|
203
203
|
where: 'JavaScript',
|
|
204
204
|
supported: (async () => 'FileSystemObserver' in self)(),
|
|
205
205
|
featureDetection: `(async () => 'FileSystemObserver' in self)()`,
|
|
@@ -210,7 +210,7 @@ export default {
|
|
|
210
210
|
},
|
|
211
211
|
'File System Access': {
|
|
212
212
|
regEx:
|
|
213
|
-
|
|
213
|
+
/\bshowOpenFilePicker\s*\(|showSaveFilePicker\s*\(|showDirectoryPicker\s*\(/g,
|
|
214
214
|
where: 'JavaScript',
|
|
215
215
|
supported: (async () => 'showOpenFilePicker' in self)(),
|
|
216
216
|
featureDetection: `(async () => 'showOpenFilePicker' in self)()`,
|
|
@@ -219,7 +219,7 @@ export default {
|
|
|
219
219
|
chromeStatusID: 6284708426022912,
|
|
220
220
|
},
|
|
221
221
|
'Gamepad': {
|
|
222
|
-
regEx:
|
|
222
|
+
regEx: /\bnavigator\.getGamepads\s*\(/g,
|
|
223
223
|
where: 'JavaScript',
|
|
224
224
|
supported: (async () => 'getGamepads' in navigator)(),
|
|
225
225
|
featureDetection: `(async () => 'getGamepads' in navigator)()`,
|
|
@@ -228,7 +228,7 @@ export default {
|
|
|
228
228
|
chromeStatusID: 5118776383111168,
|
|
229
229
|
},
|
|
230
230
|
'getInstalledRelatedApps': {
|
|
231
|
-
regEx:
|
|
231
|
+
regEx: /\bnavigator\.getInstalledRelatedApps\s*\(/g,
|
|
232
232
|
where: 'JavaScript',
|
|
233
233
|
supported: (async () => 'getInstalledRelatedApps' in navigator)(),
|
|
234
234
|
featureDetection: `(async () => 'getInstalledRelatedApps' in navigator)()`,
|
|
@@ -237,7 +237,7 @@ export default {
|
|
|
237
237
|
chromeStatusID: 5695378309513216,
|
|
238
238
|
},
|
|
239
239
|
'Gravity Sensor': {
|
|
240
|
-
regEx:
|
|
240
|
+
regEx: /\bnew\s+GravitySensor\s*\(/g,
|
|
241
241
|
where: 'JavaScript',
|
|
242
242
|
supported: (async () => 'GravitySensor' in self)(),
|
|
243
243
|
featureDetection: `(async () => 'GravitySensor' in self)()`,
|
|
@@ -246,7 +246,7 @@ export default {
|
|
|
246
246
|
chromeStatusID: 5384099747332096,
|
|
247
247
|
},
|
|
248
248
|
'Gyroscope': {
|
|
249
|
-
regEx:
|
|
249
|
+
regEx: /\bnew\s+Gyroscope\s*\(/g,
|
|
250
250
|
where: 'JavaScript',
|
|
251
251
|
supported: (async () => 'Gyroscope' in self)(),
|
|
252
252
|
featureDetection: `(async () => 'Gyroscope' in self)()`,
|
|
@@ -255,7 +255,7 @@ export default {
|
|
|
255
255
|
chromeStatusID: 5698781827825664,
|
|
256
256
|
},
|
|
257
257
|
'Handwriting Recognition': {
|
|
258
|
-
regEx:
|
|
258
|
+
regEx: /\bnavigator\.queryHandwritingRecognizerSupport\s*\(/g,
|
|
259
259
|
where: 'JavaScript',
|
|
260
260
|
supported: (async () => 'queryHandwritingRecognizerSupport' in navigator)(),
|
|
261
261
|
featureDetection: `(async () => 'queryHandwritingRecognizerSupport' in navigator)()`,
|
|
@@ -275,7 +275,7 @@ export default {
|
|
|
275
275
|
chromeStatusID: 5720648543371264,
|
|
276
276
|
},
|
|
277
277
|
'Idle Detection': {
|
|
278
|
-
regEx:
|
|
278
|
+
regEx: /\bnew\s+IdleDetector\s*\(/g,
|
|
279
279
|
where: 'JavaScript',
|
|
280
280
|
supported: (async () => 'IdleDetector' in self)(),
|
|
281
281
|
featureDetection: `(async () => 'IdleDetector' in self)()`,
|
|
@@ -284,7 +284,7 @@ export default {
|
|
|
284
284
|
chromeStatusID: 4590256452009984,
|
|
285
285
|
},
|
|
286
286
|
'Ink': {
|
|
287
|
-
regEx:
|
|
287
|
+
regEx: /\bnavigator\.ink\.requestPresenter\s*\(/g,
|
|
288
288
|
where: 'JavaScript',
|
|
289
289
|
supported: (async () => 'ink' in navigator)(),
|
|
290
290
|
featureDetection: `(async () => 'ink' in navigator)()`,
|
|
@@ -294,7 +294,7 @@ export default {
|
|
|
294
294
|
chromeStatusID: 5961434129235968,
|
|
295
295
|
},
|
|
296
296
|
'Insertable streams for MediaStreamTrack': {
|
|
297
|
-
regEx:
|
|
297
|
+
regEx: /\bMediaStreamTrackProcessor\s*\(/g,
|
|
298
298
|
where: 'JavaScript',
|
|
299
299
|
supported: (async () =>
|
|
300
300
|
'MediaStreamTrackProcessor' in self &&
|
|
@@ -317,7 +317,7 @@ export default {
|
|
|
317
317
|
chromeStatusID: 5722383233056768,
|
|
318
318
|
},
|
|
319
319
|
'Linear Acceleration Sensor': {
|
|
320
|
-
regEx:
|
|
320
|
+
regEx: /\bnew\s+LinearAccelerationSensor\s*\(/g,
|
|
321
321
|
where: 'JavaScript',
|
|
322
322
|
supported: (async () => 'LinearAccelerationSensor' in self)(),
|
|
323
323
|
featureDetection: `(async () => 'LinearAccelerationSensor' in self)()`,
|
|
@@ -326,7 +326,7 @@ export default {
|
|
|
326
326
|
chromeStatusID: 5698781827825664,
|
|
327
327
|
},
|
|
328
328
|
'Local Font Access': {
|
|
329
|
-
regEx:
|
|
329
|
+
regEx: /\bqueryLocalFonts\s*\(/g,
|
|
330
330
|
where: 'JavaScript',
|
|
331
331
|
supported: (async () => 'queryLocalFonts' in self)(),
|
|
332
332
|
featureDetection: `(async () => 'queryLocalFonts' in self)()`,
|
|
@@ -335,7 +335,7 @@ export default {
|
|
|
335
335
|
chromeStatusID: 6234451761692672,
|
|
336
336
|
},
|
|
337
337
|
'Magnetometer': {
|
|
338
|
-
regEx:
|
|
338
|
+
regEx: /\bnew\s+Magnetometer\s*\(/g,
|
|
339
339
|
where: 'JavaScript',
|
|
340
340
|
supported: (async () => 'Magnetometer' in self)(),
|
|
341
341
|
featureDetection: `(async () => 'Magnetometer' in self)()`,
|
|
@@ -344,7 +344,7 @@ export default {
|
|
|
344
344
|
chromeStatusID: 5698781827825664,
|
|
345
345
|
},
|
|
346
346
|
'Media Capabilities': {
|
|
347
|
-
regEx:
|
|
347
|
+
regEx: /\bnavigator\.mediaCapabilities\.decodingInfo\s*\(/g,
|
|
348
348
|
where: 'JavaScript',
|
|
349
349
|
supported: (async () => 'mediaCapabilities' in navigator)(),
|
|
350
350
|
featureDetection: `(async () => 'mediaCapabilities' in navigator)()`,
|
|
@@ -355,7 +355,7 @@ export default {
|
|
|
355
355
|
},
|
|
356
356
|
'Media Session': {
|
|
357
357
|
regEx:
|
|
358
|
-
|
|
358
|
+
/\bnavigator\.mediaSession\.setActionHandler|navigator\.mediaSession\.metadata/g,
|
|
359
359
|
where: 'JavaScript',
|
|
360
360
|
supported: (async () => 'mediaSession' in navigator)(),
|
|
361
361
|
featureDetection: `(async () => 'mediaSession' in navigator)()`,
|
|
@@ -365,7 +365,7 @@ export default {
|
|
|
365
365
|
chromeStatusID: 5639924124483584,
|
|
366
366
|
},
|
|
367
367
|
'Window Management': {
|
|
368
|
-
regEx:
|
|
368
|
+
regEx: /\bgetScreenDetails\s*\(\)/g,
|
|
369
369
|
where: 'JavaScript',
|
|
370
370
|
supported: (async () => 'getScreenDetails' in self)(),
|
|
371
371
|
featureDetection: `(async () => 'getScreenDetails' in self)()`,
|
|
@@ -387,7 +387,7 @@ export default {
|
|
|
387
387
|
chromeStatusID: 5734842339688448,
|
|
388
388
|
},
|
|
389
389
|
'Origin Private File System': {
|
|
390
|
-
regEx:
|
|
390
|
+
regEx: /\bnavigator\.storage\.getDirectory\s*\(\)/g,
|
|
391
391
|
where: 'JavaScript',
|
|
392
392
|
supported: (async () =>
|
|
393
393
|
'StorageManager' in self && 'getDirectory' in StorageManager.prototype)(),
|
|
@@ -406,7 +406,7 @@ export default {
|
|
|
406
406
|
chromeStatusID: 5160285237149696,
|
|
407
407
|
},
|
|
408
408
|
'Payment Request': {
|
|
409
|
-
regEx:
|
|
409
|
+
regEx: /\bnew\s+PaymentRequest\s*\(/g,
|
|
410
410
|
where: 'JavaScript',
|
|
411
411
|
supported: (async () => 'PaymentRequest' in self)(),
|
|
412
412
|
featureDetection: `(async () => 'PaymentRequest' in self)()`,
|
|
@@ -416,7 +416,7 @@ export default {
|
|
|
416
416
|
chromeStatusID: 5639348045217792,
|
|
417
417
|
},
|
|
418
418
|
'Periodic Background Sync': {
|
|
419
|
-
regEx:
|
|
419
|
+
regEx: /\bperiodicSync\.register\s*\(/g,
|
|
420
420
|
where: 'JavaScript',
|
|
421
421
|
supported: (async () => 'PeriodicSyncManager' in self)(),
|
|
422
422
|
featureDetection: `(async () => 'PeriodicSyncManager' in self)()`,
|
|
@@ -426,7 +426,7 @@ export default {
|
|
|
426
426
|
chromeStatusID: 5689383275462656,
|
|
427
427
|
},
|
|
428
428
|
'Persistent Storage': {
|
|
429
|
-
regEx:
|
|
429
|
+
regEx: /\bnavigator\.storage\.persist\s*\(\)/g,
|
|
430
430
|
where: 'JavaScript',
|
|
431
431
|
supported: (async () =>
|
|
432
432
|
'storage' in navigator && 'persist' in navigator.storage)(),
|
|
@@ -437,7 +437,7 @@ export default {
|
|
|
437
437
|
chromeStatusID: 5715811364765696,
|
|
438
438
|
},
|
|
439
439
|
'Storage Buckets': {
|
|
440
|
-
regEx:
|
|
440
|
+
regEx: /\bnavigator\.storageBuckets\.open\s*\(/g,
|
|
441
441
|
where: 'JavaScript',
|
|
442
442
|
supported: (async () => 'storageBuckets' in navigator)(),
|
|
443
443
|
featureDetection: `(async () => 'storageBuckets' in navigator)()`,
|
|
@@ -446,7 +446,7 @@ export default {
|
|
|
446
446
|
chromeStatusID: 5739224579964928,
|
|
447
447
|
},
|
|
448
448
|
'Pointer Lock (unadjustedMovement)': {
|
|
449
|
-
regEx:
|
|
449
|
+
regEx: /\bunadjustedMovement\s*:\s*/g,
|
|
450
450
|
where: 'JavaScript',
|
|
451
451
|
supported: (async () =>
|
|
452
452
|
'HTMLParagraphElement' in self
|
|
@@ -488,7 +488,7 @@ export default {
|
|
|
488
488
|
chromeStatusID: 5416033485586432,
|
|
489
489
|
},
|
|
490
490
|
'Relative Orientation Sensor': {
|
|
491
|
-
regEx:
|
|
491
|
+
regEx: /\bnew\s+RelativeOrientationSensor\s*\(/g,
|
|
492
492
|
where: 'JavaScript',
|
|
493
493
|
supported: (async () => 'RelativeOrientationSensor' in self)(),
|
|
494
494
|
featureDetection: `(async () => 'RelativeOrientationSensor' in self)()`,
|
|
@@ -497,7 +497,7 @@ export default {
|
|
|
497
497
|
chromeStatusID: 5698781827825664,
|
|
498
498
|
},
|
|
499
499
|
'Screen Wake Lock': {
|
|
500
|
-
regEx:
|
|
500
|
+
regEx: /\bnavigator\.wakeLock\.request\s*\(/g,
|
|
501
501
|
where: 'JavaScript',
|
|
502
502
|
supported: (async () => 'wakeLock' in navigator)(),
|
|
503
503
|
featureDetection: `(async () => 'wakeLock' in navigator)()`,
|
|
@@ -506,7 +506,7 @@ export default {
|
|
|
506
506
|
chromeStatusID: 4636879949398016,
|
|
507
507
|
},
|
|
508
508
|
'Service Worker': {
|
|
509
|
-
regEx:
|
|
509
|
+
regEx: /\bnavigator\.serviceWorker\.register\s*\(/g,
|
|
510
510
|
where: 'JavaScript',
|
|
511
511
|
supported: (async () => 'serviceWorker' in navigator)(),
|
|
512
512
|
featureDetection: `(async () => 'serviceWorker' in navigator)()`,
|
|
@@ -516,7 +516,7 @@ export default {
|
|
|
516
516
|
chromeStatusID: 6561526227927040,
|
|
517
517
|
},
|
|
518
518
|
'Shape Detection (Barcodes)': {
|
|
519
|
-
regEx:
|
|
519
|
+
regEx: /\bnew\s+BarcodeDetector\s*\(/g,
|
|
520
520
|
where: 'JavaScript',
|
|
521
521
|
supported: (async () => 'BarcodeDetector' in self)(),
|
|
522
522
|
featureDetection: `(async () => 'BarcodeDetector' in self)()`,
|
|
@@ -525,7 +525,7 @@ export default {
|
|
|
525
525
|
chromeStatusID: 4757990523535360,
|
|
526
526
|
},
|
|
527
527
|
'Shape Detection (Faces)': {
|
|
528
|
-
regEx:
|
|
528
|
+
regEx: /\bnew\s+FaceDetector\s*\(/g,
|
|
529
529
|
where: 'JavaScript',
|
|
530
530
|
supported: (async () => 'FaceDetector' in self)(),
|
|
531
531
|
featureDetection: `(async () => 'FaceDetector' in self)()`,
|
|
@@ -534,7 +534,7 @@ export default {
|
|
|
534
534
|
chromeStatusID: 5678216012365824,
|
|
535
535
|
},
|
|
536
536
|
'Shape Detection (Texts)': {
|
|
537
|
-
regEx:
|
|
537
|
+
regEx: /\bnew\s+TextDetector\s*\(/g,
|
|
538
538
|
where: 'JavaScript',
|
|
539
539
|
supported: (async () => 'TextDetector' in self)(),
|
|
540
540
|
featureDetection: `(async () => 'TextDetector' in self)()`,
|
|
@@ -552,7 +552,7 @@ export default {
|
|
|
552
552
|
chromeStatusID: 5706099464339456,
|
|
553
553
|
},
|
|
554
554
|
'Storage Estimation': {
|
|
555
|
-
regEx:
|
|
555
|
+
regEx: /\bnavigator\.storage\.estimate\s*\(\)/g,
|
|
556
556
|
where: 'JavaScript',
|
|
557
557
|
supported: (async () =>
|
|
558
558
|
'storage' in navigator && 'estimate' in navigator.storage)(),
|
|
@@ -572,7 +572,7 @@ export default {
|
|
|
572
572
|
chromeStatusID: 5128143454076928,
|
|
573
573
|
},
|
|
574
574
|
'VirtualKeyboard': {
|
|
575
|
-
regEx:
|
|
575
|
+
regEx: /\bnavigator\.virtualKeyboard/g,
|
|
576
576
|
where: 'JavaScript',
|
|
577
577
|
supported: (async () => 'virtualKeyboard' in navigator)(),
|
|
578
578
|
featureDetection: `(async () => 'virtualKeyboard' in navigator)()`,
|
|
@@ -592,7 +592,7 @@ export default {
|
|
|
592
592
|
chromeStatusID: 5740751225880576,
|
|
593
593
|
},
|
|
594
594
|
'Web Audio': {
|
|
595
|
-
regEx:
|
|
595
|
+
regEx: /\bnew\s+AudioContext\s*\(/g,
|
|
596
596
|
where: 'JavaScript',
|
|
597
597
|
supported: (async () => 'AudioContext' in self)(),
|
|
598
598
|
featureDetection: `(async () => 'AudioContext' in self)()`,
|
|
@@ -602,7 +602,7 @@ export default {
|
|
|
602
602
|
chromeStatusID: 6261718720184320,
|
|
603
603
|
},
|
|
604
604
|
'Web Share': {
|
|
605
|
-
regEx:
|
|
605
|
+
regEx: /\bnavigator\.share\s*\(/g,
|
|
606
606
|
where: 'JavaScript',
|
|
607
607
|
supported: (async () => 'share' in navigator)(),
|
|
608
608
|
featureDetection: `(async () => 'share' in navigator)()`,
|
|
@@ -611,7 +611,7 @@ export default {
|
|
|
611
611
|
chromeStatusID: 5668769141620736,
|
|
612
612
|
},
|
|
613
613
|
'Web Share (Files)': {
|
|
614
|
-
regEx:
|
|
614
|
+
regEx: /\bnavigator\.canShare\s*\(/g,
|
|
615
615
|
where: 'JavaScript',
|
|
616
616
|
supported: (async () => 'canShare' in navigator)(),
|
|
617
617
|
featureDetection: `(async () => 'canShare' in navigator)()`,
|
|
@@ -638,7 +638,7 @@ export default {
|
|
|
638
638
|
chromeStatusID: 6124071381106688,
|
|
639
639
|
},
|
|
640
640
|
'Web Bluetooth': {
|
|
641
|
-
regEx:
|
|
641
|
+
regEx: /\bnavigator\.bluetooth\.requestDevice\s*\(/g,
|
|
642
642
|
where: 'JavaScript',
|
|
643
643
|
supported: (async () => 'bluetooth' in navigator)(),
|
|
644
644
|
featureDetection: `(async () => 'bluetooth' in navigator)()`,
|
|
@@ -647,7 +647,7 @@ export default {
|
|
|
647
647
|
chromeStatusID: 5264933985976320,
|
|
648
648
|
},
|
|
649
649
|
'WebCodecs': {
|
|
650
|
-
regEx:
|
|
650
|
+
regEx: /\bnew\s+MediaStreamTrackProcessor\s*\(/g,
|
|
651
651
|
where: 'JavaScript',
|
|
652
652
|
supported: (async () => 'MediaStreamTrackProcessor' in self)(),
|
|
653
653
|
featureDetection: `(async () => 'MediaStreamTrackProcessor' in self)()`,
|
|
@@ -656,7 +656,7 @@ export default {
|
|
|
656
656
|
chromeStatusID: 5669293909868544,
|
|
657
657
|
},
|
|
658
658
|
'WebGPU': {
|
|
659
|
-
regEx:
|
|
659
|
+
regEx: /\bnavigator\.gpu\.requestAdapter\s*\(/g,
|
|
660
660
|
where: 'JavaScript',
|
|
661
661
|
supported: (async () => 'gpu' in navigator)(),
|
|
662
662
|
featureDetection: `(async () => 'gpu' in navigator)()`,
|
|
@@ -665,7 +665,7 @@ export default {
|
|
|
665
665
|
chromeStatusID: 6213121689518080,
|
|
666
666
|
},
|
|
667
667
|
'WebHID': {
|
|
668
|
-
regEx:
|
|
668
|
+
regEx: /\bnavigator\.hid\.requestDevice\s*\(/g,
|
|
669
669
|
where: 'JavaScript',
|
|
670
670
|
supported: (async () => 'hid' in navigator)(),
|
|
671
671
|
featureDetection: `(async () => 'hid' in navigator)()`,
|
|
@@ -674,7 +674,7 @@ export default {
|
|
|
674
674
|
chromeStatusID: 5172464636133376,
|
|
675
675
|
},
|
|
676
676
|
'Web MIDI': {
|
|
677
|
-
regEx:
|
|
677
|
+
regEx: /\bnavigator\.requestMIDIAccess\s*\(/g,
|
|
678
678
|
where: 'JavaScript',
|
|
679
679
|
supported: (async () => 'requestMIDIAccess' in navigator)(),
|
|
680
680
|
featureDetection: `(async () => 'requestMIDIAccess' in navigator)()`,
|
|
@@ -684,7 +684,7 @@ export default {
|
|
|
684
684
|
chromeStatusID: 4923613069180928,
|
|
685
685
|
},
|
|
686
686
|
'Web NFC': {
|
|
687
|
-
regEx:
|
|
687
|
+
regEx: /\bnew\s+NDEFReader\s*\(/g,
|
|
688
688
|
where: 'JavaScript',
|
|
689
689
|
supported: (async () => 'NDEFReader' in self)(),
|
|
690
690
|
featureDetection: `(async () => 'NDEFReader' in self)()`,
|
|
@@ -693,7 +693,7 @@ export default {
|
|
|
693
693
|
chromeStatusID: 6261030015467520,
|
|
694
694
|
},
|
|
695
695
|
'WebOTP': {
|
|
696
|
-
regEx:
|
|
696
|
+
regEx: /\btransport\s*:\s*\[["']sms["']\]/g,
|
|
697
697
|
where: 'JavaScript',
|
|
698
698
|
supported: (async () => 'OTPCredential' in self)(),
|
|
699
699
|
featureDetection: `(async () => 'OTPCredential' in self)()`,
|
|
@@ -702,7 +702,7 @@ export default {
|
|
|
702
702
|
chromeStatusID: 5873577578463232,
|
|
703
703
|
},
|
|
704
704
|
'Web Serial': {
|
|
705
|
-
regEx:
|
|
705
|
+
regEx: /\bnavigator\.serial\.requestPort\s*\(/g,
|
|
706
706
|
where: 'JavaScript',
|
|
707
707
|
supported: (async () => 'serial' in navigator)(),
|
|
708
708
|
featureDetection: `(async () => 'serial' in navigator)()`,
|
|
@@ -711,7 +711,7 @@ export default {
|
|
|
711
711
|
chromeStatusID: 6577673212002304,
|
|
712
712
|
},
|
|
713
713
|
'WebSocketStream': {
|
|
714
|
-
regEx:
|
|
714
|
+
regEx: /\bnew\s+WebSocketStream\s*\(/g,
|
|
715
715
|
where: 'JavaScript',
|
|
716
716
|
supported: (async () => 'WebSocketStream' in self)(),
|
|
717
717
|
featureDetection: `(async () => 'WebSocketStream' in self)()`,
|
|
@@ -720,7 +720,7 @@ export default {
|
|
|
720
720
|
chromeStatusID: 5189728691290112,
|
|
721
721
|
},
|
|
722
722
|
'WebTransport': {
|
|
723
|
-
regEx:
|
|
723
|
+
regEx: /\bnew\s+WebTransport\s*\(/g,
|
|
724
724
|
where: 'JavaScript',
|
|
725
725
|
supported: (async () => 'WebTransport' in self)(),
|
|
726
726
|
featureDetection: `(async () => 'WebTransport' in self)()`,
|
|
@@ -729,7 +729,7 @@ export default {
|
|
|
729
729
|
chromeStatusID: 4854144902889472,
|
|
730
730
|
},
|
|
731
731
|
'WebUSB': {
|
|
732
|
-
regEx:
|
|
732
|
+
regEx: /\bnavigator\.usb\.requestDevice\s*\(/g,
|
|
733
733
|
where: 'JavaScript',
|
|
734
734
|
supported: (async () => 'usb' in navigator)(),
|
|
735
735
|
featureDetection: `(async () => 'usb' in navigator)()`,
|
|
@@ -747,7 +747,7 @@ export default {
|
|
|
747
747
|
chromeStatusID: 5741247866077184,
|
|
748
748
|
},
|
|
749
749
|
'Prompt': {
|
|
750
|
-
regEx:
|
|
750
|
+
regEx: /\bLanguageModel\.create\s*\(/g,
|
|
751
751
|
where: 'JavaScript',
|
|
752
752
|
supported: (async () => 'LanguageModel' in self)(),
|
|
753
753
|
featureDetection: `(async () => 'LanguageModel' in self)()`,
|
|
@@ -756,7 +756,7 @@ export default {
|
|
|
756
756
|
chromeStatusID: 5134603979063296,
|
|
757
757
|
},
|
|
758
758
|
'Summarizer': {
|
|
759
|
-
regEx:
|
|
759
|
+
regEx: /\bSummarizer\.create\s*\(/g,
|
|
760
760
|
where: 'JavaScript',
|
|
761
761
|
supported: (async () => 'Summarizer' in self)(),
|
|
762
762
|
featureDetection: `(async () => 'Summarizer' in self)()`,
|
|
@@ -765,7 +765,7 @@ export default {
|
|
|
765
765
|
chromeStatusID: 5193953788559360,
|
|
766
766
|
},
|
|
767
767
|
'Writer': {
|
|
768
|
-
regEx:
|
|
768
|
+
regEx: /\bWriter\.create\s*\(/g,
|
|
769
769
|
where: 'JavaScript',
|
|
770
770
|
supported: (async () => 'Writer' in self)(),
|
|
771
771
|
featureDetection: `(async () => 'Writer' in self)()`,
|
|
@@ -774,7 +774,7 @@ export default {
|
|
|
774
774
|
chromeStatusID: 4712595362414592,
|
|
775
775
|
},
|
|
776
776
|
'Rewriter': {
|
|
777
|
-
regEx:
|
|
777
|
+
regEx: /\bRewriter\.create\s*\(/g,
|
|
778
778
|
where: 'JavaScript',
|
|
779
779
|
supported: (async () => 'Rewriter' in self)(),
|
|
780
780
|
featureDetection: `(async () => 'Rewriter' in self)()`,
|
|
@@ -783,7 +783,7 @@ export default {
|
|
|
783
783
|
chromeStatusID: 5112320150470656,
|
|
784
784
|
},
|
|
785
785
|
'Proofreader': {
|
|
786
|
-
regEx:
|
|
786
|
+
regEx: /\bProofreader\.create\s*\(/g,
|
|
787
787
|
where: 'JavaScript',
|
|
788
788
|
supported: (async () => 'Proofreader' in self)(),
|
|
789
789
|
featureDetection: `(async () => 'Proofreader' in self)()`,
|
|
@@ -792,7 +792,7 @@ export default {
|
|
|
792
792
|
chromeStatusID: 5164677291835392,
|
|
793
793
|
},
|
|
794
794
|
'Translator': {
|
|
795
|
-
regEx:
|
|
795
|
+
regEx: /\bTranslator\.create\s*\(/g,
|
|
796
796
|
where: 'JavaScript',
|
|
797
797
|
supported: (async () => 'Translator' in self)(),
|
|
798
798
|
featureDetection: `(async () => 'Translator' in self)()`,
|
|
@@ -801,7 +801,7 @@ export default {
|
|
|
801
801
|
chromeStatusID: 5172811302961152,
|
|
802
802
|
},
|
|
803
803
|
'LanguageDetector': {
|
|
804
|
-
regEx:
|
|
804
|
+
regEx: /\bLanguageDetector\.create\s*\(/g,
|
|
805
805
|
where: 'JavaScript',
|
|
806
806
|
supported: (async () => 'LanguageDetector' in self)(),
|
|
807
807
|
featureDetection: `(async () => 'LanguageDetector' in self)()`,
|
|
@@ -809,4 +809,14 @@ export default {
|
|
|
809
809
|
blinkFeatureID: 5401,
|
|
810
810
|
chromeStatusID: 6494349985841152,
|
|
811
811
|
},
|
|
812
|
+
'Web Install': {
|
|
813
|
+
regEx: /\bnavigator\.install\s*\(/g,
|
|
814
|
+
where: 'JavaScript',
|
|
815
|
+
supported: (async () => 'install' in navigator)(),
|
|
816
|
+
featureDetection: `(async () => 'install' in navigator)()`,
|
|
817
|
+
documentation:
|
|
818
|
+
'https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/WebInstall/explainer.md',
|
|
819
|
+
blinkFeatureID: undefined,
|
|
820
|
+
chromeStatusID: 5183481574850560,
|
|
821
|
+
},
|
|
812
822
|
};
|