Temporary installation in Firefox

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.

borderify part 1

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:

borderify part 3

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 Listen for the runtime.onInstalled event, and check the value of details.temporary.


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.

For information on how to address these situations, see Test permission requests and Testing persistent and restart features.