Edge and Chrome do not allow users to install extensions outside of the Edge/Chrome Web Store by default. This article will introduce how to deploy a self-hosting Edge/Chrome extension to the Microsoft Edge browser, including allowing users to install external extensions manually and silently installing external extensions in Edge.
Prerequisites
It is assumed that you have already developed the Edge/Chrome extension and hosted it somewhere. For guidance on how to develop a browser extension, you can start here. This article will use the following sample extension that I have already deployed to a public web server:
- Extension name: Sheng's browser extension
- Extension ID: dcammpemjaodphbdhpcmlfhbgkhagalj
- CRX install link: https://edge.eastasia.cloudapp.azure.com/cases/extension/sheng-s-browser-extension.crx
- Update file: https://edge.eastasia.cloudapp.azure.com/cases/extension/updates.xml
Force installs the extension using the ExtensionInstallForcelist
setting
After configuring the policy setting: Control which extensions are installed silently to the following value, the sample extension will be automatically installed in Edge.
dcammpemjaodphbdhpcmlfhbgkhagalj;https://edge.eastasia.cloudapp.azure.com/cases/extension/updates.xml
The registry key behind this setting is:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallForcelist]
"1"="dcammpemjaodphbdhpcmlfhbgkhagalj;https://edge.eastasia.cloudapp.azure.com/cases/extension/updates.xml"
Allow manual installation using the ExtensionInstallSources
and ExtensionInstallAllowlist
settings
Enable Configure extension and user script install sources and add entry:
*://edge.eastasia.cloudapp.azure.com/*
to the list.NOTE: Both the location of the
*.crx
file and the page where the download is started from (the referrer) should be added to the list. In this case, the page that initiates the CRX file download is https://edge.eastasia.cloudapp.azure.com/cases/extension/readme.html, so only*://edge.eastasia.cloudapp.azure.com/*
needs to be added to the list because the.crx
file is hosted on the same domain. If the extension needs to be installed from https://edgedbg.com/cases/extension/readme.html, then*://edgedbg.com/*
also needs to be added to the list.Enable Allow specific extensions to be installed and add the extension ID:
dcammpemjaodphbdhpcmlfhbgkhagalj
to the list.After these settings are applied, user can visit the extension installation page: https://edge.eastasia.cloudapp.azure.com/cases/extension/readme.html and click the CRX file link to install the extension.
The registry keys behind those two settings are:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallAllowlist]
"1"="dcammpemjaodphbdhpcmlfhbgkhagalj"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallSources]
"1"="*://edge.eastasia.cloudapp.azure.com/*"
Force/Manual installs the extension using the ExtensionSettings
setting
ExtensionSettings accepts a single line JSON string as input. You can find detailed usage instructions in the article: A detailed guide to configuring extensions using the ExtensionSettings policy
The following JSON will force install the sample extension:
{
"*": {
"install_sources": ["*://edge.eastasia.cloudapp.azure.com/*"]
},
"dcammpemjaodphbdhpcmlfhbgkhagalj": {
"installation_mode": "force_installed",
"update_url": "https://edge.eastasia.cloudapp.azure.com/cases/extension/updates.xml"
}
}
Minified:
{"*":{"install_sources":["*://edge.eastasia.cloudapp.azure.com/*"]},"dcammpemjaodphbdhpcmlfhbgkhagalj":{"installation_mode":"force_installed","update_url":"https://edge.eastasia.cloudapp.azure.com/cases/extension/updates.xml"}}
Registry key:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge]
"ExtensionSettings"="{\"*\":{\"install_sources\":[\"*://edge.eastasia.cloudapp.azure.com/*\"]},\"dcammpemjaodphbdhpcmlfhbgkhagalj\":{\"installation_mode\":\"force_installed\",\"update_url\":\"https://edge.eastasia.cloudapp.azure.com/cases/extension/updates.xml\"}}"
NOTE
- Same as the
ExtensionInstallSources
setting, both the location of the*.crx
file and the page where the download is started from (the referrer) should be added to theinstall_sources
list. - If you want to allow manual installation, change the
installation_mode
toallowed
.