From 5f290ad4cdef9680819d44d18b7695a709e2477b Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:40:59 +0200 Subject: [PATCH 01/13] Service-Worker-Navigation-Preload is supported by default in Firefox 99 The `dom.serviceWorkers.navigationPreload.enabled` flag was enabled by default in Firefox 99 (bug 1754786); the header no longer requires a flag. --- .../Service-Worker-Navigation-Preload.json | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/http/headers/Service-Worker-Navigation-Preload.json b/http/headers/Service-Worker-Navigation-Preload.json index cab58a1c5f3fef..801fc7a5c0bcc8 100644 --- a/http/headers/Service-Worker-Navigation-Preload.json +++ b/http/headers/Service-Worker-Navigation-Preload.json @@ -17,21 +17,9 @@ "edge": { "version_added": "18" }, - "firefox": [ - { - "version_added": "preview" - }, - { - "version_added": "97", - "flags": [ - { - "type": "preference", - "name": "dom.serviceWorkers.navigationPreload.enabled", - "value_to_set": "true" - } - ] - } - ], + "firefox": { + "version_added": "99" + }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", From 55febcae64e745834f12cb060579e6f11a3eb9c5 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:41:27 +0200 Subject: [PATCH 02/13] startViewTransition update callback is supported by default in Firefox 144 The `dom.viewTransitions.enabled` flag was enabled by default in Firefox 144 (bug 1985809), matching the parent `startViewTransition` method. --- api/Document.json | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/api/Document.json b/api/Document.json index accbab9e6d33d8..c30a72cbc52c61 100644 --- a/api/Document.json +++ b/api/Document.json @@ -8853,21 +8853,9 @@ }, "chrome_android": "mirror", "edge": "mirror", - "firefox": [ - { - "version_added": "preview" - }, - { - "version_added": "140", - "flags": [ - { - "type": "preference", - "name": "dom.viewTransitions.enabled", - "value_to_set": "true" - } - ] - } - ], + "firefox": { + "version_added": "144" + }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", From 49524136beb7814116d3bd931193d78bbb4230cc Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:42:35 +0200 Subject: [PATCH 03/13] Notification.requireInteraction ships on Windows and Linux `dom.webnotifications.requireinteraction.enabled` is enabled by default on Windows since Firefox 117 (bug 1794475) and on Linux since Firefox 137 (bug 1947738). On macOS it remains Nightly-only, so support stays partial without flag data. Drop the now-unnecessary `Flag data` linter exception. --- api/Notification.json | 22 +++++----------------- lint/linter/test-flags.js | 2 +- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/api/Notification.json b/api/Notification.json index 4f0bb1659d82a6..63c08f032c23fa 100644 --- a/api/Notification.json +++ b/api/Notification.json @@ -1075,23 +1075,11 @@ "edge": { "version_added": "17" }, - "firefox": [ - { - "version_added": "117", - "partial_implementation": true, - "notes": "Only supported on Windows. Behind a flag on other operating systems." - }, - { - "version_added": "117", - "flags": [ - { - "type": "preference", - "name": "dom.webnotifications.requireinteraction.enabled", - "value_to_set": "true" - } - ] - } - ], + "firefox": { + "version_added": "117", + "partial_implementation": true, + "notes": "Supported on Windows since Firefox 117 and on Linux since Firefox 137. On macOS, only available in Nightly builds." + }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", diff --git a/lint/linter/test-flags.js b/lint/linter/test-flags.js index bd8da9773ad204..2d1a142607a9dd 100644 --- a/lint/linter/test-flags.js +++ b/lint/linter/test-flags.js @@ -123,7 +123,7 @@ export default { name: 'Flag data', description: 'Test the flag data for any irrelevant flags', scope: 'feature', - exceptions: ['api.Notification.requireInteraction', 'api.Window.dump'], + exceptions: ['api.Window.dump'], /** * Test the data * @param {Logger} logger The logger to output errors to From 64df6ddde6efd063af6fe5559af7fb54c7f75d4e Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:43:14 +0200 Subject: [PATCH 04/13] Web Share API is Nightly-only in Firefox `dom.webshare.enabled` is enabled by default only in Nightly and early Beta (`@IS_EARLY_BETA_OR_EARLIER@`), so `Navigator.share`/`canShare` (and their text-data parameters) are marked `preview` on desktop Firefox. --- api/Navigator.json | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/api/Navigator.json b/api/Navigator.json index 489b75c0e16d87..63e1e24e795bc7 100644 --- a/api/Navigator.json +++ b/api/Navigator.json @@ -572,14 +572,7 @@ } ], "firefox": { - "version_added": "96", - "flags": [ - { - "type": "preference", - "name": "dom.webshare.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": { "version_added": "96" @@ -671,14 +664,7 @@ "version_added": "81" }, "firefox": { - "version_added": "96", - "flags": [ - { - "type": "preference", - "name": "dom.webshare.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": { "version_added": "96" @@ -5140,14 +5126,7 @@ } ], "firefox": { - "version_added": "71", - "flags": [ - { - "type": "preference", - "name": "dom.webshare.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": { "version_added": "79" @@ -5241,14 +5220,7 @@ "version_added": "81" }, "firefox": { - "version_added": "71", - "flags": [ - { - "type": "preference", - "name": "dom.webshare.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": { "version_added": "79" From 2846837a22b49fafe63f36ce49e074a744fec925 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:43:31 +0200 Subject: [PATCH 05/13] CSS advanced attr() is Nightly-only in Firefox `layout.css.attr.enabled` is enabled by default only in Nightly (`@IS_NIGHTLY_BUILD@`), so the `attr()` type function and its data types are marked `preview`. --- css/types/attr.json | 144 +++++--------------------------------------- 1 file changed, 16 insertions(+), 128 deletions(-) diff --git a/css/types/attr.json b/css/types/attr.json index 3c43443da421a6..053f0d72a76471 100644 --- a/css/types/attr.json +++ b/css/types/attr.json @@ -61,14 +61,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "150", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -175,14 +168,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -218,14 +204,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -262,14 +241,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -306,14 +278,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -350,14 +315,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -394,14 +352,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -438,14 +389,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -482,14 +426,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -526,14 +463,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -570,14 +500,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -614,14 +537,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -658,14 +574,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -702,14 +611,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -746,14 +648,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", @@ -790,14 +685,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.attr.enabled", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", From 67df79fdd69dfbb24a03d413dbedc4e1b133713b Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:43:52 +0200 Subject: [PATCH 06/13] Scroll-driven animation range features are Nightly-only in Firefox `layout.css.scroll-driven-animations.enabled` is enabled by default only in Nightly (`@IS_NIGHTLY_BUILD@`), so named-range keyframes and the `scroll` timeline range name are marked `preview`. --- css/at-rules/keyframes.json | 9 +-------- css/types/timeline-range-name.json | 7 ------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/css/at-rules/keyframes.json b/css/at-rules/keyframes.json index 4975e3e2b6c5b0..2432704a121b3a 100644 --- a/css/at-rules/keyframes.json +++ b/css/at-rules/keyframes.json @@ -154,14 +154,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "152", - "flags": [ - { - "type": "preference", - "name": "layout.css.scroll-driven-animations.enabled", - "value_to_set": "true" - } - ], + "version_added": "preview", "impl_url": "https://bugzil.la/1824875" }, "firefox_android": "mirror", diff --git a/css/types/timeline-range-name.json b/css/types/timeline-range-name.json index 266fc07f9923ee..81dd39415d9882 100644 --- a/css/types/timeline-range-name.json +++ b/css/types/timeline-range-name.json @@ -47,13 +47,6 @@ "edge": "mirror", "firefox": { "version_added": "preview", - "flags": [ - { - "type": "preference", - "name": "layout.css.scroll-driven-animations.enabled", - "value_to_set": "true" - } - ], "impl_url": "https://bugzil.la/1804775" }, "firefox_android": "mirror", From 99b6eb39f6c99899cfb017e6aa07c17a06b97be7 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:43:54 +0200 Subject: [PATCH 07/13] CSS text-edge values are Nightly-only in Firefox `layout.css.text-box.enabled` is enabled by default only in Nightly (`@IS_NIGHTLY_BUILD@`), so the `text-edge` data type values are marked `preview`. --- css/types/text-edge.json | 45 +++++----------------------------------- 1 file changed, 5 insertions(+), 40 deletions(-) diff --git a/css/types/text-edge.json b/css/types/text-edge.json index 7dda1def001441..4fa92367e00c92 100644 --- a/css/types/text-edge.json +++ b/css/types/text-edge.json @@ -16,14 +16,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.text-box.enabled", - "value_to_set": "true" - } - ], + "version_added": "preview", "impl_url": "https://bugzil.la/1977183", "partial_implementation": true, "notes": "Rendering not implemented (only parsing and serialization)." @@ -59,14 +52,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.text-box.enabled", - "value_to_set": "true" - } - ], + "version_added": "preview", "impl_url": "https://bugzil.la/1977183", "partial_implementation": true, "notes": "Rendering not implemented (only parsing and serialization)." @@ -103,14 +89,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.text-box.enabled", - "value_to_set": "true" - } - ], + "version_added": "preview", "partial_implementation": true, "notes": "Rendering not implemented (only parsing and serialization)." }, @@ -146,14 +125,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.text-box.enabled", - "value_to_set": "true" - } - ], + "version_added": "preview", "partial_implementation": true, "notes": "Rendering not implemented (only parsing and serialization)." }, @@ -189,14 +161,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "149", - "flags": [ - { - "type": "preference", - "name": "layout.css.text-box.enabled", - "value_to_set": "true" - } - ], + "version_added": "preview", "partial_implementation": true, "notes": "Rendering not implemented (only parsing and serialization)." }, From ab053827a449f00f8803ecaf0abc3162a39dd65c Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:43:56 +0200 Subject: [PATCH 08/13] Schemeful SameSite is Nightly-only in Firefox `network.cookie.sameSite.schemeful` is enabled by default only in Nightly (`@IS_NIGHTLY_BUILD@`), so schemeful `SameSite` is marked `preview`. --- http/headers/Set-Cookie.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/http/headers/Set-Cookie.json b/http/headers/Set-Cookie.json index b18f58993e7292..68235723286212 100644 --- a/http/headers/Set-Cookie.json +++ b/http/headers/Set-Cookie.json @@ -492,14 +492,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "79", - "flags": [ - { - "type": "preference", - "name": "network.cookie.sameSite.schemeful", - "value_to_set": "true" - } - ] + "version_added": "preview" }, "firefox_android": "mirror", "oculus": "mirror", From b5e857ba8007781e096f48f397ea08edea58e04d Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:44:27 +0200 Subject: [PATCH 09/13] Permissions.revoke() is no longer available in Firefox `Permissions.revoke()` shipped in Firefox 47-50, then required the `dom.permissions.revoke.enable` flag from 51. That pref no longer exists in Firefox, so drop the defunct flag statement and keep the 47-51 range. --- api/Permissions.json | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/api/Permissions.json b/api/Permissions.json index 45d80fd9788e24..92cfc820356e56 100644 --- a/api/Permissions.json +++ b/api/Permissions.json @@ -1124,22 +1124,10 @@ }, "chrome_android": "mirror", "edge": "mirror", - "firefox": [ - { - "version_added": "51", - "flags": [ - { - "type": "preference", - "name": "dom.permissions.revoke.enable", - "value_to_set": "true" - } - ] - }, - { - "version_added": "47", - "version_removed": "51" - } - ], + "firefox": { + "version_added": "47", + "version_removed": "51" + }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", From c655b27efb6168f8371c208ce4e4a55c39d69945 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:44:31 +0200 Subject: [PATCH 10/13] The :-moz-submit-invalid selector is no longer available in Firefox `:-moz-submit-invalid` shipped in Firefox 4-87, then required the `layout.css.moz-submit-invalid.enabled` flag from 88. That pref no longer exists, so drop the defunct flag statement and keep the 4-88 range, matching Firefox for Android. --- css/selectors/-moz-submit-invalid.json | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/css/selectors/-moz-submit-invalid.json b/css/selectors/-moz-submit-invalid.json index 1decf10fe92840..969997b3e58959 100644 --- a/css/selectors/-moz-submit-invalid.json +++ b/css/selectors/-moz-submit-invalid.json @@ -11,23 +11,10 @@ }, "chrome_android": "mirror", "edge": "mirror", - "firefox": [ - { - "version_added": "88", - "flags": [ - { - "type": "preference", - "name": "layout.css.moz-submit-invalid.enabled", - "value_to_set": "true" - } - ], - "notes": "From Firefox 88 the feature has been placed behind a flag. See [bug 1694129](https://bugzil.la/1694129)." - }, - { - "version_added": "4", - "version_removed": "88" - } - ], + "firefox": { + "version_added": "4", + "version_removed": "88" + }, "firefox_android": { "version_added": "4", "version_removed": "88", From a5dd84d032e9c0fd9ca0d903aab9599273f4bd04 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:49:45 +0200 Subject: [PATCH 11/13] Remove non-standard Screen.mozBrightness and Screen.mozEnabled The `dom.screenBrightnessProperty.enabled` and `dom.screenEnabledProperty.enabled` flags no longer exist in Firefox. These non-standard B2G-era properties were never implemented in any browser without a flag, so remove both features. --- api/Screen.json | 76 ------------------------------------------------- 1 file changed, 76 deletions(-) diff --git a/api/Screen.json b/api/Screen.json index 51371f8a159f3c..05f3d70f7f47a7 100644 --- a/api/Screen.json +++ b/api/Screen.json @@ -526,82 +526,6 @@ } } }, - "mozBrightness": { - "__compat": { - "mdn_url": "https://developer.mozilla.org/docs/Web/API/Screen/mozBrightness", - "support": { - "chrome": { - "version_added": false - }, - "chrome_android": "mirror", - "edge": "mirror", - "firefox": { - "version_added": "12", - "flags": [ - { - "type": "preference", - "name": "dom.screenBrightnessProperty.enabled", - "value_to_set": "true" - } - ] - }, - "firefox_android": "mirror", - "oculus": "mirror", - "opera": "mirror", - "opera_android": "mirror", - "safari": { - "version_added": false - }, - "safari_ios": "mirror", - "samsunginternet_android": "mirror", - "webview_android": "mirror", - "webview_ios": "mirror" - }, - "status": { - "experimental": false, - "standard_track": false, - "deprecated": true - } - } - }, - "mozEnabled": { - "__compat": { - "mdn_url": "https://developer.mozilla.org/docs/Web/API/Screen/mozEnabled", - "support": { - "chrome": { - "version_added": false - }, - "chrome_android": "mirror", - "edge": "mirror", - "firefox": { - "version_added": "12", - "flags": [ - { - "type": "preference", - "name": "dom.screenEnabledProperty.enabled", - "value_to_set": "true" - } - ] - }, - "firefox_android": "mirror", - "oculus": "mirror", - "opera": "mirror", - "opera_android": "mirror", - "safari": { - "version_added": false - }, - "safari_ios": "mirror", - "samsunginternet_android": "mirror", - "webview_android": "mirror", - "webview_ios": "mirror" - }, - "status": { - "experimental": false, - "standard_track": false, - "deprecated": true - } - } - }, "orientation": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/Screen/orientation", From 99bcd9521f4f25d7e451aac114009323e05c6333 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:49:48 +0200 Subject: [PATCH 12/13] Remove content: none for elements (never shipped) The `layout.css.element-content-none.enabled` flag no longer exists in Firefox; `content: none` now resolves to `normal` on non-pseudo elements (bug 1725208 is unresolved). It never shipped unflagged in any browser, so remove the feature. --- css/properties/content.json | 41 ------------------------------------- 1 file changed, 41 deletions(-) diff --git a/css/properties/content.json b/css/properties/content.json index b58ac9227b6649..d1ecce7c2ae277 100644 --- a/css/properties/content.json +++ b/css/properties/content.json @@ -440,47 +440,6 @@ } } }, - "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" - ], - "support": { - "chrome": { - "version_added": false - }, - "chrome_android": "mirror", - "edge": "mirror", - "firefox": { - "version_added": "91", - "flags": [ - { - "type": "preference", - "name": "layout.css.element-content-none.enabled" - } - ] - }, - "firefox_android": "mirror", - "oculus": "mirror", - "opera": "mirror", - "opera_android": "mirror", - "safari": { - "version_added": false - }, - "safari_ios": "mirror", - "samsunginternet_android": "mirror", - "webview_android": "mirror", - "webview_ios": "mirror" - }, - "status": { - "experimental": true, - "standard_track": true, - "deprecated": false - } - } - }, "normal": { "__compat": { "spec_url": "https://drafts.csswg.org/css-content/#valdef-content-normal", From f71026aec4120ddeccf264f2d6c78258f63240dc Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Wed, 8 Jul 2026 21:50:07 +0200 Subject: [PATCH 13/13] The :heading selector is not available in Firefox; remove :heading() The `layout.css.heading-selector.enabled` flag no longer exists in Firefox. Mark `:heading` unsupported (still supported in Safari 27), and remove `:heading()`, which was never implemented in any browser without a flag. --- css/selectors/heading.json | 9 +----- css/selectors/headingfunction.json | 48 ------------------------------ 2 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 css/selectors/headingfunction.json diff --git a/css/selectors/heading.json b/css/selectors/heading.json index 1e047f832a1cca..cc2d5ddcb2d0fc 100644 --- a/css/selectors/heading.json +++ b/css/selectors/heading.json @@ -16,14 +16,7 @@ "chrome_android": "mirror", "edge": "mirror", "firefox": { - "version_added": "preview", - "flags": [ - { - "type": "preference", - "name": "layout.css.heading-selector.enabled", - "value_to_set": "true" - } - ] + "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", diff --git a/css/selectors/headingfunction.json b/css/selectors/headingfunction.json deleted file mode 100644 index 41951651e95c1a..00000000000000 --- a/css/selectors/headingfunction.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "css": { - "selectors": { - "headingfunction": { - "__compat": { - "description": "`:heading()`", - "spec_url": "https://drafts.csswg.org/selectors-5/#headings", - "tags": [ - "web-features:heading-selectors" - ], - "support": { - "chrome": { - "version_added": false - }, - "chrome_android": "mirror", - "edge": "mirror", - "firefox": { - "version_added": "preview", - "flags": [ - { - "type": "preference", - "name": "layout.css.heading-selector.enabled", - "value_to_set": "true" - } - ] - }, - "firefox_android": "mirror", - "oculus": "mirror", - "opera": "mirror", - "opera_android": "mirror", - "safari": { - "version_added": false - }, - "safari_ios": "mirror", - "samsunginternet_android": "mirror", - "webview_android": "mirror", - "webview_ios": "mirror" - }, - "status": { - "experimental": true, - "standard_track": true, - "deprecated": false - } - } - } - } - } -}