[翻译]Blink是如何工作的(未完)
在Blink上工作不是件容易的事.Blink有很多专有的概念,并且有一套为了实现快速渲染引擎而引入的编码规范,这个对于新开发者来说并不是易事.即使是经验丰富的Blink开发人员也不容易,因为Blink非常庞大,对性能,内存和安全性极为敏感.
这篇文档的目的是帮助Blink的开发者快速熟悉架构:
- 该文档并不是讲述Blink的详细架构和编码规则教程.相反,该文档简明的描述了Blink的短期内不太可能发生变化基本面,并指出如果你想了解更多信息,你可以阅读的资源有哪些。
- 该文档没有解释具体的某些功能(例如,ServiceWorkers,编辑).相反,该文档解释了基本功能(例如,存储器管理,V8 API)。
Page, Frame, Document, DOMWindow etc
- 概念
- 进程外的iframe(OOPIF)
- [移除Frame/Document](#Detached Frame_/_Document)
- 网页接口定义语言绑定(Web IDL bindings)
Blink是干什么的?
Blink是web平台的一个渲染引擎.通俗的说,Blink实现了能在浏览器里呈现所有内容的能力:
- 实现了浏览器平台的规范(例如html标志).包括DOM,CSS和Web IDL.
- 嵌入了V8引擎和执行JavaScript
- 从底层网络栈中请求资源
- 构建DOM树
- 计算样式和布局
- 嵌入了chrome的排版器和图形绘制
blink通过Content public APIs嵌入了许多第三方的浏览器(例如chromium,android webview,Opear).
从代码库的角度看,"Blink"通常是指//third_party/blink/.从项目角度看,"Blink"通常是指实现项目的功能.实现Web平台功能的代码范围为:
- //third_party/blink/
- //content/renderer/
- //content/browser/
- 其他地方。