理解 Embedder,理解 Chromium 的系统层次结构
标签: Chromium
作者:易旭昕
在 Chromium 官方的文档里面,我们经常会看到 blink’s embedder 或者 content’s embedder 这样的称谓,理解 embedder 的概念,对我们理解 Chromium 的系统层次结构是十分重要的。
WebCore and WebKit
Chromium embedder 的概念来源自 WebKit。熟悉 WebKit 的会知道 WebKit 实际上分成 WebCore 和 WebKit 两个重要部分,前者是真正意义上的内核,负责资源加载的调度,解析,排版,元素的绘制,JS 的执行,网页事件的处理等等,WebCore 通常是被认为是平台无关的;而 WebKit 则是 WebCore 的一个包裹层,除了实现 WebCore 里面平台相关的部分,比如实际的绘制(光栅化,合成等),实际资源的加载(网络链接)这些以外,还包括事件的传入和传出,比如通过操作系统获取鼠标或者触屏事件传递给 WebCore,和接收 WebCore 向外发送的加载进度,JS 运行结果等事件。所以 WebKit 实际上就是 WebCore 的 embedder。
blink and content
Chro