使用declarativeNetRequest的Firefox扩展失效,Chrome正常且存在安装验证问题
Firefox 116下Manifest V3扩展无法安装及功能失效问题解决
一、解决“未经过验证”无法安装的问题
Firefox默认禁止安装未经过Mozilla验证的Manifest V3扩展,可通过以下方式处理:
- 临时调试方案:继续使用
about:debugging页面加载临时扩展(你当前采用的方式) - 允许未验证扩展(不推荐长期使用):
- 打开
about:config - 搜索
xpinstall.signatures.required,将其值改为false
- 打开
- 永久方案:将扩展打包后提交至Mozilla附加组件商店完成审核,审核通过后即可正常安装
二、解决调试安装后功能不工作的问题
针对你的重定向规则和Manifest配置,按以下步骤排查修复:
1. 补全请求资源类型
Firefox的declarative_net_request规则默认可能不会匹配所有资源类型,需明确指定图片类型确保规则生效。修改rules.json的condition部分,添加resourceTypes:
[ { "id": 1, "priority": 1, "action": { "type": "redirect", "redirect": { "regexSubstitution": "https://www.example.net/discussion/data/avatars/o\\1" } }, "condition": { "regexFilter": "^https://www.example.net/discussion/data/avatars/[lsm](.*)$", "resourceTypes": ["image"] } } ]
2. 调整正则替换语法
Firefox与Chromium对正则反向引用的处理存在细微差异,可尝试将regexSubstitution中的\\1替换为$1,部分场景下兼容性更好:
"regexSubstitution": "https://www.example.net/discussion/data/avatars/o$1"
3. 验证权限范围
将host_permissions扩展为https://www.example.net/*,排除域名范围限制导致的规则失效问题:
"host_permissions": [ "https://www.example.net/*" ]
4. 调试排查细节
- 打开附加组件调试器:在
about:debugging页面找到你的扩展,点击“检查”,查看控制台是否有报错信息 - 使用网络监视器:打开
about:netmonitor,过滤图片请求,查看目标URL是否触发重定向规则,可在“请求详情”中查看扩展规则的应用记录
内容的提问来源于stack exchange,提问作者norahCii
相关产品推荐
相关产品推荐

