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>標籤,未定義名稱為:6的參考文獻內容文字。 - ↑ 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之家