Firefox附加程序自动更新设置

本文来自:https://developer.mozilla.org/zh-CN/Add-ons/Updates

由本人翻译提供。

 

Firefox 支持使用 JSON 升级清单描述文件自动升级扩展程序。 部署在 AMO 上的扩展程序能自动更新到最新版本, 其他的扩展程序必须明确说明它们的升级描述文件的位置。

一个典型的升级描述文件如下:

{
  "addons": {
    "[email protected]": {
      "updates": [
        { "version": "0.1",
          "update_link": "https://example.com/addon-0.1.xpi" },
        { "version": "0.2",
          "update_link": "http://example.com/addon-0.2.xpi",
          "update_hash": "sha256:fe93c2156f05f20621df1723b0f39c8ab28cdbeec342efa95535d3abff932096" },
        { "version": "0.3",
          "update_link": "https://example.com/addon-0.3.xpi",
          "applications": {
            "gecko": { "strict_min_version": "44" } } }
      ]
    }
  }
}

扩展程序升级

如果你的附加程序不是部署在AMO上, 你必须明确地说明你的附加程序升级清单文件的位置。 对于 WebExtensions,需要添加如下内容到你的清单文件中:

"applications": {
  "gecko": {
    "update_url": "https://example.com/updates.json"
  }
}

对于 XUL 扩展程序,添加如下内容到install.rdf 文件的<Description about="urn:mozilla:install-manifest">  元素中:

<em:updateURL>https://example.com/updates.json</em:updateURL>

Manifest 结构

manifest 是一个使用顶级对象的JSON文件。 这个对象包含以下可能的属性:

Property Type Description
addons object 一个对象包含一个要升级的附加程序的实体。每一个实体的key必须是附加程序的ID,同时它的value必须是一个 addon objects 和它的updates。

Addon objects

addons[*]

每个addons对象的属性必须包含升级附加程序的描述对象集合。这对象有以下属性:

Property Type Description
updates Array 可选 一个数据包含0个或多个附加程序的 update description objects 。

Update objects

addons[*].updates[*]

升级描述对象必须是对象集合,它们可以有以下属性:

Property Type Description
version string 附加程序的版本号。如果升级地址被指定,这个版本号必须存在。如果任何compatibility information被指定,它将用此版本号覆盖特殊信息中的版本号。
update_link string 可选 一个指向附加程序XPI文件的链接地址,它必须是HTTPS 地址,否则必须包含 update_hash 以便验证它。
update_hash string 可选 一个update_link指向的文件的Hash编码。 如果update_link不是HTTPS的地址时必须包含这个值。 如果出现,它必须是一个以 sha256: or sha512:开头的字符串,后面跟对应类型的16进制的hash编码。
update_info_url string 可选 一个包含升级说明信息的HTML文件的地址。
multiprocess_compatible  bool 可选
(default:true)
如果为false,这个附加程序必须要求 运行在 multi-process Firefox 环境.
applications object 可选

一个包含 application-specific compatibility information的对象。每个属性必须包含一个 application object,它的描述如下。

包括 Firefox和其它构建于相同运行环境的应用,当前都只支持一个值: gecko

如果这个属性被忽略,Gecko是支持的。另外,如果这个属性被定义,它必须包含一个gecko属性,否则这个升级实体将被忽略。

Application objects

addons[*].updates[*].applications.gecko

Application 对象为一个特定的应用指定合适的描述信息。 它们必须是一个对象集合,可以包含以下属性:

Property Type Description
strict_min_version string 可选
(default:42.0a1)
附加程序可以运行的最小版本号。
strict_max_version string 可选
(default: *)
附加程序可以运行的最大版本号。
advisory_max_version  string 可选
(default: *)
附加程序运行最佳的最大版本号。此属性大部分情况被忽略。

 

猜你喜欢

转载自just4java.iteye.com/blog/2359083