【问题标题】:Updating self-hosted extensions through HTTP通过 HTTP 更新自托管扩展
【发布时间】:2017-03-10 13:15:46
【问题描述】:

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

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

似乎没有使用网络扩展的选项(没有公钥的清单条目,也没有签名的更新清单 (.json) 条目)。

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

【问题讨论】:

    标签: firefox-addon firefox-addon-sdk firefox-addon-webextensions


    【解决方案1】:

    您似乎已经确定,基于 WebExtensions 的插件的 update.rdf 必须通过 HTTPS 而不是 HTTP 提供。 update.rdf 文件的 URL 必须是 HTTPS。 documentation for the update_url property in the manifest.json applications key 在这一点上是明确的:

    • update_url 是指向 add-on update manifest 的链接。请注意,链接必须以“https”开头。此密钥用于自己管理扩展更新(即不通过 AMO)。

    无法使用可用于其他类型的附加组件的备用安全方法,即在@987654324 中提供updateKey(并签署update.rdf) @ 扩展名中包含的文件。

    基于附加组件 SDK 的扩展,以及其他类型的非 WebExtensions 附加组件,将继续能够以他们一直在做的相同方式通过 HTTP 接收他们的 update.rdf .

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多