Firefox 扩展的 Websocket 连接失败

Websocket connection failing from Firefox extension

我有一个连接到 websocket 服务器并发送消息的 Firefox 扩展。我用web-ext build打包,把.zip重命名为.xpi。上个月我在 about:config 中将 xpinstall.signatures.required 设置为 false 后将其安装在 Firefox 中。我将 SSL 密钥添加到 Firefox 证书管理器。它工作了一个月。昨天可能有 Firefox 更新,现在扩展被阻止,因为它没有签名。经过一番研究,我发现常规的 Firefox 已经很长时间不允许未签名的扩展了。这让我想知道直到昨天我还有什么版本;我正在使用 2 个月前设置的 Ubuntu 20.04 系统。

当使用 about:debugging 手动加载扩展时,扩展像以前一样工作(websocket 创建成功并发送消息)。

我在网上看到 Firefox Developer 版本允许未签名的扩展。但是在执行完全相同的步骤之后,我无法使扩展程序与 .xpi 一起使用或通过临时加载扩展程序。在这两种情况下都是同样的错误:

Firefox can’t establish a connection to the server at wss://localhost:9501/.

扩展有清单和后台脚本

manifest.json:

{
  "description": "weblogging app",
  "manifest_version": 2,
  "name": "weblogger",
  "version": "1.0",

  "browser_specific_settings": {
    "gecko": {
      "id": "browser_logger@example.org",
      "strict_min_version": "50.0"
    }
  },

  "background": {
    "scripts": ["background.js"]
  },

  "permissions": []
}

background.js:

var websocketArguments = 'wss://localhost:9501';
var connected = new Boolean(false);
var webSocket;
createWebsocket();

function onError(error)
{
   console.log(`Error: ${error}`);
}

function createWebsocket()
{
   webSocket = new WebSocket(websocketArguments);
   webSocket.onerror = onWebSocketError;
   webSocket.onopen = onWebSocketOpen;
}

function onWebSocketError(event)
{
   console.log("WebSocket error observed:", event);
};

function onWebSocketOpen(event)
{
   console.log("WebSocket open: ", webSocket.readyState);
   webSocket.send("hello there");
   connected = true;
};

无论我在未签名时无法使扩展工作的原因是什么,签名更容易。

https://addons.mozilla.org/en-CA/developers/