理解WebKit和Chromium - (EPUB全文下载)
文件大小:2.35 mb。
文件格式:epub 格式。
书籍内容:
版权信息
书名:理解WebKit和Chromium
作者:朱永盛
本书由北京图灵文化发展有限公司发行数字版。版权所有,侵权必究。
您购买的图灵电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
目录
前言
基础篇
WebKit, WebKit2, Chromium和Chrome介绍
WebKit和Blink
WebKit和Chromium代码目录结构介绍
WebKit和Chromium功能模块
Chromium界面(UI)
Chromium多进程模型
Chromium的多线程机制
消息循环
页面渲染的基本过程
HTML解析和DOM
CSS基础
WebKit渲染基础
渲染主循环(main loop)和requestAnimationFrame
WebKit资源加载机制
Chromium的多进程资源加载机制
Chromium网络栈
Chromium资源磁盘缓存
Chromium插件和扩展基础
高级篇
Chromium软件渲染
Chromium的GPU硬件加速
Chromium硬件加速合成
硬件加速之RenderLayer树到合成树
Canvas2D及其实现
WebGL及其实现
WebKit的CSS实现
WebKit布局 (Layout)
插件机制(NPAPI Plugin)
Content API和CEF3
Chromium移动版(Chromium for Mobile: Android & iOS)
Chromium for Android
基于Chromium内核的Android WebView
Web应用和Web运行环境
前言
这几年来,我阅读了很多WebKit和Chromium的代码,也给它们提交过一些的代码补丁包(patch),一个感觉是代码量真的很大,常常看了这块忘了那块;另一个感觉是文档真的很少,特别是WebKit(chromium有不少设计文档,但是还不够)。这让我觉得非常痛苦,常常摸不着头绪。鉴于自己的经历,觉得很有必要把阅读代码后的理解和总结记录下来,一来帮助自己回忆,二来可以分享给其他人,三来方便大家一起交流。
这将会是一个系列,该系列的介绍方式会以一个个专题的形式来给出,例如WebKit的DOM树,Render树,Chromium多进程模型,消息处理,IPC等等,每个专题大概分成以下几个部分来描述:
了解背景知识,理解基本的结构和流程;
熟悉各个模块的架构和设计,以及它们是如何工作的;
帮助阅读和理解chromium的代码。
根据这些专题所涉及的内容,大概把它们分为三个部分,第一个部分是基础篇,第二部分是高级篇,第三部分是开放篇。
基础篇
根据这些专题所涉及的内容,大概把它们分为三个部分,第一个部分是基础篇,第二部分是高级篇,第三部分是开放篇。
WebKit, WebKit2, Chromium和Chrome介绍
概述
在介绍本系列各个专题之前,有必要先解释一下极其容易混淆的几个概念,它们是WebKit,WebKit2,Chromium和Chrome。
首先来了解WebKit。广义上来说,WebKit是一个开源的项目,其前身是来源于KDE的KHTML和KJS。该项目专注于网页内容的展示,开发出一流的网页渲染引擎。它不是浏览器,而且也不想成为浏览器。 该项目包含两个部分,第一是WebCore,其中包含了对HTML,CSS等很多W3C规范的实现;第二部分就是狭义上的WebKit,它主要是各个平台的移植并提供相对应的Web接口,也就是WebView或者类似WebView,这些接口提供操作和显示网页的能力。目前使用WebKit的主流的浏览器或者WebView包括Chrome, Safari, QtWebKit, Android Browser以及众多的移动平台的浏览器。
WebKit2相对于狭义上的WebKit而言,它不是WebKit简单的第二个版本,它是一个新的API层,其最主要的变化在于将网页的渲染置于单独的进程,而接口层则在另外一个进程,它们之间通过IPC来通讯。对于接口的调用者来说,中间的IPC和底下的实现是透明的,这样做的好处有很多,一个很明显的好处是,当网页的渲染出现问题时,不会阻碍Web接口的调用者进程,这会在很大程度上解决或者帮助解决浏览器或者这些调用者的稳定性和安全性等问题。
Chromium是一个建立在WebKit之上的浏览器开源项目,由Google发起的。该项目被创建以来发展迅速,很多先进的技术被采用,如跨进程模型,沙箱模型等等。同时,很多新的规范被支持,例如WebGL,Canvas2D,CSS3以及其他很多的HTML5特性,基本上每天你都可以看到它的变化,它的版本升级很快。在性能方面,其也备受称赞,包括快速启动,网页加载迅速等。
Chrome是Google公司的浏览器产品,它基于chromium开源项目,一般选择稳定的版本作为它的基础,它和chromium的不同点在于chromium是开源试验场,会尝试很多新的东西,当这些东西稳定之后,chrome才会集成进来,这也就是说chrome的版本会落后于chromium。另外一个就是,chrome里面会加入一些私有的codec,这些仅在chrome中才会出现。再次,chrome还会整合Google的很多服务, 最后chrome还会有自动更新的功能,这也是chromium所没有的。
参考文献
http://www.webkit.org/
http://trac.webkit.org/wiki/WebKit2
WebKit和Blink
关注Web和HTML5领域的人最近应该都有了解WebKit项目的重磅消息,那就是Google退出WebKit项目,创建自己的渲染引擎Blink。这其实不能说完全没有先兆,合合分分,纯属正常。其实,之前关于WebKit2 ............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 理解WebKit和Chromium - (EPUB全文下载)