You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files.
paramName
( optional Type array of paramType )
Undocumented.
Description of this parameter from the json schema.

Google Chrome Extensions (Labs)

External Extensions

External Extensions
true

Google Chrome implements a mechanism to detect when an external extension needs to be installed. Typically, this could be leveraged by 3rd party vendors to install an extension whenever the user installs their software. Another use case includes network admins, who want to install the same extensions throughout their company.

Google Chrome supports two ways of installing external extensions: using a preferences JSON file, or using the Windows registry (Windows only).

Important: Before you begin, make sure you have a packaged crx file that installs successfully, and make a note of both the version of the extension and its id (see chrome://extensions/). For the rest of this text, we'll assume the extension version is 1.0 and its id is aaaaaaaaaabbbbbbbbbbcccccccccc.

Using the Preferences File

  1. Make the .crx extension file available to the machine you want to install the extension on (copy it to a local directory or to a network share, ie. \\server\share\extension.crx).
  2. Locate the external_extensions.json file under the Chrome installation directory and add the following key inside the curly brackets (note the extra escaping for the slashes, which is also required when specifying local directories):
    {
      "aaaaaaaaaabbbbbbbbbbcccccccccc": {
        "external_crx": "\\\\server\\share\\extension.crx",
        "external_version": "1.0"
      }
    }
  3. Save the json file.
  4. Launch Chrome and go to chrome://extensions and you should see the extension listed.

Using the Windows Registry

  1. Make the .crx extension file available to the machine you want to install the extension on (copy it to a local directory or to a network share, ie. \\server\share\extension.crx).
  2. Find (or create the following key) in the registry:
    32 bit Windows: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    64 bit Windows: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  3. Create a new key (folder) under the Extensions key with the same name as the id of your extension (aaaaaaaaaabbbbbbbbbbcccccccccc).
  4. Create two string values (REG_SZ):
    path: \\server\share\extension.crx
    version: 1.0
  5. Launch the browser and go to chrome://extensions and you should see the extension listed.

Updating and Uninstalling

Google Chrome scans the metadata entries in the preferences and registry each time the browser starts, and makes any necessary changes to the installed external extensions.

To update your extension to a new version, update the file, and then update the version in the preferences or registry.

To uninstall your extension (eg if your software is uninstalled), remove the metadata from the preferences file or registry.

FAQ

Can I specify a URL as a path to the external extension?

Not at this time. Chrome only supports absolute/relative local paths and UNC paths. Relative paths are relative to the Extensions directory (where the external_extensions.json file is located).

What are some common mistakes when installing with the preferences file?

  • Not specifying the same id/version as the one listed in the .crx
  • external_extension.json is not in the right location
  • Syntax error in json file (forgetting to separate entries with comma or leaving a trailing comma somewhere)
  • Extra curly brackets around the top level dictionary
  • JSON file entry points to the wrong path to the .crx (or path specified but no filename)
  • Backslashes in UNC path not escaped (eg \\server\share\file (incorrect), instead of \\\\server\\share\\extension (correct)
  • Permissions problems on a network share

What are some common mistakes when installing with the registry?

  • Not specifying the same id/version as the one listed in the .crx
  • Key created in the wrong location in the registry
  • Registry entry points to the wrong path to the .crx (or path specified but no filename)
  • Permissions problems on a network share

What if the user uninstalls the extension?

If the user uninstalls the extension through the UI, it will no longer be installed or updated on each startup. In other words, the external extension is blacklisted.

How do I get off the blacklist?

If the user uninstalls your extension, you should respect that decision. However, if you (the developer) accidentally uninstalled your extension through the UI, you can remove the blacklist tag by installing the extension normally through the UI, and then uninstalling it.