Enterprise distribution

As an enterprise IT administrator you may wish to install add-ons for your users automatically, this page discusses the options.

Signed vs. unsigned extensions

From Firefox 43 all add-ons have to be signed before they can be installed into the standard or beta versions of Firefox. Unsigned add-ons can be installed in the Developer Edition, Nightly, and ESR versions of Firefox, after toggling the xpinstall.signatures.required preference in about:config.

If you want to install unsigned add-ons, deploying an ESR version of Firefox is the recommended approach. Once that is done, unsigned add-ons can be installed using any method, including opening the add-on file from a web page.

The alternative, and recommended, approach is to use the option for self-distributed add-ons on addons.mozilla.org (AMO). This option means that you can get a signed add-on without it being listed in the public add-ons directory. This signed add-on can then be installed from a web page behind the firewall, or installed using one of the options described here.

Installation using the Windows registry

This section explains how to install add-ons into Firefox using the Windows Registry.

Starting in Firefox 73, it will no longer be possible to have an extension be installed automatically as part of another application install. See the Add-ons Blog for more information.

Before Firefox 62 it was possible to load unpacked extensions by making the Windows registry key point to a directory containing an unpackaged extension.

From Firefox 62 this is no longer possible, and the key must point to a packaged XPI file, as described in this section.

It is safe to modify the Registry keys while Firefox is running.

  1. Ensure the add-on has an add-on ID, by including the following to its manifest.json file, replacing your-add-on-name@your-domain.com with a suitable ID for your add-on:

    "browser_specific_settings": {
    "gecko": {
    "id": "your-add-on-name@your-domain.com"
    }
    }

An email address style ID is recommended.

  1. Sign your add-on on addons.mozilla.org (AMO) using the self-distribution option. For more details, see Signing and distributing your add-on.

  2. Download the signed XPI file and ensure the file name is the add-on ID plus the extension .xpi. For example, c:/webext/borderify@example.com.xpi

  3. Open Regedit and add keys as follows:

    • For all users of the computer, add to the following registry keys:

    HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions

    or

    HKEY_LOCAL_MACHINE\Software\Wow6432Node\Mozilla\Firefox\Extensions

HKEY_LOCAL_MACHINE\Software\Mozilla\Firefox\Extensions is not available when running 32-bit Firefox on a 64-bit machine, you can only install for all users using the Wow6432Node key.

  • For the current user, add to the following registry key:

HKEY_CURRENT_USER\Software\Mozilla\Firefox\Extensions

  1. Create a new string value Registry entry with its name equal to the add-on ID, for example, borderify@example.com, and a value equal to the location where the add-on is stored, for example, c:/webext/borderify@example.com.xpi.

  2. Restart Firefox. The add-on is detected, but the user may be presented with an interstitial or need to enable the add-on in Add-on manager before it can be used. See Firefox settings.

If the same add-on appears under both HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE, then the instance under HKEY_CURRENT_USER will be used. If the same add-on appears in the user's profile directory (for example, if they have already manually installed it), then that version will take precedence over any instances found in the Registry.

To remove an add-on installed using the Windows Registry simply remove the Registry entry. After the Registry entry is removed, Firefox will detect the change the next time it is launched. It is safe to modify the Registry keys while Firefox is running.

If you install using the Windows Registry, Firefox will not automatically update your add-on. You will have to arrange to update the add-on using whatever installation process you choose external to Firefox.

Firefox settings

There are two settings that affect the use of alternative installation options. The extensions.autoDisableScopes preference controls whether add-ons are installed automatically or after user confirmation. The extensions.enabledScopes preference is used to disable installation from most locations. In addition to these options, the method of setting these preferences programmatically is discussed.

Controlling automatic installation

The standard downloads of Firefox are configured so that sideloads using the standard extensions folder or the Windows Registry, don’t install automatically. Depending on the version of Firefox:

  • the user has displayed an interstitial warning:
  • the add-on is installed but disabled, and the user should enable it from Add-on manager:

The use of interstitial and silent disabled installs varies between versions of Firefox, for example, version 54 uses the interstitial message.

The availability of automatic installation is controlled by the extensions.autoDisableScopes preference and behavior are defined by the following values:

Value Install scope
1 (or '0b0001') The current user’s profile.
2 (or '0b0010') All profiles of the logged-in user.
4 (or '0b0100') Installed and owned by Firefox.
8 (or '0b1000') Installed for all users of the computer.
15 (or '0b1111') The combination of all scopes.

By default, extensions.autoDisableScopes is set to 15 so that automatic installs are disabled from all locations. To disable only a subset of locations, set the preference to the sum of the values for the locations you want to disable. For example, 3 will disable “The current user’s profile.” and “All profiles of the logged-in user.” Setting the value to 0 disables this feature and means all add-ons will be installed without user confirmation.

Disabling install locations

In some circumstances, you may want Firefox to ignore some or all of the additional install locations listed above. In this case, use the preference extensions.enabledScopes. By default, this preference is not included in the standard downloads of Firefox, so will need to be added. You can add the preference manually or do it programmatically using the instructions in the next section.

It is impossible to disable loading add-ons from the profile directory.

Settings scope preferences programmatically

Use the following logic to set the values of extensions.autoDisableScopes and extensions.enabledScopes programmatically to ensure add-ons are installed automatically:

  1. Edit the administrative config file.
  2. Check for the presence of lines that set the extensions.autoDisableScopes and/or extensions.enabledScopes preferences and replace/add them as needed.
  3. These preference lines should be used like below, with values of your choice as explained in the top of this section:
defaultPref("extensions.autoDisableScopes", 0);
defaultPref("extensions.enabledScopes", 15);
// Or use binary value like this
defaultPref("extensions.enabledScopes", 0b1111);

According to this page (dated: September 28, 2012), "“You cannot set this preference remotely using autoconfig files." Which recommends you only set these preference in a local autoconfig file. If this is wrong info please adjust or remove this note.

Bundling add-ons with a custom Firefox

You can bundle add-ons within a customized Firefox, and they will be installed automatically when the user starts up the application for the first time. See Deploying Firefox with extensions for details.