我们的Google Chrome扩展程序需要在我们的组织内部使用.我们在那里有域名.
基于企业选项,我们最简单的方法是将其托管在某个内部Web服务器上,然后通过组策略将该内部站点的地址作为ExtensionInstallSources选项添加到用户PC,但这对我不起作用.
我通过添加Google Chrome adm\admx文件尝试了注册表和本地组策略更改.
这是我的注册表更改:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallSources] "1"="http://localhost/*"
当我检查chrome:// policy时,它会显示它已加载此设置.但是,当我打开http://localhost/myextension.crx时 - Chrome仍然显示错误,无法从那里安装扩展程序...
我在Windows 8.1 Enterprise(x64)下使用47.0.2526.106 m(64位)我在这里做错了什么?
我有更复杂的选项来下载chrome source\pdbs,然后尝试调试它以了解它为什么不起作用但可能需要花费很多时间,因为Chrome可以在Windows上首次构建时编译几个小时.. ..
显然这种注册表变化还不够.调试铬源后,我发现为什么它对我不起作用.我错过了:
引用必须存在,它也应该列入白名单.因此,如果我通过直接链接打开我的扩展的URL,那么当缺少引用时 - 它将不会安装它.(哦,Chrome,至少你可以说有关它的消息......).如果我有网页链接到该扩展名,并且它也列入白名单,那么它将正常工作.
第二个错过的点是扩展ID必须存在于ExtensionInstallWhitelist中,否则Chrome将安装它并且延迟2-3秒将禁用它.但是如果你在ExtensionInstallWhitelist下列出它,那就没关系了.
所以我对localhost的最终注册表更改是:
[HKEY_LOCAL_MACHINE\SOFTWARE \策略\谷歌\ Chrome浏览器]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallSources]"1"="http:// localhost/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallWhitelist]"1"="fhojekmcngnmkdbcoegjdlojgfngkpak"
我在ExtensionManagement类中经过长时间调试后发现了它 - https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/extensions/extension_management.cc&q=ExtensionManagement::IsOffstoreInstallAllowed&sq=package:chromium&type=cs&l = 148