为什么重要
浏览器之间在 manifest 的几个关键区域仍有差异,比如后台脚本配置和厂商元数据。带前缀的字段让你能保留一份源manifest.json,同时为 Chromium 系和 Firefox 系目标生成各自正确的产物。
工作原理
Extension.js 扫描 manifest 的键,并按所选浏览器解析带前缀的条目:- Chromium 系目标(
chrome、edge、chromium-based)解析:chromium:、chrome:、edge: - Gecko 系目标(
firefox、gecko-based)解析:firefox:、gecko:
Chromium 系浏览器(Chrome、Edge 等)
Firefox
service_worker 只会出现在 Chromium 系产物里,而 Firefox 产物里则保留 background.scripts。
支持的前缀映射:
| 前缀 | 包含的目标浏览器 |
|---|---|
chromium: | chrome、edge、chromium-based |
chrome: | chrome、chromium-based |
edge: | edge、chromium-based |
firefox: | firefox、gecko-based、firefox-based |
gecko: | firefox、gecko-based、firefox-based |
permissions、content_scripts 和 background。
最佳实践
- 共享默认值保持无前缀:把通用字段写在普通 manifest 键中,只对浏览器差异的部分加前缀。
- 行为分歧时再加前缀:当运行时要求不同时再使用浏览器前缀。
- 在持续集成 (CI) 中按目标分别构建:分别生成并验证每个浏览器的产物(
dist/<browser>),以便尽早发现兼容性回归。 - 用 MDN 验证:在添加仅特定浏览器可用的设置前,使用 MDN Web Docs 确认支持情况。

