Firefox addon 通过HTTP更新自托管扩展

Firefox addon 通过HTTP更新自托管扩展,firefox-addon,firefox-addon-sdk,firefox-addon-webextensions,Firefox Addon,Firefox Addon Sdk,Firefox Addon Webextensions,我正在将基于SDK的Firefox扩展转换为WebExtensions,现在我要讨论的是更新扩展的问题。当前扩展名与update.rdf文件一起托管在我自己的域(这是一个HTTP域)上 现在,对于基于SDK的加载项,只要使用该工具对更新清单进行签名,并且清单中提供了更新文件的有效哈希,就可以通过HTTP进行更新。除此之外,install.rdf将持有用于对update.rdf进行签名的密钥的公钥部分 似乎没有使用web扩展实现这一点的选项(公钥没有清单条目,签名没有更新清单(.json)条目)

我正在将基于SDK的Firefox扩展转换为WebExtensions,现在我要讨论的是更新扩展的问题。当前扩展名与update.rdf文件一起托管在我自己的域(这是一个HTTP域)上

现在,对于基于SDK的加载项,只要使用该工具对更新清单进行签名,并且清单中提供了更新文件的有效哈希,就可以通过HTTP进行更新。除此之外,install.rdf将持有用于对update.rdf进行签名的密钥的公钥部分

似乎没有使用web扩展实现这一点的选项(公钥没有清单条目,签名没有更新清单(.json)条目)


这是否意味着Firefox只允许通过HTTPS更新自托管扩展?这将如何影响当前托管在HTTP域上的基于SDK的扩展?他们是否能够接收(至少一次)更新?

正如您所确定的,基于WebExtensions的插件的update.rdf必须通过HTTPS而不是HTTP提供。update.rdf文件的URL必须是HTTPS。在这一点上,我们的立场是明确的:

  • update\u url
    是指向的链接。请注意,链接必须以“https”开头。此密钥用于自己管理扩展更新(即,不通过AMO)
无法使用其他类型的加载项可用的备用安全方法,即在扩展名包含的文件中提供(并对update.rdf进行签名)

基于SDK的插件和其他类型的非WebExtensions插件将继续能够通过HTTP以与以前相同的方式接收update.rdf

如果您的问题是将加载项从基于SDK的加载项转换为基于WebExtensions的加载项,那么您需要对该扩展进行更新,以更改提供更新的URL。这可以是在转换到WebExtensions之前的某个版本中,也可以是在同一时间。无论哪种方式,它都只是一个新版本的附加组件(通过HTTP提供update.rdf并进行适当签名)。新版本将有一个(WebExtensions)或(所有其他类型),其中URL使用HTTPS方案。所有后续的update.rdf文件都将通过HTTPS提供