Firefox 109+ supports Manifest V3 in non-temporary mode and most of chrome.scripting. The biggest gaps:
chrome.scripting.executeScript accepts a function in Chrome but only files in Firefox.
OffscreenCanvas works but service-worker semantics differ — Firefox uses an event page.
chrome.storage.sync requires the storage permission (we already have it) but cross-browser sync is on Chrome-only accounts.
Plan
- Add a
manifest.firefox.json variant.
- Replace any
chrome.scripting.executeScript({ func }) call with file-based equivalents.
- Test the content script on AMO test profiles.
This is medium difficulty — ideal for someone who's written a WebExtension before.
Firefox 109+ supports Manifest V3 in non-temporary mode and most of
chrome.scripting. The biggest gaps:chrome.scripting.executeScriptaccepts a function in Chrome but only files in Firefox.OffscreenCanvasworks but service-worker semantics differ — Firefox uses an event page.chrome.storage.syncrequires thestoragepermission (we already have it) but cross-browser sync is on Chrome-only accounts.Plan
manifest.firefox.jsonvariant.chrome.scripting.executeScript({ func })call with file-based equivalents.This is medium difficulty — ideal for someone who's written a WebExtension before.