diff --git a/api/Animation.json b/api/Animation.json
index 0bde327caf7369..5f029fbf09a84a 100644
--- a/api/Animation.json
+++ b/api/Animation.json
@@ -760,6 +760,7 @@
"__compat": {
"description": "Browsers automatically remove indefinite filling animations",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API#automatically_removing_filling_animations",
+ "spec_url": "https://drafts.csswg.org/web-animations-1/#replacing-animations",
"tags": [
"web-features:web-animations"
],
diff --git a/api/AudioNode.json b/api/AudioNode.json
index 0ebffb834631b5..3e1ed50d59c556 100644
--- a/api/AudioNode.json
+++ b/api/AudioNode.json
@@ -269,6 +269,10 @@
"destination_parameter": {
"__compat": {
"description": "`destination` parameter",
+ "spec_url": [
+ "https://webaudio.github.io/web-audio-api/#dom-audionode-disconnect-destinationnode",
+ "https://webaudio.github.io/web-audio-api/#dom-audionode-disconnect-destinationparam"
+ ],
"tags": [
"web-features:web-audio"
],
@@ -305,6 +309,7 @@
"input_parameter": {
"__compat": {
"description": "`input` parameter",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#dom-audionode-disconnect-destinationnode-output-input",
"tags": [
"web-features:web-audio"
],
diff --git a/api/AudioParamMap.json b/api/AudioParamMap.json
index e2fd5e30c10d04..754fa4b5195650 100644
--- a/api/AudioParamMap.json
+++ b/api/AudioParamMap.json
@@ -36,6 +36,7 @@
},
"entries": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -69,6 +70,7 @@
},
"forEach": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -102,6 +104,7 @@
},
"get": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -135,6 +138,7 @@
},
"has": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -168,6 +172,7 @@
},
"keys": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -201,6 +206,7 @@
},
"size": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -234,6 +240,7 @@
},
"values": {
"__compat": {
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
@@ -268,6 +275,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#audioparammap",
"tags": [
"web-features:web-audio"
],
diff --git a/api/AudioProcessingEvent.json b/api/AudioProcessingEvent.json
index d011e2d36e3164..9af682c3c73d0e 100644
--- a/api/AudioProcessingEvent.json
+++ b/api/AudioProcessingEvent.json
@@ -3,6 +3,7 @@
"AudioProcessingEvent": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#AudioProcessingEvent",
"support": {
"chrome": {
"version_added": "14"
diff --git a/api/BarProp.json b/api/BarProp.json
index db409c4233b27c..d7ed4bbedb5482 100644
--- a/api/BarProp.json
+++ b/api/BarProp.json
@@ -79,6 +79,7 @@
"returns_popup": {
"__compat": {
"description": "Returns `true` for non-popup windows",
+ "spec_url": "https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-barprop-visible",
"tags": [
"web-features:barprop"
],
diff --git a/api/BaseAudioContext.json b/api/BaseAudioContext.json
index 37c3dfd3ee6215..cbd9e63fa7fdd5 100644
--- a/api/BaseAudioContext.json
+++ b/api/BaseAudioContext.json
@@ -676,6 +676,7 @@
"constraints_disableNormalization_parameter": {
"__compat": {
"description": "`constraints.disableNormalization` parameter",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#dom-periodicwaveconstraints-disablenormalization",
"tags": [
"web-features:web-audio"
],
@@ -900,6 +901,7 @@
"returns_promise": {
"__compat": {
"description": "Returns a `Promise`",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-decodeaudiodata",
"tags": [
"web-features:web-audio"
],
diff --git a/api/BatteryManager.json b/api/BatteryManager.json
index c97e9dc1e8a374..d1995be0ac927f 100644
--- a/api/BatteryManager.json
+++ b/api/BatteryManager.json
@@ -38,6 +38,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/battery/#the-batterymanager-interface",
"tags": [
"web-features:battery"
],
diff --git a/api/BeforeUnloadEvent.json b/api/BeforeUnloadEvent.json
index 8cc5a7b248682e..30bbd305848c65 100644
--- a/api/BeforeUnloadEvent.json
+++ b/api/BeforeUnloadEvent.json
@@ -97,6 +97,7 @@
"user_interaction": {
"__compat": {
"description": "User interaction required for dialog box",
+ "spec_url": "https://html.spec.whatwg.org/multipage/nav-history-apis.html#the-beforeunloadevent-interface",
"tags": [
"web-features:beforeunload"
],
diff --git a/api/CSPViolationReportBody.json b/api/CSPViolationReportBody.json
index aea7a5e80eb2b8..32c9ef64a1f347 100644
--- a/api/CSPViolationReportBody.json
+++ b/api/CSPViolationReportBody.json
@@ -526,7 +526,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/CSS.json b/api/CSS.json
index f4c947a82385d8..86d8c158b4536e 100644
--- a/api/CSS.json
+++ b/api/CSS.json
@@ -2064,6 +2064,7 @@
"optional_parens": {
"__compat": {
"description": "Parentheses for single-argument version are optional.",
+ "spec_url": "https://drafts.csswg.org/css-conditional-3/#dom-css-supports",
"tags": [
"web-features:css-supports"
],
diff --git a/api/CSSFontFaceRule.json b/api/CSSFontFaceRule.json
index ac28a2ac145dfc..6b53c17e4ff762 100644
--- a/api/CSSFontFaceRule.json
+++ b/api/CSSFontFaceRule.json
@@ -89,6 +89,7 @@
"type_CSSFontFaceDescriptors": {
"__compat": {
"description": "Type changed to [`CSSFontFaceDescriptors`](https://developer.mozilla.org/docs/Web/API/CSSFontFaceDescriptors)",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#dom-cssfontfacerule-style",
"tags": [
"web-features:font-face"
],
diff --git a/api/CSSNumericArray.json b/api/CSSNumericArray.json
index d98c5b10d9752f..167709bdc8beb3 100644
--- a/api/CSSNumericArray.json
+++ b/api/CSSNumericArray.json
@@ -37,6 +37,7 @@
},
"entries": {
"__compat": {
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssnumericarray",
"tags": [
"web-features:css-typed-om"
],
@@ -70,6 +71,7 @@
},
"forEach": {
"__compat": {
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssnumericarray",
"tags": [
"web-features:css-typed-om"
],
@@ -103,6 +105,7 @@
},
"keys": {
"__compat": {
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssnumericarray",
"tags": [
"web-features:css-typed-om"
],
@@ -172,6 +175,7 @@
},
"values": {
"__compat": {
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssnumericarray",
"tags": [
"web-features:css-typed-om"
],
@@ -206,6 +210,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssnumericarray",
"tags": [
"web-features:css-typed-om"
],
diff --git a/api/CSSPageRule.json b/api/CSSPageRule.json
index e61e11ab3eb5c0..29dc6054843b77 100644
--- a/api/CSSPageRule.json
+++ b/api/CSSPageRule.json
@@ -139,6 +139,7 @@
"type_CSSPageDescriptors": {
"__compat": {
"description": "Type changed to [`CSSPageDescriptors`](https://developer.mozilla.org/docs/Web/API/CSSPageDescriptors)",
+ "spec_url": "https://drafts.csswg.org/cssom/#dom-csspagerule-style",
"tags": [
"web-features:css-object-model"
],
diff --git a/api/CSSPrimitiveValue.json b/api/CSSPrimitiveValue.json
index 12ae9d5e5658a0..b529c3ee99b5b2 100644
--- a/api/CSSPrimitiveValue.json
+++ b/api/CSSPrimitiveValue.json
@@ -39,7 +39,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -76,7 +76,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -120,7 +120,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -158,7 +158,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -196,7 +196,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -234,7 +234,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -269,7 +269,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -307,7 +307,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -345,7 +345,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/CSSStyleDeclaration.json b/api/CSSStyleDeclaration.json
index f9f13f92a6d50f..bb3890b3ed454d 100644
--- a/api/CSSStyleDeclaration.json
+++ b/api/CSSStyleDeclaration.json
@@ -173,7 +173,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -485,6 +485,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface",
"tags": [
"web-features:css-object-model"
],
diff --git a/api/CSSStyleSheet.json b/api/CSSStyleSheet.json
index 6447efb15cce86..3bcff0cf131ab8 100644
--- a/api/CSSStyleSheet.json
+++ b/api/CSSStyleSheet.json
@@ -289,6 +289,7 @@
"index_parameter_optional": {
"__compat": {
"description": "`index` parameter is optional",
+ "spec_url": "https://drafts.csswg.org/cssom/#dom-cssstylesheet-insertrule-rule-index-index",
"tags": [
"web-features:css-object-model"
],
diff --git a/api/CSSTransformValue.json b/api/CSSTransformValue.json
index ebe31c286359e2..c009f356061901 100644
--- a/api/CSSTransformValue.json
+++ b/api/CSSTransformValue.json
@@ -75,6 +75,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSTransformValue/entries",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#transformvalue-objects",
"tags": [
"web-features:css-typed-om"
],
@@ -110,6 +111,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSTransformValue/forEach",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#transformvalue-objects",
"tags": [
"web-features:css-typed-om"
],
@@ -181,6 +183,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSTransformValue/keys",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#transformvalue-objects",
"tags": [
"web-features:css-typed-om"
],
@@ -288,6 +291,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSTransformValue/values",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#transformvalue-objects",
"tags": [
"web-features:css-typed-om"
],
@@ -323,6 +327,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#transformvalue-objects",
"tags": [
"web-features:css-typed-om"
],
diff --git a/api/CSSUnparsedValue.json b/api/CSSUnparsedValue.json
index 750b6752f3769f..615b86c2ad4342 100644
--- a/api/CSSUnparsedValue.json
+++ b/api/CSSUnparsedValue.json
@@ -75,6 +75,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/entries",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssunparsedvalue",
"tags": [
"web-features:css-typed-om"
],
@@ -110,6 +111,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/forEach",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssunparsedvalue",
"tags": [
"web-features:css-typed-om"
],
@@ -145,6 +147,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/keys",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssunparsedvalue",
"tags": [
"web-features:css-typed-om"
],
@@ -216,6 +219,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/values",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssunparsedvalue",
"tags": [
"web-features:css-typed-om"
],
@@ -251,6 +255,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://drafts.css-houdini.org/css-typed-om/#cssunparsedvalue",
"tags": [
"web-features:css-typed-om"
],
diff --git a/api/CSSValue.json b/api/CSSValue.json
index d2f1d7b3312f6a..7dc30f6f3af67e 100644
--- a/api/CSSValue.json
+++ b/api/CSSValue.json
@@ -32,7 +32,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -66,7 +66,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -101,7 +101,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/CSSValueList.json b/api/CSSValueList.json
index 547d1a2750b8ee..9e3a5a1233b3c8 100644
--- a/api/CSSValueList.json
+++ b/api/CSSValueList.json
@@ -32,7 +32,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -68,7 +68,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -103,7 +103,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/Cache.json b/api/Cache.json
index 723f1d5e69df57..58700b199b93d5 100644
--- a/api/Cache.json
+++ b/api/Cache.json
@@ -45,6 +45,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/ServiceWorker/#cache-interface",
"tags": [
"web-features:service-workers"
],
diff --git a/api/CacheStorage.json b/api/CacheStorage.json
index 9c3dc6547edcc4..35c32aab8f3447 100644
--- a/api/CacheStorage.json
+++ b/api/CacheStorage.json
@@ -50,6 +50,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/ServiceWorker/#cachestorage-interface",
"tags": [
"web-features:service-workers"
],
@@ -84,6 +85,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/ServiceWorker/#cachestorage-interface",
"tags": [
"web-features:service-workers"
],
diff --git a/api/CanvasPattern.json b/api/CanvasPattern.json
index 57039a323f2fae..5f61fee3f7c342 100644
--- a/api/CanvasPattern.json
+++ b/api/CanvasPattern.json
@@ -80,6 +80,7 @@
"dommatrix": {
"__compat": {
"description": "Accepts a `DOMMatrix2DInit`-like object parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvaspattern-settransform",
"tags": [
"web-features:canvas-2d"
],
diff --git a/api/CanvasRenderingContext2D.json b/api/CanvasRenderingContext2D.json
index db03c9a910979e..b1eec7e79d7475 100644
--- a/api/CanvasRenderingContext2D.json
+++ b/api/CanvasRenderingContext2D.json
@@ -357,6 +357,7 @@
"path_parameter": {
"__compat": {
"description": "`path` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-clip-path",
"tags": [
"web-features:canvas-2d"
],
@@ -743,6 +744,7 @@
"path_parameter": {
"__compat": {
"description": "`path` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-drawfocusifneeded-path-element",
"tags": [
"web-features:canvas-2d"
],
@@ -823,6 +825,7 @@
"ImageBitmap_source_image": {
"__compat": {
"description": "ImageBitmap as source image",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvasimagesource",
"tags": [
"web-features:canvas-2d"
],
@@ -857,6 +860,7 @@
"SVGImageElement_source_image": {
"__compat": {
"description": "SVGImageElement as source image",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvasimagesource",
"tags": [
"web-features:svg"
],
@@ -974,6 +978,7 @@
"path_parameter": {
"__compat": {
"description": "`path` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fill-path",
"tags": [
"web-features:canvas-2d"
],
@@ -1745,6 +1750,7 @@
"path_parameter": {
"__compat": {
"description": "`path` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinpath-path",
"tags": [
"web-features:canvas-2d"
],
@@ -1816,6 +1822,7 @@
"path_parameter": {
"__compat": {
"description": "`path` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-ispointinstroke-path",
"tags": [
"web-features:canvas-2d"
],
@@ -2773,6 +2780,7 @@
"matrix_parameter": {
"__compat": {
"description": "Accept matrix object as parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-settransform-matrix",
"tags": [
"web-features:canvas-2d"
],
@@ -3027,6 +3035,7 @@
"path_parameter": {
"__compat": {
"description": "`path` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-stroke-path",
"tags": [
"web-features:canvas-2d"
],
diff --git a/api/Clipboard.json b/api/Clipboard.json
index 8c8d51369af90e..5138d9ec0b3387 100644
--- a/api/Clipboard.json
+++ b/api/Clipboard.json
@@ -194,6 +194,7 @@
"type_image-png": {
"__compat": {
"description": "Supports `image/png` MIME type",
+ "spec_url": "https://w3c.github.io/clipboard-apis/#mandatory-data-types-x",
"tags": [
"web-features:async-clipboard"
],
@@ -228,6 +229,7 @@
"type_text-html": {
"__compat": {
"description": "Supports `text/html` MIME type",
+ "spec_url": "https://w3c.github.io/clipboard-apis/#mandatory-data-types-x",
"tags": [
"web-features:async-clipboard"
],
@@ -262,6 +264,7 @@
"type_text-plain": {
"__compat": {
"description": "Supports `text/plain` MIME type",
+ "spec_url": "https://w3c.github.io/clipboard-apis/#mandatory-data-types-x",
"tags": [
"web-features:async-clipboard"
],
diff --git a/api/CommandEvent.json b/api/CommandEvent.json
index 9a3a30914658e8..96390bf91f339e 100644
--- a/api/CommandEvent.json
+++ b/api/CommandEvent.json
@@ -38,6 +38,7 @@
"__compat": {
"description": "`CommandEvent()` constructor",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CommandEvent/CommandEvent",
+ "spec_url": "https://html.spec.whatwg.org/multipage/interaction.html#commandevent",
"tags": [
"web-features:invoker-commands"
],
diff --git a/api/CredentialsContainer.json b/api/CredentialsContainer.json
index a05c2a16635786..4ce4c710e44628 100644
--- a/api/CredentialsContainer.json
+++ b/api/CredentialsContainer.json
@@ -450,6 +450,7 @@
"__compat": {
"description": "`credProtect` extension",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Web_Authentication_API/WebAuthn_extensions#credprotect",
+ "spec_url": "https://fidoalliance.org/specs/fido-v2.2-ps-20250714/fido-client-to-authenticator-protocol-v2.2-ps-20250714.html#sctn-credProtect-extension",
"tags": [
"web-features:webauthn"
],
@@ -525,6 +526,7 @@
"__compat": {
"description": "`minPinLength` extension",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Web_Authentication_API/WebAuthn_extensions#minpinlength",
+ "spec_url": "https://fidoalliance.org/specs/fido-v2.2-ps-20250714/fido-client-to-authenticator-protocol-v2.2-ps-20250714.html#sctn-minpinlength-extension",
"tags": [
"web-features:webauthn"
],
@@ -911,6 +913,7 @@
"providers_multiple": {
"__compat": {
"description": "Support for multiple `providers`",
+ "spec_url": "https://w3c-fedid.github.io/FedCM/#dom-identitycredentialrequestoptions-providers",
"tags": [
"web-features:fedcm"
],
diff --git a/api/Crypto.json b/api/Crypto.json
index ec869139fac139..977a151682f20a 100644
--- a/api/Crypto.json
+++ b/api/Crypto.json
@@ -223,6 +223,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/webcrypto/#crypto-interface",
"tags": [
"web-features:web-cryptography"
],
diff --git a/api/CustomElementRegistry.json b/api/CustomElementRegistry.json
index 20cd53784e6c4f..0819e4f100062b 100644
--- a/api/CustomElementRegistry.json
+++ b/api/CustomElementRegistry.json
@@ -74,6 +74,7 @@
"__compat": {
"description": "Customized built-in element support",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/define#defining_a_customized_built-in_element",
+ "spec_url": "https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-define-dev",
"tags": [
"web-features:customized-built-in-elements"
],
@@ -177,7 +178,8 @@
},
"disabledFeatures_static_property": {
"__compat": {
- "description": "Supports `disabledFeatures` static property",
+ "description": "`disabledFeatures` static property",
+ "spec_url": "https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-define-dev:~:text=disabledFeatures",
"tags": [
"web-features:autonomous-custom-elements"
],
diff --git a/api/CustomEvent.json b/api/CustomEvent.json
index 5bb5b84bbd9210..99e287897edcf9 100644
--- a/api/CustomEvent.json
+++ b/api/CustomEvent.json
@@ -110,6 +110,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-customevent",
"tags": [
"web-features:events"
],
diff --git a/api/DOMError.json b/api/DOMError.json
index 1e025dd3769428..0dd89f59cb5e70 100644
--- a/api/DOMError.json
+++ b/api/DOMError.json
@@ -48,7 +48,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -83,7 +83,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -119,7 +119,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/DOMMatrix.json b/api/DOMMatrix.json
index 4a7fcd01d6297f..0b707e6bd6163f 100644
--- a/api/DOMMatrix.json
+++ b/api/DOMMatrix.json
@@ -267,6 +267,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#dom-dommatrix-dommatrix",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMMatrixReadOnly.json b/api/DOMMatrixReadOnly.json
index 00be96843f326a..d5382c04980e70 100644
--- a/api/DOMMatrixReadOnly.json
+++ b/api/DOMMatrixReadOnly.json
@@ -73,6 +73,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#dom-dommatrixreadonly-dommatrixreadonly",
"tags": [
"web-features:dom-geometry"
],
@@ -1596,6 +1597,7 @@
"__compat": {
"description": "`toString()`",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toString",
+ "spec_url": "https://drafts.csswg.org/geometry/#dommatrixreadonly-stringification-behavior",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMParser.json b/api/DOMParser.json
index e455ee7e703f72..a213eda2f9c966 100644
--- a/api/DOMParser.json
+++ b/api/DOMParser.json
@@ -169,6 +169,7 @@
"html": {
"__compat": {
"description": "HTML (`text/html`) support",
+ "spec_url": "https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparsersupportedtype-texthtml",
"tags": [
"web-features:domparser"
],
@@ -212,6 +213,7 @@
"svg": {
"__compat": {
"description": "SVG (`image/svg+xml`) support",
+ "spec_url": "https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparsersupportedtype-otherwise",
"tags": [
"web-features:svg"
],
@@ -253,6 +255,7 @@
"xml": {
"__compat": {
"description": "XML (`application/xml`) support",
+ "spec_url": "https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparsersupportedtype-otherwise",
"tags": [
"web-features:domparser"
],
diff --git a/api/DOMPoint.json b/api/DOMPoint.json
index 56eef892c15c18..05754f6e1ec35b 100644
--- a/api/DOMPoint.json
+++ b/api/DOMPoint.json
@@ -73,6 +73,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#dom-dompoint-dompoint",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMPointReadOnly.json b/api/DOMPointReadOnly.json
index f5299f15123e3b..985e00b639d6d1 100644
--- a/api/DOMPointReadOnly.json
+++ b/api/DOMPointReadOnly.json
@@ -3,7 +3,7 @@
"DOMPointReadOnly": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly",
- "spec_url": "https://drafts.csswg.org/geometry/#DOMPoint",
+ "spec_url": "https://drafts.csswg.org/geometry/#dompointreadonly",
"tags": [
"web-features:dom-geometry"
],
@@ -73,6 +73,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#dompointreadonly",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMQuad.json b/api/DOMQuad.json
index 11ce4bfbaca4b3..0de2d769e5093e 100644
--- a/api/DOMQuad.json
+++ b/api/DOMQuad.json
@@ -3,7 +3,7 @@
"DOMQuad": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMQuad",
- "spec_url": "https://drafts.csswg.org/geometry/#DOMQuad",
+ "spec_url": "https://drafts.csswg.org/geometry/#domquad",
"tags": [
"web-features:dom-geometry"
],
@@ -73,6 +73,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#domquad",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMRect.json b/api/DOMRect.json
index ea32425e318ebf..3a29b2bd243252 100644
--- a/api/DOMRect.json
+++ b/api/DOMRect.json
@@ -3,7 +3,7 @@
"DOMRect": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMRect",
- "spec_url": "https://drafts.csswg.org/geometry/#DOMRect",
+ "spec_url": "https://drafts.csswg.org/geometry/#domrect",
"tags": [
"web-features:dom-geometry"
],
@@ -134,6 +134,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#domrect",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMRectReadOnly.json b/api/DOMRectReadOnly.json
index 50d43137cd5906..bd25e9211668b1 100644
--- a/api/DOMRectReadOnly.json
+++ b/api/DOMRectReadOnly.json
@@ -3,7 +3,7 @@
"DOMRectReadOnly": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly",
- "spec_url": "https://drafts.csswg.org/geometry/#DOMRect",
+ "spec_url": "https://drafts.csswg.org/geometry/#domrectreadonly",
"tags": [
"web-features:dom-geometry"
],
@@ -139,6 +139,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/geometry/#domrectreadonly",
"tags": [
"web-features:dom-geometry"
],
diff --git a/api/DOMTokenList.json b/api/DOMTokenList.json
index 5cc68b59573183..654a7dde511185 100644
--- a/api/DOMTokenList.json
+++ b/api/DOMTokenList.json
@@ -93,6 +93,7 @@
"multiple_parameters": {
"__compat": {
"description": "Multiple parameters for `add()`",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-domtokenlist-add",
"tags": [
"web-features:dom"
],
@@ -176,6 +177,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMTokenList/entries",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-domtokenlist",
"tags": [
"web-features:dom"
],
@@ -212,6 +214,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMTokenList/forEach",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-domtokenlist",
"tags": [
"web-features:dom"
],
@@ -294,6 +297,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMTokenList/keys",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-domtokenlist",
"tags": [
"web-features:dom"
],
@@ -421,6 +425,7 @@
"multiple_parameters": {
"__compat": {
"description": "Multiple parameters for `remove()`",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-domtokenlist-remove",
"tags": [
"web-features:dom"
],
@@ -459,6 +464,7 @@
"__compat": {
"description": "Removes duplicates",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMTokenList#trimming_of_whitespace_and_removal_of_duplicates",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-domtokenlist:~:text=duplicates%20omitted",
"tags": [
"web-features:dom"
],
@@ -530,7 +536,8 @@
},
"boolean_value": {
"__compat": {
- "description": "`return()`'s value is a boolean, not void as it used to be.",
+ "description": "Boolean return value (not void anymore)",
+ "spec_url": "https://dom.spec.whatwg.org/#ref-for-dom-domtokenlist-replace①",
"tags": [
"web-features:dom"
],
@@ -650,6 +657,7 @@
"force_parameter": {
"__compat": {
"description": "`force` parameter",
+ "spec_url": "https://dom.spec.whatwg.org/#ref-for-dom-domtokenlist-toggle①",
"tags": [
"web-features:dom"
],
@@ -729,6 +737,7 @@
"__compat": {
"description": "Trims whitespace",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMTokenList#trimming_of_whitespace_and_removal_of_duplicates",
+ "spec_url": "https://dom.spec.whatwg.org/#DOMTokenList-stringification-behavior",
"tags": [
"web-features:dom"
],
@@ -806,6 +815,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/DOMTokenList/values",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-domtokenlist",
"tags": [
"web-features:dom"
],
@@ -842,6 +852,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://dom.spec.whatwg.org/#interface-domtokenlist",
"tags": [
"web-features:dom"
],
diff --git a/api/Document.json b/api/Document.json
index a9ce7fda230d97..8fbd0ec46b14d6 100644
--- a/api/Document.json
+++ b/api/Document.json
@@ -1122,6 +1122,7 @@
"options_parameter": {
"__compat": {
"description": "`options` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-document-caretpositionfrompoint-x-y-options-options",
"tags": [
"web-features:document-caretpositionfrompoint"
],
@@ -2033,6 +2034,7 @@
"options_parameter": {
"__compat": {
"description": "`options` parameter",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-document-createelement-localname-options-options",
"tags": [
"web-features:dom"
],
@@ -2116,6 +2118,7 @@
"options_parameter": {
"__compat": {
"description": "`options` parameter",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-document-createelementns-namespace-qualifiedname-options-options",
"tags": [
"web-features:dom"
],
@@ -2588,6 +2591,7 @@
"whatToShow_filter_parameters_optional": {
"__compat": {
"description": "`whatToShow` and `filter` parameters are optional",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-document-createtreewalker",
"tags": [
"web-features:dom"
],
@@ -3380,7 +3384,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -3568,7 +3572,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -3598,7 +3602,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -3752,6 +3756,7 @@
"returns_promise": {
"__compat": {
"description": "Returns a `Promise`",
+ "spec_url": "https://fullscreen.spec.whatwg.org/#ref-for-dom-document-exitfullscreen①",
"tags": [
"web-features:fullscreen"
],
@@ -3917,7 +3922,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -6748,7 +6753,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -6909,7 +6914,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/EXT_disjoint_timer_query_webgl2.json b/api/EXT_disjoint_timer_query_webgl2.json
index 169cbe75afde79..6f3659f61b119b 100644
--- a/api/EXT_disjoint_timer_query_webgl2.json
+++ b/api/EXT_disjoint_timer_query_webgl2.json
@@ -2,6 +2,7 @@
"api": {
"EXT_disjoint_timer_query_webgl2": {
"__compat": {
+ "spec_url": "https://registry.khronos.org/webgl/extensions/EXT_disjoint_timer_query_webgl2/",
"support": {
"chrome": [
{
@@ -41,6 +42,7 @@
},
"queryCounterEXT": {
"__compat": {
+ "spec_url": "https://registry.khronos.org/webgl/extensions/EXT_disjoint_timer_query_webgl2/",
"support": {
"chrome": [
{
diff --git a/api/Element.json b/api/Element.json
index 965c02f606630b..f09f27d616b15a 100644
--- a/api/Element.json
+++ b/api/Element.json
@@ -258,6 +258,7 @@
"__compat": {
"description": "Implicit to/from keyframes are supported",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Element/animate#implicit_tofrom_keyframes",
+ "spec_url": "https://drafts.csswg.org/web-animations-1/#dom-animatable-animate",
"tags": [
"web-features:web-animations"
],
@@ -2942,6 +2943,7 @@
"type_pointerevent": {
"__compat": {
"description": "Is a `PointerEvent`",
+ "spec_url": "https://w3c.github.io/uievents/#event-type-auxclick",
"tags": [
"web-features:pointer-events-api"
],
@@ -3708,6 +3710,7 @@
"type_pointerevent": {
"__compat": {
"description": "Is a `PointerEvent`",
+ "spec_url": "https://w3c.github.io/uievents/#event-type-click",
"tags": [
"web-features:pointer-events-api"
],
@@ -4230,6 +4233,7 @@
"type_pointerevent": {
"__compat": {
"description": "Is a `PointerEvent`",
+ "spec_url": "https://w3c.github.io/uievents/#event-type-contextmenu",
"tags": [
"web-features:pointer-events-api"
],
@@ -5537,6 +5541,7 @@
"all_elements_selector": {
"__compat": {
"description": "`getElementsByTagName(\"*\")`",
+ "spec_url": "https://dom.spec.whatwg.org/#concept-getelementsbytagname",
"tags": [
"web-features:dom"
],
@@ -5635,6 +5640,7 @@
"all_elements_selector": {
"__compat": {
"description": "`getElementsByTagNameNS(namespaceURI, \"*\")`",
+ "spec_url": "https://dom.spec.whatwg.org/#concept-getelementsbytagnamens",
"tags": [
"web-features:dom"
],
@@ -8714,6 +8720,7 @@
"returns_promise": {
"__compat": {
"description": "Returns a `Promise`",
+ "spec_url": "https://fullscreen.spec.whatwg.org/#ref-for-dom-element-requestfullscreen①",
"tags": [
"web-features:fullscreen"
],
@@ -8928,6 +8935,7 @@
"options_behavior_parameter": {
"__compat": {
"description": "`options.behavior` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolloptions-behavior",
"tags": [
"web-features:scroll-elements"
],
@@ -8962,6 +8970,7 @@
"options_left_parameter": {
"__compat": {
"description": "`options.left` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolltooptions-left",
"tags": [
"web-features:scroll-elements"
],
@@ -8996,6 +9005,7 @@
"options_top_parameter": {
"__compat": {
"description": "`options.top` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolltooptions-top",
"tags": [
"web-features:scroll-elements"
],
@@ -9113,6 +9123,7 @@
"options_behavior_parameter": {
"__compat": {
"description": "`options.behavior` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolloptions-behavior",
"tags": [
"web-features:scroll-elements"
],
@@ -9147,6 +9158,7 @@
"options_left_parameter": {
"__compat": {
"description": "`options.left` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolltooptions-left",
"tags": [
"web-features:scroll-elements"
],
@@ -9181,6 +9193,7 @@
"options_top_parameter": {
"__compat": {
"description": "`options.top` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolltooptions-top",
"tags": [
"web-features:scroll-elements"
],
@@ -9417,7 +9430,7 @@
"block_option": {
"__compat": {
"description": "`block` option",
- "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrollintoviewoptions-block",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-element-scrollintoview-arg-arg",
"tags": [
"web-features:scroll-into-view"
],
@@ -9765,6 +9778,7 @@
"options_behavior_parameter": {
"__compat": {
"description": "`options.behavior` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolloptions-behavior",
"tags": [
"web-features:scroll-elements"
],
@@ -9799,6 +9813,7 @@
"options_left_parameter": {
"__compat": {
"description": "`options.left` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolltooptions-left",
"tags": [
"web-features:scroll-elements"
],
@@ -9833,6 +9848,7 @@
"options_top_parameter": {
"__compat": {
"description": "`options.top` parameter",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#dom-scrolltooptions-top",
"tags": [
"web-features:scroll-elements"
],
@@ -10073,6 +10089,7 @@
"enforces_trusted_types": {
"__compat": {
"description": "Requires `value` parameter to be `TrustedHTML` instance (for `iframe.srcdoc`), or `TrustedScriptURL` (for HTML `script.src`, and SVG `script.href`) when trusted types are enforced",
+ "spec_url": "https://w3c.github.io/trusted-types/dist/spec/#dom-xss-injection-sinks",
"support": {
"chrome": {
"version_added": "83"
@@ -10238,6 +10255,7 @@
"enforces_trusted_types": {
"__compat": {
"description": "Requires `value` parameter to be `TrustedHTML`, `TrustedScript`, or `TrustedScriptURL` instance when trusted types enforced (matching attribute type)",
+ "spec_url": "https://w3c.github.io/trusted-types/dist/spec/#dom-xss-injection-sinks",
"support": {
"chrome": {
"version_added": "83"
diff --git a/api/EventCounts.json b/api/EventCounts.json
index 0427416f084146..bb3cebe11ba938 100644
--- a/api/EventCounts.json
+++ b/api/EventCounts.json
@@ -36,6 +36,7 @@
},
"entries": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -69,6 +70,7 @@
},
"forEach": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -102,6 +104,7 @@
},
"get": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -135,6 +138,7 @@
},
"has": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -168,6 +172,7 @@
},
"keys": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -201,6 +206,7 @@
},
"size": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -234,6 +240,7 @@
},
"values": {
"__compat": {
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
@@ -268,6 +275,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://w3c.github.io/event-timing/#sec-event-counts",
"tags": [
"web-features:event-timing"
],
diff --git a/api/EventSource.json b/api/EventSource.json
index ad0e2fc887ba60..782b171443f281 100644
--- a/api/EventSource.json
+++ b/api/EventSource.json
@@ -94,6 +94,7 @@
"options_withCredentials_parameter": {
"__compat": {
"description": "`options.withCredentials` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/server-sent-events.html#dom-eventsourceinit-withcredentials",
"tags": [
"web-features:server-sent-events"
],
@@ -140,6 +141,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface",
"tags": [
"web-features:server-sent-events"
],
diff --git a/api/EventTarget.json b/api/EventTarget.json
index ee9d1e461fddf8..ac50f59a86e5ae 100644
--- a/api/EventTarget.json
+++ b/api/EventTarget.json
@@ -178,6 +178,7 @@
"options_parameter": {
"__compat": {
"description": "Form with `options` object supported (third parameter can be either options or a `Boolean`, for backwards compatibility)",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener-type-callback-options-options",
"tags": [
"web-features:events"
],
@@ -360,6 +361,7 @@
"options_passive_parameter_default_true_touch": {
"__compat": {
"description": "`options.passive` parameter defaults to `true` for `touchstart` and `touchmove` events",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-addeventlisteneroptions-passive",
"tags": [
"web-features:events"
],
@@ -394,6 +396,7 @@
"options_passive_parameter_default_true_wheel": {
"__compat": {
"description": "`options.passive` parameter defaults to `true` for `wheel` and `mousewheel` events",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-addeventlisteneroptions-passive",
"tags": [
"web-features:events"
],
@@ -479,6 +482,7 @@
"useCapture_parameter_optional": {
"__compat": {
"description": "`useCapture` parameter is optional",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-eventlisteneroptions-capture",
"tags": [
"web-features:events"
],
@@ -657,6 +661,7 @@
"options_parameter": {
"__compat": {
"description": "Form with `options` object supported (third parameter can be either options or a `Boolean`, for backwards compatibility)",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-eventtarget-removeeventlistener-type-callback-options-options",
"tags": [
"web-features:events"
],
@@ -702,6 +707,7 @@
"useCapture_parameter_optional": {
"__compat": {
"description": "`useCapture` parameter is optional",
+ "spec_url": "https://dom.spec.whatwg.org/#dom-eventlisteneroptions-capture",
"tags": [
"web-features:events"
],
diff --git a/api/ExtendableEvent.json b/api/ExtendableEvent.json
index 0c27f92e581e71..aac6c851afd82d 100644
--- a/api/ExtendableEvent.json
+++ b/api/ExtendableEvent.json
@@ -131,6 +131,7 @@
"async_waitUntil": {
"__compat": {
"description": "`waitUntil` may be called asynchronously",
+ "spec_url": "https://w3c.github.io/ServiceWorker/#dom-extendableevent-waituntil",
"tags": [
"web-features:service-workers"
],
diff --git a/api/EyeDropper.json b/api/EyeDropper.json
index 8333be98bc2e10..f7170e0520b22e 100644
--- a/api/EyeDropper.json
+++ b/api/EyeDropper.json
@@ -80,6 +80,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://wicg.github.io/eyedropper-api/#eyedropper-interface",
"tags": [
"web-features:eyedropper"
],
diff --git a/api/FeaturePolicy.json b/api/FeaturePolicy.json
index 27715bb0a05416..2158a9de17e4cf 100644
--- a/api/FeaturePolicy.json
+++ b/api/FeaturePolicy.json
@@ -37,7 +37,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
},
@@ -77,7 +77,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -118,7 +118,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -159,7 +159,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -200,7 +200,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/FetchEvent.json b/api/FetchEvent.json
index 3477134eb2b4d8..7e7a07778c1e7d 100644
--- a/api/FetchEvent.json
+++ b/api/FetchEvent.json
@@ -316,6 +316,7 @@
"networkerror_on_same-origin_cors": {
"__compat": {
"description": "`NetworkError` thrown if the request mode is `same-origin` and the response type is `cors`",
+ "spec_url": "https://w3c.github.io/ServiceWorker/#fetch-event-respondwith",
"tags": [
"web-features:service-workers"
],
@@ -350,6 +351,7 @@
"resource_url": {
"__compat": {
"description": "Change in behavior when specifying the final URL of a resource.",
+ "spec_url": "https://w3c.github.io/ServiceWorker/#fetch-event-respondwith",
"tags": [
"web-features:service-workers"
],
diff --git a/api/FetchLaterResult.json b/api/FetchLaterResult.json
index 5a3f26a04fb1de..919d55f8ab3117 100644
--- a/api/FetchLaterResult.json
+++ b/api/FetchLaterResult.json
@@ -39,6 +39,7 @@
"activated": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FetchLaterResult/activated",
+ "spec_url": "https://fetch.spec.whatwg.org/#dom-fetchlaterresult-activated",
"tags": [
"web-features:fetchlater"
],
diff --git a/api/FileReader.json b/api/FileReader.json
index 99dea77fe95c4c..0fd70c95573121 100644
--- a/api/FileReader.json
+++ b/api/FileReader.json
@@ -106,6 +106,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/FileAPI/#APIASynch",
"tags": [
"web-features:file"
],
diff --git a/api/FileReaderSync.json b/api/FileReaderSync.json
index 160bb57cd9db96..f47e3dfe5879c6 100644
--- a/api/FileReaderSync.json
+++ b/api/FileReaderSync.json
@@ -97,6 +97,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/FileAPI/#FileReaderSync",
"tags": [
"web-features:file"
],
diff --git a/api/FileSystemSyncAccessHandle.json b/api/FileSystemSyncAccessHandle.json
index b29f7fd492ed99..5296cee2bbfd08 100644
--- a/api/FileSystemSyncAccessHandle.json
+++ b/api/FileSystemSyncAccessHandle.json
@@ -75,6 +75,7 @@
"sync_version": {
"__compat": {
"description": "Synchronous implementation of the `close()` method",
+ "spec_url": "https://fs.spec.whatwg.org/#api-filesystemsyncaccesshandle-close",
"tags": [
"web-features:origin-private-file-system"
],
@@ -148,6 +149,7 @@
"sync_version": {
"__compat": {
"description": "Synchronous implementation of the `flush()` method",
+ "spec_url": "https://fs.spec.whatwg.org/#api-filesystemsyncaccesshandle-flush",
"tags": [
"web-features:origin-private-file-system"
],
@@ -221,6 +223,7 @@
"sync_version": {
"__compat": {
"description": "Synchronous implementation of the `getSize()` method",
+ "spec_url": "https://fs.spec.whatwg.org/#api-filesystemsyncaccesshandle-getsize",
"tags": [
"web-features:origin-private-file-system"
],
@@ -331,6 +334,7 @@
"sync_version": {
"__compat": {
"description": "Synchronous implementation of the `truncate()` method",
+ "spec_url": "https://fs.spec.whatwg.org/#api-filesystemsyncaccesshandle-truncate",
"tags": [
"web-features:origin-private-file-system"
],
diff --git a/api/FontFace.json b/api/FontFace.json
index 73ae365b7833c5..419c67fb7778bf 100644
--- a/api/FontFace.json
+++ b/api/FontFace.json
@@ -77,6 +77,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#fontface-interface",
"tags": [
"web-features:font-loading"
],
diff --git a/api/FontFaceSet.json b/api/FontFaceSet.json
index 8d899f1c4440f5..8522cf76336573 100644
--- a/api/FontFaceSet.json
+++ b/api/FontFaceSet.json
@@ -71,6 +71,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
@@ -253,6 +254,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FontFaceSet/entries",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
@@ -287,6 +289,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FontFaceSet/forEach",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
@@ -321,6 +324,7 @@
"has": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FontFaceSet/has",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
@@ -355,6 +359,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FontFaceSet/keys",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
@@ -567,6 +572,7 @@
"size": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FontFaceSet/size",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
@@ -636,6 +642,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FontFaceSet/values",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#FontFaceSet-interface",
"tags": [
"web-features:font-loading"
],
diff --git a/api/FontFaceSetLoadEvent.json b/api/FontFaceSetLoadEvent.json
index aedefd2ad32579..fd989a9c77f611 100644
--- a/api/FontFaceSetLoadEvent.json
+++ b/api/FontFaceSetLoadEvent.json
@@ -73,6 +73,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://drafts.csswg.org/css-font-loading/#fontfacesetloadevent",
"tags": [
"web-features:font-loading"
],
diff --git a/api/FormData.json b/api/FormData.json
index ee09465edde813..de7d749947d2f8 100644
--- a/api/FormData.json
+++ b/api/FormData.json
@@ -118,6 +118,7 @@
"submitter": {
"__compat": {
"description": "`submitter` parameter",
+ "spec_url": "https://xhr.spec.whatwg.org/#dom-formdata",
"tags": [
"web-features:xhr"
],
@@ -156,6 +157,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://xhr.spec.whatwg.org/#interface-formdata",
"tags": [
"web-features:xhr"
],
@@ -258,6 +260,7 @@
"filename_parameter": {
"__compat": {
"description": "`filename` parameter",
+ "spec_url": "https://xhr.spec.whatwg.org/#dom-formdata-append-blob",
"tags": [
"web-features:xhr"
],
@@ -351,6 +354,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FormData/entries",
+ "spec_url": "https://xhr.spec.whatwg.org/#interface-formdata",
"tags": [
"web-features:xhr"
],
@@ -395,6 +399,7 @@
},
"forEach": {
"__compat": {
+ "spec_url": "https://xhr.spec.whatwg.org/#interface-formdata",
"tags": [
"web-features:xhr"
],
@@ -578,6 +583,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FormData/keys",
+ "spec_url": "https://xhr.spec.whatwg.org/#interface-formdata",
"tags": [
"web-features:xhr"
],
@@ -669,6 +675,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/FormData/values",
+ "spec_url": "https://xhr.spec.whatwg.org/#interface-formdata",
"tags": [
"web-features:xhr"
],
@@ -714,6 +721,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://xhr.spec.whatwg.org/#interface-formdata",
"tags": [
"web-features:xhr"
],
diff --git a/api/GPU.json b/api/GPU.json
index ec83ed11abb96a..e2e6ca42eec015 100644
--- a/api/GPU.json
+++ b/api/GPU.json
@@ -223,7 +223,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GPUAdapter.json b/api/GPUAdapter.json
index 13c9e965c824de..ad9d0da409bb45 100644
--- a/api/GPUAdapter.json
+++ b/api/GPUAdapter.json
@@ -426,6 +426,7 @@
"handles_duplicate_calls": {
"__compat": {
"description": "Rejects duplicate calls as adapter is consumed.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuadapter-requestdevice",
"tags": [
"web-features:webgpu"
],
@@ -529,7 +530,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GPUCommandEncoder.json b/api/GPUCommandEncoder.json
index 73919f28d7740f..bbac3b47436d14 100644
--- a/api/GPUCommandEncoder.json
+++ b/api/GPUCommandEncoder.json
@@ -248,6 +248,7 @@
"accepts_GPUTexture_resources": {
"__compat": {
"description": "Accepts `GPUTexture` resources instead of `GPUTextureView` (provided default view is desired).",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpurenderpasscolorattachment-view",
"tags": [
"web-features:webgpu"
],
@@ -333,6 +334,7 @@
"separate_depth_stencil_read-only": {
"__compat": {
"description": "Set `depthReadOnly` and `stencilReadOnly` to `true` separately from one another.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dictdef-gpurenderbundleencoderdescriptor",
"tags": [
"web-features:webgpu"
],
@@ -554,6 +556,7 @@
"offset_and_size_parameter_optional": {
"__compat": {
"description": "Offset and `size` parameters are optional",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpucommandencoder-copybuffertobuffer",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPUComputePassEncoder.json b/api/GPUComputePassEncoder.json
index fe89956df9386c..7e33a12aa46fc3 100644
--- a/api/GPUComputePassEncoder.json
+++ b/api/GPUComputePassEncoder.json
@@ -613,6 +613,7 @@
"unset_bind_group": {
"__compat": {
"description": "Pass `null` to unset bind group",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpubindingcommandsmixin-setbindgroup-index-bindgroup-dynamicoffsets-bindgroup",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPUDevice.json b/api/GPUDevice.json
index 9b4bc2d246bd69..fcdfd984d9a28e 100644
--- a/api/GPUDevice.json
+++ b/api/GPUDevice.json
@@ -188,6 +188,7 @@
"descriptor_entries_resource_parameter_accepts_GPUBuffer": {
"__compat": {
"description": "`descriptor.entries.resource` parameter accepts `GPUBuffer` in place of `GPUBufferBinding`.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#abstract-opdef-get-as-buffer-binding",
"tags": [
"web-features:webgpu"
],
@@ -230,6 +231,7 @@
"descriptor_entries_resource_parameter_accepts_GPUTexture_resource": {
"__compat": {
"description": "`descriptor.entries.resource` parameter accepts `GPUTexture` in place of `GPUTextureView` (provided default view is desired).",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#typedefdef-gpubindingresource",
"tags": [
"web-features:webgpu"
],
@@ -272,6 +274,7 @@
"descriptor_entries_resource_parameter_accepts_GPUTextureView": {
"__compat": {
"description": "`descriptor.entries.resource` parameter accepts `GPUTextureView` (2D, single subresource) in place of `GPUExternalTexture`.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#typedefdef-gpubindingresource",
"tags": [
"web-features:webgpu"
],
@@ -675,6 +678,7 @@
"optional_entryPoint": {
"__compat": {
"description": "`entryPoint` properties are optional for determined default compute shader entry points.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuprogrammablestage-entrypoint",
"tags": [
"web-features:webgpu"
],
@@ -785,6 +789,7 @@
"optional_entryPoint": {
"__compat": {
"description": "`entryPoint` properties are optional for determined default compute shader entry points.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuprogrammablestage-entrypoint",
"tags": [
"web-features:webgpu"
],
@@ -895,6 +900,7 @@
"descriptor_bindGroupLayouts_parameter_accepts_null_values": {
"__compat": {
"description": "`bindGroupLayouts` array accepts `null` values.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dictdef-gpupipelinelayoutdescriptor",
"tags": [
"web-features:webgpu"
],
@@ -1227,6 +1233,7 @@
"optional_depthcompare_depthwriteenabled": {
"__compat": {
"description": "`depthCompare` and `depthWriteEnabled` properties are optional when not needed (for example, formats without depth).",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#abstract-opdef-validating-gpudepthstencilstate",
"tags": [
"web-features:webgpu"
],
@@ -1271,6 +1278,7 @@
"optional_entryPoint": {
"__compat": {
"description": "`entryPoint` properties are optional for determined default fragment and vertex shader entry points.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#abstract-opdef-get-the-entry-point",
"tags": [
"web-features:webgpu"
],
@@ -1358,6 +1366,7 @@
"validates_depth_bias_for_line_and_point_topologies": {
"__compat": {
"description": "Validates that `depthBias`, `depthBiasSlopeScale`, and `depthBiasClamp` must be `0` for line and point topologies.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#abstract-opdef-biased-fragment-depth",
"tags": [
"web-features:webgpu"
],
@@ -1556,6 +1565,7 @@
"optional_depthcompare_depthwriteenabled": {
"__compat": {
"description": "`depthCompare` and `depthWriteEnabled` properties are optional when not needed (for example, formats without depth).",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#abstract-opdef-validating-gpudepthstencilstate",
"tags": [
"web-features:webgpu"
],
@@ -1600,6 +1610,7 @@
"optional_entryPoint": {
"__compat": {
"description": "`entryPoint` properties are optional for determined default fragment and vertex shader entry points.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#abstract-opdef-get-the-entry-point",
"tags": [
"web-features:webgpu"
],
@@ -1687,6 +1698,7 @@
"validates_depth_bias_for_line_and_point_topologies": {
"__compat": {
"description": "Validates that `depthBias`, `depthBiasSlopeScale`, and `depthBiasClamp` must be `0` for line and point topologies.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpudevice-createrenderpipelineasync",
"tags": [
"web-features:webgpu"
],
@@ -2208,6 +2220,7 @@
"color_space_display-p3": {
"__compat": {
"description": "display-p3 color space",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-predefinedcolorspace-display-p3",
"tags": [
"web-features:webgpu"
],
@@ -2250,6 +2263,7 @@
"videoframe_source": {
"__compat": {
"description": "`VideoFrame` object as source",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuexternaltexturedescriptor-source",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPUPipelineError.json b/api/GPUPipelineError.json
index a49d4e5dc105af..289df472c09895 100644
--- a/api/GPUPipelineError.json
+++ b/api/GPUPipelineError.json
@@ -114,6 +114,7 @@
"message_optional": {
"__compat": {
"description": "`message` parameter is optional",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpupipelineerror-constructor-message",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPUQueue.json b/api/GPUQueue.json
index 31b1994a3c2dd8..5cb6c87f636401 100644
--- a/api/GPUQueue.json
+++ b/api/GPUQueue.json
@@ -137,6 +137,7 @@
"htmlimageelement_imagedata_source": {
"__compat": {
"description": "`HTMLImageElement` and `ImageData` objects as `source`",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuqueue-copyexternalimagetotexture-source-destination-copysize-source",
"tags": [
"web-features:webgpu"
],
@@ -181,6 +182,7 @@
"videoframe_source": {
"__compat": {
"description": "`VideoFrame` object as `source`",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuqueue-copyexternalimagetotexture-source-destination-copysize-source",
"tags": [
"web-features:webgpu"
],
@@ -441,6 +443,7 @@
"validates_command_buffer_uniqueness": {
"__compat": {
"description": "Validates that submitted command buffers are unique.",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpuqueue-submit",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPURenderBundleEncoder.json b/api/GPURenderBundleEncoder.json
index d7668f09332066..919c621fe39b65 100644
--- a/api/GPURenderBundleEncoder.json
+++ b/api/GPURenderBundleEncoder.json
@@ -737,6 +737,7 @@
"unset_bind_group": {
"__compat": {
"description": "Pass `null` to unset bind group",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpubindingcommandsmixin-setbindgroup-index-bindgroup-dynamicoffsets-bindgroup",
"tags": [
"web-features:webgpu"
],
@@ -985,6 +986,7 @@
"unset_vertex_buffer": {
"__compat": {
"description": "Pass `null` to unset vertex buffer",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpurendercommandsmixin-setvertexbuffer-slot-buffer-offset-size-buffer",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPURenderPassEncoder.json b/api/GPURenderPassEncoder.json
index 416e1d9b3311a3..811e123dbef970 100644
--- a/api/GPURenderPassEncoder.json
+++ b/api/GPURenderPassEncoder.json
@@ -953,6 +953,7 @@
"unset_bind_group": {
"__compat": {
"description": "Pass `null` to unset bind group",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpubindingcommandsmixin-setbindgroup-index-bindgroup-dynamicoffsets-bindgroup",
"tags": [
"web-features:webgpu"
],
@@ -1405,6 +1406,7 @@
"unset_vertex_buffer": {
"__compat": {
"description": "Pass `null` to unset vertex buffer",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#dom-gpurendercommandsmixin-setvertexbuffer-slot-buffer-offset-size-buffer",
"tags": [
"web-features:webgpu"
],
diff --git a/api/GPUSupportedFeatures.json b/api/GPUSupportedFeatures.json
index bfcd5b57da7996..eee9dd7e6419d4 100644
--- a/api/GPUSupportedFeatures.json
+++ b/api/GPUSupportedFeatures.json
@@ -724,6 +724,7 @@
"subgroup_id_num_subgroups": {
"__compat": {
"description": "`subgroup_id` and `num_subgroups` WGSL builtins available if `subgroups` feature enabled",
+ "spec_url": "https://gpuweb.github.io/gpuweb/#subgroups",
"tags": [
"web-features:webgpu"
],
diff --git a/api/Gamepad.json b/api/Gamepad.json
index 655af17345c9cc..42369583124c4b 100644
--- a/api/Gamepad.json
+++ b/api/Gamepad.json
@@ -77,7 +77,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GamepadButton.json b/api/GamepadButton.json
index 5bf9b70af479c3..2b939bc9fda8eb 100644
--- a/api/GamepadButton.json
+++ b/api/GamepadButton.json
@@ -74,7 +74,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GamepadEvent.json b/api/GamepadEvent.json
index a11fa04cfa8f2d..642231ce3707f2 100644
--- a/api/GamepadEvent.json
+++ b/api/GamepadEvent.json
@@ -114,7 +114,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GamepadHapticActuator.json b/api/GamepadHapticActuator.json
index 46c7d20d967453..6d62064ca70670 100644
--- a/api/GamepadHapticActuator.json
+++ b/api/GamepadHapticActuator.json
@@ -74,7 +74,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GamepadPose.json b/api/GamepadPose.json
index d19ec94ebddf7a..f55e51fc8a4d9c 100644
--- a/api/GamepadPose.json
+++ b/api/GamepadPose.json
@@ -66,7 +66,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/Geolocation.json b/api/Geolocation.json
index f105ca2009c652..7272536bfd764a 100644
--- a/api/Geolocation.json
+++ b/api/Geolocation.json
@@ -80,7 +80,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/GeolocationCoordinates.json b/api/GeolocationCoordinates.json
index 6e3dc2a144da88..7b79abd5f36bab 100644
--- a/api/GeolocationCoordinates.json
+++ b/api/GeolocationCoordinates.json
@@ -97,6 +97,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/geolocation/#coordinates_interface",
"tags": [
"web-features:geolocation"
],
diff --git a/api/GeolocationPosition.json b/api/GeolocationPosition.json
index 2f28a17902cc07..daa3e0ece16e3e 100644
--- a/api/GeolocationPosition.json
+++ b/api/GeolocationPosition.json
@@ -80,6 +80,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/geolocation/#position_interface",
"tags": [
"web-features:geolocation"
],
diff --git a/api/GeolocationPositionError.json b/api/GeolocationPositionError.json
index f6dc145f3a27da..fec4575d7e93d7 100644
--- a/api/GeolocationPositionError.json
+++ b/api/GeolocationPositionError.json
@@ -98,7 +98,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/HID.json b/api/HID.json
index 774db9541df4e7..6750c58a028a01 100644
--- a/api/HID.json
+++ b/api/HID.json
@@ -43,6 +43,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://wicg.github.io/webhid/#dom-hid",
"tags": [
"web-features:webhid"
],
diff --git a/api/HIDConnectionEvent.json b/api/HIDConnectionEvent.json
index 4e75cf027d88d3..6865b8af4b1414 100644
--- a/api/HIDConnectionEvent.json
+++ b/api/HIDConnectionEvent.json
@@ -81,6 +81,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://wicg.github.io/webhid/#dom-hidconnectionevent",
"tags": [
"web-features:webhid"
],
diff --git a/api/HIDDevice.json b/api/HIDDevice.json
index 1fd8f317afc751..04ac4f9553865a 100644
--- a/api/HIDDevice.json
+++ b/api/HIDDevice.json
@@ -43,6 +43,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://wicg.github.io/webhid/#dom-hiddevice",
"tags": [
"web-features:webhid"
],
diff --git a/api/HIDInputReportEvent.json b/api/HIDInputReportEvent.json
index f3e5c53e0f3011..c6f99291bc60cd 100644
--- a/api/HIDInputReportEvent.json
+++ b/api/HIDInputReportEvent.json
@@ -43,6 +43,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://wicg.github.io/webhid/#dom-hidinputreportevent",
"tags": [
"web-features:webhid"
],
diff --git a/api/HTMLAnchorElement.json b/api/HTMLAnchorElement.json
index 18adacfa03a8dc..8d9bc0efc6c487 100644
--- a/api/HTMLAnchorElement.json
+++ b/api/HTMLAnchorElement.json
@@ -833,6 +833,7 @@
"no-referrer-when-downgrade": {
"__compat": {
"description": "no-referrer-when-downgrade",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-no-referrer-when-downgrade",
"tags": [
"web-features:referrer-policy"
],
@@ -868,6 +869,7 @@
"origin-when-cross-origin": {
"__compat": {
"description": "origin-when-cross-origin",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-origin-when-cross-origin",
"tags": [
"web-features:referrer-policy"
],
@@ -903,6 +905,7 @@
"unsafe-url": {
"__compat": {
"description": "unsafe-url",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-unsafe-url",
"tags": [
"web-features:referrer-policy"
],
diff --git a/api/HTMLAreaElement.json b/api/HTMLAreaElement.json
index 07ca440b028b47..a408fc8881c6d5 100644
--- a/api/HTMLAreaElement.json
+++ b/api/HTMLAreaElement.json
@@ -719,6 +719,7 @@
"no-referrer-when-downgrade": {
"__compat": {
"description": "no-referrer-when-downgrade",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-no-referrer-when-downgrade",
"tags": [
"web-features:referrer-policy"
],
@@ -754,6 +755,7 @@
"origin-when-cross-origin": {
"__compat": {
"description": "origin-when-cross-origin",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-origin-when-cross-origin",
"tags": [
"web-features:referrer-policy"
],
@@ -789,6 +791,7 @@
"unsafe-url": {
"__compat": {
"description": "unsafe-url",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-unsafe-url",
"tags": [
"web-features:referrer-policy"
],
diff --git a/api/HTMLBaseElement.json b/api/HTMLBaseElement.json
index 32a60f6c09e867..7a02ccddc5fd67 100644
--- a/api/HTMLBaseElement.json
+++ b/api/HTMLBaseElement.json
@@ -93,6 +93,7 @@
"forbid_data_javascript_urls": {
"__compat": {
"description": "`data:` and `javascript:` urls are not allowed",
+ "spec_url": "https://html.spec.whatwg.org/multipage/semantics.html#set-the-frozen-base-url",
"support": {
"chrome": {
"version_added": false,
@@ -125,6 +126,7 @@
"forbid_special_characters": {
"__compat": {
"description": "tab, newline, and < are not allowed (dangling markup prevention)",
+ "spec_url": "https://url.spec.whatwg.org/#concept-basic-url-parser",
"support": {
"chrome": {
"version_added": "61"
diff --git a/api/HTMLCanvasElement.json b/api/HTMLCanvasElement.json
index 0cc16ea66d2dcf..d8aba7d85af5e5 100644
--- a/api/HTMLCanvasElement.json
+++ b/api/HTMLCanvasElement.json
@@ -200,6 +200,7 @@
"bitmaprenderer_context": {
"__compat": {
"description": "`bitmaprenderer` context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-bitmaprenderer",
"tags": [
"web-features:imagebitmaprenderingcontext"
],
@@ -269,6 +270,7 @@
"webgl_context": {
"__compat": {
"description": "WebGL context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-webgl",
"tags": [
"web-features:webgl"
],
@@ -537,6 +539,7 @@
"webgl2_context": {
"__compat": {
"description": "WebGL2 context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-webgl2",
"tags": [
"web-features:webgl2"
],
@@ -784,6 +787,7 @@
"2d_context": {
"__compat": {
"description": "`2d` context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-2d",
"tags": [
"web-features:canvas-2d"
],
@@ -1172,6 +1176,7 @@
"quality_parameter": {
"__compat": {
"description": "`quality` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-toblob-dev",
"support": {
"chrome": {
"version_added": "50"
@@ -1203,6 +1208,7 @@
"type_parameter_jpeg": {
"__compat": {
"description": "`type` parameter supports `\"image/jpeg\"`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-toblob-dev",
"support": {
"chrome": {
"version_added": "50"
@@ -1234,6 +1240,7 @@
"type_parameter_png": {
"__compat": {
"description": "`type` parameter supports `\"image/png\"`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-toblob-dev",
"support": {
"chrome": {
"version_added": "50"
@@ -1265,6 +1272,7 @@
"type_parameter_webp": {
"__compat": {
"description": "`type` parameter supports `\"image/webp\"`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-toblob-dev",
"support": {
"chrome": {
"version_added": "50"
@@ -1342,6 +1350,7 @@
"type_parameter_jpeg": {
"__compat": {
"description": "`type` parameter supports `\"image/jpeg\"`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-todataurl-dev",
"support": {
"chrome": {
"version_added": "50"
@@ -1373,6 +1382,7 @@
"type_parameter_png": {
"__compat": {
"description": "`type` parameter supports `\"image/png\"`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-todataurl-dev",
"support": {
"chrome": {
"version_added": "50"
@@ -1404,6 +1414,7 @@
"type_parameter_webp": {
"__compat": {
"description": "`type` parameter supports `\"image/webp\"`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-todataurl-dev",
"support": {
"chrome": {
"version_added": "17"
diff --git a/api/HTMLDirectoryElement.json b/api/HTMLDirectoryElement.json
index d17b637d1bd6d6..f18dcfa520ed0a 100644
--- a/api/HTMLDirectoryElement.json
+++ b/api/HTMLDirectoryElement.json
@@ -2,6 +2,7 @@
"api": {
"HTMLDirectoryElement": {
"__compat": {
+ "spec_url": "https://html.spec.whatwg.org/multipage/obsolete.html#htmldirectoryelement",
"support": {
"chrome": {
"version_added": "1"
diff --git a/api/HTMLElement.json b/api/HTMLElement.json
index 53cac96477726e..851f761e35ed69 100644
--- a/api/HTMLElement.json
+++ b/api/HTMLElement.json
@@ -759,6 +759,7 @@
"plaintext-only": {
"__compat": {
"description": "`plaintext-only` as a value",
+ "spec_url": "https://html.spec.whatwg.org/multipage/interaction.html#attr-contenteditable-plaintextonly",
"tags": [
"web-features:contenteditable-plaintextonly"
],
@@ -1475,6 +1476,7 @@
"options_focusVisible_parameter": {
"__compat": {
"description": "`options.focusVisible` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/interaction.html#dom-focusoptions-focusvisible",
"tags": [
"web-features:focus-events"
],
@@ -1509,6 +1511,7 @@
"options_preventScroll_parameter": {
"__compat": {
"description": "`options.preventScroll` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/interaction.html#dom-focusoptions-preventscroll",
"tags": [
"web-features:focus-events"
],
@@ -3103,6 +3106,7 @@
"returns_boolean": {
"__compat": {
"description": "Returns `true` or `false`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/popover.html#dom-togglepopover",
"tags": [
"web-features:popover"
],
diff --git a/api/HTMLFieldSetElement.json b/api/HTMLFieldSetElement.json
index 0e58f3ca743e35..1b068c9acb2c90 100644
--- a/api/HTMLFieldSetElement.json
+++ b/api/HTMLFieldSetElement.json
@@ -180,6 +180,7 @@
"type_HTMLCollection": {
"__compat": {
"description": "Returns an `HTMLCollection`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/form-elements.html#dom-fieldset-elements-dev",
"tags": [
"web-features:fieldset"
],
diff --git a/api/HTMLIFrameElement.json b/api/HTMLIFrameElement.json
index 60b29a3b2eb6ad..f4906365c3039a 100644
--- a/api/HTMLIFrameElement.json
+++ b/api/HTMLIFrameElement.json
@@ -476,7 +476,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -902,6 +902,7 @@
"no-referrer-when-downgrade": {
"__compat": {
"description": "no-referrer-when-downgrade",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-no-referrer-when-downgrade",
"tags": [
"web-features:referrer-policy"
],
@@ -937,6 +938,7 @@
"origin-when-cross-origin": {
"__compat": {
"description": "origin-when-cross-origin",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-origin-when-cross-origin",
"tags": [
"web-features:referrer-policy"
],
@@ -972,6 +974,7 @@
"unsafe-url": {
"__compat": {
"description": "unsafe-url",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-unsafe-url",
"tags": [
"web-features:referrer-policy"
],
diff --git a/api/HTMLImageElement.json b/api/HTMLImageElement.json
index 19d269fd116be4..f04eca52c48261 100644
--- a/api/HTMLImageElement.json
+++ b/api/HTMLImageElement.json
@@ -926,6 +926,7 @@
"no-referrer-when-downgrade": {
"__compat": {
"description": "no-referrer-when-downgrade",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-no-referrer-when-downgrade",
"tags": [
"web-features:referrer-policy"
],
@@ -961,6 +962,7 @@
"origin-when-cross-origin": {
"__compat": {
"description": "origin-when-cross-origin",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-origin-when-cross-origin",
"tags": [
"web-features:referrer-policy"
],
@@ -996,6 +998,7 @@
"unsafe-url": {
"__compat": {
"description": "unsafe-url",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-unsafe-url",
"tags": [
"web-features:referrer-policy"
],
diff --git a/api/HTMLLinkElement.json b/api/HTMLLinkElement.json
index cea29da33f3086..cd9c35b6cff9bb 100644
--- a/api/HTMLLinkElement.json
+++ b/api/HTMLLinkElement.json
@@ -563,6 +563,7 @@
"no-referrer-when-downgrade": {
"__compat": {
"description": "no-referrer-when-downgrade",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-no-referrer-when-downgrade",
"tags": [
"web-features:referrer-policy"
],
@@ -598,6 +599,7 @@
"origin-when-cross-origin": {
"__compat": {
"description": "origin-when-cross-origin",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-origin-when-cross-origin",
"tags": [
"web-features:referrer-policy"
],
@@ -633,6 +635,7 @@
"unsafe-url": {
"__compat": {
"description": "unsafe-url",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-unsafe-url",
"tags": [
"web-features:referrer-policy"
],
diff --git a/api/HTMLMediaElement.json b/api/HTMLMediaElement.json
index e1de9773e175ca..a86f56cc27be07 100644
--- a/api/HTMLMediaElement.json
+++ b/api/HTMLMediaElement.json
@@ -2059,6 +2059,7 @@
"returns_promise": {
"__compat": {
"description": "Returns a `Promise`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/media.html#dom-media-play",
"tags": [
"web-features:video"
],
diff --git a/api/HTMLScriptElement.json b/api/HTMLScriptElement.json
index dfbe830daa2d4c..5f39af2927bd1a 100644
--- a/api/HTMLScriptElement.json
+++ b/api/HTMLScriptElement.json
@@ -596,6 +596,7 @@
"no-referrer-when-downgrade": {
"__compat": {
"description": "no-referrer-when-downgrade",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-no-referrer-when-downgrade",
"tags": [
"web-features:referrer-policy"
],
@@ -631,6 +632,7 @@
"origin-when-cross-origin": {
"__compat": {
"description": "origin-when-cross-origin",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-origin-when-cross-origin",
"tags": [
"web-features:referrer-policy"
],
@@ -666,6 +668,7 @@
"unsafe-url": {
"__compat": {
"description": "unsafe-url",
+ "spec_url": "https://w3c.github.io/webappsec-referrer-policy/#dom-referrerpolicy-unsafe-url",
"tags": [
"web-features:referrer-policy"
],
diff --git a/api/HTMLSelectElement.json b/api/HTMLSelectElement.json
index 7088d74acc34e9..df86ccec827cdd 100644
--- a/api/HTMLSelectElement.json
+++ b/api/HTMLSelectElement.json
@@ -96,6 +96,7 @@
"index_before_parameter": {
"__compat": {
"description": "Index as `before` parameter",
+ "spec_url": "https://html.spec.whatwg.org/multipage/form-elements.html#dom-select-add-dev",
"tags": [
"web-features:select"
],
diff --git a/api/HTMLTableRowElement.json b/api/HTMLTableRowElement.json
index 18198e42fb8a39..cafa0cefb17e78 100644
--- a/api/HTMLTableRowElement.json
+++ b/api/HTMLTableRowElement.json
@@ -369,6 +369,7 @@
"index_parameter_negative_one": {
"__compat": {
"description": "`index` parameter can be `-1`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/tables.html#dom-tr-insertcell-dev",
"tags": [
"web-features:table"
],
@@ -414,6 +415,7 @@
"index_parameter_optional": {
"__compat": {
"description": "`index` parameter is optional",
+ "spec_url": "https://html.spec.whatwg.org/multipage/tables.html#dom-tr-insertcell-dev",
"tags": [
"web-features:table"
],
diff --git a/api/Headers.json b/api/Headers.json
index 3feed275f1e124..1c27ce5a455900 100644
--- a/api/Headers.json
+++ b/api/Headers.json
@@ -187,6 +187,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Headers/entries",
+ "spec_url": "https://fetch.spec.whatwg.org/#headers-class",
"tags": [
"web-features:fetch"
],
@@ -232,6 +233,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Headers/forEach",
+ "spec_url": "https://fetch.spec.whatwg.org/#headers-class",
"tags": [
"web-features:fetch"
],
@@ -415,6 +417,7 @@
"iterate_combined_duplicates": {
"__compat": {
"description": "Iteration combines duplicate header names",
+ "spec_url": "https://fetch.spec.whatwg.org/#concept-header-list-get",
"tags": [
"web-features:fetch"
],
@@ -457,6 +460,7 @@
"iterate_lexicographically": {
"__compat": {
"description": "Iteration is lexicographically sorted",
+ "spec_url": "https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set",
"tags": [
"web-features:fetch"
],
@@ -502,6 +506,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Headers/keys",
+ "spec_url": "https://fetch.spec.whatwg.org/#headers-class",
"tags": [
"web-features:fetch"
],
@@ -593,6 +598,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Headers/values",
+ "spec_url": "https://fetch.spec.whatwg.org/#headers-class",
"tags": [
"web-features:fetch"
],
@@ -638,6 +644,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://fetch.spec.whatwg.org/#headers-class",
"tags": [
"web-features:fetch"
],
diff --git a/api/Highlight.json b/api/Highlight.json
index cdac11010076a7..8d241f742707ff 100644
--- a/api/Highlight.json
+++ b/api/Highlight.json
@@ -73,6 +73,7 @@
"add": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/add",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -107,6 +108,7 @@
"clear": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/clear",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -141,6 +143,7 @@
"delete": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/delete",
+ "spec_url": "https://fetch.spec.whatwg.org/#dom-headers-delete",
"tags": [
"web-features:highlight"
],
@@ -175,6 +178,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/entries",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -209,6 +213,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/forEach",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -243,6 +248,7 @@
"has": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/has",
+ "spec_url": "https://fetch.spec.whatwg.org/#dom-headers-has",
"tags": [
"web-features:highlight"
],
@@ -277,6 +283,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/keys",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -346,6 +353,7 @@
"size": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/size",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -415,6 +423,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Highlight/values",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
@@ -449,6 +458,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight",
"tags": [
"web-features:highlight"
],
diff --git a/api/HighlightRegistry.json b/api/HighlightRegistry.json
index 050557b924e4dc..a6e886540e0bfc 100644
--- a/api/HighlightRegistry.json
+++ b/api/HighlightRegistry.json
@@ -3,7 +3,7 @@
"HighlightRegistry": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry",
- "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlight-registry",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -37,6 +37,7 @@
"clear": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/clear",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -71,6 +72,7 @@
"delete": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/delete",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -105,6 +107,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/entries",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -139,6 +142,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/forEach",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -173,6 +177,7 @@
"get": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/get",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -207,6 +212,7 @@
"has": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/has",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -276,6 +282,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/keys",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -310,6 +317,7 @@
"set": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/set",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -344,6 +352,7 @@
"size": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/size",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -378,6 +387,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/HighlightRegistry/values",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
@@ -412,6 +422,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://drafts.csswg.org/css-highlight-api/#highlightregistry",
"tags": [
"web-features:highlight"
],
diff --git a/api/IDBCursor.json b/api/IDBCursor.json
index 3a5d38b82d57c1..cb20c7ca7498a3 100644
--- a/api/IDBCursor.json
+++ b/api/IDBCursor.json
@@ -76,6 +76,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#cursor-interface",
"tags": [
"web-features:indexeddb"
],
@@ -361,6 +362,7 @@
"binary_keys": {
"__compat": {
"description": "Binary keys",
+ "spec_url": "https://w3c.github.io/IndexedDB/#dom-idbcursor-key",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBCursorWithValue.json b/api/IDBCursorWithValue.json
index cf0a9d015789c4..baa1554b9a3cf1 100644
--- a/api/IDBCursorWithValue.json
+++ b/api/IDBCursorWithValue.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#idbcursorwithvalue",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBDatabase.json b/api/IDBDatabase.json
index e4321cee63d1b0..b78e582631a8d8 100644
--- a/api/IDBDatabase.json
+++ b/api/IDBDatabase.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#database-interface",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBFactory.json b/api/IDBFactory.json
index df609d90b8c9ee..ef1ae0873c6387 100644
--- a/api/IDBFactory.json
+++ b/api/IDBFactory.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#factory-interface",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBIndex.json b/api/IDBIndex.json
index fc6417e5db6a6e..9aa373d438cfc1 100644
--- a/api/IDBIndex.json
+++ b/api/IDBIndex.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#index-interface",
"tags": [
"web-features:indexeddb"
],
@@ -661,6 +662,7 @@
"renaming_through_name_setter": {
"__compat": {
"description": "Renaming through `name` setter",
+ "spec_url": "https://w3c.github.io/IndexedDB/#ref-for-dom-idbindex-name①",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBKeyRange.json b/api/IDBKeyRange.json
index cded8e679928f3..360e3e599c307f 100644
--- a/api/IDBKeyRange.json
+++ b/api/IDBKeyRange.json
@@ -67,6 +67,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#keyrange",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBObjectStore.json b/api/IDBObjectStore.json
index f73de07a294e54..e36c95b957bfd5 100644
--- a/api/IDBObjectStore.json
+++ b/api/IDBObjectStore.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#object-store-interface",
"tags": [
"web-features:indexeddb"
],
@@ -911,6 +912,7 @@
"renaming_through_name_setter": {
"__compat": {
"description": "Renaming through `name` setter",
+ "spec_url": "https://w3c.github.io/IndexedDB/#ref-for-dom-idbobjectstore-name①",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBOpenDBRequest.json b/api/IDBOpenDBRequest.json
index b4b5b051dc92aa..ce9169b595f6dc 100644
--- a/api/IDBOpenDBRequest.json
+++ b/api/IDBOpenDBRequest.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#idbopendbrequest",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBRequest.json b/api/IDBRequest.json
index 2de86e5ab5a885..4cf3abee49b55f 100644
--- a/api/IDBRequest.json
+++ b/api/IDBRequest.json
@@ -71,6 +71,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#request-api",
"tags": [
"web-features:indexeddb"
],
@@ -151,6 +152,7 @@
"DOMException": {
"__compat": {
"description": "`DOMException` value instead of `DOMError`",
+ "spec_url": "https://w3c.github.io/IndexedDB/#ref-for-dom-idbrequest-error①",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBTransaction.json b/api/IDBTransaction.json
index 30d0e1e1a9b1f1..51ec477f89f0f7 100644
--- a/api/IDBTransaction.json
+++ b/api/IDBTransaction.json
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#transaction",
"tags": [
"web-features:indexeddb"
],
@@ -384,6 +385,7 @@
"DOMException": {
"__compat": {
"description": "`DOMException` value instead of `DOMError`",
+ "spec_url": "https://w3c.github.io/IndexedDB/#ref-for-dom-idbtransaction-error①",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/IDBVersionChangeEvent.json b/api/IDBVersionChangeEvent.json
index e1610d580adcb8..fea2549e24c9d0 100644
--- a/api/IDBVersionChangeEvent.json
+++ b/api/IDBVersionChangeEvent.json
@@ -93,6 +93,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/IndexedDB/#events",
"tags": [
"web-features:indexeddb"
],
diff --git a/api/ImageData.json b/api/ImageData.json
index 252075df8fc663..2188e809441859 100644
--- a/api/ImageData.json
+++ b/api/ImageData.json
@@ -91,6 +91,10 @@
},
"settings_parameter": {
"__compat": {
+ "spec_url": [
+ "https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#dom-imagedata",
+ "https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#dom-imagedata-with-data"
+ ],
"support": {
"chrome": {
"version_added": "92"
@@ -188,6 +192,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagedata",
"tags": [
"web-features:canvas-2d"
],
@@ -437,4 +442,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/api/InputEvent.json b/api/InputEvent.json
index 12f91d535d84a3..75d55a5ccb8f1e 100644
--- a/api/InputEvent.json
+++ b/api/InputEvent.json
@@ -215,6 +215,7 @@
"insertFromPasteAsQuotation": {
"__compat": {
"description": "`insertFromPasteAsQuotation` input type",
+ "spec_url": "https://w3c.github.io/input-events/#:~:text=insertFromPasteAsQuotation",
"tags": [
"web-features:input-event"
],
diff --git a/api/IntersectionObserver.json b/api/IntersectionObserver.json
index 72107f744a6040..c8d28065003749 100644
--- a/api/IntersectionObserver.json
+++ b/api/IntersectionObserver.json
@@ -79,6 +79,7 @@
"options_root_parameter_Document": {
"__compat": {
"description": "`options.root` parameter can be a `Document`",
+ "spec_url": "https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-root",
"tags": [
"web-features:intersection-observer"
],
@@ -299,6 +300,7 @@
"scrollMargin": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/IntersectionObserver/scrollMargin",
+ "spec_url": "https://w3c.github.io/IntersectionObserver/#dom-intersectionobserver-scrollmargin",
"tags": [
"web-features:intersection-observer"
],
diff --git a/api/KeyboardEvent.json b/api/KeyboardEvent.json
index 189401f2db7999..1a066499d97d45 100644
--- a/api/KeyboardEvent.json
+++ b/api/KeyboardEvent.json
@@ -326,6 +326,7 @@
"key_parameter_alt": {
"__compat": {
"description": "`\"Alt\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -365,6 +366,7 @@
"key_parameter_altgraph": {
"__compat": {
"description": "`\"AltGraph\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -399,6 +401,7 @@
"key_parameter_capslock": {
"__compat": {
"description": "`\"CapsLock\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -438,6 +441,7 @@
"key_parameter_control": {
"__compat": {
"description": "`\"Control\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -477,6 +481,7 @@
"key_parameter_fn": {
"__compat": {
"description": "`\"Fn\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -511,6 +516,7 @@
"key_parameter_meta": {
"__compat": {
"description": "`\"Meta\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -545,6 +551,7 @@
"key_parameter_numlock": {
"__compat": {
"description": "`\"NumLock\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -626,6 +633,7 @@
"key_parameter_scrolllock": {
"__compat": {
"description": "`\"ScrollLock\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -673,6 +681,7 @@
"key_parameter_shift": {
"__compat": {
"description": "`\"Shift\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -712,6 +721,7 @@
"key_parameter_symbol": {
"__compat": {
"description": "`\"Symbol\"` as `key` parameter",
+ "spec_url": "https://www.w3.org/TR/uievents-key/#keys-modifier",
"tags": [
"web-features:keyboard-events"
],
@@ -864,6 +874,7 @@
"dead_key": {
"__compat": {
"description": "Dead key",
+ "spec_url": "https://www.w3.org/TR/uievents/#dead-key",
"tags": [
"web-features:keyboard-events"
],
@@ -898,6 +909,7 @@
"non_printable_keys": {
"__compat": {
"description": "Non-printable keys",
+ "spec_url": "https://w3c.github.io/uievents/#dom-keyboardevent-key",
"tags": [
"web-features:keyboard-events"
],
@@ -938,6 +950,7 @@
"printable_key": {
"__compat": {
"description": "Printable keys",
+ "spec_url": "https://w3c.github.io/uievents/#dom-keyboardevent-key",
"tags": [
"web-features:keyboard-events"
],
diff --git a/api/KeyboardLayoutMap.json b/api/KeyboardLayoutMap.json
index ce15527ee67f2b..6954c11a262a6d 100644
--- a/api/KeyboardLayoutMap.json
+++ b/api/KeyboardLayoutMap.json
@@ -3,7 +3,7 @@
"KeyboardLayoutMap": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap",
- "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap",
"tags": [
"web-features:keyboard-map"
],
@@ -39,6 +39,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/entries",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -73,6 +74,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/forEach",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -107,6 +109,7 @@
"get": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/get",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -141,6 +144,7 @@
"has": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/has",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -175,6 +179,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/keys",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -209,6 +214,7 @@
"size": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/size",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -243,6 +249,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/KeyboardLayoutMap/values",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap-interface",
"tags": [
"web-features:keyboard-map"
],
@@ -277,6 +284,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://wicg.github.io/keyboard-map/#keyboardlayoutmap",
"tags": [
"web-features:keyboard-map"
],
diff --git a/api/LargestContentfulPaint.json b/api/LargestContentfulPaint.json
index 5a10674222efb2..4f8867b78dc4a5 100644
--- a/api/LargestContentfulPaint.json
+++ b/api/LargestContentfulPaint.json
@@ -269,7 +269,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/MIDIInputMap.json b/api/MIDIInputMap.json
index 3c54094670b012..878149643a0c6a 100644
--- a/api/MIDIInputMap.json
+++ b/api/MIDIInputMap.json
@@ -39,6 +39,7 @@
},
"entries": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -75,6 +76,7 @@
},
"forEach": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -111,6 +113,7 @@
},
"get": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -147,6 +150,7 @@
},
"has": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -183,6 +187,7 @@
},
"keys": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -219,6 +224,7 @@
},
"size": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -255,6 +261,7 @@
},
"values": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -292,6 +299,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
diff --git a/api/MIDIOutputMap.json b/api/MIDIOutputMap.json
index 3f23d93954f5c0..bc7f93fd43153d 100644
--- a/api/MIDIOutputMap.json
+++ b/api/MIDIOutputMap.json
@@ -39,6 +39,7 @@
},
"entries": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -75,6 +76,7 @@
},
"forEach": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -111,6 +113,7 @@
},
"get": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -147,6 +150,7 @@
},
"has": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -183,6 +187,7 @@
},
"keys": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -219,6 +224,7 @@
},
"size": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -255,6 +261,7 @@
},
"values": {
"__compat": {
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
@@ -292,6 +299,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-maplike",
"tags": [
"web-features:web-midi"
],
diff --git a/api/MediaDevices.json b/api/MediaDevices.json
index e406bacec3191b..e068e5b1f5ce38 100644
--- a/api/MediaDevices.json
+++ b/api/MediaDevices.json
@@ -197,6 +197,7 @@
"__compat": {
"description": "Audio capture support",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Screen_Capture_API/Using_Screen_Capture#capturing_shared_audio",
+ "spec_url": "https://w3c.github.io/mediacapture-screen-share/#capturing-audio",
"tags": [
"web-features:screen-capture"
],
@@ -1157,6 +1158,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/mediacapture-main/#dom-navigator-getusermedia",
"tags": [
"web-features:media-capture"
],
diff --git a/api/MediaKeyStatusMap.json b/api/MediaKeyStatusMap.json
index 083a188001f0b1..0511c93e288468 100644
--- a/api/MediaKeyStatusMap.json
+++ b/api/MediaKeyStatusMap.json
@@ -41,6 +41,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/entries",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:encrypted-media-extensions"
],
@@ -79,6 +80,7 @@
"forEach": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/forEach",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:encrypted-media-extensions"
],
@@ -195,6 +197,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/keys",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:encrypted-media-extensions"
],
@@ -272,6 +275,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/values",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:encrypted-media-extensions"
],
@@ -310,6 +314,7 @@
"@@iterator": {
"__compat": {
"description": "[Symbol.iterator]",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:encrypted-media-extensions"
],
diff --git a/api/MediaQueryList.json b/api/MediaQueryList.json
index 716d6d5175c019..c4dafc1019e9e5 100644
--- a/api/MediaQueryList.json
+++ b/api/MediaQueryList.json
@@ -3,7 +3,7 @@
"MediaQueryList": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaQueryList",
- "spec_url": "https://drafts.csswg.org/cssom-view/#the-mediaquerylist-interface",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#mediaquerylist",
"tags": [
"web-features:matchmedia"
],
@@ -46,6 +46,7 @@
"EventTarget_inheritance": {
"__compat": {
"description": "`MediaQueryList` inherits `EventTarget`",
+ "spec_url": "https://drafts.csswg.org/cssom-view/#mediaquerylist",
"tags": [
"web-features:matchmedia"
],
diff --git a/api/MediaRecorder.json b/api/MediaRecorder.json
index 8cbbc093c5a0d4..4bfa68c11e16ac 100644
--- a/api/MediaRecorder.json
+++ b/api/MediaRecorder.json
@@ -85,6 +85,7 @@
"options_parameter": {
"__compat": {
"description": "`options` parameter",
+ "spec_url": "https://w3c.github.io/mediacapture-record/#dictdef-mediarecorderoptions",
"tags": [
"web-features:mediastream-recording"
],
diff --git a/api/MediaSession.json b/api/MediaSession.json
index 2df21ecf5ce4bb..18e3ff317a613d 100644
--- a/api/MediaSession.json
+++ b/api/MediaSession.json
@@ -175,6 +175,7 @@
"hangup_type": {
"__compat": {
"description": "`\"hangup\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-hangup",
"tags": [
"web-features:media-session"
],
@@ -211,6 +212,7 @@
"nextslide_type": {
"__compat": {
"description": "`\"nextslide\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-nextslide",
"tags": [
"web-features:media-session"
],
@@ -247,6 +249,7 @@
"nexttrack_type": {
"__compat": {
"description": "`\"nexttrack\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-nexttrack",
"tags": [
"web-features:media-session"
],
@@ -285,6 +288,7 @@
"pause_type": {
"__compat": {
"description": "`\"pause\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-pause",
"tags": [
"web-features:media-session"
],
@@ -323,6 +327,7 @@
"play_type": {
"__compat": {
"description": "`\"play\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-play",
"tags": [
"web-features:media-session"
],
@@ -361,6 +366,7 @@
"previousslide_type": {
"__compat": {
"description": "`\"previousslide\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-previousslide",
"tags": [
"web-features:media-session"
],
@@ -397,6 +403,7 @@
"previoustrack_type": {
"__compat": {
"description": "`\"previoustrack\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-previoustrack",
"tags": [
"web-features:media-session"
],
@@ -435,6 +442,7 @@
"seekbackward_type": {
"__compat": {
"description": "`\"seekbackward\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-seekbackward",
"tags": [
"web-features:media-session"
],
@@ -473,6 +481,7 @@
"seekforward_type": {
"__compat": {
"description": "`\"seekforward\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-seekforward",
"tags": [
"web-features:media-session"
],
@@ -511,6 +520,7 @@
"seekto_type": {
"__compat": {
"description": "`\"seekto\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-seekto",
"tags": [
"web-features:media-session"
],
@@ -547,6 +557,7 @@
"skipad_type": {
"__compat": {
"description": "`\"skipad\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-skipad",
"tags": [
"web-features:media-session"
],
@@ -583,6 +594,7 @@
"stop_type": {
"__compat": {
"description": "`\"stop\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-stop",
"tags": [
"web-features:media-session"
],
@@ -619,6 +631,7 @@
"togglecamera_type": {
"__compat": {
"description": "`\"togglecamera\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-togglecamera",
"tags": [
"web-features:media-session"
],
@@ -655,6 +668,7 @@
"togglemicrophone_type": {
"__compat": {
"description": "`\"togglemicrophone\"` type",
+ "spec_url": "https://w3c.github.io/mediasession/#dom-mediasessionaction-togglemicrophone",
"tags": [
"web-features:media-session"
],
diff --git a/api/MediaSource.json b/api/MediaSource.json
index cdd580509c4350..b4bf7dd4b83827 100644
--- a/api/MediaSource.json
+++ b/api/MediaSource.json
@@ -119,6 +119,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/media-source/#mediasource",
"tags": [
"web-features:media-source"
],
diff --git a/api/MerchantValidationEvent.json b/api/MerchantValidationEvent.json
index 72baf7e6990d7d..e37be65d0e0ada 100644
--- a/api/MerchantValidationEvent.json
+++ b/api/MerchantValidationEvent.json
@@ -34,7 +34,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
},
@@ -73,7 +73,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -113,7 +113,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -152,7 +152,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
@@ -191,7 +191,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/MessagePort.json b/api/MessagePort.json
index 8b24daf8d263b1..854d577ef98bcc 100644
--- a/api/MessagePort.json
+++ b/api/MessagePort.json
@@ -72,6 +72,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://html.spec.whatwg.org/multipage/web-messaging.html#message-ports",
"tags": [
"web-features:channel-messaging"
],
diff --git a/api/NDEFMessage.json b/api/NDEFMessage.json
index 57a5924f7b9f61..eae87a7952bec5 100644
--- a/api/NDEFMessage.json
+++ b/api/NDEFMessage.json
@@ -77,6 +77,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/web-nfc/#dom-ndefmessage",
"tags": [
"web-features:web-nfc"
],
diff --git a/api/NDEFReader.json b/api/NDEFReader.json
index 1f2e64907c1f17..8c2f5c66db67dc 100644
--- a/api/NDEFReader.json
+++ b/api/NDEFReader.json
@@ -77,6 +77,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/web-nfc/#the-ndefreader-object",
"tags": [
"web-features:web-nfc"
],
diff --git a/api/NDEFReadingEvent.json b/api/NDEFReadingEvent.json
index 7c0c64de3c7c99..db856e650146f1 100644
--- a/api/NDEFReadingEvent.json
+++ b/api/NDEFReadingEvent.json
@@ -77,6 +77,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/web-nfc/#dom-ndefreadingevent",
"tags": [
"web-features:web-nfc"
],
diff --git a/api/NDEFRecord.json b/api/NDEFRecord.json
index 74b49122c5659a..1daae323b0926e 100644
--- a/api/NDEFRecord.json
+++ b/api/NDEFRecord.json
@@ -77,6 +77,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/web-nfc/#dom-ndefrecord",
"tags": [
"web-features:web-nfc"
],
diff --git a/api/Navigator.json b/api/Navigator.json
index f63d008cf18aec..3e1b8df73d4299 100644
--- a/api/Navigator.json
+++ b/api/Navigator.json
@@ -399,7 +399,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -1339,7 +1339,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
@@ -1421,6 +1421,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/battery/#dom-navigator-getbattery",
"tags": [
"web-features:battery"
],
@@ -1508,6 +1509,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/gamepad/#dom-navigator-getgamepads",
"tags": [
"web-features:gamepad"
],
@@ -2545,6 +2547,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/mediacapture-main/#mediadevices",
"tags": [
"web-features:media-capture"
],
@@ -3328,6 +3331,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3371,6 +3375,7 @@
"scheme_parameter_bitcoin": {
"__compat": {
"description": "`scheme` parameter supports `bitcoin`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3590,6 +3595,7 @@
"scheme_parameter_ftp": {
"__compat": {
"description": "`scheme` parameter supports `ftp`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3627,6 +3633,7 @@
"scheme_parameter_ftps": {
"__compat": {
"description": "`scheme` parameter supports `ftps`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3664,6 +3671,7 @@
"scheme_parameter_geo": {
"__compat": {
"description": "`scheme` parameter supports `geo`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3739,6 +3747,7 @@
"scheme_parameter_im": {
"__compat": {
"description": "`scheme` parameter supports `im`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3850,6 +3859,7 @@
"scheme_parameter_irc": {
"__compat": {
"description": "`scheme` parameter supports `irc`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3891,6 +3901,7 @@
"scheme_parameter_ircs": {
"__compat": {
"description": "`scheme` parameter supports `ircs`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3930,6 +3941,7 @@
"scheme_parameter_magnet": {
"__compat": {
"description": "`scheme` parameter supports `magnet`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -3969,6 +3981,7 @@
"scheme_parameter_mailto": {
"__compat": {
"description": "`scheme` parameter supports `mailto`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4010,6 +4023,7 @@
"scheme_parameter_matrix": {
"__compat": {
"description": "`scheme` parameter supports `matrix`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4049,6 +4063,7 @@
"scheme_parameter_mms": {
"__compat": {
"description": "`scheme` parameter supports `mms`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4090,6 +4105,7 @@
"scheme_parameter_news": {
"__compat": {
"description": "`scheme` parameter supports `news`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4131,6 +4147,7 @@
"scheme_parameter_nntp": {
"__compat": {
"description": "`scheme` parameter supports `nntp`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4172,6 +4189,7 @@
"scheme_parameter_openpgp4fpr": {
"__compat": {
"description": "`scheme` parameter supports `openpgp4fpr`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4211,6 +4229,7 @@
"scheme_parameter_sftp": {
"__compat": {
"description": "`scheme` parameter supports `sftp`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4248,6 +4267,7 @@
"scheme_parameter_sip": {
"__compat": {
"description": "`scheme` parameter supports `sip`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4287,6 +4307,7 @@
"scheme_parameter_sms": {
"__compat": {
"description": "`scheme` parameter supports `sms`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4328,6 +4349,7 @@
"scheme_parameter_smsto": {
"__compat": {
"description": "`scheme` parameter supports `smsto`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4403,6 +4425,7 @@
"scheme_parameter_ssh": {
"__compat": {
"description": "`scheme` parameter supports `ssh`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4442,6 +4465,7 @@
"scheme_parameter_tel": {
"__compat": {
"description": "`scheme` parameter supports `tel`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4483,6 +4507,7 @@
"scheme_parameter_urn": {
"__compat": {
"description": "`scheme` parameter supports `urn`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4524,6 +4549,7 @@
"scheme_parameter_webcal": {
"__compat": {
"description": "`scheme` parameter supports `webcal`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4565,6 +4591,7 @@
"scheme_parameter_wtai": {
"__compat": {
"description": "`scheme` parameter supports `wtai`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4604,6 +4631,7 @@
"scheme_parameter_xmpp": {
"__compat": {
"description": "`scheme` parameter supports `xmpp`",
+ "spec_url": "https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme",
"tags": [
"web-features:registerprotocolhandler"
],
@@ -4746,6 +4774,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://webaudio.github.io/web-midi-api/#dom-navigator-requestmidiaccess",
"tags": [
"web-features:web-midi"
],
@@ -5597,6 +5626,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://wicg.github.io/ua-client-hints/#dom-navigatorua-useragentdata",
"tags": [
"web-features:ua-client-hints"
],
diff --git a/api/NetworkInformation.json b/api/NetworkInformation.json
index e06f358968ded9..9e796d19f640e6 100644
--- a/api/NetworkInformation.json
+++ b/api/NetworkInformation.json
@@ -46,6 +46,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://wicg.github.io/netinfo/#networkinformation-interface",
"tags": [
"web-features:network-information"
],
diff --git a/api/NodeList.json b/api/NodeList.json
index 0e1fb1beb4cb08..2e1d8df5aeab93 100644
--- a/api/NodeList.json
+++ b/api/NodeList.json
@@ -46,6 +46,7 @@
"entries": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/NodeList/entries",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:dom"
],
@@ -163,6 +164,7 @@
"keys": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/NodeList/keys",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:dom"
],
@@ -243,6 +245,7 @@
"values": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/NodeList/values",
+ "spec_url": "https://webidl.spec.whatwg.org/#js-iterable",
"tags": [
"web-features:dom"
],
diff --git a/api/NotRestoredReasonDetails.json b/api/NotRestoredReasonDetails.json
index 0e48798671a064..531ebea2b049b1 100644
--- a/api/NotRestoredReasonDetails.json
+++ b/api/NotRestoredReasonDetails.json
@@ -72,6 +72,7 @@
"toJSON": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/NotRestoredReasonDetails/toJSON",
+ "spec_url": "https://html.spec.whatwg.org/multipage/nav-history-apis.html#notrestoredreasondetails",
"tags": [
"web-features:bfcache-blocking-reasons"
],
diff --git a/api/NotRestoredReasons.json b/api/NotRestoredReasons.json
index 316bd8d234168b..8447866f9415df 100644
--- a/api/NotRestoredReasons.json
+++ b/api/NotRestoredReasons.json
@@ -212,6 +212,7 @@
"toJSON": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/NotRestoredReasons/toJSON",
+ "spec_url": "https://html.spec.whatwg.org/multipage/nav-history-apis.html#notrestoredreasons",
"tags": [
"web-features:bfcache-blocking-reasons"
],
diff --git a/api/Notification.json b/api/Notification.json
index 2dda3cd41125bf..6337339dcaf5aa 100644
--- a/api/Notification.json
+++ b/api/Notification.json
@@ -3,7 +3,7 @@
"Notification": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Notification",
- "spec_url": "https://notifications.spec.whatwg.org/#api",
+ "spec_url": "https://notifications.spec.whatwg.org/#notification",
"tags": [
"web-features:notifications"
],
@@ -150,6 +150,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://notifications.spec.whatwg.org/#notification",
"tags": [
"web-features:notifications"
],
@@ -187,6 +188,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://notifications.spec.whatwg.org/#api",
"tags": [
"web-features:notifications"
],
@@ -1017,6 +1019,7 @@
"returns_promise": {
"__compat": {
"description": "Returns a `Promise`",
+ "spec_url": "https://notifications.spec.whatwg.org/#dom-notification-requestpermission",
"tags": [
"web-features:notifications"
],
diff --git a/api/OfflineAudioContext.json b/api/OfflineAudioContext.json
index d5b60b4cef3d8b..9f6767706cd4be 100644
--- a/api/OfflineAudioContext.json
+++ b/api/OfflineAudioContext.json
@@ -104,6 +104,7 @@
"options_parameter": {
"__compat": {
"description": "`options` parameter (accepts all parameters as a single dictionary)",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontext-offlineaudiocontext",
"tags": [
"web-features:offline-audio-context"
],
@@ -292,6 +293,7 @@
"returns_promise": {
"__compat": {
"description": "Returns a `Promise`",
+ "spec_url": "https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontext-startrendering",
"tags": [
"web-features:offline-audio-context"
],
diff --git a/api/OffscreenCanvas.json b/api/OffscreenCanvas.json
index b7289cef05ff67..027538fee4f9ee 100644
--- a/api/OffscreenCanvas.json
+++ b/api/OffscreenCanvas.json
@@ -260,6 +260,7 @@
"bitmaprenderer_context": {
"__compat": {
"description": "`bitmaprenderer` context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-bitmaprenderer",
"tags": [
"web-features:offscreen-canvas"
],
@@ -294,6 +295,7 @@
"webgl_context": {
"__compat": {
"description": "`webgl` context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-webgl",
"tags": [
"web-features:offscreen-canvas"
],
@@ -328,6 +330,7 @@
"webgl2_context": {
"__compat": {
"description": "`webgl2` context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-webgl2",
"tags": [
"web-features:offscreen-canvas"
],
@@ -408,6 +411,7 @@
"2d_context": {
"__compat": {
"description": "`2d` context",
+ "spec_url": "https://html.spec.whatwg.org/multipage/canvas.html#canvas-context-2d",
"tags": [
"web-features:offscreen-canvas"
],
diff --git a/api/PaymentManager.json b/api/PaymentManager.json
index 15991f8dc319ea..82a5f55282b933 100644
--- a/api/PaymentManager.json
+++ b/api/PaymentManager.json
@@ -40,6 +40,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/web-based-payment-handler/#paymentmanager-interface",
"tags": [
"web-features:payment-handler"
],
diff --git a/api/PaymentRequest.json b/api/PaymentRequest.json
index 848cb9911a1ec0..589868caa2eca2 100644
--- a/api/PaymentRequest.json
+++ b/api/PaymentRequest.json
@@ -58,7 +58,7 @@
"__compat": {
"description": "`PaymentRequest()` constructor",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/PaymentRequest/PaymentRequest",
- "spec_url": "https://w3c.github.io/payment-request/#constructor",
+ "spec_url": "https://w3c.github.io/payment-request/#dom-paymentrequest",
"tags": [
"web-features:payment-request"
],
@@ -108,6 +108,7 @@
"__compat": {
"description": "`secure-payment-confirmation` method",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/Payment_Request_API/Concepts#secure-payment-confirmation",
+ "spec_url": "https://w3c.github.io/payment-request/#dom-paymentrequest",
"tags": [
"web-features:payment-request"
],
@@ -330,7 +331,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": true
}
}
diff --git a/api/PaymentRequestUpdateEvent.json b/api/PaymentRequestUpdateEvent.json
index 9ceb3ccc4944e7..486c0c8435f17b 100644
--- a/api/PaymentRequestUpdateEvent.json
+++ b/api/PaymentRequestUpdateEvent.json
@@ -104,6 +104,7 @@
"secure_context_required": {
"__compat": {
"description": "Secure context required",
+ "spec_url": "https://w3c.github.io/payment-request/#paymentrequestupdateevent-interface",
"tags": [
"web-features:payment-request"
],
diff --git a/api/PaymentResponse.json b/api/PaymentResponse.json
index 1dfee7e04da172..48715b2974cb53 100644
--- a/api/PaymentResponse.json
+++ b/api/PaymentResponse.json
@@ -645,6 +645,7 @@
"__compat": {
"description": "`toJSON()`",
"mdn_url": "https://developer.mozilla.org/docs/Web/API/PaymentResponse/toJSON",
+ "spec_url": "https://webidl.spec.whatwg.org/#default-tojson-steps",
"tags": [
"web-features:payment-request"
],
diff --git a/api/Performance.json b/api/Performance.json
index afdba2b42099d7..f02e692d33bd8e 100644
--- a/api/Performance.json
+++ b/api/Performance.json
@@ -597,6 +597,7 @@
"markOptions_parameter": {
"__compat": {
"description": "`markOptions` parameter",
+ "spec_url": "https://w3c.github.io/user-timing/#dom-performancemarkoptions",
"tags": [
"web-features:performance"
],
@@ -640,6 +641,7 @@
"returns_performancemark": {
"__compat": {
"description": "Returns `PerformanceMark`",
+ "spec_url": "https://w3c.github.io/user-timing/#dom-performance-mark",
"tags": [
"web-features:performance"
],
@@ -782,6 +784,7 @@
"measureOptions_parameter": {
"__compat": {
"description": "`measureOptions` parameter",
+ "spec_url": "https://w3c.github.io/user-timing/#dom-performancemeasureoptions",
"tags": [
"web-features:performance"
],
@@ -825,6 +828,7 @@
"returns_performancemeasure": {
"__compat": {
"description": "Returns `PerformanceMeasure`",
+ "spec_url": "https://w3c.github.io/user-timing/#dom-performance-measure",
"tags": [
"web-features:performance"
],
diff --git a/api/PerformanceElementTiming.json b/api/PerformanceElementTiming.json
index 614db161ee6332..dcf36adf0b5de3 100644
--- a/api/PerformanceElementTiming.json
+++ b/api/PerformanceElementTiming.json
@@ -405,7 +405,7 @@
},
"status": {
"experimental": true,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/api/PerformanceEntry.json b/api/PerformanceEntry.json
index 5bea1aefd9c55c..082a76a81dd056 100644
--- a/api/PerformanceEntry.json
+++ b/api/PerformanceEntry.json
@@ -3,7 +3,7 @@
"PerformanceEntry": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/PerformanceEntry",
- "spec_url": "https://w3c.github.io/performance-timeline/#dom-performanceentry",
+ "spec_url": "https://w3c.github.io/performance-timeline/#performanceentry",
"tags": [
"web-features:performance"
],
@@ -65,6 +65,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/performance-timeline/#performanceentry",
"tags": [
"web-features:performance"
],
diff --git a/api/PerformanceObserver.json b/api/PerformanceObserver.json
index dfe3c2f6bc3eed..dbda3a3a4049df 100644
--- a/api/PerformanceObserver.json
+++ b/api/PerformanceObserver.json
@@ -3,7 +3,7 @@
"PerformanceObserver": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/PerformanceObserver",
- "spec_url": "https://w3c.github.io/performance-timeline/#dom-performanceobserver",
+ "spec_url": "https://w3c.github.io/performance-timeline/#performanceobserver",
"tags": [
"web-features:performance"
],
@@ -140,6 +140,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/performance-timeline/#performanceobserver",
"tags": [
"web-features:performance"
],
diff --git a/api/PerformanceResourceTiming.json b/api/PerformanceResourceTiming.json
index b34dce260e9e9d..3177e4b8907f0c 100644
--- a/api/PerformanceResourceTiming.json
+++ b/api/PerformanceResourceTiming.json
@@ -3,7 +3,7 @@
"PerformanceResourceTiming": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming",
- "spec_url": "https://w3c.github.io/resource-timing/#resources-included-in-the-performanceresourcetiming-interface",
+ "spec_url": "https://w3c.github.io/resource-timing/#performanceresourcetiming",
"tags": [
"web-features:resource-timing"
],
@@ -62,6 +62,7 @@
"worker_support": {
"__compat": {
"description": "Available in workers",
+ "spec_url": "https://w3c.github.io/resource-timing/#performanceresourcetiming",
"tags": [
"web-features:resource-timing"
],
diff --git a/api/Permissions.json b/api/Permissions.json
index d72f8ecacc47cf..5743a73f73a66c 100644
--- a/api/Permissions.json
+++ b/api/Permissions.json
@@ -40,6 +40,7 @@
"permission_accelerometer": {
"__compat": {
"description": "`accelerometer` permission",
+ "spec_url": "https://w3c.github.io/sensors/#permissions-policy-api",
"tags": [
"web-features:accelerometer"
],
diff --git a/css/at-rules/font-face.json b/css/at-rules/font-face.json
index ce02e9c5cde636..1aeb6c12db40e8 100644
--- a/css/at-rules/font-face.json
+++ b/css/at-rules/font-face.json
@@ -50,6 +50,7 @@
"OpenType_CBDT_CBLC": {
"__compat": {
"description": "OpenType CBDT and CBLC rendering",
+ "spec_url": "https://drafts.csswg.org/css-fonts-4/#valdef-color-font-tech-color-cbdt",
"tags": [
"web-features:font-face"
],
@@ -84,6 +85,7 @@
"OpenType_COLRv0": {
"__compat": {
"description": "OpenType COLRv0 rendering",
+ "spec_url": "https://drafts.csswg.org/css-fonts-4/#valdef-color-font-tech-color-colrv0",
"tags": [
"web-features:colrv0"
],
@@ -118,6 +120,7 @@
"OpenType_COLRv1": {
"__compat": {
"description": "OpenType COLRv1 rendering",
+ "spec_url": "https://drafts.csswg.org/css-fonts-4/#valdef-color-font-tech-color-colrv1",
"tags": [
"web-features:colrv1"
],
@@ -152,6 +155,7 @@
"OpenType_SBIX": {
"__compat": {
"description": "OpenType SBIX rendering",
+ "spec_url": "https://drafts.csswg.org/css-fonts-4/#valdef-color-font-tech-color-sbix",
"tags": [
"web-features:font-face"
],
@@ -186,6 +190,7 @@
"OpenType_SVG": {
"__compat": {
"description": "OpenType SVG rendering",
+ "spec_url": "https://drafts.csswg.org/css-fonts-4/#valdef-color-font-tech-color-svg",
"tags": [
"web-features:svg"
],
@@ -896,6 +901,7 @@
"drop_invalid_item": {
"__compat": {
"description": "Drop invalid item (not src string)",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#font-face-src-formats",
"tags": [
"web-features:font-face"
],
@@ -932,6 +938,7 @@
"format_keyword": {
"__compat": {
"description": "`format(keyword)`",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#format()",
"tags": [
"web-features:font-face"
],
@@ -1004,6 +1011,7 @@
"tech_keyword": {
"__compat": {
"description": "`tech(keyword)`",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#tech()",
"tags": [
"web-features:font-face"
],
diff --git a/css/at-rules/font-feature-values.json b/css/at-rules/font-feature-values.json
index 843d35e112f4b8..bf1785def2cf29 100644
--- a/css/at-rules/font-feature-values.json
+++ b/css/at-rules/font-feature-values.json
@@ -40,6 +40,7 @@
"__compat": {
"description": "`@annotation`",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-annotation",
"tags": [
"web-features:font-variant-alternates"
],
@@ -75,6 +76,7 @@
"__compat": {
"description": "`@character-variant`",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-character-variant",
"tags": [
"web-features:font-variant-alternates"
],
@@ -109,6 +111,7 @@
"historical-forms": {
"__compat": {
"description": "`@historical-forms`",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-historical-forms",
"tags": [
"web-features:font-variant-alternates"
],
@@ -144,6 +147,7 @@
"__compat": {
"description": "`@ornaments`",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-ornaments",
"tags": [
"web-features:font-variant-alternates"
],
@@ -179,6 +183,7 @@
"__compat": {
"description": "`@styleset`",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-styleset",
"tags": [
"web-features:font-variant-alternates"
],
@@ -214,6 +219,7 @@
"__compat": {
"description": "`@stylistic`",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-stylistic",
"tags": [
"web-features:font-variant-alternates"
],
@@ -249,6 +255,7 @@
"__compat": {
"description": "`@swash`",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values",
+ "spec_url": "https://drafts.csswg.org/css-fonts/#at-ruledef-font-feature-values-swash",
"tags": [
"web-features:font-variant-alternates"
],
diff --git a/css/at-rules/keyframes.json b/css/at-rules/keyframes.json
index c45bd61d77b1ca..60b9ef18ef89dc 100644
--- a/css/at-rules/keyframes.json
+++ b/css/at-rules/keyframes.json
@@ -108,6 +108,7 @@
"ignore_important_declarations": {
"__compat": {
"description": "Ignore `!important` declarations",
+ "spec_url": "https://drafts.csswg.org/css-animations/#keyframes",
"tags": [
"web-features:animations-css"
],
diff --git a/css/at-rules/media.json b/css/at-rules/media.json
index fd22a7d6e8e34a..04528855fb1264 100644
--- a/css/at-rules/media.json
+++ b/css/at-rules/media.json
@@ -1375,6 +1375,7 @@
"__compat": {
"description": "`or` syntax from Media Queries Level 4",
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Guides/Media_queries/Using",
+ "spec_url": "https://drafts.csswg.org/mediaqueries-5/#typedef-media-or",
"tags": [
"web-features:media-queries"
],
@@ -1869,6 +1870,7 @@
"range_syntax": {
"__compat": {
"description": "Range syntax from Media Queries Level 4",
+ "spec_url": "https://drafts.csswg.org/mediaqueries-5/#typedef-mf-range",
"tags": [
"web-features:media-query-range-syntax"
],
diff --git a/css/at-rules/supports.json b/css/at-rules/supports.json
index 7f34c7a3584b4a..3820ba80b5f588 100644
--- a/css/at-rules/supports.json
+++ b/css/at-rules/supports.json
@@ -49,6 +49,7 @@
"font-format": {
"__compat": {
"description": "`font-format()`",
+ "spec_url": "https://drafts.csswg.org/css-conditional-5/#typedef-supports-font-format-fn",
"tags": [
"web-features:supports"
],
@@ -83,6 +84,7 @@
"font-tech": {
"__compat": {
"description": "`font-tech()`",
+ "spec_url": "https://drafts.csswg.org/css-conditional-5/#typedef-supports-font-tech-fn",
"tags": [
"web-features:supports"
],
@@ -117,6 +119,7 @@
"selector": {
"__compat": {
"description": "`selector()`",
+ "spec_url": "https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn",
"tags": [
"web-features:supports"
],
diff --git a/css/properties/accent-color.json b/css/properties/accent-color.json
index 54be774f3dfa19..0b3566683e27e7 100644
--- a/css/properties/accent-color.json
+++ b/css/properties/accent-color.json
@@ -43,6 +43,7 @@
},
"auto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-ui/#valdef-accent-color-auto",
"tags": [
"web-features:accent-color"
],
diff --git a/css/properties/align-content.json b/css/properties/align-content.json
index 465ea78de3c225..b7a6856b3fd6ae 100644
--- a/css/properties/align-content.json
+++ b/css/properties/align-content.json
@@ -259,6 +259,10 @@
"safe_unsafe": {
"__compat": {
"description": "`safe` and `unsafe`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-align-3/#valdef-overflow-position-safe",
+ "https://drafts.csswg.org/css-align-3/#valdef-overflow-position-unsafe"
+ ],
"tags": [
"web-features:flexbox"
],
@@ -366,6 +370,7 @@
},
"stretch": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-flexbox/#valdef-align-content-stretch",
"tags": [
"web-features:flexbox"
],
diff --git a/css/properties/align-items.json b/css/properties/align-items.json
index 2818bcd337b67b..30b5871e73c6a9 100644
--- a/css/properties/align-items.json
+++ b/css/properties/align-items.json
@@ -155,6 +155,7 @@
},
"baseline": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-flexbox-1/#valdef-align-items-baseline",
"tags": [
"web-features:flexbox"
],
@@ -197,6 +198,7 @@
"first_baseline": {
"__compat": {
"description": "`first baseline`",
+ "spec_url": "https://drafts.csswg.org/css-align-3/#valdef-justify-self-first-baseline",
"tags": [
"web-features:flexbox"
],
@@ -231,6 +233,7 @@
"last_baseline": {
"__compat": {
"description": "`last baseline`",
+ "spec_url": "https://drafts.csswg.org/css-align-3/#valdef-justify-self-last-baseline",
"tags": [
"web-features:flexbox"
],
@@ -265,6 +268,10 @@
"safe_unsafe": {
"__compat": {
"description": "`safe` and `unsafe`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-align-3/#valdef-overflow-position-safe",
+ "https://drafts.csswg.org/css-align-3/#valdef-overflow-position-unsafe"
+ ],
"tags": [
"web-features:flexbox"
],
@@ -300,6 +307,10 @@
"start_end": {
"__compat": {
"description": "`start` and `end`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-align-3/#valdef-self-position-start",
+ "https://drafts.csswg.org/css-align-3/#valdef-self-position-end"
+ ],
"tags": [
"web-features:flexbox"
],
@@ -382,6 +393,10 @@
"start_end": {
"__compat": {
"description": "`start` and `end`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-align-3/#valdef-self-position-start",
+ "https://drafts.csswg.org/css-align-3/#valdef-self-position-end"
+ ],
"tags": [
"web-features:grid"
],
diff --git a/css/properties/align-self.json b/css/properties/align-self.json
index e71513023bef1d..23e9fefd1b1afd 100644
--- a/css/properties/align-self.json
+++ b/css/properties/align-self.json
@@ -242,6 +242,7 @@
"first_baseline": {
"__compat": {
"description": "`first baseline`",
+ "spec_url": "https://drafts.csswg.org/css-align-3/#valdef-justify-self-first-baseline",
"tags": [
"web-features:flexbox"
],
@@ -276,6 +277,7 @@
"last_baseline": {
"__compat": {
"description": "`last baseline`",
+ "spec_url": "https://drafts.csswg.org/css-align-3/#valdef-justify-self-last-baseline",
"tags": [
"web-features:flexbox"
],
@@ -310,6 +312,10 @@
"safe_unsafe": {
"__compat": {
"description": "`safe` and `unsafe`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-align-3/#valdef-overflow-position-safe",
+ "https://drafts.csswg.org/css-align-3/#valdef-overflow-position-unsafe"
+ ],
"tags": [
"web-features:flexbox"
],
@@ -345,6 +351,10 @@
"start_end": {
"__compat": {
"description": "`start` and `end`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-align-3/#valdef-self-position-start",
+ "https://drafts.csswg.org/css-align-3/#valdef-self-position-end"
+ ],
"tags": [
"web-features:flexbox"
],
diff --git a/css/properties/alignment-baseline.json b/css/properties/alignment-baseline.json
index aa74d90552b5b4..a2e257af07f222 100644
--- a/css/properties/alignment-baseline.json
+++ b/css/properties/alignment-baseline.json
@@ -40,6 +40,7 @@
},
"alphabetic": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline/#valdef-dominant-baseline-alphabetic",
"tags": [
"web-features:alignment-baseline"
],
@@ -73,6 +74,7 @@
},
"baseline": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline-3/#valdef-alignment-baseline-baseline",
"tags": [
"web-features:alignment-baseline"
],
@@ -106,6 +108,7 @@
},
"central": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline/#valdef-dominant-baseline-central",
"tags": [
"web-features:alignment-baseline"
],
@@ -139,6 +142,7 @@
},
"ideographic": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline/#valdef-dominant-baseline-ideographic",
"tags": [
"web-features:alignment-baseline"
],
@@ -172,6 +176,7 @@
},
"mathematical": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline/#valdef-dominant-baseline-mathematical",
"tags": [
"web-features:alignment-baseline"
],
@@ -205,6 +210,7 @@
},
"middle": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline/#valdef-dominant-baseline-middle",
"tags": [
"web-features:alignment-baseline"
],
@@ -238,6 +244,7 @@
},
"text-after-edge": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline-3/#valdef-alignment-baseline-text-after-edge",
"tags": [
"web-features:alignment-baseline"
],
@@ -271,6 +278,7 @@
},
"text-before-edge": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-inline-3/#valdef-alignment-baseline-text-before-edge",
"tags": [
"web-features:alignment-baseline"
],
diff --git a/css/properties/animation-timing-function.json b/css/properties/animation-timing-function.json
index 366ab25dfa39d8..f63311a34d214f 100644
--- a/css/properties/animation-timing-function.json
+++ b/css/properties/animation-timing-function.json
@@ -249,6 +249,12 @@
"jump": {
"__compat": {
"description": "`jump-` keywords for `steps()`",
+ "spec_url": [
+ "https://drafts.csswg.org/css-easing-2/#valdef-step-position-jump-start",
+ "https://drafts.csswg.org/css-easing-2/#valdef-step-position-jump-end",
+ "https://drafts.csswg.org/css-easing-2/#valdef-step-position-jump-none",
+ "https://drafts.csswg.org/css-easing-2/#valdef-step-position-jump-both"
+ ],
"tags": [
"web-features:animations-css"
],
diff --git a/css/properties/background-attachment.json b/css/properties/background-attachment.json
index 9693ce1989bb55..13bc5df815581b 100644
--- a/css/properties/background-attachment.json
+++ b/css/properties/background-attachment.json
@@ -178,6 +178,7 @@
"multiple_backgrounds": {
"__compat": {
"description": "Multiple backgrounds",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-attachment",
"tags": [
"web-features:background-attachment"
],
diff --git a/css/properties/background-image.json b/css/properties/background-image.json
index ad910a71269f1c..7eb9a10907dd77 100644
--- a/css/properties/background-image.json
+++ b/css/properties/background-image.json
@@ -257,6 +257,7 @@
"multiple_backgrounds": {
"__compat": {
"description": "Multiple backgrounds",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-image",
"tags": [
"web-features:background-image"
],
diff --git a/css/properties/background-position-x.json b/css/properties/background-position-x.json
index c254d713da6687..2c94cfee0222a0 100644
--- a/css/properties/background-position-x.json
+++ b/css/properties/background-position-x.json
@@ -4,7 +4,7 @@
"background-position-x": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-x",
- "spec_url": "https://drafts.csswg.org/css-backgrounds-4/#background-position-longhands",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-x",
"tags": [
"web-features:background-position"
],
@@ -43,6 +43,7 @@
"side-relative_values": {
"__compat": {
"description": "Side-relative values (such as `left 10%`)",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-x",
"tags": [
"web-features:background-position"
],
diff --git a/css/properties/background-position-y.json b/css/properties/background-position-y.json
index ba4633cab74800..691515e907bbd7 100644
--- a/css/properties/background-position-y.json
+++ b/css/properties/background-position-y.json
@@ -4,7 +4,7 @@
"background-position-y": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/background-position-y",
- "spec_url": "https://drafts.csswg.org/css-backgrounds-4/#background-position-longhands",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-y",
"tags": [
"web-features:background-position"
],
@@ -43,6 +43,7 @@
"side-relative_values": {
"__compat": {
"description": "Side-relative values (such as `bottom 10%`)",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-y",
"tags": [
"web-features:background-position"
],
diff --git a/css/properties/background-position.json b/css/properties/background-position.json
index c04ea47a0a82db..f4e60b24ed68f2 100644
--- a/css/properties/background-position.json
+++ b/css/properties/background-position.json
@@ -147,6 +147,7 @@
"multiple_backgrounds": {
"__compat": {
"description": "Multiple backgrounds",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-position",
"tags": [
"web-features:background-position"
],
@@ -222,6 +223,7 @@
"side-relative_values": {
"__compat": {
"description": "Side-relative values (such as `bottom 10% right 20%`)",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-position",
"tags": [
"web-features:background-position"
],
diff --git a/css/properties/background-repeat.json b/css/properties/background-repeat.json
index 4a1a35a08efa0d..5ee935107dd4bc 100644
--- a/css/properties/background-repeat.json
+++ b/css/properties/background-repeat.json
@@ -47,6 +47,7 @@
"multiple_backgrounds": {
"__compat": {
"description": "Multiple backgrounds",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-repeat",
"tags": [
"web-features:background-repeat"
],
@@ -340,6 +341,7 @@
"2-value": {
"__compat": {
"description": "Two-value syntax (different values for x & y directions)",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#typedef-repeat-style",
"tags": [
"web-features:background-repeat"
],
diff --git a/css/properties/background.json b/css/properties/background.json
index 2366a75c30dc11..369703c28e2ed9 100644
--- a/css/properties/background.json
+++ b/css/properties/background.json
@@ -94,6 +94,7 @@
"background-clip": {
"__compat": {
"description": "Values of `background-clip` longhand",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-clip",
"tags": [
"web-features:background-clip"
],
@@ -137,6 +138,7 @@
"background-origin": {
"__compat": {
"description": "Values of `background-origin` longhand",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-origin",
"tags": [
"web-features:background-origin"
],
@@ -180,6 +182,7 @@
"background-size": {
"__compat": {
"description": "Values of `background-size` longhand",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background-size",
"tags": [
"web-features:background-size"
],
@@ -494,6 +497,7 @@
"multiple_backgrounds": {
"__compat": {
"description": "Multiple backgrounds",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#background",
"tags": [
"web-features:background"
],
diff --git a/css/properties/block-size.json b/css/properties/block-size.json
index a8e60359e72d83..67f19f106b5ed8 100644
--- a/css/properties/block-size.json
+++ b/css/properties/block-size.json
@@ -4,10 +4,7 @@
"block-size": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/block-size",
- "spec_url": [
- "https://drafts.csswg.org/css-logical/#dimension-properties",
- "https://drafts.csswg.org/css-sizing-4/#sizing-values"
- ],
+ "spec_url": "https://drafts.csswg.org/css-logical/#propdef-block-size",
"tags": [
"web-features:logical-properties"
],
@@ -159,6 +156,7 @@
"fit-content_function": {
"__compat": {
"description": "`fit-content()`",
+ "spec_url": "https://drafts.csswg.org/css-sizing-4/#valdef-width-fit-content",
"tags": [
"web-features:fit-content-function"
],
@@ -198,6 +196,7 @@
},
"max-content": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-sizing-3/#valdef-width-max-content",
"tags": [
"web-features:logical-properties"
],
@@ -239,6 +238,7 @@
},
"min-content": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content",
"tags": [
"web-features:logical-properties"
],
diff --git a/css/properties/border-bottom-left-radius.json b/css/properties/border-bottom-left-radius.json
index 252393545fc137..4aef10057135d9 100644
--- a/css/properties/border-bottom-left-radius.json
+++ b/css/properties/border-bottom-left-radius.json
@@ -140,6 +140,7 @@
"percentages": {
"__compat": {
"description": "Percentages",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-radius",
"tags": [
"web-features:border-radius"
],
diff --git a/css/properties/border-bottom-right-radius.json b/css/properties/border-bottom-right-radius.json
index c50673baec01a2..a1009573aec5fc 100644
--- a/css/properties/border-bottom-right-radius.json
+++ b/css/properties/border-bottom-right-radius.json
@@ -140,6 +140,7 @@
"percentages": {
"__compat": {
"description": "Percentages",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-radius",
"tags": [
"web-features:border-radius"
],
diff --git a/css/properties/border-collapse.json b/css/properties/border-collapse.json
index e8e2086b472bd6..7c47fc30eb67d8 100644
--- a/css/properties/border-collapse.json
+++ b/css/properties/border-collapse.json
@@ -48,6 +48,7 @@
},
"collapse": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css2/#valdef-border-collapse-collapse",
"tags": [
"web-features:table"
],
@@ -81,6 +82,7 @@
},
"separate": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css2/#valdef-border-collapse-separate",
"tags": [
"web-features:table"
],
diff --git a/css/properties/border-image.json b/css/properties/border-image.json
index 361065211208b6..257d1bf4463954 100644
--- a/css/properties/border-image.json
+++ b/css/properties/border-image.json
@@ -104,6 +104,7 @@
},
"fill": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-image-slice-fill",
"tags": [
"web-features:border-image"
],
@@ -143,6 +144,10 @@
"gradient": {
"__compat": {
"description": "``",
+ "spec_url": [
+ "https://drafts.csswg.org/css-backgrounds/#propdef-border-image-source",
+ "https://drafts.csswg.org/css-images-3/#typedef-image"
+ ],
"tags": [
"web-features:border-image"
],
@@ -218,6 +223,7 @@
"optional_border_image_slice": {
"__compat": {
"description": "optional ``",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-image",
"tags": [
"web-features:border-image"
],
diff --git a/css/properties/border-radius.json b/css/properties/border-radius.json
index f710d4e708f1a6..7ceccbd0020957 100644
--- a/css/properties/border-radius.json
+++ b/css/properties/border-radius.json
@@ -4,7 +4,7 @@
"border-radius": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-radius",
- "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-radius",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-border-radius",
"tags": [
"web-features:border-radius"
],
@@ -157,6 +157,7 @@
"percentages": {
"__compat": {
"description": "Percentages",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-radius",
"tags": [
"web-features:border-radius"
],
@@ -204,6 +205,7 @@
"4_values_for_4_corners": {
"__compat": {
"description": "4 values for 4 corners",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-border-radius",
"tags": [
"web-features:border-radius"
],
diff --git a/css/properties/border-top-left-radius.json b/css/properties/border-top-left-radius.json
index ce171fbc510d91..247a4ea23cd4fc 100644
--- a/css/properties/border-top-left-radius.json
+++ b/css/properties/border-top-left-radius.json
@@ -4,7 +4,7 @@
"border-top-left-radius": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-left-radius",
- "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-radius",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-border-top-left-radius",
"tags": [
"web-features:border-radius"
],
@@ -140,6 +140,7 @@
"percentages": {
"__compat": {
"description": "Percentages",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-border-top-left-radius",
"tags": [
"web-features:border-radius"
],
diff --git a/css/properties/border-top-right-radius.json b/css/properties/border-top-right-radius.json
index 4639ff2713ea5f..f7655c8c7e5ac7 100644
--- a/css/properties/border-top-right-radius.json
+++ b/css/properties/border-top-right-radius.json
@@ -4,7 +4,7 @@
"border-top-right-radius": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/border-top-right-radius",
- "spec_url": "https://drafts.csswg.org/css-backgrounds/#border-radius",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-border-top-right-radius",
"tags": [
"web-features:border-radius"
],
@@ -140,6 +140,7 @@
"percentages": {
"__compat": {
"description": "Percentages",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-border-top-right-radius",
"tags": [
"web-features:border-radius"
],
diff --git a/css/properties/box-shadow.json b/css/properties/box-shadow.json
index e5739f17de6bdb..3ad2ec778fc1a0 100644
--- a/css/properties/box-shadow.json
+++ b/css/properties/box-shadow.json
@@ -4,7 +4,7 @@
"box-shadow": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/box-shadow",
- "spec_url": "https://drafts.csswg.org/css-backgrounds/#box-shadow",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-box-shadow",
"tags": [
"web-features:box-shadow"
],
@@ -84,6 +84,7 @@
},
"inset": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#shadow-inset",
"tags": [
"web-features:box-shadow"
],
@@ -127,6 +128,7 @@
"multiple_shadows": {
"__compat": {
"description": "Multiple shadows",
+ "spec_url": "https://drafts.csswg.org/css-backgrounds/#propdef-box-shadow",
"tags": [
"web-features:box-shadow"
],
@@ -206,6 +208,10 @@
"spread_radius": {
"__compat": {
"description": "Spread radius",
+ "spec_url": [
+ "https://drafts.csswg.org/css-backgrounds/#box-shadow-blur-radius",
+ "https://drafts.csswg.org/css-backgrounds/#box-shadow-spread-distance"
+ ],
"tags": [
"web-features:box-shadow"
],
diff --git a/css/properties/break-after.json b/css/properties/break-after.json
index a3d8aac1fc30ca..244039d3ff5503 100644
--- a/css/properties/break-after.json
+++ b/css/properties/break-after.json
@@ -4,11 +4,7 @@
"break-after": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/break-after",
- "spec_url": [
- "https://drafts.csswg.org/css-break/#break-between",
- "https://drafts.csswg.org/css-regions/#region-flow-break",
- "https://drafts.csswg.org/css-multicol/#break-before-break-after-break-inside"
- ],
+ "spec_url": "https://drafts.csswg.org/css-break/#propdef-break-after",
"tags": [
"web-features:page-breaks"
],
@@ -62,6 +58,7 @@
},
"always": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#page-break-properties",
"tags": [
"web-features:page-breaks"
],
@@ -95,6 +92,7 @@
},
"auto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-auto",
"tags": [
"web-features:page-breaks"
],
@@ -128,6 +126,7 @@
},
"avoid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid",
"tags": [
"web-features:page-breaks"
],
@@ -165,6 +164,7 @@
},
"avoid-column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-column",
"tags": [
"web-features:column-breaks"
],
@@ -198,6 +198,7 @@
},
"avoid-page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-page",
"tags": [
"web-features:page-breaks"
],
@@ -231,6 +232,7 @@
},
"column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-column",
"tags": [
"web-features:column-breaks"
],
@@ -264,6 +266,7 @@
},
"left": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-left",
"tags": [
"web-features:page-breaks"
],
@@ -390,6 +393,7 @@
},
"avoid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid",
"tags": [
"web-features:column-breaks"
],
@@ -439,6 +443,7 @@
},
"avoid-column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-column",
"tags": [
"web-features:column-breaks"
],
@@ -499,6 +504,7 @@
},
"column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-column",
"tags": [
"web-features:column-breaks"
],
@@ -554,6 +560,7 @@
},
"page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-page",
"tags": [
"web-features:page-breaks"
],
@@ -687,6 +694,7 @@
},
"avoid-page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-page",
"tags": [
"web-features:page-breaks"
],
@@ -728,6 +736,7 @@
},
"page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-page",
"tags": [
"web-features:page-breaks"
],
@@ -770,6 +779,7 @@
"recto": {
"__compat": {
"description": "`recto` and `verso`",
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-recto",
"tags": [
"web-features:page-breaks"
],
@@ -805,6 +815,7 @@
},
"recto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-recto",
"tags": [
"web-features:page-breaks"
],
@@ -838,6 +849,7 @@
},
"right": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-right",
"tags": [
"web-features:page-breaks"
],
@@ -871,6 +883,7 @@
},
"verso": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-verso",
"tags": [
"web-features:page-breaks"
],
diff --git a/css/properties/break-before.json b/css/properties/break-before.json
index 18d77b9620597a..22ade6240ca1ae 100644
--- a/css/properties/break-before.json
+++ b/css/properties/break-before.json
@@ -62,6 +62,7 @@
},
"always": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#page-break-properties",
"tags": [
"web-features:page-breaks"
],
@@ -95,6 +96,7 @@
},
"auto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-auto",
"tags": [
"web-features:page-breaks"
],
@@ -128,6 +130,7 @@
},
"avoid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid",
"tags": [
"web-features:page-breaks"
],
@@ -165,6 +168,7 @@
},
"avoid-column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-column",
"tags": [
"web-features:column-breaks"
],
@@ -198,6 +202,7 @@
},
"avoid-page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-page",
"tags": [
"web-features:page-breaks"
],
@@ -231,6 +236,7 @@
},
"column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-column",
"tags": [
"web-features:column-breaks"
],
@@ -264,6 +270,7 @@
},
"left": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-left",
"tags": [
"web-features:page-breaks"
],
@@ -390,6 +397,7 @@
},
"avoid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid",
"tags": [
"web-features:column-breaks"
],
@@ -439,6 +447,7 @@
},
"avoid-column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-column",
"tags": [
"web-features:column-breaks"
],
@@ -499,6 +508,7 @@
},
"column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-column",
"tags": [
"web-features:column-breaks"
],
@@ -538,6 +548,7 @@
},
"page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-page",
"tags": [
"web-features:page-breaks"
],
@@ -672,6 +683,7 @@
"page": {
"__compat": {
"description": "`page` and `avoid-page`",
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-page",
"tags": [
"web-features:page-breaks"
],
@@ -714,6 +726,7 @@
"recto": {
"__compat": {
"description": "`recto` and `verso`",
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-recto",
"tags": [
"web-features:page-breaks"
],
@@ -749,6 +762,7 @@
},
"recto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-recto",
"tags": [
"web-features:page-breaks"
],
@@ -782,6 +796,7 @@
},
"right": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-right",
"tags": [
"web-features:page-breaks"
],
@@ -815,6 +830,7 @@
},
"verso": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-verso",
"tags": [
"web-features:page-breaks"
],
diff --git a/css/properties/break-inside.json b/css/properties/break-inside.json
index d521d64d590496..baf0f0198e8feb 100644
--- a/css/properties/break-inside.json
+++ b/css/properties/break-inside.json
@@ -62,6 +62,7 @@
},
"auto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-auto",
"tags": [
"web-features:page-breaks"
],
@@ -95,6 +96,7 @@
},
"avoid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid",
"tags": [
"web-features:page-breaks"
],
@@ -128,6 +130,7 @@
},
"avoid-column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-column",
"tags": [
"web-features:column-breaks"
],
@@ -161,6 +164,7 @@
},
"avoid-page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-page",
"tags": [
"web-features:page-breaks"
],
@@ -253,6 +257,7 @@
},
"avoid-column": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-column",
"tags": [
"web-features:column-breaks"
],
@@ -367,6 +372,7 @@
},
"avoid-page": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-break/#valdef-break-before-avoid-page",
"tags": [
"web-features:page-breaks"
],
diff --git a/css/properties/caption-side.json b/css/properties/caption-side.json
index f72d370321d405..5fd52228173f72 100644
--- a/css/properties/caption-side.json
+++ b/css/properties/caption-side.json
@@ -47,6 +47,7 @@
},
"bottom": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css2/#valdef-caption-side-bottom",
"tags": [
"web-features:table"
],
@@ -178,6 +179,7 @@
},
"top": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css2/#valdef-caption-side-top",
"tags": [
"web-features:table"
],
diff --git a/css/properties/clip-path.json b/css/properties/clip-path.json
index f5f71113f9ece0..351d6a5615d8e1 100644
--- a/css/properties/clip-path.json
+++ b/css/properties/clip-path.json
@@ -4,7 +4,7 @@
"clip-path": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip-path",
- "spec_url": "https://drafts.csswg.org/css-masking/#the-clip-path",
+ "spec_url": "https://drafts.csswg.org/css-masking/#propdef-clip-path",
"tags": [
"web-features:clip-path"
],
@@ -203,6 +203,7 @@
"html_elements": {
"__compat": {
"description": "On HTML elements",
+ "spec_url": "https://drafts.csswg.org/css-masking/#propdef-clip-path",
"tags": [
"web-features:clip-path"
],
@@ -237,6 +238,7 @@
"is_animatable": {
"__compat": {
"description": "Is animatable",
+ "spec_url": "https://drafts.csswg.org/css-masking/#propdef-clip-path",
"tags": [
"web-features:clip-path-animatable"
],
@@ -379,7 +381,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/css/properties/clip.json b/css/properties/clip.json
index 93ba2acaaf155b..abf1ad16c68c58 100644
--- a/css/properties/clip.json
+++ b/css/properties/clip.json
@@ -4,7 +4,7 @@
"clip": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/clip",
- "spec_url": "https://drafts.csswg.org/css-masking/#clip-property",
+ "spec_url": "https://drafts.csswg.org/css-masking/#propdef-clip",
"tags": [
"web-features:clip"
],
@@ -46,6 +46,7 @@
},
"auto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-masking/#propdef-clip",
"tags": [
"web-features:clip"
],
diff --git a/css/properties/color-interpolation.json b/css/properties/color-interpolation.json
index 3fe322f2ce9824..880cf4643bb7a0 100644
--- a/css/properties/color-interpolation.json
+++ b/css/properties/color-interpolation.json
@@ -99,7 +99,7 @@
},
"status": {
"experimental": false,
- "standard_track": true,
+ "standard_track": false,
"deprecated": false
}
}
diff --git a/css/properties/color-scheme.json b/css/properties/color-scheme.json
index bb2ab082a70923..32908ef4af2193 100644
--- a/css/properties/color-scheme.json
+++ b/css/properties/color-scheme.json
@@ -37,6 +37,7 @@
},
"dark": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-color-adjust/#valdef-color-scheme-dark",
"tags": [
"web-features:color-scheme"
],
@@ -70,6 +71,7 @@
},
"light": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-color-adjust/#valdef-color-scheme-light",
"tags": [
"web-features:color-scheme"
],
@@ -103,6 +105,7 @@
},
"normal": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-color-adjust/#valdef-color-scheme-normal",
"tags": [
"web-features:color-scheme"
],
@@ -137,6 +140,7 @@
"only": {
"__compat": {
"description": "`only` keyword",
+ "spec_url": "https://drafts.csswg.org/css-color-adjust/#valdef-color-scheme-only",
"tags": [
"web-features:color-scheme"
],
diff --git a/css/properties/column-width.json b/css/properties/column-width.json
index 5b1bbc2d8f1b9a..3001982dbfa3ba 100644
--- a/css/properties/column-width.json
+++ b/css/properties/column-width.json
@@ -4,10 +4,7 @@
"column-width": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/column-width",
- "spec_url": [
- "https://drafts.csswg.org/css-sizing/#column-sizing",
- "https://drafts.csswg.org/css-multicol/#cw"
- ],
+ "spec_url": "https://drafts.csswg.org/css-multicol-2/#propdef-column-width",
"tags": [
"web-features:multi-column"
],
@@ -104,6 +101,7 @@
},
"auto": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-multicol-2/#valdef-column-width-auto",
"tags": [
"web-features:multi-column"
],
diff --git a/css/properties/contain-intrinsic-size.json b/css/properties/contain-intrinsic-size.json
index 44fe31f1219184..062ac7d2ae716d 100644
--- a/css/properties/contain-intrinsic-size.json
+++ b/css/properties/contain-intrinsic-size.json
@@ -38,6 +38,10 @@
"auto_none": {
"__compat": {
"description": "`auto none` value",
+ "spec_url": [
+ "https://drafts.csswg.org/css-sizing-4/#valdef-contain-intrinsic-width-auto",
+ "https://drafts.csswg.org/css-sizing-4/#valdef-contain-intrinsic-width-none"
+ ],
"tags": [
"web-features:contain-intrinsic-size"
],
diff --git a/css/properties/content.json b/css/properties/content.json
index b1b1bce48c0a4f..b58ac9227b6649 100644
--- a/css/properties/content.json
+++ b/css/properties/content.json
@@ -4,7 +4,7 @@
"content": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/content",
- "spec_url": "https://drafts.csswg.org/css-content/#content-property",
+ "spec_url": "https://drafts.csswg.org/css-content/#propdef-content",
"tags": [
"web-features:content"
],
@@ -47,6 +47,7 @@
"alt_text": {
"__compat": {
"description": "Alternative text after `/`",
+ "spec_url": "https://drafts.csswg.org/css-content/#propdef-content",
"tags": [
"web-features:alt-text-generated-content"
],
@@ -80,6 +81,7 @@
"counters": {
"__compat": {
"description": "`counter()` and `counters()` in alternative text",
+ "spec_url": "https://drafts.csswg.org/css-lists-3/#typedef-counter",
"tags": [
"web-features:alt-text-generated-content"
],
@@ -158,6 +160,7 @@
"element_replacement": {
"__compat": {
"description": "Element replacement",
+ "spec_url": "https://drafts.csswg.org/css-content/#typedef-content-content-replacement",
"tags": [
"web-features:content"
],
@@ -440,6 +443,7 @@
"none_applies_to_elements": {
"__compat": {
"description": "`content: none` for elements",
+ "spec_url": "https://drafts.csswg.org/css-content/#valdef-content-none",
"tags": [
"web-features:content"
],
diff --git a/css/properties/cursor.json b/css/properties/cursor.json
index d2890730517e46..2f2bcf8a309298 100644
--- a/css/properties/cursor.json
+++ b/css/properties/cursor.json
@@ -561,6 +561,7 @@
"grab": {
"__compat": {
"description": "Grab cursors (`grab` and `grabbing`)",
+ "spec_url": "https://drafts.csswg.org/css-ui/#valdef-cursor-grab",
"tags": [
"web-features:cursor"
],
@@ -1521,6 +1522,7 @@
"url": {
"__compat": {
"description": "`url()`",
+ "spec_url": "https://drafts.csswg.org/css-ui/#typedef-cursor-cursor-image",
"tags": [
"web-features:cursor"
],
diff --git a/css/properties/display.json b/css/properties/display.json
index 2f84cffb3e54a9..e3f96df1e95ae8 100644
--- a/css/properties/display.json
+++ b/css/properties/display.json
@@ -161,6 +161,7 @@
"focusable_elements": {
"__compat": {
"description": "Elements with `display: contents` are focusable",
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-contents",
"tags": [
"web-features:display-contents"
],
@@ -201,6 +202,7 @@
},
"flex": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-flex",
"tags": [
"web-features:flexbox"
],
@@ -286,6 +288,7 @@
},
"flow-root": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-flow-root",
"tags": [
"web-features:display-flow-root"
],
@@ -319,6 +322,7 @@
},
"grid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-grid",
"tags": [
"web-features:grid"
],
@@ -443,6 +447,7 @@
},
"inline-block": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-inline-block",
"tags": [
"web-features:display"
],
@@ -491,6 +496,7 @@
},
"inline-flex": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-inline-flex",
"tags": [
"web-features:flexbox"
],
@@ -548,6 +554,7 @@
},
"inline-grid": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-inline-grid",
"tags": [
"web-features:grid"
],
@@ -629,6 +636,7 @@
},
"inline-table": {
"__compat": {
+ "spec_url": "https://drafts.csswg.org/css-display/#valdef-display-inline-table",
"tags": [
"web-features:display-table"
],
diff --git a/lint/common/standard-track-exceptions.txt b/lint/common/standard-track-exceptions.txt
index 017b1457485142..128353f5af4d40 100644
--- a/lint/common/standard-track-exceptions.txt
+++ b/lint/common/standard-track-exceptions.txt
@@ -5,264 +5,6 @@
# but where the required `spec_url` is missing.
#
# As soon as this list is empty, we can derive `standard_track` at build time.
-api.Animation.remove_filling_animation
-api.AudioNode.disconnect.destination_parameter
-api.AudioNode.disconnect.input_parameter
-api.AudioParamMap.@@iterator
-api.AudioParamMap.entries
-api.AudioParamMap.forEach
-api.AudioParamMap.get
-api.AudioParamMap.has
-api.AudioParamMap.keys
-api.AudioParamMap.size
-api.AudioParamMap.values
-api.AudioProcessingEvent
-api.BarProp.visible.returns_popup
-api.BaseAudioContext.createPeriodicWave.constraints_disableNormalization_parameter
-api.BaseAudioContext.decodeAudioData.returns_promise
-api.BatteryManager.secure_context_required
-api.BeforeUnloadEvent.user_interaction
-api.CSPViolationReportBody.toJSON
-api.CSS.supports_static.optional_parens
-api.CSSFontFaceRule.style.type_CSSFontFaceDescriptors
-api.CSSNumericArray.@@iterator
-api.CSSNumericArray.entries
-api.CSSNumericArray.forEach
-api.CSSNumericArray.keys
-api.CSSNumericArray.values
-api.CSSPageRule.style.type_CSSPageDescriptors
-api.CSSPrimitiveValue
-api.CSSPrimitiveValue.getCounterValue
-api.CSSPrimitiveValue.getFloatValue
-api.CSSPrimitiveValue.getRGBColorValue
-api.CSSPrimitiveValue.getRectValue
-api.CSSPrimitiveValue.getStringValue
-api.CSSPrimitiveValue.primitiveType
-api.CSSPrimitiveValue.setFloatValue
-api.CSSPrimitiveValue.setStringValue
-api.CSSStyleDeclaration.@@iterator
-api.CSSStyleDeclaration.getPropertyCSSValue
-api.CSSStyleSheet.insertRule.index_parameter_optional
-api.CSSTransformValue.@@iterator
-api.CSSTransformValue.entries
-api.CSSTransformValue.forEach
-api.CSSTransformValue.keys
-api.CSSTransformValue.values
-api.CSSUnparsedValue.@@iterator
-api.CSSUnparsedValue.entries
-api.CSSUnparsedValue.forEach
-api.CSSUnparsedValue.keys
-api.CSSUnparsedValue.values
-api.CSSValue
-api.CSSValue.cssText
-api.CSSValue.cssValueType
-api.CSSValueList
-api.CSSValueList.item
-api.CSSValueList.length
-api.Cache.worker_support
-api.CacheStorage.secure_context_required
-api.CacheStorage.worker_support
-api.CanvasPattern.setTransform.dommatrix
-api.CanvasRenderingContext2D.clip.path_parameter
-api.CanvasRenderingContext2D.drawFocusIfNeeded.path_parameter
-api.CanvasRenderingContext2D.drawImage.ImageBitmap_source_image
-api.CanvasRenderingContext2D.drawImage.SVGImageElement_source_image
-api.CanvasRenderingContext2D.fill.path_parameter
-api.CanvasRenderingContext2D.isPointInPath.path_parameter
-api.CanvasRenderingContext2D.isPointInStroke.path_parameter
-api.CanvasRenderingContext2D.setTransform.matrix_parameter
-api.CanvasRenderingContext2D.stroke.path_parameter
-api.Clipboard.type_image-png
-api.Clipboard.type_text-html
-api.Clipboard.type_text-plain
-api.CommandEvent.CommandEvent
-api.CredentialsContainer.create.publicKey_option.extensions.credProtect
-api.CredentialsContainer.create.publicKey_option.extensions.minPinLength
-api.CredentialsContainer.get.identity_option.providers_multiple
-api.Crypto.subtle.secure_context_required
-api.CustomElementRegistry.builtin_element_support
-api.CustomElementRegistry.define.disabledFeatures_static_property
-api.CustomEvent.worker_support
-api.DOMError
-api.DOMError.message
-api.DOMError.name
-api.DOMMatrix.worker_support
-api.DOMMatrixReadOnly.toString
-api.DOMMatrixReadOnly.worker_support
-api.DOMParser.parseFromString.html
-api.DOMParser.parseFromString.svg
-api.DOMParser.parseFromString.xml
-api.DOMPoint.worker_support
-api.DOMPointReadOnly.worker_support
-api.DOMQuad.worker_support
-api.DOMRect.worker_support
-api.DOMRectReadOnly.worker_support
-api.DOMTokenList.@@iterator
-api.DOMTokenList.add.multiple_parameters
-api.DOMTokenList.entries
-api.DOMTokenList.forEach
-api.DOMTokenList.keys
-api.DOMTokenList.remove.multiple_parameters
-api.DOMTokenList.remove_duplicates
-api.DOMTokenList.replace.boolean_value
-api.DOMTokenList.toggle.force_parameter
-api.DOMTokenList.trim_whitespace
-api.DOMTokenList.values
-api.Document.caretPositionFromPoint.options_parameter
-api.Document.createElement.options_parameter
-api.Document.createElementNS.options_parameter
-api.Document.createTreeWalker.whatToShow_filter_parameters_optional
-api.Document.execCommand
-api.Document.execCommand.insertHTML
-api.Document.execCommand.insertHTML.enforces_trusted_types
-api.Document.exitFullscreen.returns_promise
-api.Document.featurePolicy
-api.Document.queryCommandIndeterm
-api.Document.queryCommandValue
-api.EXT_disjoint_timer_query_webgl2
-api.EXT_disjoint_timer_query_webgl2.queryCounterEXT
-api.Element.animate.implicit_tofrom
-api.Element.auxclick_event.type_pointerevent
-api.Element.click_event.type_pointerevent
-api.Element.contextmenu_event.type_pointerevent
-api.Element.getElementsByTagName.all_elements_selector
-api.Element.getElementsByTagNameNS.all_elements_selector
-api.Element.requestFullscreen.returns_promise
-api.Element.scroll.options_behavior_parameter
-api.Element.scroll.options_left_parameter
-api.Element.scroll.options_top_parameter
-api.Element.scrollBy.options_behavior_parameter
-api.Element.scrollBy.options_left_parameter
-api.Element.scrollBy.options_top_parameter
-api.Element.scrollTo.options_behavior_parameter
-api.Element.scrollTo.options_left_parameter
-api.Element.scrollTo.options_top_parameter
-api.Element.setAttribute.enforces_trusted_types
-api.Element.setAttributeNS.enforces_trusted_types
-api.EventCounts.@@iterator
-api.EventCounts.entries
-api.EventCounts.forEach
-api.EventCounts.get
-api.EventCounts.has
-api.EventCounts.keys
-api.EventCounts.size
-api.EventCounts.values
-api.EventSource.EventSource.options_withCredentials_parameter
-api.EventSource.worker_support
-api.EventTarget.addEventListener.options_parameter
-api.EventTarget.addEventListener.options_parameter.options_passive_parameter_default_true_touch
-api.EventTarget.addEventListener.options_parameter.options_passive_parameter_default_true_wheel
-api.EventTarget.addEventListener.useCapture_parameter_optional
-api.EventTarget.removeEventListener.options_parameter
-api.EventTarget.removeEventListener.useCapture_parameter_optional
-api.ExtendableEvent.waitUntil.async_waitUntil
-api.EyeDropper.secure_context_required
-api.FeaturePolicy
-api.FeaturePolicy.allowedFeatures
-api.FeaturePolicy.allowsFeature
-api.FeaturePolicy.features
-api.FeaturePolicy.getAllowlistForFeature
-api.FetchEvent.respondWith.networkerror_on_same-origin_cors
-api.FetchEvent.respondWith.resource_url
-api.FetchLaterResult.activated
-api.FileReader.worker_support
-api.FileReaderSync.worker_support
-api.FileSystemSyncAccessHandle.close.sync_version
-api.FileSystemSyncAccessHandle.flush.sync_version
-api.FileSystemSyncAccessHandle.getSize.sync_version
-api.FileSystemSyncAccessHandle.truncate.sync_version
-api.FontFace.worker_support
-api.FontFaceSet.entries
-api.FontFaceSet.forEach
-api.FontFaceSet.has
-api.FontFaceSet.keys
-api.FontFaceSet.size
-api.FontFaceSet.values
-api.FontFaceSet.worker_support
-api.FontFaceSetLoadEvent.worker_support
-api.FormData.@@iterator
-api.FormData.FormData.submitter
-api.FormData.append.filename_parameter
-api.FormData.entries
-api.FormData.forEach
-api.FormData.keys
-api.FormData.values
-api.FormData.worker_support
-api.GPU.requestAdapter.discrete_adapter_default_ac
-api.GPUAdapter.requestDevice.handles_duplicate_calls
-api.GPUAdapter.requestDevice.undefined_limits
-api.GPUCommandEncoder.beginRenderPass.accepts_GPUTexture_resources
-api.GPUCommandEncoder.beginRenderPass.separate_depth_stencil_read-only
-api.GPUCommandEncoder.copyBufferToBuffer.offset_and_size_parameter_optional
-api.GPUComputePassEncoder.setBindGroup.unset_bind_group
-api.GPUDevice.createBindGroup.descriptor_entries_resource_parameter_accepts_GPUBuffer
-api.GPUDevice.createBindGroup.descriptor_entries_resource_parameter_accepts_GPUTextureView
-api.GPUDevice.createBindGroup.descriptor_entries_resource_parameter_accepts_GPUTexture_resource
-api.GPUDevice.createComputePipeline.optional_entryPoint
-api.GPUDevice.createComputePipelineAsync.optional_entryPoint
-api.GPUDevice.createPipelineLayout.descriptor_bindGroupLayouts_parameter_accepts_null_values
-api.GPUDevice.createRenderPipeline.optional_depthcompare_depthwriteenabled
-api.GPUDevice.createRenderPipeline.optional_entryPoint
-api.GPUDevice.createRenderPipeline.validates_depth_bias_for_line_and_point_topologies
-api.GPUDevice.createRenderPipelineAsync.optional_depthcompare_depthwriteenabled
-api.GPUDevice.createRenderPipelineAsync.optional_entryPoint
-api.GPUDevice.createRenderPipelineAsync.validates_depth_bias_for_line_and_point_topologies
-api.GPUDevice.importExternalTexture.color_space_display-p3
-api.GPUDevice.importExternalTexture.videoframe_source
-api.GPUPipelineError.GPUPipelineError.message_optional
-api.GPUQueue.copyExternalImageToTexture.htmlimageelement_imagedata_source
-api.GPUQueue.copyExternalImageToTexture.videoframe_source
-api.GPUQueue.submit.validates_command_buffer_uniqueness
-api.GPURenderBundleEncoder.setBindGroup.unset_bind_group
-api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer
-api.GPURenderPassEncoder.setBindGroup.unset_bind_group
-api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer
-api.GPUSupportedFeatures.feature_subgroups.subgroup_id_num_subgroups
-api.Gamepad.secure_context_required
-api.GamepadButton.secure_context_required
-api.GamepadEvent.secure_context_required
-api.GamepadHapticActuator.secure_context_required
-api.GamepadPose.secure_context_required
-api.Geolocation.secure_context_required
-api.GeolocationCoordinates.secure_context_required
-api.GeolocationPosition.secure_context_required
-api.GeolocationPositionError.secure_context_required
-api.HID.worker_support
-api.HIDConnectionEvent.worker_support
-api.HIDDevice.worker_support
-api.HIDInputReportEvent.worker_support
-api.HTMLAnchorElement.referrerPolicy.no-referrer-when-downgrade
-api.HTMLAnchorElement.referrerPolicy.origin-when-cross-origin
-api.HTMLAnchorElement.referrerPolicy.unsafe-url
-api.HTMLAreaElement.referrerPolicy.no-referrer-when-downgrade
-api.HTMLAreaElement.referrerPolicy.origin-when-cross-origin
-api.HTMLAreaElement.referrerPolicy.unsafe-url
-api.HTMLBaseElement.href.forbid_data_javascript_urls
-api.HTMLBaseElement.href.forbid_special_characters
-api.HTMLCanvasElement.getContext.2d_context
-api.HTMLCanvasElement.getContext.bitmaprenderer_context
-api.HTMLCanvasElement.getContext.webgl2_context
-api.HTMLCanvasElement.getContext.webgl_context
-api.HTMLCanvasElement.toBlob.quality_parameter
-api.HTMLCanvasElement.toBlob.type_parameter_jpeg
-api.HTMLCanvasElement.toBlob.type_parameter_png
-api.HTMLCanvasElement.toBlob.type_parameter_webp
-api.HTMLCanvasElement.toDataURL.type_parameter_jpeg
-api.HTMLCanvasElement.toDataURL.type_parameter_png
-api.HTMLCanvasElement.toDataURL.type_parameter_webp
-api.HTMLDirectoryElement
-api.HTMLElement.contentEditable.plaintext-only
-api.HTMLElement.focus.options_focusVisible_parameter
-api.HTMLElement.focus.options_preventScroll_parameter
-api.HTMLElement.togglePopover.returns_boolean
-api.HTMLFieldSetElement.elements.type_HTMLCollection
-api.HTMLIFrameElement.featurePolicy
-api.HTMLIFrameElement.referrerPolicy.no-referrer-when-downgrade
-api.HTMLIFrameElement.referrerPolicy.origin-when-cross-origin
-api.HTMLIFrameElement.referrerPolicy.unsafe-url
-api.HTMLImageElement.referrerPolicy.no-referrer-when-downgrade
-api.HTMLImageElement.referrerPolicy.origin-when-cross-origin
-api.HTMLImageElement.referrerPolicy.unsafe-url
api.HTMLInputElement.showPicker.autocomplete_input
api.HTMLInputElement.showPicker.color_input
api.HTMLInputElement.showPicker.datalist_input
@@ -272,199 +14,7 @@ api.HTMLInputElement.showPicker.file_input
api.HTMLInputElement.showPicker.month_input
api.HTMLInputElement.showPicker.time_input
api.HTMLInputElement.showPicker.week_input
-api.HTMLLinkElement.referrerPolicy.no-referrer-when-downgrade
-api.HTMLLinkElement.referrerPolicy.origin-when-cross-origin
-api.HTMLLinkElement.referrerPolicy.unsafe-url
-api.HTMLMediaElement.play.returns_promise
-api.HTMLScriptElement.referrerPolicy.no-referrer-when-downgrade
-api.HTMLScriptElement.referrerPolicy.origin-when-cross-origin
-api.HTMLScriptElement.referrerPolicy.unsafe-url
-api.HTMLSelectElement.add.index_before_parameter
-api.HTMLTableRowElement.insertCell.index_parameter_negative_one
-api.HTMLTableRowElement.insertCell.index_parameter_optional
-api.Headers.@@iterator
-api.Headers.entries
-api.Headers.forEach
-api.Headers.iterate_combined_duplicates
-api.Headers.iterate_lexicographically
-api.Headers.keys
-api.Headers.values
-api.Highlight.@@iterator
-api.Highlight.add
-api.Highlight.clear
-api.Highlight.delete
-api.Highlight.entries
-api.Highlight.forEach
-api.Highlight.has
-api.Highlight.keys
-api.Highlight.size
-api.Highlight.values
-api.HighlightRegistry.@@iterator
-api.HighlightRegistry.clear
-api.HighlightRegistry.delete
-api.HighlightRegistry.entries
-api.HighlightRegistry.forEach
-api.HighlightRegistry.get
-api.HighlightRegistry.has
-api.HighlightRegistry.keys
-api.HighlightRegistry.set
-api.HighlightRegistry.size
-api.HighlightRegistry.values
-api.IDBCursor.key.binary_keys
-api.IDBCursor.worker_support
-api.IDBCursorWithValue.worker_support
-api.IDBDatabase.worker_support
-api.IDBFactory.worker_support
-api.IDBIndex.name.renaming_through_name_setter
-api.IDBIndex.worker_support
-api.IDBKeyRange.worker_support
-api.IDBObjectStore.name.renaming_through_name_setter
-api.IDBObjectStore.worker_support
-api.IDBOpenDBRequest.worker_support
-api.IDBRequest.error.DOMException
-api.IDBRequest.worker_support
-api.IDBTransaction.error.DOMException
-api.IDBTransaction.worker_support
-api.IDBVersionChangeEvent.worker_support
-api.ImageData.ImageData.settings_parameter
-api.ImageData.worker_support
-api.InputEvent.inputType.insertFromPasteAsQuotation
-api.IntersectionObserver.IntersectionObserver.options_root_parameter_Document
-api.IntersectionObserver.scrollMargin
-api.KeyboardEvent.getModifierState.key_parameter_alt
-api.KeyboardEvent.getModifierState.key_parameter_altgraph
-api.KeyboardEvent.getModifierState.key_parameter_capslock
-api.KeyboardEvent.getModifierState.key_parameter_control
-api.KeyboardEvent.getModifierState.key_parameter_fn
-api.KeyboardEvent.getModifierState.key_parameter_meta
-api.KeyboardEvent.getModifierState.key_parameter_numlock
-api.KeyboardEvent.getModifierState.key_parameter_scrolllock
-api.KeyboardEvent.getModifierState.key_parameter_shift
-api.KeyboardEvent.getModifierState.key_parameter_symbol
-api.KeyboardEvent.key.dead_key
-api.KeyboardEvent.key.non_printable_keys
-api.KeyboardEvent.key.printable_key
-api.KeyboardLayoutMap.@@iterator
-api.KeyboardLayoutMap.entries
-api.KeyboardLayoutMap.forEach
-api.KeyboardLayoutMap.get
-api.KeyboardLayoutMap.has
-api.KeyboardLayoutMap.keys
-api.KeyboardLayoutMap.size
-api.KeyboardLayoutMap.values
-api.LargestContentfulPaint.renderTime.cross-origin
-api.MIDIInputMap.@@iterator
-api.MIDIInputMap.entries
-api.MIDIInputMap.forEach
-api.MIDIInputMap.get
-api.MIDIInputMap.has
-api.MIDIInputMap.keys
-api.MIDIInputMap.size
-api.MIDIInputMap.values
-api.MIDIOutputMap.@@iterator
-api.MIDIOutputMap.entries
-api.MIDIOutputMap.forEach
-api.MIDIOutputMap.get
-api.MIDIOutputMap.has
-api.MIDIOutputMap.keys
-api.MIDIOutputMap.size
-api.MIDIOutputMap.values
-api.MediaDevices.getDisplayMedia.audio_capture_support
-api.MediaDevices.getUserMedia.secure_context_required
-api.MediaKeyStatusMap.@@iterator
-api.MediaKeyStatusMap.entries
-api.MediaKeyStatusMap.forEach
-api.MediaKeyStatusMap.keys
-api.MediaKeyStatusMap.values
-api.MediaQueryList.EventTarget_inheritance
-api.MediaRecorder.MediaRecorder.options_parameter
-api.MediaSession.setActionHandler.hangup_type
-api.MediaSession.setActionHandler.nextslide_type
-api.MediaSession.setActionHandler.nexttrack_type
-api.MediaSession.setActionHandler.pause_type
-api.MediaSession.setActionHandler.play_type
-api.MediaSession.setActionHandler.previousslide_type
-api.MediaSession.setActionHandler.previoustrack_type
-api.MediaSession.setActionHandler.seekbackward_type
-api.MediaSession.setActionHandler.seekforward_type
-api.MediaSession.setActionHandler.seekto_type
-api.MediaSession.setActionHandler.skipad_type
-api.MediaSession.setActionHandler.stop_type
-api.MediaSession.setActionHandler.togglecamera_type
-api.MediaSession.setActionHandler.togglemicrophone_type
-api.MediaSource.worker_support
-api.MerchantValidationEvent
-api.MerchantValidationEvent.MerchantValidationEvent
-api.MerchantValidationEvent.complete
-api.MerchantValidationEvent.methodName
-api.MerchantValidationEvent.validationURL
-api.MessagePort.worker_support
-api.NDEFMessage.secure_context_required
-api.NDEFReader.secure_context_required
-api.NDEFReadingEvent.secure_context_required
-api.NDEFRecord.secure_context_required
-api.Navigator.authentication
-api.Navigator.geolocation.secure_context_required
-api.Navigator.getBattery.secure_context_required
-api.Navigator.getGamepads.secure_context_required
-api.Navigator.mediaDevices.secure_context_required
-api.Navigator.registerProtocolHandler.scheme_parameter_bitcoin
-api.Navigator.registerProtocolHandler.scheme_parameter_ftp
-api.Navigator.registerProtocolHandler.scheme_parameter_ftps
-api.Navigator.registerProtocolHandler.scheme_parameter_geo
-api.Navigator.registerProtocolHandler.scheme_parameter_im
-api.Navigator.registerProtocolHandler.scheme_parameter_irc
-api.Navigator.registerProtocolHandler.scheme_parameter_ircs
-api.Navigator.registerProtocolHandler.scheme_parameter_magnet
-api.Navigator.registerProtocolHandler.scheme_parameter_mailto
-api.Navigator.registerProtocolHandler.scheme_parameter_matrix
-api.Navigator.registerProtocolHandler.scheme_parameter_mms
-api.Navigator.registerProtocolHandler.scheme_parameter_news
-api.Navigator.registerProtocolHandler.scheme_parameter_nntp
-api.Navigator.registerProtocolHandler.scheme_parameter_openpgp4fpr
-api.Navigator.registerProtocolHandler.scheme_parameter_sftp
-api.Navigator.registerProtocolHandler.scheme_parameter_sip
-api.Navigator.registerProtocolHandler.scheme_parameter_sms
-api.Navigator.registerProtocolHandler.scheme_parameter_smsto
-api.Navigator.registerProtocolHandler.scheme_parameter_ssh
-api.Navigator.registerProtocolHandler.scheme_parameter_tel
-api.Navigator.registerProtocolHandler.scheme_parameter_urn
-api.Navigator.registerProtocolHandler.scheme_parameter_webcal
-api.Navigator.registerProtocolHandler.scheme_parameter_wtai
-api.Navigator.registerProtocolHandler.scheme_parameter_xmpp
-api.Navigator.registerProtocolHandler.secure_context_required
-api.Navigator.requestMIDIAccess.secure_context_required
-api.Navigator.userAgentData.secure_context_required
-api.NetworkInformation.worker_support
-api.NodeList.entries
-api.NodeList.keys
-api.NodeList.values
-api.NotRestoredReasonDetails.toJSON
-api.NotRestoredReasons.toJSON
-api.Notification.requestPermission_static.returns_promise
-api.Notification.secure_context_required
-api.Notification.worker_support
-api.OfflineAudioContext.OfflineAudioContext.options_parameter
-api.OfflineAudioContext.startRendering.returns_promise
api.OffscreenCanvas.convertToBlob.option_type_parameter_webp
-api.OffscreenCanvas.getContext.2d_context
-api.OffscreenCanvas.getContext.bitmaprenderer_context
-api.OffscreenCanvas.getContext.webgl2_context
-api.OffscreenCanvas.getContext.webgl_context
-api.PaymentManager.secure_context_required
-api.PaymentRequest.PaymentRequest.secure_payment_confirmation_method
-api.PaymentRequest.merchantvalidation_event
-api.PaymentRequestUpdateEvent.secure_context_required
-api.PaymentResponse.toJSON
-api.Performance.mark.markOptions_parameter
-api.Performance.mark.returns_performancemark
-api.Performance.measure.measureOptions_parameter
-api.Performance.measure.returns_performancemeasure
-api.PerformanceElementTiming.renderTime.cross-origin
-api.PerformanceEntry.worker_support
-api.PerformanceObserver.worker_support
-api.PerformanceResourceTiming.worker_support
-api.Permissions.permission_accelerometer
api.Permissions.permission_ambient-light-sensor
api.Permissions.permission_background-sync
api.Permissions.permission_camera
@@ -534,7 +84,6 @@ api.ReadableStreamDefaultReader.releaseLock.reject_pending_read_request
api.Report.toJSON
api.ReportBody.toJSON
api.ReportingObserver.ReportingObserver.options_parameter
-api.ReportingObserver.ReportingObserver.options_parameter
api.ReportingObserver.ReportingObserver.options_parameter.types_property
api.ReportingObserver.worker_support
api.Request.Request.cross_origin_stripped
@@ -837,170 +386,32 @@ api.setInterval.supports_parameters_for_callback
api.setInterval.worker_support
api.setTimeout.supports_parameters_for_callback
api.setTimeout.worker_support
-css.at-rules.font-face.OpenType_CBDT_CBLC
-css.at-rules.font-face.OpenType_COLRv0
-css.at-rules.font-face.OpenType_COLRv1
-css.at-rules.font-face.OpenType_SBIX
-css.at-rules.font-face.OpenType_SVG
-css.at-rules.font-face.src.drop_invalid_item
-css.at-rules.font-face.src.format_keyword
-css.at-rules.font-face.src.tech_keyword
-css.at-rules.font-feature-values.annotation
-css.at-rules.font-feature-values.character-variant
-css.at-rules.font-feature-values.historical-forms
-css.at-rules.font-feature-values.ornaments
-css.at-rules.font-feature-values.styleset
-css.at-rules.font-feature-values.stylistic
-css.at-rules.font-feature-values.swash
-css.at-rules.keyframes.ignore_important_declarations
css.at-rules.media.media_features
css.at-rules.media.media_query_values
css.at-rules.media.nested-queries
-css.at-rules.media.or_syntax
-css.at-rules.media.range_syntax
-css.at-rules.supports.font-format
-css.at-rules.supports.font-tech
-css.at-rules.supports.selector
-css.properties.accent-color.auto
css.properties.align-content.flex_context.baseline
css.properties.align-content.flex_context.first_baseline
css.properties.align-content.flex_context.last_baseline
-css.properties.align-content.flex_context.safe_unsafe
css.properties.align-content.flex_context.space-evenly
css.properties.align-content.flex_context.start_end
-css.properties.align-content.flex_context.stretch
-css.properties.align-items.flex_context.baseline
-css.properties.align-items.flex_context.first_baseline
-css.properties.align-items.flex_context.last_baseline
-css.properties.align-items.flex_context.safe_unsafe
-css.properties.align-items.flex_context.start_end
-css.properties.align-items.grid_context.start_end
-css.properties.align-self.flex_context.first_baseline
-css.properties.align-self.flex_context.last_baseline
-css.properties.align-self.flex_context.safe_unsafe
-css.properties.align-self.flex_context.start_end
-css.properties.alignment-baseline.alphabetic
-css.properties.alignment-baseline.baseline
-css.properties.alignment-baseline.central
-css.properties.alignment-baseline.ideographic
-css.properties.alignment-baseline.mathematical
-css.properties.alignment-baseline.middle
-css.properties.alignment-baseline.text-after-edge
-css.properties.alignment-baseline.text-before-edge
-css.properties.animation-timing-function.jump
css.properties.animation.animation-timeline_included
css.properties.appearance.base-select.listbox
css.properties.appearance.base-select.multiple_dropdown
css.properties.appearance.base-select.single_dropdown
-css.properties.background-attachment.multiple_backgrounds
-css.properties.background-image.multiple_backgrounds
css.properties.background-image.svg_images
-css.properties.background-position-x.side-relative_values
-css.properties.background-position-y.side-relative_values
-css.properties.background-position.multiple_backgrounds
-css.properties.background-position.side-relative_values
-css.properties.background-repeat.2-value
-css.properties.background-repeat.multiple_backgrounds
css.properties.background.SVG_image_as_background
-css.properties.background.background-clip
-css.properties.background.background-origin
-css.properties.background.background-size
-css.properties.background.multiple_backgrounds
-css.properties.block-size.fit-content_function
-css.properties.block-size.max-content
-css.properties.block-size.min-content
css.properties.border-bottom-left-radius.elliptical_corners
-css.properties.border-bottom-left-radius.percentages
css.properties.border-bottom-right-radius.elliptical_corners
-css.properties.border-bottom-right-radius.percentages
-css.properties.border-collapse.collapse
-css.properties.border-collapse.separate
-css.properties.border-image.fill
-css.properties.border-image.gradient
-css.properties.border-image.optional_border_image_slice
-css.properties.border-radius.4_values_for_4_corners
css.properties.border-radius.elliptical_borders
-css.properties.border-radius.percentages
css.properties.border-top-left-radius.elliptical_corners
-css.properties.border-top-left-radius.percentages
css.properties.border-top-right-radius.elliptical_corners
-css.properties.border-top-right-radius.percentages
-css.properties.box-shadow.inset
-css.properties.box-shadow.multiple_shadows
-css.properties.box-shadow.spread_radius
-css.properties.break-after.always
-css.properties.break-after.auto
-css.properties.break-after.avoid
-css.properties.break-after.avoid-column
-css.properties.break-after.avoid-page
-css.properties.break-after.column
-css.properties.break-after.left
-css.properties.break-after.multicol_context.avoid
-css.properties.break-after.multicol_context.avoid-column
-css.properties.break-after.multicol_context.column
-css.properties.break-after.page
-css.properties.break-after.paged_context.avoid-page
-css.properties.break-after.paged_context.page
-css.properties.break-after.paged_context.recto
-css.properties.break-after.recto
-css.properties.break-after.right
-css.properties.break-after.verso
-css.properties.break-before.always
-css.properties.break-before.auto
-css.properties.break-before.avoid
-css.properties.break-before.avoid-column
-css.properties.break-before.avoid-page
-css.properties.break-before.column
-css.properties.break-before.left
-css.properties.break-before.multicol_context.avoid
-css.properties.break-before.multicol_context.avoid-column
-css.properties.break-before.multicol_context.column
-css.properties.break-before.page
-css.properties.break-before.paged_context.page
-css.properties.break-before.paged_context.recto
-css.properties.break-before.recto
-css.properties.break-before.right
-css.properties.break-before.verso
-css.properties.break-inside.auto
-css.properties.break-inside.avoid
-css.properties.break-inside.avoid-column
-css.properties.break-inside.avoid-page
-css.properties.break-inside.multicol_context.avoid-column
-css.properties.break-inside.paged_context.avoid-page
-css.properties.caption-side.bottom
-css.properties.caption-side.top
css.properties.caption-side.writing-mode_relative_values
-css.properties.clip-path.html_elements
-css.properties.clip-path.is_animatable
-css.properties.clip-path.path
css.properties.clip-path.svg_elements
-css.properties.clip.auto
-css.properties.color-interpolation.linearGradient
-css.properties.color-scheme.dark
-css.properties.color-scheme.light
-css.properties.color-scheme.normal
-css.properties.color-scheme.only
css.properties.column-gap.multicol_context.calc_values
css.properties.column-gap.multicol_context.percentage_values
-css.properties.column-width.auto
-css.properties.contain-intrinsic-size.auto_none
-css.properties.content.alt_text
-css.properties.content.alt_text.counters
-css.properties.content.element_replacement
-css.properties.content.none_applies_to_elements
css.properties.counter-reset.reset_does_not_affect_siblings
-css.properties.cursor.grab
-css.properties.cursor.url
css.properties.cursor.url_positioning_syntax
css.properties.direction.vertical_slider_direction
-css.properties.display.contents.focusable_elements
-css.properties.display.flex
-css.properties.display.flow-root
-css.properties.display.grid
-css.properties.display.inline-block
-css.properties.display.inline-flex
-css.properties.display.inline-grid
-css.properties.display.inline-table
css.properties.display.list-item.legend-support
css.properties.display.math
css.properties.display.multi-keyword_values
diff --git a/scripts/fix-standard-track-exceptions.js b/scripts/fix-standard-track-exceptions.js
new file mode 100644
index 00000000000000..c7b04998b4916a
--- /dev/null
+++ b/scripts/fix-standard-track-exceptions.js
@@ -0,0 +1,378 @@
+/* This file is a part of @mdn/browser-compat-data
+ * See LICENSE file for more information. */
+
+/**
+ * Interactive script to eliminate entries from standard-track-exceptions.txt.
+ *
+ * Usage: node scripts/fix-standard-track-exceptions.js
+ *
+ * Walks through each exception and prompts for an action:
+ *
+ * https://... — Add the URL as spec_url (comma-separated for multiple)
+ * f / false — Set standard_track to false (includes all subfeatures)
+ * p — Copy the parent feature's spec_url
+ * p=https://.. — Set spec_url on both the parent and this subfeature
+ * (empty) — Skip this entry
+ * /foo — Skip ahead until the next entry containing "foo"
+ * o — Open ancestor spec_url(s) in the browser
+ * u — Undo last change and revisit that feature
+ * ? — Print instructions
+ *
+ * Changes are written to disk immediately. The exception list is updated
+ * on exit (including Ctrl+C).
+ */
+
+import { execFile } from 'node:child_process';
+import readline from 'node:readline/promises';
+import { styleText } from 'node:util';
+
+/** @import {Identifier} from '../types/types.js' */
+
+import bcd from '../index.js';
+import query from '../utils/query.js';
+import {
+ getStandardTrackExceptions,
+ setStandardTrackExceptions,
+} from '../lint/common/standard-track-exceptions.js';
+
+import { updateFeatures } from './bulk-editor/utils.js';
+
+const instructions = `
+ ${styleText('bold', 'Actions:')}
+ ${styleText('cyan', 'https://...')} Add the URL as spec_url (comma-separated for multiple)
+ ${styleText('cyan', 'p')} Use parent feature's spec_url
+ ${styleText('cyan', 'p=https://...')} Set spec_url on parent + this subfeature
+ ${styleText('cyan', 'f')} Set standard_track to false (+ all subfeatures)
+ ${styleText('cyan', '(Enter)')} Skip this entry
+ ${styleText('cyan', '/foo')} Skip ahead until an entry containing "foo"
+ ${styleText('cyan', 'o')} Open ancestor spec_url(s) in the browser
+ ${styleText('cyan', 'u')} Undo last change and revisit that feature
+ ${styleText('cyan', '?')} Show these instructions
+`;
+
+/**
+ * Find the closest ancestor that has a spec_url.
+ * @param {string} featurePath Dot-separated feature path
+ * @returns {{ path: string, spec_url: string | string[] } | null}
+ */
+const findAncestorSpecUrl = (featurePath) => {
+ const parts = featurePath.split('.');
+ for (let i = parts.length - 1; i >= 1; i--) {
+ const ancestorPath = parts.slice(0, i).join('.');
+ try {
+ const node = /** @type {Identifier} */ (query(ancestorPath, bcd));
+ if (node?.__compat?.spec_url) {
+ return { path: ancestorPath, spec_url: node.__compat.spec_url };
+ }
+ } catch {
+ // ancestor not found, keep going up
+ }
+ }
+ return null;
+};
+
+/**
+ * Open one or more URLs in the default browser.
+ * @param {string | string[]} urls
+ */
+const openUrls = (urls) => {
+ const cmd = process.platform === 'darwin' ? 'open' : 'xdg-open';
+ for (const url of Array.isArray(urls) ? urls : [urls]) {
+ execFile(cmd, [url]);
+ }
+};
+
+const exceptions = await getStandardTrackExceptions();
+const remaining = new Set(exceptions);
+const total = exceptions.length;
+
+const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout,
+});
+
+const prompt = ` ${styleText('dim', 'Paste spec url, p(arent), f(alse), /skip-to, or ?')}
+ > `;
+
+/** Save progress and exit */
+const save = async () => {
+ await setStandardTrackExceptions(remaining);
+ const removed = total - remaining.size;
+ if (removed > 0) {
+ console.log(
+ `\n${styleText('green', `Removed ${removed} exception(s).`)} ${remaining.size} remaining.`,
+ );
+ }
+ rl.close();
+};
+
+process.on('SIGINT', async () => {
+ console.log('\nInterrupted.');
+ await save();
+ process.exit(0);
+});
+
+console.log(instructions);
+
+let skipUntil = null;
+
+/** @type {{ index: number, undo: () => void } | null} */
+let lastAction = null;
+
+let idx = 0;
+while (idx < exceptions.length) {
+ const i = idx;
+ const featurePath = exceptions[i];
+ idx++;
+
+ // Handle skip-until filter
+ if (skipUntil) {
+ if (!featurePath.includes(skipUntil)) {
+ continue;
+ }
+ skipUntil = null;
+ }
+
+ // Skip if already handled (e.g. as a subfeature of a previous "f" action)
+ if (!remaining.has(featurePath)) {
+ continue;
+ }
+
+ // Load feature data
+ let compat;
+ try {
+ const node = /** @type {Identifier} */ (query(featurePath, bcd));
+ compat = node?.__compat;
+ } catch {
+ console.log(
+ styleText(
+ 'yellow',
+ `[${i + 1}/${total}] ${featurePath} — not found, skipping`,
+ ),
+ );
+ continue;
+ }
+
+ if (!compat) {
+ console.log(
+ styleText(
+ 'yellow',
+ `[${i + 1}/${total}] ${featurePath} — no __compat, skipping`,
+ ),
+ );
+ continue;
+ }
+
+ // Skip if exception no longer applies (spec_url was added or standard_track is false)
+ if (compat.spec_url || compat.status?.standard_track === false) {
+ remaining.delete(featurePath);
+ continue;
+ }
+
+ // Print header with last path segment bold
+ const lastDot = featurePath.lastIndexOf('.');
+ const pathDisplay =
+ lastDot === -1
+ ? styleText(['cyan', 'bold'], featurePath)
+ : styleText('cyan', featurePath.slice(0, lastDot + 1)) +
+ styleText(['cyan', 'bold'], featurePath.slice(lastDot + 1));
+ console.log(`\n${styleText('bold', `[${i + 1}/${total}]`)} ${pathDisplay}`);
+
+ // Print status flags
+ const statusParts = [];
+ if (compat.status?.experimental) {
+ statusParts.push(styleText('yellow', 'experimental'));
+ }
+ if (compat.status?.deprecated) {
+ statusParts.push(styleText('green', 'deprecated'));
+ }
+ if (statusParts.length > 0) {
+ console.log(` status: ${statusParts.join(' ')}`);
+ }
+
+ // Print description
+ if (compat.description) {
+ console.log(` desc: ${compat.description}`);
+ }
+
+ // Print mdn_url
+ if (compat.mdn_url) {
+ console.log(` mdn: ${styleText('underline', compat.mdn_url)}`);
+ }
+
+ // Print ancestor spec_url
+ const ancestor = findAncestorSpecUrl(featurePath);
+ if (ancestor) {
+ const urls = Array.isArray(ancestor.spec_url)
+ ? ancestor.spec_url
+ : [ancestor.spec_url];
+ console.log(` parent: ${ancestor.path}`);
+ for (const url of urls) {
+ console.log(` spec: ${styleText('underline', url)}`);
+ }
+ } else {
+ console.log(styleText('dim', ' (no ancestor with spec_url)'));
+ }
+
+ // Prompt loop (re-prompt on ?, o, and invalid input)
+ while (true) {
+ const answer = (await rl.question(prompt)).trim();
+
+ if (answer === '?') {
+ console.log(instructions);
+ continue;
+ }
+
+ if (answer === 'o') {
+ if (ancestor) {
+ openUrls(ancestor.spec_url);
+ } else {
+ console.log(styleText('red', ' No ancestor with spec_url to open.'));
+ }
+ continue;
+ }
+
+ if (answer === 'u') {
+ if (!lastAction) {
+ console.log(styleText('red', ' Nothing to undo.'));
+ continue;
+ }
+ lastAction.undo();
+ idx = lastAction.index;
+ lastAction = null;
+ console.log(styleText('dim', ' Undone.'));
+ break;
+ }
+
+ if (answer === '') {
+ break;
+ }
+
+ if (answer.startsWith('/')) {
+ skipUntil = answer.slice(1);
+ break;
+ }
+
+ if (answer === 'f' || answer === 'false') {
+ // Collect subfeatures that will be removed
+ const prefix = featurePath + '.';
+ const removedSubs = [...remaining].filter((e) => e.startsWith(prefix));
+ // Update this feature and all subfeatures
+ updateFeatures([featurePath, featurePath + '.*'], (c) => {
+ c.status.standard_track = false;
+ return c;
+ });
+ remaining.delete(featurePath);
+ for (const sub of removedSubs) {
+ remaining.delete(sub);
+ }
+ lastAction = {
+ index: i,
+ /**
+ *
+ */
+ undo: () => {
+ updateFeatures([featurePath, featurePath + '.*'], (c) => {
+ c.status.standard_track = true;
+ return c;
+ });
+ remaining.add(featurePath);
+ for (const sub of removedSubs) {
+ remaining.add(sub);
+ }
+ },
+ };
+ break;
+ }
+
+ if (answer === 'p') {
+ if (!ancestor) {
+ console.log(styleText('red', ' No ancestor with spec_url found.'));
+ continue;
+ }
+ updateFeatures([featurePath], (c) => {
+ c.spec_url = ancestor.spec_url;
+ return c;
+ });
+ remaining.delete(featurePath);
+ lastAction = {
+ index: i,
+ /**
+ *
+ */
+ undo: () => {
+ updateFeatures([featurePath], (c) => {
+ delete c.spec_url;
+ return c;
+ });
+ remaining.add(featurePath);
+ },
+ };
+ break;
+ }
+
+ if (answer.startsWith('p=https://')) {
+ const raw = answer.slice(2);
+ const urls = raw.split(',').map((u) => u.trim());
+ const specUrl = urls.length === 1 ? urls[0] : urls;
+ const parentPath = featurePath.split('.').slice(0, -1).join('.');
+ updateFeatures([parentPath], (c) => {
+ c.spec_url = specUrl;
+ return c;
+ });
+ updateFeatures([featurePath], (c) => {
+ c.spec_url = specUrl;
+ return c;
+ });
+ remaining.delete(featurePath);
+ lastAction = {
+ index: i,
+ /**
+ *
+ */
+ undo: () => {
+ updateFeatures([parentPath], (c) => {
+ delete c.spec_url;
+ return c;
+ });
+ updateFeatures([featurePath], (c) => {
+ delete c.spec_url;
+ return c;
+ });
+ remaining.add(featurePath);
+ },
+ };
+ break;
+ }
+
+ if (answer.startsWith('https://')) {
+ const urls = answer.split(',').map((u) => u.trim());
+ const specUrl = urls.length === 1 ? urls[0] : urls;
+ updateFeatures([featurePath], (c) => {
+ c.spec_url = specUrl;
+ return c;
+ });
+ remaining.delete(featurePath);
+ lastAction = {
+ index: i,
+ /**
+ *
+ */
+ undo: () => {
+ updateFeatures([featurePath], (c) => {
+ delete c.spec_url;
+ return c;
+ });
+ remaining.add(featurePath);
+ },
+ };
+ break;
+ }
+
+ console.log(
+ styleText('yellow', ' Unknown input, try again. Type ? for help.'),
+ );
+ }
+}
+
+await save();