Firefox Android版Manifest v3内容脚本无法运行求助
Firefox Android Manifest V3 内容脚本无法注入问题解决指南
问题现象
- 原Manifest V2扩展可正常向特定网站注入content script,切换到Firefox Android的Manifest V3后,脚本完全无法运行(已通过console.log/alert结合USB调试验证,无日志输出、无报错信息)
- 桌面版Firefox的Manifest V3扩展会弹出「需要权限以读取和修改数据」的授权弹窗,用户确认后脚本才会注入,但Android版未出现该弹窗
- 特殊场景:从V2版本直接升级到V3版本时,Android版扩展可正常工作;卸载后全新安装V3版本则失效,推测Firefox保留了V2版本自动授予的脚本注入权限,但V3版本未自动获取该权限
排查与解决步骤
1. 核对Manifest权限声明
Manifest V3对宿主权限的声明逻辑与V2不同:
- V2中宿主匹配规则放在
permissions数组内,V3需单独移至host_permissions字段,确保目标网站的匹配规则正确填写在host_permissions中 - 避免使用动态权限请求(
browser.permissions.request()),目前Firefox Android可能无法触发对应的授权弹窗,建议在安装时直接声明必要的host_permissions
2. 手动授予Android端扩展权限
由于Firefox Android暂未自动弹出V3扩展的权限请求弹窗,可手动开启权限:
- 打开Firefox Android的扩展管理页面
- 找到目标扩展,进入详情页
- 找到「网站权限」选项,手动为目标网站授予「读取和修改数据」权限
3. 验证Manifest配置细节
对比V2与V3的content script配置,确保:
content_scripts中的matches规则与host_permissions完全匹配,不能超出权限范围content_scripts的js文件路径正确,V3对资源路径的校验更严格,避免相对路径错误
4. 兼容性测试
- 尝试将扩展打包为正式的
.xpi文件安装,而非使用web-ext工具测试,部分web-ext的调试模式可能存在Android端兼容性问题 - 在Firefox Nightly版重复测试,部分V3的兼容性问题仅在稳定版存在,Nightly版可能已修复
内容的提问来源于stack exchange,提问作者JonDerThan
相关产品推荐
相关产品推荐

