Apple Webkit
| 中文名 | WebKit |
|---|---|
| 開發方 | Apple Inc.、KDE、Google、Nokia、Igalia等[1][2] |
| 首次發布 | 1998年11月4日(KHTML發布) 2005年6月7日(WebKit開源)[2] |
| 編程語言 | C++[1] |
| 作業系統 | macOS、iOS、Linux、Windows[1] |
| 類型 | 瀏覽器引擎 |
| 許可協議 | LGPLv2.1(WebCore、JavaScriptCore) BSD 2-Clause(Apple貢獻部分)[1][3] |
| 網站 | webkit.org |
WebKit是Apple主導開發的開源瀏覽器引擎,主要用於Apple Safari瀏覽器,同時也是iOS和iPadOS平台上所有網頁瀏覽器的底層渲染引擎[1][3]。WebKit最初源自KDE項目的KHTML排版引擎和KJS JavaScript引擎的一個分支[1][4],自2005年正式開源以來,已由KDE貢獻者、Apple、Google、Nokia、BlackBerry、Sony及Igalia等眾多組織和個人持續開發完善[1][2]。WebKit的Blink分支被用於Google Chrome、Microsoft Edge等基於Chromium的瀏覽器[4][5]。
WebKit的起源可追溯至KDE項目於1998年開發的KHTML排版引擎和KJS JavaScript引擎[1][2]。2001年,Apple工程師Don Melton正式從KHTML分支,在Apple內部啟動瀏覽器引擎的研發工作[6]。Apple在當時比較了Firefox的Gecko引擎與KHTML引擎後,選擇了後者,因其擁有更清晰的源碼結構和更快的渲染速度[2][6]。
2003年,Apple推出了搭載WebKit引擎的Safari瀏覽器[6]。2005年6月7日,Apple宣布WebKit正式開源,向社區開放其原始碼[1][2]。
開源後的WebKit逐漸被多個平台採用。它成為macOS和iOS系統內置的瀏覽器引擎框架,被Safari、Mail、備忘錄、圖書、新聞和App Store等眾多Apple原生應用使用[7]。此外,WebKit還被用於PlayStation 3及後續PlayStation遊戲機、Tizen移動作業系統、Amazon Kindle電子書閱讀器、Nintendo 3DS瀏覽器以及已停用的BlackBerry瀏覽器等設備[1]。
2013年4月3日,Google宣布將WebKit的WebCore組件分叉,創建名為Blink的獨立渲染引擎,用於未來版本的Google Chrome和Opera瀏覽器[1][5]。這一分支的誕生主要源於WebKit與Chrome之間日益增加的複雜性,Google希望通過分叉來簡化架構並加速開發[5][8]。此後,Blink被廣泛應用於所有基於Chromium的瀏覽器,包括Microsoft Edge、Vivaldi、Yandex Browser等[5]。
WebKit的架構主要由兩大部分組成:渲染引擎(WebCore)和JavaScript引擎(JavaScriptCore)[9][10]。
WebCore是WebKit的渲染引擎核心,負責解析HTML和CSS文檔、構建DOM樹和CSSOM樹、執行布局計算以及將網頁內容繪製到屏幕上[9][10]。WebCore直接源自KDE的KHTML引擎[1]。
JavaScriptCore(也稱為Nitro或SquirrelFish)是WebKit內置的JavaScript引擎[10][11],最初從KDE的KJS引擎派生而來[1]。JavaScriptCore是一個優化虛擬機,由詞法分析器、解析器、啟動解釋器(LLInt)、基線JIT、低延遲優化JIT(DFG)和高吞吐量優化JIT(FTL)等構建塊組成[12]。Apple通過引入LLVM JIT技術,持續提升了Nitro引擎的性能[13]。
WebKit2是WebKit的新API層,從底層設計上支持拆分進程模型——網頁內容(JavaScript、HTML、布局等)運行在與應用程式UI分離的獨立進程中[14][15]。這一多進程架構通過進程沙箱保護系統安全,並使應用程式即使在加載了無限循環或掛起的網頁時仍能保持響應[15]。網頁在各自的WebContent進程中加載,多個WebContent進程可共享瀏覽會話,網絡訪問、磁盤緩存和Web Storage等API則由獨立的網絡進程統一管理[15]。
WebKit採用多重許可協議。從KHTML繼承的大部分代碼沿用LGPLv2.1許可證,而貢獻給WebKit的新代碼則採用二條款BSD許可證[16][17]。具體而言,WebCore渲染庫和JavaScriptCore引擎以LGPL發布,Apple貢獻的額外部分以BSD 2-Clause許可發布[1][3]。WebKit項目旨在保持對開源和專有應用程式的廣泛可用性[17]。
- Apple Safari(macOS、iOS、iPadOS)
- iOS和iPadOS平台上的所有網頁瀏覽器(因Apple政策限制)
- Apple Mail、備忘錄、圖書、新聞、App Store等macOS/iOS原生應用
- PlayStation 3及後續PlayStation遊戲機內置瀏覽器
- Amazon Kindle電子書閱讀器瀏覽器
- Nintendo 3DS互聯網瀏覽器
- Tizen流動作業系統默認瀏覽器
- BlackBerry瀏覽器(已停用)
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 WebKit — English Wikipedia
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 WebKit — 百度百科
- ↑ 3.0 3.1 3.2 WebKit — MDN Web Docs Glossary
- ↑ 4.0 4.1 4.2 WebKit — 維基百科(中文)
- ↑ 5.0 5.1 5.2 5.3 Blink — 維基百科(中文)
- ↑ 6.0 6.1 6.2 WebKit簡介及工作流程 — 阿里雲開發者社區
- ↑ WebKit 官方文檔 — WebKit.org
- ↑ Google將在10周內用新的渲染引擎Blink取代旗下所有平台的現有瀏覽器 — 36氪
- ↑ 9.0 9.1 WebKit(開源的瀏覽器引擎)— 百度百科
- ↑ 10.0 10.1 10.2 WebKit架構深度探索 — 騰訊雲
- ↑ ECMAScript引擎列表 — 維基百科(中文)
- ↑ JavaScriptCore 文檔 — WebKit.org
- ↑ 蘋果用LLVM JIT提升WebKit JS引擎的速度 — InfoQ
- ↑ WebKit2 — WebKit Trac
- ↑ 15.0 15.1 15.2 WebKit2 概述 — WebKit.org
- ↑ Licensing — WebKit.org
- ↑ 17.0 17.1 Licensing WebKit — WebKit.org