如何更新自托管的Firefox WebExtension

时间:2018-08-30 19:56:17

标签: firefox firefox-webextensions

我如何配置自分散的firefox webExtension以自动更新,我尝试遵循MDN update doc,但仍然无法更新。 我的网络扩展程序托管在

之类的子域名上

https://files.example.com/myfile/extension.xpi

我的updates.json文件与我的.xpi文件位于同一位置

这是我的updates.json的原型

{
  "addons": {
      "updates": [ { "version": "1.2",
          "update_link": "https://files.abc.com/myfiles/extension-1.2-an+fx.xpi" },
           { "version": "1.3",
          "update_link": "https://files.abc.com/myfiles/extension-1.3-an+fx.xpi" }
      ]
  }
}

这是我从浏览器控制台中得到的胡言乱语

1535658478365 addons.update-checker WARN onUpdateCheckComplete failed 
to parse update manifest: [Exception... "Update manifest is missing a 
required addons property." nsresult: "0x80004005 (NS_ERROR_FAILURE)" 
location: "JS frame :: 
resource://gre/modules/addons/AddonUpdateChecker.jsm :: 
getRequiredProperty :: line 120" data: no] Stack trace: 
getRequiredProperty()@resource://gre/modules/addons/AddonUpdateChecker.jsm:120
parseJSONManifest()@resource://gre/modules/addons/AddonUpdateChecker.jsm:130 onLoad()@resource://gre/modules/addons/AddonUpdateChecker.jsm:309 UpdateParser/<()@resource://gre/modules/addons/AddonUpdateChecker.jsm:241

1 个答案:

答案 0 :(得分:0)

您的“ updates.json”似乎缺少附加组件名称和XPI哈希。我还要测试文件名中是否没有“ +”,我认为这引起了我的问题(由于托管服务器)。

要查看您的加载项UUID(例如“ ADDONNAME@test.com”),请登录到开发人员中心,单击编辑信息,然后在技术信息下查找。要生成XPI文件的update_hash,我建议使用VSCryptoHash,但任何其他生成加密哈希的程序都可以使用。

{
  "addons": {
    "ADDONNAME@test.com": {
      "updates": [
       { "version": "1.0.0",
         "update_link": "https://files.abc.com/myfiles/extension-1.2-fx.xpi" ,
         "update_hash": "sha256:blahblah" }
      ]
    }
  }
}

控制台错误表明您的清单也丢失了某些内容。这是一个基于我的有效示例。

"applications": {
    "gecko": {
        "id": "ADDONNAME@test.com",
        "strict_min_version": "50.0",
        "update_url": "https://webpage/Updatefile.json"
    }
},