A linter for Firefox WebExtensions that validates add-ons for security, performance, and policy compliance.
Add-ons Linter is a validation tool for Firefox WebExtensions that checks add-on code for security issues, policy compliance, and API correctness. It helps developers identify problems before submitting extensions to addons.mozilla.org, ensuring they meet Mozilla's quality and safety standards. The tool can be used via command line, as a library, or integrated into development workflows.
Firefox extension developers and teams who need to validate their WebExtensions for publication on addons.mozilla.org or ensure compliance with browser extension policies.
Developers choose Add-ons Linter because it is the official Mozilla tool for WebExtensions validation, providing comprehensive, up-to-date checks that are aligned with Firefox's security requirements. Its integration with addons.mozilla.org and web-ext makes it essential for ensuring extensions pass review.
🔍 Firefox Add-ons linter, written in JavaScript. 👁
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
It's the tool used by addons.mozilla.org for submissions, ensuring checks are up-to-date with Firefox's security and policy standards, which helps extensions pass review faster.
Can be used as a standalone CLI, via a JavaScript API for custom workflows, or in CI/CD pipelines, as demonstrated in the README with configuration examples.
Uses scanners for JavaScript, HTML, and language packs with rules based on ESLint and other parsers, providing detailed error reporting with code references for debugging.
Includes a --privileged flag for linting extensions with elevated access, adjusting checks to handle specific security and policy requirements not covered in regular mode.
It's designed exclusively for Firefox WebExtensions, so it cannot validate extensions for other browsers, limiting its utility in cross-browser development.
Requires Node.js v22 or greater, which may force updates in development environments and adds a barrier for teams on older versions.
The dispensary component for checking library versions requires manual updates to libraries.json and hashes.txt, a tedious process mentioned in the README that could slow maintenance.