将Chrome Manifest V3扩展适配Firefox MV3时遇运行故障
问题:Manifest V3扩展在Firefox Preview中无法运行
我开发了一个能在Chrome正常运行的Manifest V3测试扩展,代码如下:
manifest.json:
{ "manifest_version": 3, "name": "test", "version": "0.0.1", "content_scripts": [ { "matches": ["*://*/*"], "js": ["content.js"] } ] }
content.js:
alert('test')
执行命令 web-ext run --firefox-preview 启动扩展时,浏览器窗口能正常打开,但扩展完全没反应。添加--verbose参数后看到以下错误信息,求帮忙排查:
Firefox stderr: [Parent 14212, IPC I/O Parent] WARNING: file /builds/worker/checkouts/gecko/ipc/chromium/src/base/process_util_win.cc:167 Firefox stderr: JavaScript error: resource://gre/modules/XULStore.jsm, line 58: Error: Can't find profile directory. Firefox stdout: console.error: services.settings: Firefox stdout: main/whats-new-panel Signature failed InvalidSignatureError: Invalid content signature (main/whats-new-panel) Firefox stdout: console.error: services.settings: Firefox stdout: main/whats-new-panel local data was corrupted console.warn: services.settings: main/whats-new-panel Signature verified failed. Retry from scratch
Firefox stdout: console.error: services.settings: Firefox stdout: main/addons-manager-settings Signature failed again InvalidSignatureError: Invalid content signature (main/addons-manager-settings) Firefox stdout: console.error: services.settings: Firefox stdout: Message: InvalidSignatureError: Invalid content signature (main/addons-manager-settings) Stack: InvalidSignatureError@resource://services-settings/RemoteSettingsClient.jsm:169:5 _validateCollectionSignature@resource://services-settings/RemoteSettingsClient.jsm:977:13
排查解决方案
手动指定Profile目录
错误提示的Can't find profile directory是核心问题之一,web-ext可能未正确生成临时配置文件。可以手动指定测试用Profile目录:web-ext run --firefox-preview --profile ./test-profile执行前确保
./test-profile目录已创建,web-ext会自动初始化该目录作为Firefox配置目录。验证Manifest V2兼容性
Firefox对Manifest V3的支持仍在完善中,部分特性可能存在兼容问题。先将扩展改为Manifest V2测试,排除MV3本身的兼容问题:
修改manifest.json:{ "manifest_version": 2, "name": "test", "version": "0.0.1", "content_scripts": [ { "matches": ["*://*/*"], "js": ["content.js"] } ] }重新执行启动命令,若
alert('test')正常弹出,说明问题源于Firefox Preview对MV3的支持限制,需关注官方版本更新。临时禁用Remote Settings签名验证
InvalidSignatureError是Firefox远程设置服务签名验证失败导致的,会影响扩展管理器工作。可临时关闭验证:- 启动Firefox Preview后访问
about:config - 搜索
services.settings.signature.verification,将值改为false - 重启浏览器后重新加载扩展测试
- 启动Firefox Preview后访问
更新web-ext和Firefox Preview
旧版本工具或浏览器可能存在已知bug,更新到最新版本:- 更新web-ext:
npm install -g web-ext - 下载替换最新版Firefox Preview
- 更新web-ext:
内容的提问来源于stack exchange,提问作者Johnson
相关产品推荐
相关产品推荐

