Repository navigation
Publish the Firefox extension as a listed add-on on addons.mozilla.org #122
Description
Follow-up to #100. Today the Firefox extension is signed unlisted on AMO and self-hosted: the .xpi lives on GitHub Releases, updates come from savr.link/extension/updates.json, and users install it by clicking a GitHub release asset. Every install then hits Firefox's "Allow site to install an add-on?" prompt. #121 had to move the Preferences link off the savr.link/extension/firefox.xpi redirect because Firefox blocked installs through it. On Android, installing outside AMO needs the hidden "Install Extension from File" menu.
A public listing on addons.mozilla.org would give one-click installs on desktop and Android, discoverability, and AMO-hosted updates. The trade-offs (listing metadata, human review, slower releases) are why #100 chose unlisted (see browser-extension/README.md → Distribution, and docs/extension-distribution-research.md).
Proposal
Publish the existing add-on (savr@jonocodes.github.io) as a listed AMO add-on, and move existing self-hosted installs over to it.
Questions to answer
- Migration of existing installs. The documented path is to ship one last self-hosted version without
update_url, after which Firefox checks AMO for updates. Confirm that this works for an add-on whose earlier versions were unlisted under the same ID, and in what order the last unlisted version and the first listed version should go out. - Manifest. Listed versions must not carry
update_url. Decide whether the release build strips it, or whether the source drops it for good once migration is done. - Review. Listed versions get human review.
host_permissionson*://*/*(required since Download extension-save images through the extension and log each downloader #104) andscriptingmay draw questions. AMO also requires source-code submission if the build is minified or bundled; check whether ours counts. - Listing content. Summary, description, category, screenshots, icon, support/homepage URLs, and a public privacy-policy URL (
PrivacyPolicy.mdexists but needs one; this overlaps with Publish the browser extension to the Chrome Web Store (unlisted) #106). - Android. Mark the listing as Android-compatible, and verify on a device (the README notes Android is unverified).
- Automation. Switch
.github/workflows/extension-release.ymltoweb-ext sign --channel listed, or keep listed submission manual. Decide what happens to the GitHub release.xpi,updates.jsonand thesavr.link/extension/firefox.xpiredirect afterwards. Retire them, or keep them for self-hosters? - Versioning. AMO accepts each version number exactly once across both channels. Plan the version bump for the switch.
Deliverable
- The extension is live as a listed add-on on AMO.
VITE_FIREFOX_EXTENSION_URLdefaults to the AMO listing URL (src/config/environment.ts,tests/e2e/preferences-extension.spec.ts).browser-extension/README.md(Install, Distribution, Releasing), the root README and the release workflow describe the listed path.
Acceptance criteria
- A fresh install from the AMO listing works on desktop Firefox and Firefox for Android.
- An existing self-hosted install updates to the listed version without reinstalling.
- Preferences links to the AMO listing.
Activity