勇闯Chromium——Chromium 如何显示网页

概念的应用层

在这里插入图片描述
每个框代表一个概念应用层。任何层都不应了解或依赖任何更高层。

  • WebKit: Safari、Chromium 和所有其他基于 WebKit 的浏览器共享的渲染引擎。WebKit Port是 WebKit 的一部分,它集成了平台相关的系统服务,例如资源加载和图形处理。
  • Glue:将 WebKit 类型转换为 Chromium 类型。这是我们的“WebKit 嵌入层”。它是 Chromium 和 test_shell(允许我们测试 WebKit)两款浏览器的基础。
  • 渲染器/渲染器host:这是 Chromium 的“多进程嵌入层”。它代理跨进程边界的通知和命令。
  • WebContents:一个可复用的组件,是内容模块的主类。它易于嵌入,允许多进程将 HTML 渲染到视图中。更多信息请参阅内容模块页面。
  • Browser:代表浏览器窗口,它包含多个WebContent。
  • Tab Helpers:可以附加到 WebContents 的独立对象(通过 WebContentsUserData mixin)。浏览器会将各种各样的 Tab Helpers 附加到其持有的 WebContents 上(例如,一个用于图标,一个用于信息栏,等等)。

WebKit

我们使用WebKit开源项目来布局网页。这些代码来自 Apple,存储在 /third_party/WebKit 目录中。WebKit 主要由代表核心布局功能的“WebCore”和运行 JavaScript 的“JavaScriptCore”组成。我们仅在测试时运行 JavaScriptCore,通常将其替换为我们的高性能 V8 JavaScript 引擎。我们实际上不使用 Apple 称之为“WebKit”的层,它是 WebCore 和 OS X 应用程序(例如 Safari)之间的嵌入 API。为了方便起见,我们通常将 Apple 的代码统称为“WebKit”。

WebKit 端口

在最底层,我们有 WebKit 的“移植”。这是我们对特定平台所需功能的实现,这些功能与平台无关的 WebCore 代码交互。这些文件位于 WebKit 树中,通常位于 Chromium 目录中或以 Chromium 为后缀的文件。我们的移植工作中的大部分内容实际上并非特定于操作系统:您可以将其视为 WebCore 的“Chromium 移植”。某些部分,例如字体渲染,必须针对每个平台进行不同的处理。

网络流量由我们的多进程资源加载系统处理 ,而不是直接从渲染进程交给操作系统。
图形库使用了为 Android 开发的 Skia 图形库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

parkseyoung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值