This article describes how an add-on developer can temporarily install an extension in Firefox for testing and debugging. The extension will stay installed until you restart Firefox. You can use this method with any kind of restartless extension, including bootstrapped extensions and Add-on SDK add-ons.
Note that this is not how end users should install add-ons in Firefox. End users will install add-ons by downloading and opening packaged add-ons that have been signed by Mozilla. To learn how an extension developer can get an add-on packaged and signed, see Publishing your extension.
To install an extension temporarily:
- open Firefox
- enter "about:debugging" in the URL bar
- click "Load Temporary Add-on"
- open the extension's directory and select any file inside the extension.
The extension will be installed, and will stay installed until you restart Firefox.
Reloading a temporary extension
Starting in Firefox 48, there's a new button labeled "Reload" next to the extension's entry in about:debugging:
This does what it says:
- reloading any persistent scripts, such as background scripts
- parsing the
manifest.jsonfile again, so changes to
browser_actionor any other keys will take effect.
Note that in Firefox 48 only, "Reload" does not update the extension's name and description that are displayed in about:debugging and about:addons. This is fixed in Firefox 49.
Using the command line
If you are already using the command line for development, check out the web-ext tool. It automates the temporary installation step and automatically reloads your extension when its source code changes.
Detecting temporary installation
Your extension can detect whether it was installed from about:debugging rather than as a built and signed extension downloaded from addons.mozilla.org. Listen for the
runtime.onInstalled event, and check the value of
Temporary installation of an extension doesn’t fully mimic the behavior of a signed extension. For example, if the extension makes installation time permission requests, these are not displayed as part of the temporary installation process. Also, features, such as local storage, persist even if the extension is removed and the browser restarted.