Blink:修订间差异
无编辑摘要 |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| (未显示另一用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
{{Infobox| | {{Infobox | ||
| title = Blink | |||
| label1 = 開發者 | |||
| data1 = The Chromium Project及貢獻者<ref name=":0" /><ref name=":1" /> | |||
| label2 = 首次发布 | |||
| data2 = 2013年4月3日<ref name=":2" /><ref name=":3" /> | |||
| label3 = 源代码库 | |||
| data3 = chromium.googlesource.com | |||
| label4 = 编程语言 | |||
| data4 = [[C++]]<ref name=":1" /><ref name=":4" /> | |||
| label5 = 类型 | |||
| data5 = 瀏覽器排版引擎<ref name=":4" /> | |||
| label6 = 许可协议 | |||
| data6 = [[BSD许可证|BSD]]及[[LGPL|LGPLv2.1]]<ref name=":1" /><ref name=":4" /> | |||
| label7 = 前身 | |||
| data7 = [[WebKit]](WebCore)<ref name=":5" /><ref name=":6" /> | |||
}}'''Blink'''是由[[Google]]主导开发的开源[[浏览器]]引擎,作为[[Chromium]]项目的一部分<ref name=":0">[https://zh.m.wikipedia.org/wiki/Blink Blink — 维基百科(中文)]</ref><ref name=":7">[https://baike.baidu.com/item/Blink/13986338 Blink — 百度百科]</ref>。该引擎最初是[[WebKit]]项目中WebCore组件的一个分支,于2013年4月首次公开发布<ref name=":2">[https://blog.chromium.org/2013/04/blink-rendering-engine-for-chromium.html Blink: A rendering engine for the Chromium project — Chromium Blog]</ref><ref name=":5">[https://developer.mozilla.org/zh-CN/docs/Glossary/Blink Blink — MDN Web Docs]</ref>。Blink被广泛应用于[[Google Chrome]]、[[Microsoft Edge]]、[[Opera]]、[[Brave]]、[[Vivaldi]]、[[Samsung Internet]]等众多基于Chromium的浏览器中<ref name=":0" /><ref name=":1">[[wikipedia:Blink_(browser_engine)|Blink (browser engine) — Wikipedia]]</ref>。由于[[Go]]ogle [[Chrome]]的市场主导地位以及大量Chromium衍生浏览器的存在,Blink是目前使用最为广泛的浏览器引擎<ref name=":1" /><ref name=":8">[https://www.chromium.org/blink/ Blink — The Chromium Projects]</ref>。 | |||
== 历史 == | == 历史 == | ||
Blink的诞生源于Google在Chromium项目开发过程中对[[WebKit]]代码进行的大量修改。Chromium采用与其他WebKit浏览器不同的多进程架构,多年来的架构差异导致WebKit与Chromium项目的复杂性不断增加,减缓了创新速度<ref name=":2" />。2013年4月3日,Google正式宣布从WebKit中分支出Blink渲染引擎<ref name=":2" /><ref name=":3">[https://www.phoronix.com/news/Google-Forks-WebKit-Blink Google Forks WebKit As Blink Rendering Engine — Phoronix]</ref>。其名称的由来有两层含义:一是暗示速度(blink意为“闪烁”),二是指向非标准的[[HTML]] blink元素<ref name=":1" />。 | Blink的诞生源于Google在Chromium项目开发过程中对[[WebKit]]代码进行的大量修改。Chromium采用与其他WebKit浏览器不同的多进程[[架构]],多年来的架构差异导致WebKit与Chromium项目的复杂性不断增加,减缓了创新速度<ref name=":2" />。2013年4月3日,Google正式宣布从WebKit中分支出Blink渲染引擎<ref name=":2" /><ref name=":3">[https://www.phoronix.com/news/Google-Forks-WebKit-Blink Google Forks WebKit As Blink Rendering Engine — Phoronix]</ref>。其名称的由来有两层含义:一是暗示速度(blink意为“闪烁”),二是指向非标准的[[HTML]] blink元素<ref name=":1" />。 | ||
分拆之初,Blink团队即删除了超过4.5百万行代码和7个构建系统,以简化代码库<ref name=":2" />。分拆后的首批改动之一便是弃用包括WebKit前缀在内的CSS供应商前缀,实验性功能改为选择加入(opt-in)方式启用<ref name=":1" />。 | 分拆之初,Blink团队即删除了超过4.5百万行代码和7个构建系统,以简化代码库<ref name=":2" />。分拆后的首批改动之一便是弃用包括WebKit前缀在内的CSS供应商前缀,实验性功能改为选择加入(opt-in)方式启用<ref name=":1" />。 | ||
| 第31行: | 第34行: | ||
=== 渲染流程 === | === 渲染流程 === | ||
Blink作为渲染引擎,负责将[[HTML]]、[[CSS]]和[[JavaScript]]代码(以及图片和其他资源)转换为用户可查看和交互的网页<ref name=":9">[https://developer.chrome.com/docs/web-platform/blink?hl=zh-cn 什麼是 Blink? — Chrome for Developers]</ref>。其渲染过程包括资源收集、解析、样式计算、布局、绘制和合成等多个阶段<ref name=":9" />。 | Blink作为渲染引擎,负责将[[HTML]]、[[CSS]]和[[JavaScript]]代码(以及图片和其他资源)转换为[[用户]]可查看和交互的网页<ref name=":9">[https://developer.chrome.com/docs/web-platform/blink?hl=zh-cn 什麼是 Blink? — Chrome for Developers]</ref>。其渲染过程包括资源收集、解析、样式计算、布局、绘制和合成等多个阶段<ref name=":9" />。 | ||
Blink使用开源的[[Skia]]图形引擎与计算机或移动设备的底层图形硬件进行交互,Skia通过[[OpenGL]]、[[Vulkan]]和[[DirectX]]等图形库提供跨平台渲染能力<ref name=":9" />。 | Blink使用开源的[[Skia]]图形引擎与[[计算机]]或移动设备的底层图形硬件进行交互,Skia通过[[OpenGL]]、[[Vulkan]]和[[DirectX]]等图形库提供[[跨平台]]渲染能力<ref name=":9" />。 | ||
=== JavaScript引擎 === | === JavaScript引擎 === | ||
Blink内嵌[[V8 (JavaScript引擎)|V8]] [[JavaScript]]引擎,用于解析和执 | Blink内嵌[[V8 (JavaScript引擎)|V8]] [[JavaScript]]引擎,用于解析和执行[[Java]]Script及[[WebAssembly]]代码<ref name=":9" /><ref name=":10">[https://cloud.tencent.com/developer/article/2182117 揭秘字节码到像素的一生!Chromium 渲染流水线 — 腾讯云]</ref>。V8根据[[ECMAScript]]标准处理[[JavaScript]],开发者可通过V8访问底层浏览器功能,如操作[[文档对象模型|DOM]]<ref name=":9" />。 | ||
=== 多进程架构 === | === 多进程架构 === | ||
| 第50行: | 第53行: | ||
=== 跨平台支持 === | === 跨平台支持 === | ||
Blink作为跨平台渲染引擎,支持[[Windows]]、[[Linux]]、[[macOS]]、[[Android]]和[[ChromeOS]]等多个操作系统<ref name=":1" /><ref name=":4">[https://zh.m.wikipedia.org/zh-sg/Blink Blink — 维基百科(中文·新加坡)]</ref>。但在[[iOS]]平台上,由 | Blink作为跨平台渲染引擎,支持[[Windows]]、[[Linux]]、[[macOS]]、[[Android]]和[[ChromeOS]]等多个[[操作系统]]<ref name=":1" /><ref name=":4">[https://zh.m.wikipedia.org/zh-sg/Blink Blink — 维基百科(中文·新加坡)]</ref>。但在[[iOS]]平台上,由于[[Apple]]的政策限制,所有浏览器必须使用[[WebKit]]引擎,因此基于Chromium的浏览器在iOS上无法使用Blink<ref name=":1" /><ref name=":11">[https://m.ithome.com/html/670633.htm 谷歌希望在 iOS 上使用 Chrome Blink 引擎,以取代苹果的 WebKit — IT之家]</ref>。 | ||
== 应用范围 == | == 应用范围 == | ||
| 第65行: | 第68行: | ||
== 许可协议 == | == 许可协议 == | ||
Blink采用多重许可协议。Google作者贡献的部分以[[BSD许可证|BSD]]风格许可证发布,而基于WebCore的组件沿用[[LGPL|GNU宽通用公共许可证]] | Blink采用多重许可协议。Google作者贡献的部分以[[BSD许可证|BSD]]风格许可证发布,而基于WebCore的组件沿用[[LGPL|GNU宽通用公共许可证]](L[[GPL]])v2.1<ref name=":1" /><ref name=":4" />。 | ||
== 参考文献 == | == 参考文献 == | ||
<references /> | <references /> | ||