Firefox Extension Signing: Release vs. Developer Builds
This article provides a quick overview of how extension signing enforcement differs between the standard Firefox Release build and the specialized Nightly and Developer Edition builds. While the standard Release version strictly requires all extensions to be cryptographically signed by Mozilla for user security, the Nightly and Developer Editions allow users to disable this enforcement completely to facilitate add-on creation, testing, and advanced customization.
The Purpose of Extension Signing
Mozilla requires extensions to be signed to protect users from malicious software, data theft, and unauthorized browser modifications. When a developer submits an add-on to Mozilla, it undergoes an automated and sometimes manual review process. Once approved, Mozilla cryptographically signs the extension package, allowing the browser to verify its authenticity before installation.
Standard Firefox Release Build: Strict Enforcement
In the standard Firefox Release build (as well as the Beta build), extension signing enforcement is mandatory and locked.
- Permanent Installation: You can only permanently install extensions that have been officially signed by Mozilla. If you attempt to install an unsigned add-on file (an XPI file), Firefox will block the installation and display an error message stating that the add-on could not be verified.
- No Override Setting: The internal configuration setting used to bypass signing enforcement is completely disabled in the code of the Release build. Toggling it has no effect.
- Temporary Exception: The only way to run an
unsigned extension in the Release build is by loading it temporarily.
Users must navigate to the
about:debuggingpage, select "This Firefox," and click "Load Temporary Add-on." However, any extension loaded this way is immediately removed as soon as the browser is closed.
Firefox Nightly and Developer Edition: Flexible Enforcement
Firefox Nightly and Developer Edition are built specifically for web developers, extension creators, and power users. Because developers need to test their unverified code over multiple browser sessions, Mozilla relaxes the signing enforcement in these specific builds.
- The Configuration Override: Unlike the Release build, Nightly and Developer Editions obey a hidden preference in the browser's advanced configuration.
- Permanent Unsigned Installation: Users can
permanently install unsigned extensions by navigating to
about:configin the address bar, searching for the preference namedxpinstall.signatures.required, and setting its value tofalse. - Security Warnings: Once this setting is disabled,
Firefox will allow the permanent installation of any unsigned extension.
The browser will still display a warning on the add-ons management page
(
about:addons) indicating that the extension is unverified, but it will not block the functionality or remove the extension upon restarting the browser.
Summary of Differences
- Firefox Release: Enforces signing strictly. The
xpinstall.signatures.requiredpreference is ignored. Unsigned extensions can only be loaded temporarily for a single session viaabout:debugging. - Firefox Developer Edition & Nightly: Enforces
signing by default, but allows users to bypass it. Changing
xpinstall.signatures.requiredtofalseinabout:configpermits the permanent installation and use of unsigned extensions.