Skip to content

Verify and update Firefox feature flag data#30012

Draft
caugner wants to merge 13 commits into
mainfrom
30010-firefox-flags
Draft

Verify and update Firefox feature flag data#30012
caugner wants to merge 13 commits into
mainfrom
30010-firefox-flags

Conversation

@caugner

@caugner caugner commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Verify every Firefox flags entry listed in #30010 against current Gecko source and update the affected features. Each pref was checked with searchfox-cli, and versions confirmed via Bugzilla target milestones.

Test results and supporting details

Prefs verified against github.com/mozilla-firefox/firefox (gecko-dev is archived) and searchfox mozilla-central (Nightly 154), mozilla-release (152), and mozilla-esr*. npm run lint api css http passes; the only remaining Flag data linter exception is api.Window.dump (intentional).

Enabled by default in release → drop flag, record shipped version
dom.serviceWorkers.navigationPreload.enabled

http.headers.Service-Worker-Navigation-Preload: 97 + flag → 99. Enabled by default in Firefox 99 (bug 1754786); pref now defaults true.

dom.viewTransitions.enabled

api.Document.startViewTransition.updateCallback_parameter: 140 + flag → 144, matching the parent method. Enabled by default in Firefox 144 (bug 1985809); pref now defaults true.

dom.webnotifications.requireinteraction.enabled

api.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-unnecessary Flag data linter exception. Pref block: #if XP_WIN || XP_LINUX → true, else @IS_NIGHTLY_BUILD@.

Enabled by default only in Nightly → preview
dom.webshare.enabled

api.Navigator.share, .canShare (+ text-data parameters): → preview. Pref defaults @IS_EARLY_BETA_OR_EARLIER@ — off in release, on in Nightly (desktop).

layout.css.attr.enabled

css.types.attr.* (16 features): → preview. Pref defaults @IS_NIGHTLY_BUILD@.

layout.css.scroll-driven-animations.enabled

css.at-rules.keyframes.named_range_keyframes, css.types.timeline-range-name.scroll: → preview. Pref defaults @IS_NIGHTLY_BUILD@.

layout.css.text-box.enabled

css.types.text-edge.* (5 features): → preview (partial_implementation/notes retained). Pref defaults @IS_NIGHTLY_BUILD@.

network.cookie.sameSite.schemeful

http.headers.Set-Cookie.SameSite.schemeful: → preview. Pref defaults @IS_NIGHTLY_BUILD@.

Pref removed → drop defunct flag or remove feature
dom.permissions.revoke.enable

api.Permissions.revoke: dropped the defunct flag statement, keeping the historical 4751 range (shipped 47–50, flag-only from 51). Pref no longer in mozilla-central.

layout.css.moz-submit-invalid.enabled

css.selectors.-moz-submit-invalid: dropped the defunct flag statement, keeping 488 (shipped 4–87, placed behind the flag in 88 per bug 1694129). Pref no longer in mozilla-central.

layout.css.heading-selector.enabled

css.selectors.headingfalse (still supported in Safari 27); css.selectors.headingfunction removed (never implemented in any browser). Pref never existed / not in mozilla-central.

dom.screenBrightnessProperty.enabled & dom.screenEnabledProperty.enabled

api.Screen.mozBrightness and api.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.enabled

css.properties.content.none_applies_to_elements: removed. Implemented behind the flag in 91 (bug 1699964), but content: none now resolves to normal on 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.enabled

api.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_wildcard

http.headers.Access-Control-Allow-Headers.authorization_not_covered_by_wildcard: the feature requires setting the pref to false, but it defaults to true, so the flag is still needed.

Related issues

Part of #30010.

caugner added 13 commits July 8, 2026 21:40
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.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.
`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.
@github-actions github-actions Bot added infra Infrastructure issues (npm, GitHub Actions, releases) of this project data:http Compat data for HTTP features. https://developer.mozilla.org/docs/Web/HTTP data:api Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API data:css Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS linter Issues or pull requests regarding the tests / linter of the JSON files. size:l [PR only] 101-1000 LoC changed labels Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Tip: Review these changes grouped by change (recommended for most PRs), or grouped by feature (for large PRs).

Comment thread api/Notification.json
"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."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should keep the same approach as before, with two statements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data:api Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API data:css Compat data for CSS features. https://developer.mozilla.org/docs/Web/CSS data:http Compat data for HTTP features. https://developer.mozilla.org/docs/Web/HTTP infra Infrastructure issues (npm, GitHub Actions, releases) of this project linter Issues or pull requests regarding the tests / linter of the JSON files. size:l [PR only] 101-1000 LoC changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant