Blink
| 开发者 | The Chromium Project及贡献者[1][2] |
|---|---|
| 首次发布 | 2013年4月3日[3][4] |
| 源代码库 | chromium.googlesource.com |
| 编程语言 | C++[2][5] |
| 类型 | 浏览器排版引擎[5] |
| 许可协议 | BSD及LGPLv2.1[2][5] |
| 前身 | WebKit(WebCore)[6][7] |
Blink是由Google主导开发的开源浏览器引擎,作为Chromium项目的一部分[1][8]。该引擎最初是WebKit项目中WebCore组件的一个分支,于2013年4月首次公开发布[3][6]。Blink被广泛应用于Google Chrome、Microsoft Edge、Opera、Brave、Vivaldi、Samsung Internet等众多基于Chromium的浏览器中[1][2]。由于Google Chrome的市场主导地位以及大量Chromium衍生浏览器的存在,Blink是目前使用最为广泛的浏览器引擎[2][9]。
Blink的诞生源于Google在Chromium项目开发过程中对WebKit代码进行的大量修改。Chromium采用与其他WebKit浏览器不同的多进程架构,多年来的架构差异导致WebKit与Chromium项目的复杂性不断增加,减缓了创新速度[3]。2013年4月3日,Google正式宣布从WebKit中分支出Blink渲染引擎[3][4]。其名称的由来有两层含义:一是暗示速度(blink意为“闪烁”),二是指向非标准的HTML blink元素[2]。
分拆之初,Blink团队即删除了超过4.5百万行代码和7个构建系统,以简化代码库[3]。分拆后的首批改动之一便是弃用包括WebKit前缀在内的CSS供应商前缀,实验性功能改为选择加入(opt-in)方式启用[2]。
在分拆之前,从2009年末至2013年,Google是WebKit项目最大的代码贡献者[2]。Blink项目吸引了来自Google、Facebook、Microsoft、Opera Software、Adobe Systems、Intel、IBM、Samsung等多家公司的代码贡献[1][8]。
Blink作为渲染引擎,负责将HTML、CSS和JavaScript代码(以及图片和其他资源)转换为用户可查看和交互的网页[10]。其渲染过程包括资源收集、解析、样式计算、布局、绘制和合成等多个阶段[10]。
Blink使用开源的Skia图形引擎与计算机或移动设备的底层图形硬件进行交互,Skia通过OpenGL、Vulkan和DirectX等图形库提供跨平台渲染能力[10]。
Blink内嵌V8 JavaScript引擎,用于解析和执行JavaScript及WebAssembly代码[10][11]。V8根据ECMAScript标准处理JavaScript,开发者可通过V8访问底层浏览器功能,如操作DOM[10]。
Blink采用多进程模型,UI主进程与渲染进程分离运行,每个标签页在单独的渲染进程中运行,以提高稳定性和响应速度[8]。渲染进程包含主线程(处理JavaScript)等多个线程[8]。
Blink遵循WHATWG和W3C定义的Web标准,包括HTML、CSS和DOM等规范[10]。浏览器功能的接口规范以WebIDL(Web接口定义语言)编写,确保在不同设备和平台之间实现标准化的交互方式[10]。
Blink通过多进程架构和沙箱机制提升页面渲染效率及安全性[8]。每个渲染进程运行在受限的沙箱环境中,以限制潜在安全漏洞的影响范围。
Blink作为跨平台渲染引擎,支持Windows、Linux、macOS、Android和ChromeOS等多个操作系统[2][5]。但在iOS平台上,由于Apple的政策限制,所有浏览器必须使用WebKit引擎,因此基于Chromium的浏览器在iOS上无法使用Blink[2][12]。
Blink被广泛应用于所有基于Chromium的浏览器,包括但不限于[1][2][8]:
- Google Chrome(版本28及以后)
- Microsoft Edge(版本79及以后)
- Opera(版本15及以后)
- Brave
- Vivaldi
- Yandex Browser
- Samsung Internet(部分版本)
- Amazon Silk
Blink采用多重许可协议。Google作者贡献的部分以BSD风格许可证发布,而基于WebCore的组件沿用GNU宽通用公共许可证(LGPL)v2.1[2][5]。
- ↑ 1.0 1.1 1.2 1.3 1.4 Blink — 维基百科(中文)
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 Blink (browser engine) — Wikipedia
- ↑ 3.0 3.1 3.2 3.3 3.4 Blink: A rendering engine for the Chromium project — Chromium Blog
- ↑ 4.0 4.1 Google Forks WebKit As Blink Rendering Engine — Phoronix
- ↑ 5.0 5.1 5.2 5.3 5.4 Blink — 维基百科(中文·新加坡)
- ↑ 6.0 6.1 Blink — MDN Web Docs
- ↑ 引用错误:
<ref>标签无效;未给name(名称)为:6的ref(参考)提供文本 - ↑ 8.0 8.1 8.2 8.3 8.4 8.5 Blink — 百度百科
- ↑ Blink — The Chromium Projects
- ↑ 10.0 10.1 10.2 10.3 10.4 10.5 10.6 什么是 Blink? — Chrome for Developers
- ↑ 揭秘字节码到像素的一生!Chromium 渲染流水线 — 腾讯云
- ↑ 谷歌希望在 iOS 上使用 Chrome Blink 引擎,以取代苹果的 WebKit — IT之家