Firefox扩展连接WebSocket失败问题咨询
排查步骤
- 首先确认Firefox Developer Edition已导入对应自签名SSL证书:开发者版和普通版Firefox使用独立的配置文件,证书不共享。打开
about:preferences#privacy,拉到页面底部点击「查看证书」,在「证书机构」标签页导入你使用的自签名SSL证书,同时勾选「信任该CA来标识网站」选项,保存后重启浏览器再测试。 - 校验localhost的证书信任状态:在开发者版新建标签页直接访问
https://localhost:9501,如果弹出证书风险提示,点击「高级」-「接受风险并继续」,临时建立证书信任后再测试扩展连接是否正常。 - 补充扩展的域名访问权限:你当前manifest.json的
permissions字段为空,Firefox扩展发起跨域请求(包括WebSocket连接)需要提前声明目标地址权限,修改manifest配置如下:
"permissions": [ "wss://localhost:9501/*" ]
修改后重新打包加载扩展再测试。
- 查看扩展后台的具体报错信息:打开
about:debugging#/runtime/this-firefox,找到你的扩展点击「检查」按钮进入专属调试面板,切换到「网络」标签页筛选WebSocket请求,查看握手阶段的具体错误:如果是证书无效则回到证书配置步骤,如果是跨域被拦截则检查权限配置,如果是连接超时则排查端口访问限制。 - 排查Ubuntu snap沙箱限制:如果你安装的是snap版Firefox Developer Edition,默认沙箱可能会限制本地端口访问,可执行
snap remove firefox卸载后,从Mozilla官方下载二进制版开发者版再测试,排除沙箱拦截问题。 - 临时关闭Manifest V3兼容校验:打开
about:config搜索extensions.manifestV3.enabled,将值改为false后重启浏览器,重新加载扩展测试,避免开发者版默认开启的V3规则影响V2扩展的权限判定。
内容的提问来源于stack exchange,提问作者rur2641
相关产品推荐
相关产品推荐

