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: *)
附加程序運行最佳的最大版本號。此屬性大部分情況被忽略。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章