You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firefox中运行原生WebExtension遇清单字段警告,如何解决?

解决方法

1. 拆分两类Manifest文件

你肯定是把原生应用专属的Manifest字段(allowed_extensions、type、path)塞到WebExtension的manifest.json里了——Firefox的扩展清单根本不认这些字段,这就是警告的来源。

两类Manifest要各司其职:

  • WebExtension的manifest.json:只保留扩展本身的配置,比如名称、版本、权限(需添加"nativeMessaging")、后台脚本等,把那三个多余字段全部删掉。
  • 单独创建一个原生应用的Manifest文件(比如命名为com.example.native-host.json),专门存放allowed_extensions、type、path这些原生消息相关配置,示例格式如下:
{
  "name": "com.example.native-host",
  "description": "原生消息测试主机",
  "path": "native-host.py",
  "type": "stdio",
  "allowed_extensions": ["{你的扩展ID}"]
}

2. 将原生应用Manifest放到Firefox指定目录

Firefox只会在特定目录读取原生应用配置,对应系统的存放路径如下:

  • Windows:进入%APPDATA%\Mozilla\NativeMessagingHosts\,创建与Manifest文件名同名的文件夹,将Manifest放入其中。
  • macOS:选择~/Library/Application Support/Mozilla/NativeMessagingHosts/ 或 /Library/Application Support/Mozilla/NativeMessagingHosts/
  • Linux:选择~/.mozilla/native-messaging-hosts/ 或 /usr/lib/mozilla/native-messaging-hosts/

3. 确保扩展ID与配置匹配

allowed_extensions数组中必须填入你加载的WebExtension的ID:

  • 若通过about:debugging临时加载扩展,可在扩展详情页找到对应的ID。
  • 想要固定ID,可在WebExtension的manifest.json中添加以下配置:
"browser_specific_settings": {
  "gecko": {
    "id": "你的扩展ID@自定义域名.com"
  }
}

4. 给原生应用脚本添加执行权限

path字段指向的脚本/程序必须具备可执行权限:

  • Linux/macOS:在终端执行chmod +x native-host.py赋予脚本执行权限。
  • Windows:确保脚本关联了正确的解释器(比如Python),双击脚本可正常运行。

完成以上步骤后,重新通过about:debugging加载WebExtension,警告即可消除,原生消息功能也能正常运行。

内容的提问来源于stack exchange,提问作者Tamás Horváth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:32:46