【问题标题】:Firefox add-ons: how to install my own local add-on (extension) permanently in Firefox?Firefox 附加组件:如何在 Firefox 中永久安装我自己的本地附加组件(扩展)?
【发布时间】:2020-09-25 22:48:58
【问题描述】:

我有自己的浏览器扩展程序和一些个人网站定制。在 Chrome 中运行良好,但在 Firefox 中无法运行。

与 Chrome 不同,Firefox 似乎无法安装未打包的扩展程序或附加组件。只有在调试模式下,我才能执行Load Temporary Add-on,选择带有我的扩展名的文件夹,这样就可以了。但那只是暂时的。

当我通过将文件放在 .zip 中(不在子目录或其他任何内容中,存档直接包含文件)来打包扩展名并将其重命名为 .xpi,然后选择 Install Add-on from file 并选择我的 .xpi ,它说:

无法安装从该站点下载的插件,因为它似乎已损坏。

在进行故障排除时,我做了一个最小的虚拟扩展,它什么都不做,只包含 manifest.jsondummy.js 文件。然后使用该目录中的7z a -tzip test.xpi 从命令行打包它,这将创建我的名为test.xpi 的zip 文件,其中包含这两个文件。在 Firefox 中加载该扩展程序会出现上述错误。

我的 manifest.json 供您参考:

{
  "manifest_version": 2,
  "name": "Test Extension",
  "version": "1.0",
  "description": "Dummy Text Extension",
  "content_scripts": [
    {
      "matches": [ "*://*/" ],
      "js": ["dummy.js"]
    }
  ]
}

而dummy.js的内容是:

// this file is intentionally left blank

再次:在 Chrome 中运行良好,在 Firefox 中作为调试模式下的临时插件加载时运行良好(即通过加载文件,在打开的对话框中我选择 manifest.json 文件)。但加载 .xpi 以永久安装此扩展程序会导致“似乎已损坏”错误。

仅供参考:我在 macOS 10.15.5 上使用最新版本的 Chrome 和 Firefox。

出于测试目的,这里是我创建的确切的test.xpi 文件,但是按照上面描述的手动打包它会得到相同的结果。

【问题讨论】:

  • works fine in Firefox when loading as temporary add-on... 你的意思是它可以安装,但是这个插件什么也没做,所以你不能说它works fine
  • @Deanie 显然我的意思是加载/安装工作正常。

标签: google-chrome firefox firefox-addon manifest browser-addons


【解决方案1】:

前几天遇到了完全相同的问题..

要让我的个人 xpi 永久安装(在 Firefox for Linux 77.0.1 下):

  • 不得不disable extension signingabout:configxpinstall.signatures.required = false(不幸的是,这需要保留,因为签名似乎在每次浏览器启动时都会被验证)

  • 在清单中的 browser_specific_settings 部分添加显式 ID

例如:

"browser_specific_settings": {
  "gecko": {
    "id": "blahblah@blah"
  }
}

希望这会有所帮助!

【讨论】:

  • 谢谢,添加 id 后它现在抱怨 xpi 未经验证。关于您链接的有关如何禁用签名检查的线程,究竟是哪个答案? czerny 的答案不起作用(我没有夜间或开发人员构建),Makyen 的第二个答案似乎复杂得离谱。是否有一种快速简便的方法可以(暂时)禁用签名检查?
  • 我的意思是:about:config -> xpinstall.signatures.required = false 澄清一下,我使用的是 Firefox for Linux。从 Mozilla 下载的标准。此外,插件似乎每次加载时都会被验证(浏览器重启),所以很遗憾需要永久禁用验证。
  • 啊,好吧,不幸的是,这在 macOS 上的 Firefox 77 中不起作用。
  • 同时,当用户更改该设置时,Firefox 似乎会默默地忽略。但它仍然适用于例如Firefox 开发人员,请参阅here
  • 本地更改后如何更新插件?每次更改后都必须打包添加?
【解决方案2】:

您是否尝试了 web-ext 工具并签署了您的附加组件?您可以使用 Web-ext CLI 工具在您的 firefox 上进行签名和安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 2011-06-07
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多