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;
};
无论我在未签名时无法使扩展工作的原因是什么,签名更容易。
我有一个连接到 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;
};
无论我在未签名时无法使扩展工作的原因是什么,签名更容易。