Verify and update Firefox feature flag data#30012
Draft
caugner wants to merge 13 commits into
Draft
Conversation
The `dom.serviceWorkers.navigationPreload.enabled` flag was enabled by default in Firefox 99 (bug 1754786); the header no longer requires a flag.
…x 144 The `dom.viewTransitions.enabled` flag was enabled by default in Firefox 144 (bug 1985809), matching the parent `startViewTransition` method.
`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.
`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`.
`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`.
`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`.
`network.cookie.sameSite.schemeful` is enabled by default only in Nightly (`@IS_NIGHTLY_BUILD@`), so schemeful `SameSite` is marked `preview`.
`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.
`:-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.
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.
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.
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.
Contributor
|
Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs). |
caugner
commented
Jul 9, 2026
| "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." |
Contributor
Author
There was a problem hiding this comment.
Should keep the same approach as before, with two statements.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verify every Firefox
flagsentry listed in #30010 against current Gecko source and update the affected features. Each pref was checked withsearchfox-cli, and versions confirmed via Bugzilla target milestones.Test results and supporting details
Prefs verified against
github.com/mozilla-firefox/firefox(gecko-devis archived) and searchfoxmozilla-central(Nightly 154),mozilla-release(152), andmozilla-esr*.npm run lint api css httppasses; the only remainingFlag datalinter exception isapi.Window.dump(intentional).Enabled by default in release → drop flag, record shipped version
dom.serviceWorkers.navigationPreload.enabledhttp.headers.Service-Worker-Navigation-Preload:97+ flag →99. Enabled by default in Firefox 99 (bug 1754786); pref now defaultstrue.dom.viewTransitions.enabledapi.Document.startViewTransition.updateCallback_parameter:140+ flag →144, matching the parent method. Enabled by default in Firefox 144 (bug 1985809); pref now defaultstrue.dom.webnotifications.requireinteraction.enabledapi.Notification.requireInteraction: →117,partial_implementation, flag dropped. Enabled by default on Windows since 117 (bug 1794475) and Linux since 137 (bug 1947738); macOS remains Nightly-only. Also removes the now-unnecessaryFlag datalinter exception. Pref block:#if XP_WIN || XP_LINUX → true, else@IS_NIGHTLY_BUILD@.Enabled by default only in Nightly →
previewdom.webshare.enabledapi.Navigator.share,.canShare(+ text-data parameters): →preview. Pref defaults@IS_EARLY_BETA_OR_EARLIER@— off in release, on in Nightly (desktop).layout.css.attr.enabledcss.types.attr.*(16 features): →preview. Pref defaults@IS_NIGHTLY_BUILD@.layout.css.scroll-driven-animations.enabledcss.at-rules.keyframes.named_range_keyframes,css.types.timeline-range-name.scroll: →preview. Pref defaults@IS_NIGHTLY_BUILD@.layout.css.text-box.enabledcss.types.text-edge.*(5 features): →preview(partial_implementation/notes retained). Pref defaults@IS_NIGHTLY_BUILD@.network.cookie.sameSite.schemefulhttp.headers.Set-Cookie.SameSite.schemeful: →preview. Pref defaults@IS_NIGHTLY_BUILD@.Pref removed → drop defunct flag or remove feature
dom.permissions.revoke.enableapi.Permissions.revoke: dropped the defunct flag statement, keeping the historical47–51range (shipped 47–50, flag-only from 51). Pref no longer in mozilla-central.layout.css.moz-submit-invalid.enabledcss.selectors.-moz-submit-invalid: dropped the defunct flag statement, keeping4–88(shipped 4–87, placed behind the flag in 88 per bug 1694129). Pref no longer in mozilla-central.layout.css.heading-selector.enabledcss.selectors.heading→false(still supported in Safari 27);css.selectors.headingfunctionremoved (never implemented in any browser). Pref never existed / not in mozilla-central.dom.screenBrightnessProperty.enabled&dom.screenEnabledProperty.enabledapi.Screen.mozBrightnessandapi.Screen.mozEnabled: removed (non-standard B2G-era properties, never shipped unflagged; combined into one commit as the hook can't commit one while the other still carries a flag). Prefs no longer in mozilla-central.layout.css.element-content-none.enabledcss.properties.content.none_applies_to_elements: removed. Implemented behind the flag in 91 (bug 1699964), butcontent: nonenow resolves tonormalon non-pseudo elements and the spec question is unresolved (bug 1725208); the pref was removed after Firefox 115 (present in esr115, absent in current mozilla-central).Additional notes
Deliberately left unchanged — the flag is still required in shipped Firefox:
browser.dom.window.dump.enabledapi.Window.dump: pref defaults@IS_NOT_MOZILLA_OFFICIAL@, i.e. off in every official build including Nightly.dump()is always exposed but is a runtime no-op unless enabled.network.cors_preflight.authorization_covered_by_wildcardhttp.headers.Access-Control-Allow-Headers.authorization_not_covered_by_wildcard: the feature requires setting the pref tofalse, but it defaults totrue, so the flag is still needed.Related issues
Part of #30010.