Temporary installation in Firefox

This article describes how you can temporarily install an extension in Firefox for testing and debugging. The extension stays installed until you remove it or restart Firefox.

For extension development, automate the processes described on this page by using web-ext.

Note that this is not how end-users should install add-ons in Firefox. End-users install add-ons by downloading and opening packaged add-ons that have been signed by Mozilla. To learn how you 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 "This Firefox"
  • click "Load Temporary Add-on"
  • open the extension's directory and select any file inside the extension.

The extension installs and remains installed until you remove it or restart Firefox.

temporarily install extension

Reloading a temporary extension

To reload the extension, click "Reload":

reload-extension

This:

reload temporary extension

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 use the command line for development, check out web-ext. It automates the temporary installation and automatically reloads your extension when its source code changes.

Detecting temporary installation

An extension can detect whether it was installed from about:debugging, rather than as a signed extension downloaded from addons.mozilla.org. It does this by listening for the runtime.onInstalled event, and checking the value of details.temporary.

Limitations

The 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.