研究报告 · 约 23,513 字 · 预计推送 3 部分

浏览器扩展开发工程:Manifest V3、权限模型与跨浏览器发布(横纵综合报告) 未开始

目录

题记与说明


TL;DR

浏览器扩展二十年主线是危机驱动收权:脚本漏洞与广告注入危机催生商店、清单、权限三件套;WebExtensions 让"一次开发、四家上架"成真;Manifest V3 以按需后台、声明式拦截与最小权限重写规则,2026 年 8 月底 Chrome 商店(CWS)清空全部 MV2。当前格局:Chromium 系 MV3 一统、Firefox 双轨保留阻塞拦截、Safari 走封闭分发。对个人效率扩展:先以 bookmarklet(书签脚本)/用户脚本验证想法,确需扩展时用最小权限(activeTab+storage+scripting,站点权限按需申请)在 Chrome 首发,再免费增量上 Firefox/Edge 商店;就 CWS 而言权限越宽、审核越慢且被拒概率越高(Firefox 的审核时长波动则主要来自人工复审排队,见 3.2)。


一、纵轴:发展脉络(2004–2026)

扩展平台今天的每一根支柱——商店、清单文件、权限弹窗、跨浏览器兼容层——都不是设计出来的,而是被二十年间的危机一次次逼出来的。按时间划分六个阶段。

1.1 阶段一(2004–2008):用户脚本与 XUL——扩展的两种原型

2004 年 11 月 28 日 Aaron Boodman 启动 Greasemonkey,12 月 6 日发布首版——这是浏览器史上第一个让普通用户安装脚本改写网页的扩展(Wikipedia: Greasemonkey)。2005 年 5 月《连线》报道时已有约 60 个通用脚本和 115 个站点专用脚本流通;同年 7 月 Mark Pilgrim 发现脚本可越权读写的严重漏洞并在 3.5 版修复——扩展安全模型的第一次警示。2005 年底社区建立脚本仓库 userscripts.org,该站 2010 年进入维护模式、2014 年 8 月关停,继任者 Greasy Fork 与 OpenUserJS.org 延续至今。同期 Firefox 原生扩展走的是另一条更重的路线:基于 XUL/XPCOM 深度改写浏览器界面与内部组件,能力极强但完全绑定 Firefox,每次内核重构都要大规模适配(How-To Geek, 2015)。(更早的 IE 时代通过浏览器助手对象 BHO 做扩展、权限完全不受限,是"无权限模型"的反面教材——此为背景性既有常识,本次未单独检索验证。)

这一阶段的两个未解问题——任意代码注入等于巨大安全面、分发没有官方渠道——直接催生了后来"商店+清单+权限声明"的三件套。

1.2 阶段二(2008–2012):Chrome 三件套定型

2009 年 12 月 8 日 Google 宣布扩展功能登陆 Chrome Windows beta,上线即有 300 多个扩展并配套 gallery 分发渠道(Chromium Blog, 2009-12-08);2010 年 5 月 I/O 预览、12 月 7 日 Chrome Web Store 正式开放(Wikipedia: Chrome Web Store)。Chrome 扩展模型的关键决策是把扩展定义为"受限的网页":manifest 声明权限、独立进程运行、UI 用纯 Web 技术——与 XUL 深绑内核的路线形成鲜明对照。版本制度上,manifest version 1 在 Chrome 18 被标记弃用,Chrome 23(2012 年 11 月)起强制 manifest_version: 2(Chrome for Developers)——"清单文件本身就是版本化 API 契约"自此成为惯例。

此阶段确立了此后十五年的基本形态:商店统一分发(含自动更新)、manifest 版本化、权限安装时一次性弹窗声明。注意此时权限模型仍是"一次性全给"——用户要么接受全部权限,要么不装;这一妥协将在阶段三被清算。

1.3 阶段三(2012–2018):恶意扩展逼出权限收紧

这五年 Chrome 生态屡次爆发恶意扩展事件。标志性研究是 Google 团队 2015 年 5 月发表的《Ad Injection at Scale》(IEEE S&P 2015,Kurt Thomas 等):广告注入影响 Google 超过 5% 的日独立 IP,生态中约 50,000 个扩展与 34,000 个软件程序在注入广告,识别出 3,049 个注入库、约六成使用欺骗性手段(Google Security Blog、论文 PDF)。2015 年前后 Google 连续清理广告注入器、移除高危 API、收紧审核;2018 年 10 月发布"Trustworthy Chrome Extensions, by default"计划——移除站内内联安装、限制远程托管代码、要求权限使用说明——被后续报道明确追溯为 Manifest V3 的前奏(The Register, 2020-12-10)。

驱动逻辑:经济利益驱动的注入产业链证明"安装时一次性授权"已经失守——扩展一旦获得宽权限,用户再无感知。平台被迫把安全从"事前一次性审查"改为结构性约束,让危险的 API 模式从架构上难以存在。optional_permissions、运行时请求、按站点授权等机制都是这条防线的产物,也是本课题"权限模型"一说的真正起点。

1.4 阶段四(2015–2020):WebExtensions 的胜利——跨浏览器第一次成真

2015 年 8 月 21 日 Mozilla 官宣 WebExtensions API,明确新 API 将"与 Chrome/Opera 所用模型大体兼容"并最终取代 XUL(Mozilla Add-ons Blog),媒体以"Chrome Extensions Are Coming to Firefox"为题报道,同时引发"Firefox 变成 Chrome 复制品"的批评(TechCrunch、How-To Geek)。2017 年 Firefox 57 "Quantum" 起,WebExtensions 成为 Firefox 唯一支持的扩展类型,旧 XUL 生态一次性清零。Microsoft 方面:2019 年 11 月宣布新 Edge、2020 年 1 月 15 日 Chromium 版正式发布,2019 年 12 月开放扩展提交、2020 年 2 月 Edge Add-ons 商店对开发者开放(The Verge、TNW、TechRadar、ghacks)。Apple 方面:2020 年 WWDC 宣布 Safari 14 支持 WebExtensions API,并提供 xcrun safari-web-extension-converter 把 Chrome/Firefox/Edge 扩展一键转换为带原生 App 壳的 Safari 扩展(Apple Developer、MacRumors)。工具链同期成形:Mozilla 维护 web-ext CLI 与 webextension-polyfill(在 Chrome 补齐 promise 风格 browser.*),2019 年 10 月 web-ext 3.2.0 明确以跨浏览器开发为目标(Mozilla Hacks、GitHub)。

至此"跨浏览器发布"从插件时代的奢望变成工程默认值,开发者第一次可以"写一次、发四家";代价是 Firefox 自主扩展能力的大幅收缩——这是本课题第一位真正的"产品取舍"。

1.5 阶段五(2018–2024):Manifest V3 之争——性能、安全与广告拦截的十年拉锯

按时间排列的关键节点:

三条驱动线交织:(1) 资源占用——常驻后台页是 Chrome 内存问题重灾区,service worker 按需启停是性能工程;(2) 安全——可编程请求拦截给了扩展"看并改写全部流量"的能力,DNR 把拦截规则从任意代码降格为可静态审计的声明;(3) 权力——拦截能力收窄客观上保护 Google 的广告业务,这是 EFF、uBlock Origin 作者 Raymond Hill 等与 Google 拉锯十年的核心。Firefox 的答卷证明省电省内存可以用不同手段达成,"MV3 ≠ 必须消灭阻塞式 webRequest"由此成为行业共识性批评。

1.6 阶段六(2025–2026 当下):MV2 清场完成与"后 MV3 时代"的商店治理

MV2 退场全程以 Chrome 官方时间线为准(纵轴成文时已全文读取核验,页面标注最后更新 2026-09-09;两章表述统一如下表,MV2 deprecation timeline):

时间事件
2024-06-03Beta/Dev/Canary 出现弃用警告横幅;MV2 的 Featured 徽章摘除
2024-10-09stable 用户开始被逐步禁用 MV2
2025-03-31所有通道默认禁用 MV2,用户暂可手动重新开启
2025-07-24(Chrome 138)MV2 通道全面关闭——新装、重装与更新全部失效、无法再手动启用(Chrome 138 及更早版本上已装的 MV2 既有安装不受影响);企业豁免策略 ExtensionManifestV2Availability 随 Chrome 139 移除——Chrome 138 成为最后一个能运行 MV2 的版本
2026-08-31CWS 移除所有剩余 MV2 扩展(含 uBlock Origin 经典版);Chrome 138 及更早版本上的既有安装仍可运行,但无法再更新或重装

用户侧对应物是基于 DNR 的 uBlock Origin Lite,规则上限与动态过滤能力受限(Bumbletap、AdGuard)。Edge 的清退晚一拍:2026 年 8 月起逐步禁用 MV2,预计 2027 年初移除(同 AdGuard)。Firefox 的当下立场:2025 年 2 月 25 日 Mozilla 发文《Mozilla's approach to Manifest V3》,重申同时支持 MV2 与 MV3、不设 MV2 下架时间表,Firefox 因此成为 uBlock Origin 完整版的最后主要阵地(Mozilla Blog)。

商店治理同步收紧:开发者账号强制两步验证(2021 年 6 月宣布,Chrome for Developers);审核官方口径"多数扩展数天内完成"且不可加急(Review process),社区长期抱怨积压;2025 年 1 月 13 日 Adblock Plus 作者 Wladimir Palant 发表《Chrome Web Store is a mess》系统性指控商店充斥垃圾提交、审核标准不一(palant.info);自动化发布方面 CWS Publish API v1 已宣布弃用、仅支持到 2026 年 10 月 15 日,CI 上传工具被迫迁移 v2(chrome-webstore-upload #114)。

1.7 纵轴收束:三轮驱动因素,一个不变量

回望 2004→2026,扩展平台被三轮力量反复重塑:安全危机(Greasemonkey 漏洞 → 广告注入产业链 → 恶意扩展泛滥)催生清单、商店与权限声明;性能工程(常驻后台页 → event page / service worker)改变扩展的生命周期心智模型;平台权力与商业模式(DNR 收窄拦截、Firefox 差异化、Safari 封闭分发)决定同一份"MV3"在各家浏览器上的真实含义。不变量只有一条:扩展永远运行在"用户信任+平台容忍"的夹缝里,工程上的最优解始终是少要权限、少驻内存、可被静态审计——这既是 uBlock Origin Lite 被迫接受的现实,也是个人效率扩展一次过审的诀窍。


二、横轴:横向对比(2026-11 截面)

在 2026-11-06 这个时间截面上,"做一个浏览器扩展"不再是单一命题,而是四组互相独立又互相耦合的选型。

2.1 形态之争:要不要做扩展

同样的"个人效率"诉求至少有五种实现形态:

形态上手成本分发/审核能力上限跨端覆盖适合场景
浏览器扩展(MV3)中各商店审核(见 2.2)最高:tabs、storage、后台、右键菜单、快捷键、DNR桌面全平台;移动端仅 Firefox/Safari 部分支持需要浏览器 API 或分发给普通用户的工具
用户脚本低无审核,脚本站分发中:能改页面、跨域请求受限依赖脚本管理器页面改写、去广告、自动签到等多数个人需求("约八成"为社区经验估计,见下注)
bookmarklet最低无任何门槛低:一次性注入,无后台桌面+Android+iOS 原生可用单点页面小工具(一键翻译/格式化)
PWA低–中无审核独立 UI、离线、推送;不注入页面全平台有自己界面与持久状态的效率应用
桌面应用(Electron/Tauri)高免费分发或商店完整系统权限独立于浏览器全局快捷键、剪贴板监听等浏览器外行为

要点:只有扩展能拿到 tabs、idle、alarms、DNR、原生 messaging 等浏览器级 API——扩展用于"增强浏览体验本身",PWA/Electron 用于"独立应用"(Stack Overflow);上表"约八成"的支撑仅为社区经验估计——一条 Reddit 讨论与 Tampermonkey 官网口径,并非严格统计——据此只能说用户脚本大致可覆盖多数个人用例且发布最轻,但普通用户安装门槛高(Reddit、Tampermonkey);bookmarklet 在桌面与移动端行为一致且零审核,是最低成本跨端注入方案(HN #34830825);经验法则是扩展适合"围绕当前页面的 1–2 次点击"型交互,需要独立 UI 或持久化的应做全量 Web 应用(Kanopy Labs)。

2.2 上架路径:发到哪里

商店注册费审核时长市场份额(Statcounter 2026-09 月度表,终稿修订时再次抓取核验)MV2 残留
Chrome Web Store一次性 $5官方口径"多数扩展数天内完成"、不可加急(见 Review process);社区实测不一,无可靠统一数字Chrome 66.36%已清零(2026-08-31)
Edge Add-ons免费历史偏慢;2025-02-26 起推优先审核队列Edge 6.04%2026-08 起逐步禁用,预计 2027 年初移除
Firefox AMO免费自动签名分钟级到数周人工复审,波动最大Firefox 2.8%仍接受 MV2 提交
Safari App StoreApple 开发者 $99/年App Review 标准流程Safari 18.27%(多为设备内置)无 MV2 概念

(份额来源:Statcounter,为波动数据;终稿修订时(2026-11-06)再次抓取,页面表头显示 September 2026 月度表。审核口径:CWS 注册、Edge 优先审核公告、Edge 认证时长讨论、Firefox 审核时长讨论、Apple Safari Extensions、App Review Guidelines。)

结论:2026 年末"一次开发、多处上架"的现实组合是 CWS(付费但必选)+ AMO/Edge(免费增量);Safari 只在明确要覆盖 Apple 用户时才值得付出 App 审核与年度费用。

2.3 权限模型:为什么不能只写一份

能力点Chrome MV3Firefox MV3Safari
后台形态仅 Service Worker(事件驱动、会被杀)Event Page(非持久后台页)Service Worker
阻塞式 webRequest已移除,仅企业策略保留,改走 DNR保留(阻塞与非阻塞均可)不支持;拦截必须走 DNR
host_permissions 语义运行时权限:可选"点击时/特定站点/所有站点",宽泛模式安装时不自动授予默认按可选权限处理(128 起按 MDN 口径完全对齐),用户可随时授予/撤销逐站点权限(Safari 17 起连 App 扩展也按站点授权)
userScripts APIpermissions 声明 userScripts+相应 host 权限仅能放 optional_permissions,运行时先检查再注入支持用户脚本注入但生态小
命名空间chrome.*(兼容 browser.* promise)browser.*+promisebrowser.*

(来源:Chrome declare-permissions、Chrome permissions API、Chrome userScripts、MDN host_permissions、MDN userScripts、MDN optional_permissions、Mozilla MV3 迁移指南、Mozilla MV3 Recap。)

2.4 工程化:用什么骨架

方案定位构建内核跨浏览器输出适用
手写 manifest+webextension-polyfill零依赖、完全可控自选手工维护多份 manifest极小扩展与学习目的
WXT全功能框架ViteChrome/Edge/Firefox/Safari 多目标产出近期多数评测倾向推为新项目默认(结论构成见下方说明)
Plasmo全家桶 DX自带工具链多浏览器React 重度项目
Extension.js零配置Next/Rollup 系多浏览器极简入门
CRXJSVite 插件,薄抽象Vite以 Chrome 为主想自己掌控底层的进阶者

(来源:2025 框架对比、Kanopy Labs、五框架实测、merginit、Extension.js 官方对比、2026 工具链对比。)

各评测对 WXT 的推荐并不完全同质,其结论构成如下(三份评测正文均于终稿修订时实际抓取核验):五框架实测(extensionbooster,2026-02)用同一扩展实测五家后明确推 WXT 为生产项目默认——"Pick WXT unless you have a specific reason not to",其实测中 WXT 构建 1.2s、包体 387KB 均为最小;Kanopy Labs(2026-04)是条件推荐——跨浏览器优先或 Vue/Svelte 团队选 WXT,React 重度团队则推 Plasmo;redreamality(2025-09 初版,2026-09-25 修订)在修订版中撤回了初版的"通用推荐"结论,理由是缺少可比基准与带日期的维护审计,仅保留三者分工描述。综合而言,可支撑的措辞是"多数近期评测倾向 WXT 作为新项目默认",而非"一致推为默认"。对个人效率扩展(通常一个 popup+一个 content script+storage),本文采纳这一多数倾向:WXT 的 Vite 冷启动与多目标产物最贴合最小路径。


三、交叉洞察

3.1 两轴结合说明了什么

第一,横轴的每一行分歧行,都能在纵轴上找到成因事件。 Firefox 保留阻塞 webRequest 不是技术保守,而是它在 XUL 时代清零、WebExtensions 时代失去自主扩展叙事之后,仅存的差异化资产——2015 年"变成 Chrome 复制品"的批评 Mozilla 记了十年,MV3 就是它的回答。Chrome 的 DNR 是 2015 年广告注入研究(5% 日独立 IP 被注入广告)与常驻后台内存问题的双重终点。Safari 的 App Store 封闭分发与逐站点授权是苹果隐私叙事与商业模式的延伸,WWDC23 甚至宣布 Safari 17 连 App 扩展都改为按站点授权。不理解纵轴,就会把横轴差异误读为"哪家浏览器实现得不好";实际上每家都在用 MV3 的名字交付自己战略意图的内容。

第二,平台权力已经定型,开发者是租户而非伙伴。 从 2010 年商店成立、2012 年强制 MV2、2021 年强制 2FA、2025–2026 年 MV2 物理清场,到 Publish API 版本化(v1 仅支持到 2026-10-15)与 Palant 对商店治理的公开批评,平台用二十年时间把"分发权、兼容权、存续权"全部收归己有。对开发者的含义是:工程纪律的本质是把平台的治理成本内部化——最小权限、无远程代码、可静态审计,这些不是道德建议,而是审核通过率与存续概率的直接变量。

第三,"跨浏览器"这个词已经分层瓦解。 API 层的分歧(callback vs promise、SW vs event page)已被 webextension-polyfill 与 WXT 等框架解决大半;真正剩下的是权限语义层(Chrome 运行时授予 vs Firefox 默认可选 vs Safari 逐站点——三者对"这个扩展能看到什么"的用户心智完全不同)与审核节奏层(CWS 数天 vs AMO 秒签到数周 vs App Review)。两轴交叉说明:2026 年做跨浏览器扩展,难的不是代码,而是权限策略与发布节奏的统筹。

第四,时机判断:2026 下半年至 2027 是 MV3 新常态的低风险窗口。 Chrome 商店清库刚走完(2026-08-31)、Edge 清退进行中(至 2027 年初)、Firefox 宣布双轨不设期限——平台规则第一次同时稳定;MV3 文档、框架(WXT/Plasmo)、样板工程全部成熟,坑都被前人踩过。此时入场,既没有 MV2/MV3 双轨的迁移税,也没有规则再变的政策风险。

3.2 对个人开发者的判断与建议:从零到上架的最小路径

综合两章的路径设计(纵轴四步版与横轴六步版在此合并为一条,消除重复),按"天"计:

最小 manifest 示例(照此起步不会卡在第一步):

  {
    "manifest_version": 3,
    "name": "my-tool",
    "version": "0.1.0",
    "permissions": ["activeTab", "storage", "scripting"],
    "optional_host_permissions": ["*://*/*"],
    "action": { "default_title": "运行" },
    "background": { "service_worker": "background.js" }
  }

两种注入路径与其权限要求:对"点一下才工作"的工具,用户点击图标即触发 activeTab,直接 scripting.executeScript() 对当前标签页生效(Chrome 官方 Page Redder 示例即 permissions: ["activeTab", "scripting"] 这一配置);对"要在某站点常驻"的脚本,先经 permissions.request({ origins: [...] }) 弹窗申请该站点 host 权限(权限来源即 optional_host_permissions,Firefox/Chrome 均支持,用户可随时在扩展管理页授予或撤销),获批后再 scripting.registerContentScripts() 把 content script 注册到该站点(注册默认跨会话持久,persistAcrossSessions 可改为仅本次会话)。这一步决定安装转化率,且就 CWS 而言权限越窄通常审核越快、被拒概率越低(Firefox 的审核时长波动主要来自人工复审排队,与权限关系不大)——二十年权限模型演化最实用的工程纪律。

硬成本 ≈ $5(Chrome 一次性)+ 0(Firefox/Edge);软成本 ≈ 2–3 个工作日+各店审核等待。 最可能卡住个人开发者的两个环节:Chrome 的权限说明填写,与 Firefox 的人工复审排队——前者靠诚实与克制解决,后者靠预期管理解决。

一句话判断:2026 年做个人效率扩展,正确的姿势是"用 bookmarklet 验证、用 WXT 起步、用最小权限过审、用 CWS 首发、用 AMO/Edge 增量、把 Safari 留给真正需要它的那天"。

3.3 风险与不确定性声明


四、参考来源

历史与发展(纵轴)

  1. Chromium Blog, "Extensions beta launched, with over 300 extensions!" (2009-12-08) — https://blog.chromium.org/2009/12/extensions-beta-launched-with-over-300.html
  2. Wikipedia, "Chrome Web Store" — https://en.wikipedia.org/wiki/Chrome_Web_Store
  3. Wikipedia, "Greasemonkey" — https://en.wikipedia.org/wiki/Greasemonkey
  4. Chrome for Developers, "Manifest version | Manifest V2"(Chrome 18 弃用 MV1、Chrome 23 强制 MV2)— https://developer.chrome.com/docs/extensions/mv2/manifestVersion
  5. Google Security Blog, "New research: Ad injection economy" (2015-05-06) — https://security.googleblog.com/2015/05/new-research-ad-injection-economy.html
  6. Kurt Thomas et al., "Ad Injection at Scale" (IEEE S&P 2015) — https://people.cs.uchicago.edu/~grantho/papers/oakland2015_ad_injection.pdf
  7. Mozilla Add-ons Blog, "The Future of Developing Firefox Add-ons" (2015-08-21) — https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons
  8. TechCrunch, "Chrome Extensions Are Coming To Firefox" (2015-08-21) — https://techcrunch.com/2015/08/21/chrome-extensions-are-coming-to-firefox
  9. How-To Geek, "Firefox Is About To Become An Almost Complete Copy Of Chrome" (2015-09) — https://www.howtogeek.com/228131/firefox-is-about-to-become-an-almost-complete-copy-of-chrome
  10. The Verge, Chromium Edge 发布 (2019-11-04) — https://www.theverge.com/2019/11/4/20942038/microsoft-edge-chromium-release-date-new-logo-features
  11. TNW, Edge 开放扩展提交 (2019-12) — https://thenextweb.com/news/microsoft-wants-devs-to-submit-chromium-edge-add-ons-ahead-of-its-launch
  12. TechRadar, "Microsoft Edge opens Add-ons store" (2020-02) — https://www.techradar.com/news/microsoft-edge-opens-add-ons-store
  13. ghacks, "The Microsoft Edge extension store is finally getting some traction" (2020-03-02) — https://www.ghacks.net/2020/03/02/the-microsoft-edge-extension-store-is-finally-getting-some-traction
  14. The Register, "Google's crackdown on ad blockers… Manifest V3 now available in beta" (2020-12-10) — https://www.theregister.com/security/2020/12/10/google-chromes-crackdown-on-ad-blockers-and-browser-extensions-manifest-v3-is-now-available-in-beta/
  15. ZDNet, "First Chrome version with Manifest V3 to land in Canary this summer" (2019-06) — https://www.zdnet.com/article/first-chrome-version-with-manifest-v3-to-land-in-canary-this-summer
  16. Chromium Blog, "Manifest V3 now available on M88 beta" (2020-12) — https://blog.chromium.org/2020/12/manifest-v3-now-available-on-m88-beta.html
  17. EFF, "Google's Manifest V3 Still Hurts Privacy, Security, Innovation" (2021-12) — https://www.eff.org/deeplinks/2021/12/googles-manifest-v3-still-hurts-privacy-security-innovation
  18. The Register, "Microsoft will adopt… Manifest V3 in Edge" (2020-10-15) — https://www.theregister.com/software/2020/10/15/microsoft-will-adopt-google-chromes-controversial-manifest-v3-in-edge/742676
  19. Mozilla Discourse, "Request permissions at install time (Manifest V3)" — https://discourse.mozilla.org/t/request-permissions-at-install-time-manifest-v3/121543
  20. Tampermonkey issue #644(MV3 迁移与 userScripts 限制)— https://github.com/Tampermonkey/tampermonkey/issues/644

MV2 退场与平台治理

  1. Chrome for Developers, "Manifest V2 support timeline"(官方时间线,2024-06-03 / 2024-10-09 / 2025-03-31 / 2025-07-24 / 2026-08-31 全节点;纵轴成文时全文读取核验,页面标注最后更新 2026-09-09)— https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline
  2. Bumbletap, "Chrome Deletes the Last Manifest V2 Extensions on August 31" — https://bumbletap.com/blog/chrome-manifest-v2-extensions-removed
  3. AdGuard Blog, "Edge phasing out MV2 ad blockers" — https://adguard.com/en/blog/edge-phasing-out-mv2-ad-blockers.html
  4. Mozilla Blog, "Mozilla's approach to Manifest V3" (2025-02-25) — https://blog.mozilla.org/en/firefox/firefox-manifest-v3-adblockers
  5. Chrome for Developers, "Policy update: 2-Step Verification" (2021-06) — https://developer.chrome.com/blog/policy-update-2sv
  6. Chrome for Developers, "Review process" — https://developer.chrome.com/docs/webstore/review-process
  7. Wladimir Palant, "Chrome Web Store is a mess" (2025-01-13) — https://palant.info/2025/01/13/chrome-web-store-is-a-mess/
  8. fregante/chrome-webstore-upload issue #114(Publish API v1 弃用至 2026-10-15)— https://github.com/fregante/chrome-webstore-upload/issues/114
  9. Chromium Blog, "New developer dashboard"($5 注册费,2020-03)— https://blog.chromium.org/2020/03/new-developer-dashboard-and.html
  10. Chrome for Developers, "Register as a Chrome Web Store developer" — https://developer.chrome.com/docs/webstore/register

MV3 规范与权限模型

  1. Chrome for Developers, "What is Manifest V3?" — https://developer.chrome.com/docs/extensions/develop/migrate/what-is-mv3
  2. Chrome for Developers, "Blocking web requests" — https://developer.chrome.com/docs/extensions/develop/migrate/blocking-web-requests
  3. Chrome for Developers, "Declare permissions" — https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions
  4. Chrome for Developers, permissions API — https://developer.chrome.com/docs/extensions/reference/api/permissions
  5. Chrome for Developers, userScripts API(Chrome 120+)— https://developer.chrome.com/docs/extensions/reference/api/userScripts
  6. Extension Workshop, "Manifest V3 migration guide" — https://extensionworkshop.com/documentation/develop/manifest-v3-migration-guide/
  7. Mozilla Add-ons Blog, "Manifest V3 in Firefox: Recap & Next Steps" (2022-05-18) — https://blog.mozilla.org/addons/2022/05/18/manifest-v3-in-firefox-recap-next-steps
  8. MDN, host_permissions — https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/host_permissions
  9. MDN, optional_permissions / optional_host_permissions(运行时请求站点权限;用户可在扩展管理页随时授予/撤销;终稿修订时已抓取 optional_host_permissions 页核验)— https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/optional_host_permissions
  10. MDN, userScripts API — https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/userScripts
  11. Edge MV3 迁移(Microsoft Learn)— https://learn.microsoft.com/en-us/microsoft-edge/extensions/developer-guide/manifest-v3
  12. W3C webextensions issue #694(Safari DNR 能力讨论)— https://github.com/w3c/webextensions/issues/694
  13. Dev.to, "Ask for one site at a time: optional host permissions and dynamic content scripts in MV3" — https://dev.to/emirmrkaljevic/ask-for-one-site-at-a-time-optional-host-permissions-and-dynamic-content-scripts-in-mv3-3b7c
  14. extpower.dev, "Permissions vs host_permissions (Manifest V3)" — https://extpower.dev/blog/permissions-vs-host-permissions-manifest-v3
  15. Mozilla Discourse, "Impossible to upgrade to MV3 for extensions that require constant persistent listeners" — https://discourse.mozilla.org/t/impossible-to-upgrade-to-manifest-v3-for-extensions-that-require-constant-persistent-listeners/125942
  16. Chrome for Developers, "The activeTab permission"(activeTab 语义:调用时临时授予当前标签页、安装时无警告、配合 scripting 权限注入;终稿修订时已抓取核验)— https://developer.chrome.com/docs/extensions/develop/concepts/activeTab
  17. Chrome for Developers, "Content scripts"(动态声明 Chrome 96+、registerContentScripts/executeScript、程序化注入需 host 权限或 activeTab;终稿修订时已抓取核验)— https://developer.chrome.com/docs/extensions/develop/concepts/content-scripts

跨浏览器与上架(Edge / Firefox / Safari)

  1. Windows Blog, "Empowering Microsoft Edge Add-ons developers with faster reviews" (2025-02-26) — https://blogs.windows.com/msedgedev/2025/02/26/empowering-microsoft-edge-add-ons-developers-with-faster-reviews
  2. microsoft/MicrosoftEdge-Extensions discussion #784(认证时长)— https://github.com/microsoft/MicrosoftEdge-Extensions/discussions/784
  3. Mozilla Discourse, "Is it normal for Firefox add-on review to take this long?" (2025-03) — https://discourse.mozilla.org/t/is-it-normal-for-firefox-add-on-review-to-take-this-long/141854
  4. Apple Developer, "Packaging a web extension for Safari" — https://developer.apple.com/documentation/safariservices/packaging-a-web-extension-for-safari (本次综合时已抓取核验)
  5. Apple Developer, "Distributing your Safari web extension" — https://developer.apple.com/documentation/safariservices/distributing-your-safari-web-extension
  6. Apple, Safari Extensions 官方页 — https://developer.apple.com/safari/extensions
  7. Apple, App Review Guidelines — https://developer.apple.com/app-store/review/guidelines
  8. MacRumors, "Apple Reminds Developers That Safari 14 Supports Web Extensions" (2020-08-28) — https://www.macrumors.com/2020/08/28/safari-web-extensions/
  9. Apple WWDC21, "Meet Safari Web Extensions on iOS" — https://developer.apple.com/videos/play/wwdc2021/10004/
  10. Apple WWDC23, "What's new in Safari extensions"(本次综合时已抓取全文核验;Safari 17 双轨支持 MV2/MV3、DNR 16.4 起支持改头与 redirect、App 扩展逐站点授权)— https://developer.apple.com/videos/play/wwdc2023/10119
  11. WebKit Blog, "WebKit Features in Safari 17.0" (2023-09-18) — https://webkit.org/blog/14445/webkit-features-in-safari-17-0

工具链与工程化

  1. Mozilla Hacks, "Developing cross-browser extensions with web-ext 3.2.0" (2019-10) — https://hacks.mozilla.org/2019/10/developing-cross-browser-extensions-with-web-ext-3-2-0
  2. mozilla/web-ext (GitHub) — https://github.com/mozilla/web-ext
  3. Extension Workshop, "Getting started with web-ext" — https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext
  4. Extension Workshop, "Submitting an add-on" — https://extensionworkshop.com/documentation/publish/submitting-an-add-on
  5. Extension Workshop, "Signing and distribution overview" — https://extensionworkshop.com/documentation/publish/signing-and-distribution-overview
  6. redreamality, "The 2025 State of Browser Extension Frameworks: Plasmo vs WXT vs CRXJS"(2025-09-03 初版;2026-09-25 修订版撤回初版"通用推荐"结论,理由为缺少可比基准与带日期的维护审计;终稿修订时已抓取核验)— https://redreamality.com/blog/the-2025-state-of-browser-extension-frameworks-a-comparative-analysis-of-plasmo-wxt-and-crxjs
  7. Kanopy Labs, "WXT vs Plasmo vs Extension.js"(2026-04;条件推荐:跨浏览器或 Vue/Svelte 团队选 WXT,React 重度团队推 Plasmo;终稿修订时已抓取核验)— https://kanopylabs.com/blog/wxt-vs-plasmo-vs-extension-js
  8. extensionbooster, "Best Chrome Extension Frameworks Compared"(2026-02;同一扩展五框架实测,推 WXT 为生产项目默认;终稿修订时已抓取核验)— https://extensionbooster.net/blog/best-chrome-extension-frameworks-compared
  9. merginit, "Plasmo vs WXT vs CRXJS vs Extension.js" — https://merginit.com/blog/23082026-plasmo-vs-wxt-vs-crxjs-extension-js
  10. Extension.js, 官方对比页 — https://extension.js.org/docs/compare
  11. plugthis.ai, "Chrome Extension Development Tools Comparison 2026" — https://plugthis.ai/blog/chrome-extension-development-tools-comparison-2026

形态对比与数据

  1. Stack Overflow, "PWA vs Electron vs Browser Extension" — https://stackoverflow.com/questions/50705226/progressive-web-apppwa-vs-electron-vs-browser-extension
  2. Reddit r/userscripts, "Userscripts vs extensions" — https://www.reddit.com/r/userscripts/comments/fruy3k/userscripts_vs_extensions
  3. Tampermonkey 官网 — https://www.tampermonkey.net
  4. Hacker News #34830825(bookmarklet 跨端观点)— https://news.ycombinator.com/item?id=34830825
  5. Kanopy Labs, "Chrome Extension vs Web App: Which to Build" — https://kanopylabs.com/blog/chrome-extension-vs-web-app-which-to-build
  6. Statcounter Global Stats, Browser Market Share(页面表头当前显示 September 2026 月度表:Chrome 66.36% / Safari 18.27% / Edge 6.04% / Firefox 2.8%;综合与终稿修订(2026-11-06)两次抓取一致)— https://gs.statcounter.com/browser-market-share

*(说明:Firefox 57 于 2017 年使 WebExtensions 成为唯一扩展类型、Chrome 浏览器 2008 年发布、IE BHO 背景等少量表述含模型既有常识,已在原章节标注;其余事实均可在上列来源直接核对。本文为按独立审读意见修订后的终稿,修订记录见下附录;初稿保留于 drafts/ 目录未改动。)*


附录:审读意见修订记录(终稿)

#审读意见终稿处理
1【硬伤】3.1 末"交付自己战略意图的 contenu"法语残留已改为"内容"
2【内部矛盾】勘误称 2026-09 份额替换"过时"的 2026-10,10 月晚于 9 月、方向说不通勘误第 2 条与 3.3 第一条重写:终稿修订时(2026-11-06)再抓 Statcounter,页面表头显示 September 2026 月度表(Chrome 66.36%),"2026-10 月度份额"口径在当前页面无法复现(可能对应图表当月/滚动视图);改为"两口径采集时点不同,以官方页面最新完整月为准",删除"过时替换"表述。原横轴"2026-10 全球份额"出处已核对(parts/横轴文件第 44、46 行)
3【内部矛盾】2025-07-24"MV2 全面失效"与 2026-08-31"既有安装仍可运行"冲突2025-07-24 行补限定语("失效"指新装/重装/更新通道关闭,旧版本既有安装不受影响);TL;DR"Chrome 清空全部 MV2"限定为"Chrome 商店(CWS)清空";3.1 第四段同步改为"Chrome 商店清库"
4【头条论断无支撑】TL;DR"审核时长几乎由权限广度决定"弱化为"权限越宽、审核越慢且被拒概率越高",注明主要适用于 CWS,并注明 Firefox 波动主要来自人工复审排队(TL;DR 与 3.2 第 2 步两处)
5【数据无出处】CWS 审核"2–7 个工作日"无来源删除具体数字,改为"官方口径'多数扩展数天内完成'、不可加急(见 Review process),社区实测不一"(2.2 表与 3.2 第 3 步两处;与 1.6 既有官方口径一致)
6【聚合论断无证据】"2025–2026 多份评测一致推 WXT 为新项目默认"降级为"多数近期评测倾向 WXT 作为新项目默认",并在 2.4 摘述三份评测结论(均为终稿修订时实际抓取):extensionbooster(2026-02)实测推 WXT 为生产默认;Kanopy Labs(2026-04)条件推荐,React 重度团队推 Plasmo;redreamality(2026-09-25 修订)撤回"通用推荐"
7【薄弱数字】"约八成/80%"三处复现且仅有轶闻支撑2.1 首次出现处(表格与下注)标注为社区经验估计、注明支撑仅为一条 Reddit 帖与 Tampermonkey 官网口径;2.1 要点与 3.2 第 0 步改为"社区经验估计/多数"表述
8【最小路径缺产物+术语未定义】未定义 activeTab/storage、动态注册依赖与权限未说明、"书签脚本"与"bookmarklet"混用3.2 第 2 步补最小 manifest 示例;定义 activeTab(调用时临时授予当前标签页、无安装警告,官方 activeTab 页核验)与 storage(扩展自有键值存储);注明动态注册依赖 chrome.scripting.registerContentScripts()(Chrome 96+ 动态声明)且需额外 scripting 权限,最小清单修正为 activeTab+storage+scripting(TL;DR、2.3、3.2 三处同步);术语统一为"bookmarklet(书签脚本)",全文仅首次出现处带中文注释

终稿修订时新抓取核验的来源:Statcounter(市场份额表头)、redreamality / Kanopy Labs / extensionbooster(三份框架评测结论)、Chrome 官方 activeTab 与 Content scripts 文档、MDN optional_host_permissions 页。

← 资料库今日播报 →