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
开发者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项目开发过程中对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]。

JavaScript引擎

编辑

Blink内嵌V8 JavaScript引擎,用于解析和执行JavaScript及WebAssembly代码[10][11]。V8根据ECMAScript标准处理JavaScript,开发者可通过V8访问底层浏览器功能,如操作DOM[10]。

多进程架构

编辑

Blink采用多进程模型,UI主进程与渲染进程分离运行,每个标签页在单独的渲染进程中运行,以提高稳定性和响应速度[8]。渲染进程包含主线程(处理JavaScript)等多个线程[8]。

Web标准实现

编辑

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]:

许可协议

编辑

Blink采用多重许可协议。Google作者贡献的部分以BSD风格许可证发布,而基于WebCore的组件沿用GNU宽通用公共许可证(LGPL)v2.1[2][5]。

参考文献

编辑