我们的Google Chrome扩展程序需要在我们的组织内部使用。我们在那里有域名。
基于enterprise options,对我们来说最简单的方法是将其托管在某个内部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上编译几个小时建立....
答案 0 :(得分:10)
显然,这种注册表变更还不够。调试铬源后,我发现为什么它对我不起作用。我错过了:
引用者必须存在,并且也应该列入白名单。因此,如果我通过直接链接打开我的扩展的URL,那么当缺少引用时 - 它不会安装它。 (哦,Chrome,至少你可以说有关它的消息......)。如果我的网页链接到该扩展程序,并且它也列入白名单,那么它将正常工作。
第二个遗漏点是扩展名必须出现在ExtensionInstallWhitelist中,否则Chrome将安装它,延迟2-3秒将禁用它。但如果你在ExtensionInstallWhitelist下列出它,那就没关系了。
所以我对localhost的最终注册表更改是:
[HKEY_LOCAL_MACHINE \ SOFTWARE \策略\谷歌\铬]
[HKEY_LOCAL_MACHINE \ SOFTWARE \政策\谷歌\铬\ ExtensionInstallSources] " 1" =" HTTP://本地主机/ *"
[HKEY_LOCAL_MACHINE \ SOFTWARE \政策\谷歌\铬\ 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