Add Firefox data consent, repair contributor sign-in, and introduce optional Hide clutter buttons. Harden video navigation, voting, and action layouts with shared browser regression coverage and reproducible release packaging.
2.8 KiB
AMO Source Build Instructions
This source package is provided for Mozilla Add-ons review. The extension is built with webpack, so reviewers should rebuild the submitted source and compare the generated Firefox output with the uploaded add-on package.
Build environment
The 4.0.5 release was built with this exact toolchain:
- Windows 11 (PowerShell); the build script also supports Linux and macOS
- Node.js 22.17.0
- npm 10.8.2
These versions are intentionally pinned instead of relying on the default AMO reviewer environment. The build script checks both versions before installing dependencies and stops if either differs. The release's accompanying reproducibility report records the environment actually used for its independent source rebuild.
Install Node.js
Using nvm:
nvm install 22.17.0
nvm use 22.17.0
npm install --global npm@10.8.2
Confirm the versions:
node --version
npm --version
Expected versions:
v22.17.0
10.8.2
Build
From the repository root, run:
node scripts/build-firefox-source.mjs
The script performs all required technical build steps:
- Confirms Node.js 22.17.0 and npm 10.8.2 are in use.
- Installs the locked dependencies with
npm ci. - Builds the extension with the release-specific
npm run build-for-amohook. - Verifies the generated Firefox manifest is version 4.0.5, retains the published AMO add-on ID, and declares the expected desktop data-collection permissions and minimum Firefox version.
- Verifies
menu-fixer.jsand the other required Firefox files were generated. - Verifies
ryd.content-script.jsis below 5 MB. - Verifies every generated JavaScript file has no source-map reference.
- Runs the extension artifact verifier to confirm that the generated files match the current source inputs.
The generated Firefox extension files are written to:
Extensions/combined/dist/firefox
Use that directory when comparing the rebuilt code with the submitted Firefox add-on package.
Notes
package-lock.jsonis included so npm installs the same dependency versions used for this release.Extensions/e2e/verify-extension-artifact.jsis included as a build-time verifier; it is not packaged in the add-on.- All dependencies are installed from the npm registry with the standard npm package manager; no vendored or remotely fetched build scripts are used.
- This Firefox package is desktop-only. Its manifest requires Firefox 140.0 or newer and intentionally omits
gecko_android. - Production builds disable inline source maps. Development builds still use inline source maps through
npm run dev. - The production bundle is generated by webpack but is not intentionally obfuscated or minified.
node_modulesandExtensions/combined/distare generated locally and are not source inputs.