Apple Webkit:修订间差异
创建页面,内容为“{{Infobox | 标题 = WebKit | 内容 = {{!}}- ! 中文名 {{!}} WebKit {{!}}- ! 开发方 {{!}} Apple Inc.、KDE、Google、Nokia、Igalia等<ref name=":0" /><ref name=":1" /> {{!}}- ! 首次发布 {{!}} 1998年11月4日(KHTML发布)<br>2005年6月7日(WebKit开源)<ref name=":1" /> {{!}}- ! 编程语言 {{!}} C++<ref name=":0" /> {{!}}- ! 操作系统 {{!}} macOS、iOS、Linux、Windows<ref name=":0" /> {{!}}- !…” |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| (未显示2个用户的2个中间版本) | |||
| 第1行: | 第1行: | ||
{{Infobox | {{Infobox | ||
| | | title = WebKit | ||
| | |||
| label1 = 中文名 | |||
| data1 = WebKit | |||
| label2 = 开发方 | |||
| data2 = [[Apple Inc.]]、[[KDE]]、[[Google]]、[[Nokia]]、[[Igalia]]等<ref name=":0" /><ref name=":1" /> | |||
| label3 = 首次发布 | |||
| data3 = 1998年11月4日(KHTML发布)<br>2005年6月7日(WebKit开源)<ref name=":1" /> | |||
| label4 = 编程语言 | |||
| data4 = [[C++]]<ref name=":0" /> | |||
| label5 = 操作系统 | |||
| data5 = [[macOS]]、[[iOS]]、[[Linux]]、[[Windows]]<ref name=":0" /> | |||
| label6 = 类型 | |||
| data6 = 浏览器引擎 | |||
| label7 = 许可协议 | |||
| data7 = [[LGPLv2.1]](WebCore、JavaScriptCore)<br>[[BSD许可证|BSD 2-Clause]](Apple贡献部分)<ref name=":0" /><ref name=":2" /> | |||
| label8 = 网站 | |||
| data8 = [https://webkit.org webkit.org] | |||
}} | }} | ||
'''WebKit'''是[[Apple Inc.|Apple]]主导开发的开源[[浏览器引擎]],主要用于[[Apple Safari]]浏览器,同时也是[[iOS]]和[[iPadOS]]平台上所有网页浏览器的底层渲染引擎<ref name=":0">[https://en.wikipedia.org/wiki/WebKit WebKit — English Wikipedia]</ref><ref name=":2">[https://developer.mozilla.org/en-US/docs/Glossary/WebKit WebKit — MDN Web Docs Glossary]</ref>。WebKit最初源自[[KDE]]项目的[[KHTML]]排版引擎和KJS | '''WebKit'''是[[Apple Inc.|Apple]]主导开发的开源[[浏览器引擎]],主要用于[[Apple Safari]][[浏览器]],同时也是[[iOS]]和[[iPadOS]]平台上所有[[网页浏览器]]的底层渲染引擎<ref name=":0">[https://en.wikipedia.org/wiki/WebKit WebKit — English Wikipedia]</ref><ref name=":2">[https://developer.mozilla.org/en-US/docs/Glossary/WebKit WebKit — MDN Web Docs Glossary]</ref>。WebKit最初源自[[KDE]]项目的[[KHTML]]排版引擎和KJS [[Java]]Script引擎的一个分支<ref name=":0" /><ref name=":3">[https://zh.wikipedia.org/wiki/WebKit WebKit — 维基百科(中文)]</ref>,自2005年正式开源以来,已由KDE贡献者、[[Apple]]、[[Google]]、[[Nokia]]、[[BlackBerry]]、[[Sony]]及[[Igalia]]等众多组织和个人持续开发完善<ref name=":0" /><ref name=":1">[https://baike.baidu.com/item/WebKit WebKit — 百度百科]</ref>。WebKit的[[Blink]]分支被用于[[Google Chrome]]、[[Microsoft Edge]]等基于[[Chromium]]的浏览器<ref name=":3" /><ref name=":4">[https://zh.wikipedia.org/wiki/Blink Blink — 维基百科(中文)]</ref>。 | ||
== 历史 == | == 历史 == | ||
| 第40行: | 第39行: | ||
=== 跨平台扩展与广泛应用 === | === 跨平台扩展与广泛应用 === | ||
开源后的WebKit逐渐被多个平台采用。它成为[[macOS]]和[[iOS]]系统内置的浏览器引擎框架,被Safari、Mail、备忘录、图书、新闻和App Store等众多Apple原生应用使用<ref name=":6">[https://docs.webkit.org/ WebKit 官方文档 — WebKit.org]</ref>。此外,WebKit还被用于[[PlayStation 3]]及后续PlayStation游戏机、[[Tizen]]移动操作系统、[[Amazon Kindle]]电子书阅读器、[[Nintendo 3DS]]浏览器以及已停用的[[BlackBerry]]浏览器等设备<ref name=":0" />。 | 开源后的WebKit逐渐被多个平台采用。它成为[[macOS]]和[[iOS]]系统内置的浏览器引擎框架,被Safari、Mail、备忘录、图书、新闻和App Store等众多Apple原生应用使用<ref name=":6">[https://docs.webkit.org/ WebKit 官方文档 — WebKit.org]</ref>。此外,WebKit还被用于[[PlayStation 3]]及后续PlayStation游戏机、[[Tizen]]移动[[操作系统]]、[[Amazon Kindle]]电子书阅读器、[[Nintendo 3DS]]浏览器以及已停用的[[BlackBerry]]浏览器等设备<ref name=":0" />。 | ||
=== Blink分支(2013年) === | === Blink分支(2013年) === | ||
2013年4月3日 | 2013年4月3日,[[Go]]ogle宣布将WebKit的WebCore组件分叉,创建名为[[Blink]]的独立渲染引擎,用于未来版本的Google [[Chrome]]和[[Opera]]浏览器<ref name=":0" /><ref name=":4" />。这一分支的诞生主要源于WebKit与Chrome之间日益增加的复杂性,Google希望通过分叉来简化[[架构]]并加速开发<ref name=":4" /><ref name=":7">[https://www.36kr.com/p/203617906626560 Google将在10周内用新的渲染引擎Blink取代旗下所有平台的现有浏览器 — 36氪]</ref>。此后,Blink被广泛应用于所有基于Chromium的浏览器,包括[[Microsoft]] [[Edge]]、[[Vivaldi]]、[[Yandex Browser]]等<ref name=":4" />。 | ||
== 核心架构 == | == 核心架构 == | ||
| 第60行: | 第59行: | ||
=== WebKit2 === | === WebKit2 === | ||
WebKit2是WebKit的新API层,从底层设计上支持拆分进程模型——网页内容(JavaScript、HTML、布局等)运行在与应用程序UI分离的独立进程中<ref name=":13">[https://trac.webkit.org/wiki/WebKit2 WebKit2 — WebKit Trac]</ref><ref name=":14">[https://docs.webkit.org/ WebKit2 概述 — WebKit.org]</ref>。这一多进程架构通过进程沙箱保护系统安全,并使应用程序即使在加载了无限循环或挂起的网页时仍能保持响应<ref name=":14" />。网页在各自的WebContent进程中加载,多个WebContent进程可共享浏览会话,网络访问、磁盘缓存和[[Web Storage API|Web Storage]]等API则由独立的网络进程统一管理<ref name=":14" />。 | WebKit2是WebKit的新API层,从底层设计上支持拆分进程模型——网页内容(JavaScript、HTML、布局等)运行在与应用程序UI分离的独立进程中<ref name=":13">[https://trac.webkit.org/wiki/WebKit2 WebKit2 — WebKit Trac]</ref><ref name=":14">[https://docs.webkit.org/ WebKit2 概述 — WebKit.org]</ref>。这一多进程架构通过进程沙箱保护系统安全,并使应用程序即使在加载了无限循环或挂起的网页时仍能保持响应<ref name=":14" />。网页在各自的WebContent进程中加载,多个WebContent进程可共享浏览会话,网络访问、磁盘[[缓存]]和[[Web Storage API|Web Storage]]等API则由独立的网络进程统一管理<ref name=":14" />。 | ||
== 许可协议 == | == 许可协议 == | ||
WebKit采用多重许可协议。从KHTML继承的大部分代码沿用[[LGPLv2.1]]许可证,而贡献给WebKit的新代码则采用二条款[[BSD许可证]]<ref name=":15">[https://docs.webkit.org/ Licensing — WebKit.org]</ref><ref name=":16">[https://webkit.org/licensing-webkit/ Licensing WebKit — WebKit.org]</ref>。具体而言,WebCore渲染库和JavaScriptCore引擎 | WebKit采用多重许可协议。从KHTML继承的大部分代码沿用[[LGPLv2.1]]许可证,而贡献给WebKit的新代码则采用二条款[[BSD许可证]]<ref name=":15">[https://docs.webkit.org/ Licensing — WebKit.org]</ref><ref name=":16">[https://webkit.org/licensing-webkit/ Licensing WebKit — WebKit.org]</ref>。具体而言,WebCore渲染库和JavaScriptCore引擎以L[[GPL]]发布,Apple贡献的额外部分以BSD 2-Clause许可发布<ref name=":0" /><ref name=":2" />。WebKit项目旨在保持对开源和专有应用程序的广泛可用性<ref name=":16" />。 | ||
== 使用WebKit的平台与产品 == | == 使用WebKit的平台与产品 == | ||
| 第75行: | 第74行: | ||
* [[PlayStation 3]]及后续PlayStation游戏机内置浏览器 | * [[PlayStation 3]]及后续PlayStation游戏机内置浏览器 | ||
* [[Amazon Kindle]]电子书阅读器浏览器 | * [[Amazon Kindle]]电子书阅读器浏览器 | ||
* [[Nintendo 3DS]]互联网浏览器 | * [[Nintendo 3DS]][[互联网]]浏览器 | ||
* [[Tizen]]移动操作系统默认浏览器 | * [[Tizen]]移动操作系统默认浏览器 | ||
* [[BlackBerry]]浏览器(已停用) | * [[BlackBerry]]浏览器(已停用) | ||
2026年8月11日 (二) 10:19的最新版本
| 中文名 | 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