doc: record the omitted strict_min_version and rejection guards

The plan pinned strict_min_version to 112.0 for the ES-module background
floor, but the existing data_collection_permissions key requires Firefox
140 desktop / 142 Android, so addons-linter warned and warningsAsErrors
failed the build. Measured: 112.0 -> 2 warnings, 140.0 -> 1, 142.0 ->
clean, omitted -> clean. 142.0 was rejected because it locks out ESR 140.
Omitting excludes nobody and degrades gracefully below 112.

Also syncs the plan's background.js block with the rejection guards added
in 22fc754, and reworks two of those comments for clarity.
This commit is contained in:
golem
2026-08-01 22:33:29 -06:00
parent 22fc754636
commit 6bedd700e8
3 changed files with 58 additions and 23 deletions
@@ -115,9 +115,21 @@ ES modules work in an MV2 background script via
needed. The options page is a normal extension page and can use
`<script type="module">` in both the embedded and standalone surfaces.
`strict_min_version` becomes `"112.0"` — the binding floor, above
`storage.sync` quota enforcement (79), `menus` (55), `options_ui` (55), and
`commands` (48).
`strict_min_version` is **omitted**, as it is today. The functional floor is
Firefox 112 — above `storage.sync` quota enforcement (79), `menus` (55),
`options_ui` (55), and `commands` (48) — but it cannot be declared. The
existing `data_collection_permissions` key requires Firefox 140 (desktop) and
142 (Android), so `addons-linter` emits `KEY_FIREFOX_UNSUPPORTED_BY_MIN_VERSION`
for any `strict_min_version` below those, and under `warningsAsErrors: true`
that fails the build. Measured against `web-ext lint` 10.5.0: `112.0` → 2
warnings, `140.0` → 1 warning (Android), `142.0` → clean, omitted → clean.
Pinning `142.0` would lint clean but lock out Firefox 140, 141, and ESR 140 —
the current ESR, which supports `data_collection_permissions` and is what
Debian and many enterprise deployments ship. Omitting the key excludes nobody
and degrades gracefully below 112: `chrome_settings_overrides` is declarative,
so the `gpt` keyword keeps working and only the context menu and shortcut are
inert. Firefox 112 shipped April 2023.
### File layout
@@ -172,8 +184,9 @@ only `mergeSettings()` is unit-tested.
}
```
`browser_specific_settings.gecko` gains `"strict_min_version": "112.0"`. The
existing `id` and `data_collection_permissions` are unchanged.
`browser_specific_settings.gecko` is unchanged — the existing `id` and
`data_collection_permissions` stay exactly as they are, and no
`strict_min_version` is added (see above).
`browser_style: false` is set **explicitly**. Omitting it is not equivalent — it
defaults to `true` in MV2. Setting it false means the panel renders identically