Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the BSD License.
©2009 Google
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
.
\\server\share\extension.crx
).
{ "aaaaaaaaaabbbbbbbbbbcccccccccc": { "external_crx": "\\\\server\\share\\extension.crx", "external_version": "1.0" } }
\\server\share\extension.crx
).
HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
aaaaaaaaaabbbbbbbbbbcccccccccc
).
REG_SZ
):\\server\share\extension.crx
1.0
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.
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?
\\server\share\file
(incorrect), instead of \\\\server\\share\\extension
(correct)
What are some common mistakes when installing with the registry?
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.