⚙️ Chromium 与引擎之争
一句话定性
浏览器战争的终局不是某个品牌赢了,而是渲染引擎收敛到了几乎只剩一家。Blink 实质一统,WebKit 靠 iOS 政策守住一极,Gecko 是最后的独立孤岛。兼容性地狱终于结束了——代价是 Web 的开放性正在被一家公司的实现定义。
一、它是什么 & 出现的时代
要理解引擎之争,先分清两层概念——用户看到的是品牌,工程师真正关心的是底下的引擎。
一个浏览器 = 渲染引擎 + JS 引擎 + 外壳
- 渲染引擎:解析 HTML/CSS,排版,画到屏幕上(Blink / WebKit / Gecko / 已死的 Trident、EdgeHTML)。
- JS 引擎:执行 JavaScript(V8 / JavaScriptCore / SpiderMonkey / 已死的 Chakra)。
- 外壳(Chrome 层):UI、书签、同步、扩展等。品牌之间的差异,大多只在这一层。
Chromium 是 Chrome 去掉 Google 私有部分(品牌、自动更新、部分编解码器)后的开源内核项目。Chrome、Edge、Opera、Brave、Vivaldi……都是”Chromium 外壳换皮”。
这场引擎收敛,贯穿了 2013-2018 SPA时代 到 2018-2023 工程化时代,是 浏览器演进史 的终章。
二、为什么会出现(解决了上一代什么痛点)
引擎收敛要解决的,是前端最古老、最痛的债:兼容性地狱。
多引擎时代的代价
在 IE(Trident)、Firefox(Gecko)、Safari(WebKit)、旧 Opera(Presto)、旧 Edge(EdgeHTML)并存的年代,同一段代码要在 4–5 个引擎上分别测试、分别 hack。CSS 前缀满天飞(
-webkit-/-moz-/-ms-/-o-),一个圆角要写四遍。前端一半的精力耗在”让它在每个浏览器里都长一样”。
引擎收敛到 Blink 后,这个痛点近乎消失:写一遍,处处能跑(至少在桌面与安卓上)。这是实打实的生产力解放。
WebKit / Blink 的血缘关系也值得一提:
KHTML(KDE 项目,1998)
│ Apple 分叉
↓
WebKit(2001,Safari 引擎)
│ Google 用它做了 Chrome(2008)
│ Google 嫌 WebKit 多平台架构拖累迭代,2013 年分叉
↓
Blink(2013,Chromium 引擎)── 从此 Chrome 全栈自研(Blink + V8)
三、为什么会流行(踩中了什么时代红利)
Chromium/Blink 之所以”赢家通吃”,是多重红利叠加:
- Chrome 的份额红利:Chrome 自身 60–70% 份额,直接让 Blink 成为多数。
- 开源可换皮的红利:任何公司想做浏览器,从零写引擎要十年、烧无数钱。直接用 Chromium 套个外壳,几个月就能上线。于是 Opera、Brave、Vivaldi、国内一众”双核浏览器”全部投奔 Chromium——理性选择叠加成了垄断。
- EdgeHTML 的退场:微软自研 EdgeHTML 引擎追赶乏力(网站都”为 Chrome 优化”,EdgeHTML 上一堆兼容问题),2019 年微软放弃 EdgeHTML,新 Edge 改用 Chromium。这是继 IE 捆绑反被 Chrome 击败之后,微软在引擎上的第二次”投降”。
微软投降的二阶效应
Edge 转 Chromium 看似是微软认怂,实则抽走了 Web 平台最重要的一个独立实现。从此,桌面端真正的独立引擎只剩 Gecko 一家(以及移动端被 iOS 政策保护的 WebKit)。引擎多样性从”四五家”塌缩到”勉强三家,实则一家说了算”。
四、带来的新问题 / 副作用
当"能在 Chrome 跑"等于"符合标准"
引擎垄断的隐忧,本质和当年 IE6 一模一样,只是主角更聪明:
- 事实标准被单一实现绑架:开发者只在 Chrome 测,Google 先实现某 API 再去”提标准”,其他厂商被迫跟进。标准的话语权过度集中于一家。
- 历史可能重演 IE6 悲剧:垄断者一旦在某个方向上躺平或为商业利益设限(如 Manifest V3 限制广告拦截扩展),整个生态没有制衡力量。
- 创新方向由 Google 的商业利益主导:对 Google 广告业务有利的 API 推得快,无利的(甚至有害的)可能被冷处理。
- “开放 Web”名存实亡的风险:Web 之所以伟大,在于它是一个有多个独立实现的开放标准,而非某家公司的产品。一旦只剩一个实现,它和”专有平台”的区别就只剩一纸承诺。
WebKit 的特殊处境:另一种"垄断"
过去 Apple 在 iOS 上强制所有浏览器(包括 iOS 上的 Chrome、Firefox)必须套用 WebKit——它们只是换了个图标,内核还是 Safari。这客观上守住了引擎多样性的一极,但也是另一种形式的强制。随着监管(如欧盟 DMA)推动 Apple 放开第三方引擎,移动端的引擎格局也在松动。
五、为什么会衰落 / 现状(讲它的演化与制衡)
这不是衰落,而是一种危险的稳定态。现状(2026)的引擎版图:
| 引擎 | 阵营 | JS 引擎 | 地位 | 制衡作用 |
|---|---|---|---|---|
| Blink | Chromium 系(Chrome/Edge/Opera/Brave…) | V8 | 实质一统,桌面+安卓多数 | —— |
| WebKit | Apple(Safari + 过去 iOS 全部) | JavaScriptCore | 移动端守住一极 | 靠平台政策制衡 Blink |
| Gecko | Mozilla([[Mozilla-Firefox | Firefox]]) | SpiderMonkey | 唯一完全独立的引擎 |
| 已退场(2022) | —— | |||
| 2019 转 Chromium | —— | |||
| —— | 2013 转 Chromium | —— |
还在守底线的力量
- Gecko / Firefox:用 Rust 写的 Servo 成果(Stylo 并行 CSS、WebRender GPU 渲染)注入 Gecko,证明独立引擎还能现代化、还活着。它是”Web 不属于任何一家公司”这句话目前唯一的硬件支撑。
- WebKit / Apple:虽然动机是商业(保护 App Store、与 Google 竞争),但客观上提供了第二个独立实现,逼着 Web 标准不能只照 Chrome 一家写。
- 监管:欧盟 DMA、各国反垄断调查,正在从外部给 Chromium 的垄断施压。
六、对后续技术的影响(因果链)
多引擎并存(Trident/Gecko/WebKit/Presto/EdgeHTML)
│ 兼容性地狱:一段代码测 5 个引擎,CSS 前缀写 4 遍
↓
Chrome 份额登顶 + Chromium 开源可换皮
│
├──► Opera(2013)/ Edge(2019)/ Brave 全投奔 Chromium
│
↓
引擎收敛:Blink 实质一统,只剩 WebKit / Gecko 制衡
│
├──► ✅ 正面:兼容地狱终结 → 前端不用再写多引擎 hack → 生产力解放
│ └──► 可以放心依赖浏览器原生 [[ES-Modules]] → [[Vite]] 的 no-bundle dev 成立
│ └──► 可以放心用现代 CSS / Web API → 框架([[React]]/[[Vue]])专注上层
│
└──► ⚠️ 负面:单一实现定义标准 → 重演 IE6 式垄断隐忧
└──► Web 的"开放性"依赖 Google 的善意 + Gecko/WebKit/监管的制衡
留给未来的命题
引擎之争给前端的终极教训是一个悖论:我们既享受着大一统带来的兼容性解放,又恐惧着大一统重演 IE6 的垄断停滞。 历史已经证明,没有制衡的垄断者迟早会拖住整个行业。所以 Gecko 这根独苗是否能活下去、监管能否有效、AI 时代(2023-未来 AI时代)会不会催生新的浏览器形态打破格局——这些是 Web 平台未来十年真正的悬念。
历史地位
🔗 相关:浏览器演进史 | Chrome | Mozilla-Firefox | Internet Explorer | 2018-2023 工程化时代 | 2023-未来 AI时代 | Vite