WebKit技术内幕

出版日期:2014-6
ISBN:9787121229641
作者:朱永盛
页数:456页

内容概要

朱永盛,Chromium项目Committer,2006年从南京大学毕业后就职于英特尔亚太研发有限公司,专注于HTML5、WebKit和Chromium等方面技术,参与过多个浏览器和Web运行环境项目,并向业界大会和技术爱好者做过多次技术分享。2013年开始初创Android系统上的Web运行环境的开源项目——Crosswalk。个人博客:blog.csdn.net/milado_nju

书籍目录

第1章 浏览器和浏览器内核
1
1.1 浏览器
1
1.1.1 浏览器简介
1
1.1.2 浏览器特性
4
1.1.3 HTML
5
1.1.4 用户代理和浏览器行为
8
1.1.5 实践:浏览器用户代理
9
1.2 浏览器内核及特性
11
1.2.1 内核和主流内核
11
1.2.2 内核特征
12
1.3 WebKit内核
15
1.3.1 WebKit介绍
15
1.3.2 WebKit和WebKit2
16
1.3.3 Chromium内核:Blink
18
1.4 本书结构
18
第2章 HTML网页和结构
21
2.1 网页构成
21
2.1.1 基本元素和树状结构
21
2.1.2 HTML5新特性
23
2.2 网页结构
25
2.2.1 框结构
25
2.2.2 层次结构
27
2.2.3 实践:理解网页结构
29
2.3 WebKit的网页渲染过程
31
2.3.1 加载和渲染
31
2.3.2 WebKit的渲染过程
32
2.3.3 实践:从网页到可视化结果
35
第3章 WebKit架构和模块
39
3.1 WebKit架构及模块
39
3.1.1 获取WebKit
39
3.1.2 WebKit架构
40
3.1.3 WebKit源代码结构
43
3.2 基于Blink的Chromium浏览器结构
45
3.2.1 Chromium浏览器的架构及模块
45
3.2.2 实践:从Chromium代码结构和运行状态理解现代浏览器
56
3.3 WebKit2
61
3.3.1 WebKit2架构及模块
61
3.3.2 WebKit和WebKit2嵌入式接口
62
3.3.3 比较WebKit2和Chromium的多进程模型以及接口
63
第4章 资源加载和网络栈
65
4.1 WebKit资源加载机制
65
4.1.1 资源
65
4.1.2 资源缓存
67
4.1.3 资源加载器
68
4.1.4 过程
69
4.1.5 资源的生命周期
70
4.1.6 实践:资源的缓存
71
4.2 Chromium多进程资源加载
74
4.2.1 多进程
74
4.2.2 工作方式和资源共享
76
4.3 网络栈
78
4.3.1 WebKit的网络设施
78
4.3.2 Chromium网络栈
78
4.3.3 磁盘本地缓存
84
4.3.4 Cookie机制
88
4.3.5 安全机制
90
4.3.6 高性能网络栈
90
4.3.7 实践:Chromium网络工具和信息
97
4.4 实践:高效的资源使用策略
99
4.4.1 DNS和TCP连接
99
4.4.2 资源的数量
99
4.4.3 资源的数据量
100
第5章 HTML解释器和DOM模型
101
5.1 DOM模型
101
5.1.1 DOM标准
101
5.1.2 DOM树
104
5.2 HTML解释器
107
5.2.1 解释过程
107
5.2.2 词法分析
110
5.2.3 XSSAuditor验证词语
111
5.2.4 词语到节点
111
5.2.5 节点到DOM树
113
5.2.6 网页基础设施
114
5.2.7 线程化的解释器
117
5.2.8 JavaScript的执行
119
5.2.9 实践:理解DOM树
120
5.3 DOM的事件机制
121
5.3.1 事件的工作过程
122
5.3.2 WebKit的事件处理机制
123
5.3.3 实践:事件的传递机制
125
5.4 影子(Shadow)DOM
127
5.4.1 什么是影子DOM
127
5.4.2 WebKit的支持
128
5.4.3 实践:使用影子DOM
129
第6章 CSS解释器和样式布局
131
6.1 CSS基本功能
131
6.1.1 简介
131
6.1.2 样式规则
134
6.1.3 选择器
135
6.1.4 框模型
136
6.1.5 包含块(Containing Block)模型
139
6.1.6 CSS样式属性
139
6.1.7 CSSOM(CSS Object Model)
140
6.1.8 实践:理解CSSOM和选择器
141
6.2 CSS解释器和规则匹配
143
6.2.1 样式的WebKit表示类
143
6.2.2 解释过程
146
6.2.3 样式规则匹配
148
6.2.4 实践:样式匹配
149
6.2.5 JavaScript设置样式
151
6.3 WebKit布局
152
6.3.1 基础
152
6.3.2 布局计算
153
6.3.3 布局测试
155
第7章 渲染基础
157
7.1 RenderObject树
157
7.1.1 RenderObject基础类
157
7.1.2 RenderObject树
162
7.2 网页层次和RenderLayer树
163
7.2.1 层次和RenderLayer对象
163
7.2.2 构建RenderLayer树
165
7.3 渲染方式
167
7.3.1 绘图上下文(GraphicsContext)
167
7.3.2 渲染方式
169
7.4 WebKit软件渲染技术
172
7.4.1 软件渲染过程
172
7.4.2 Chromium的多进程软件渲染技术
177
7.4.3 实践:软件渲染过程
180
第8章 硬件加速机制
183
8.1 硬件加速基础
183
8.1.1 概念
183
8.1.2 WebKit硬件加速设施
185
8.1.3 硬件渲染过程
189
8.1.4 3D图形上下文
193
8.2 Chromium的硬件加速机制
194
8.2.1 GraphicsLayer的支持
194
8.2.2 框架
196
8.2.3 命令缓冲区
200
8.2.4 Chromium合成器(Chromium Compositor)
202
8.2.5 实践:减少重绘
213
8.3 其他硬件加速模块
216
8.3.1 2D图形的硬件加速机制
216
8.3.2 WebGL
223
8.3.3 CSS 3D变形
228
8.3.4 其他
229
8.3.5 实践:Chromium的支持
229
第9章 JavaScript引擎
231
9.1 概述
231
9.1.1 JavaScript语言
231
9.1.2 JavaScript引擎
238
9.1.3 JavaScript引擎和渲染引擎
241
9.2 V8引擎
242
9.2.1 基础
242
9.2.2 工作原理
246
9.2.3 绑定和扩展
258
9.3 JavaScriptCore引擎
259
9.3.1 原理
259
9.3.2 架构和模块
259
9.3.4 内存管理
265
9.3.5 绑定
266
9.3.6 比较JavaScriptCore和V8
266
9.4 实践——高效的JavaScript代码
266
9.4.1 编程方式
266
9.4.2 例子
268
9.4.3 未来
271
第10章 插件和JavaScript扩展
273
10.1 NPAPI插件
274
10.1.1 NPAPI简介
274
10.1.2 WebKit和Chromium的实现
275
10.2 Chromium PPAPI插件
284
10.2.1 原理
284
10.2.2 结构和接口
285
10.2.3 工作过程
288
10.2.4 Native Client
294
10.3 JavaScript引擎的扩展机制
297
10.3.1 混合编程
297
10.3.2 JavaScript扩展机制
299
10.4 Chromium扩展机制
303
10.4.1 原理
303
10.4.2 基本设施
306
10.4.3 消息传递机制
309
第11章 多媒体
311
11.1 HTML5的多媒体支持
311
11.2 视频
313
11.2.1 HTML5视频
313
11.2.2 WebKit基础设施
315
11.2.3 Chromium视频机制
317
11.2.4 字幕
328
11.2.5 视频扩展
330
11.3 音频
331
11.3.1 音频元素
331
11.3.2 Web Audio
334
11.3.3 MIDI和Web MIDI
336
11.3.4 Web Speech
337
11.4 WebRTC
339
11.4.1 历史
339
11.4.2 原理和规范
341
11.4.3 实践——一个WebRTC例子
342
11.4.4 WebKit和Chromium的实现
345
第12章 安全机制
353
12.1 网页安全模型
353
12.1.1 安全模型基础
353
12.1.2 WebKit的实现
363
12.2 沙箱模型
366
12.2.1 原理
366
12.2.2 实现机制
367
第13章 移动WebKit
373
13.1 触控和手势事件
373
13.1.1 HTML5规范
373
13.1.2 工作原理
377
13.1.3 启示和实践
381
13.2 移动化用户界面
382
13.3 其他机制
384
13.3.1 新渲染机制
384
13.3.2 其他机制
387
第14章 调试机制
389
14.1 Web Inspector
389
14.1.1 基本原理
389
14.1.2 协议
391
14.1.3 WebKit内部机制
395
14.1.4 Chromium开发者工具
398
14.1.5 远程调试
400
14.1.6 Chromium Tracing机制
402
14.2 实践——基础和性能调试
404
14.2.1 基础调试
404
14.2.2 性能调试
408
第15章 Web前端的未来
411
15.1 趋势
411
15.2 嵌入式应用模式
414
15.2.1 嵌入式模式
414
15.2.2 CEF
414
15.2.3 Android WebView
417
15.3 Web应用和Web运行环境
419
15.3.1 Web应用
419
15.3.2 Web运行环境
421
15.4 Cordova项目
423
15.5 Crosswalk项目
425
15.6 Chromium OS和Chrome的Web应用
429
15.6.1 基本原理
429
15.6.2 其他Web操作系统
431
参考资料
435

作者简介

《WebKit技术内幕》从炙手可热的HTML5 的基础知识入手,重点阐述目前应用最广的渲染引擎项目——WebKit。不仅着眼于系统描述WebKit 内部渲染HTML 网页的原理,并基于Chromium 的实现,阐明渲染引擎如何高效地利用硬件和最新技术,而且试图通过对原理的剖析,向读者传授实现高性能Web 前端开发所需的宝贵经验。
《WebKit技术内幕》首先从总体上描述WebKit 架构和组成,而后涵盖Web 前端和所有与之相关的重要技术,包括网络、资源加载、HTML 和CSS 解析、渲染树、布局、硬件加速、JavaScript 引擎、多媒体、移动支持、插件机制、安全机制、调试和最新的Web 平台等。对于每一项技术,在介绍基本含义之上,详细分析WebKit 内部的工作原理,进而从实践角度道出由此带来的Web 前端开发启示。


 WebKit技术内幕下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     这样好的一本书,没想到评价居然比我预想的低很多,作为不同领域但基本内容类似的书籍,评价远比某《XX引擎架构》低很多,可见作者在国内日益流行的混圈子文化中水平比自己码代码的水平差了很多,但是,玩笑归玩笑,这本书非常不错,所有在研究Chrome或者Webkit浏览器原理,所有在做CEF但又不满足的人,都要读!这本书能节省你非常多的时间。有人说里面有价值的东西都是根据文档翻译,说这话明显不负责任,我不知道这个人到底看过Chrome和Webkit的文档没,说这种话要摸良心。书里面有些小错误,部分内容和现在的不一致了,但是总的说来对于现代浏览器里面用到的技术都基本覆盖到了,想要深入研究的人可以照着本书按图索骥了。本书最大的错误是分类居然在web技术一类,可惜这书里的内容做web的人绝大多数都用不到,本书合适的对象是C++中高级开发者,浏览器开发人员,以及对一个大型现代C++程序构架感兴趣的人。最后一句,人品推荐。

精彩短评 (总计26条)

  •     其实这本书一开始看还好,越看越觉得郁闷,不知道作者真正水平如何,但是叙述问题的能力太差了。 1. 首先这本书的命题本来已经很大了,要在短短400多页的内容里边讲完所有东西是不可能的。这是非常致命的错误。按照个人的看法,这本书应该着重把内核渲染过程讲清楚就不错了。 2. 其次,每一章一上来就莫名其妙给一大堆xml图,在不了解这一章真正要做什么的情况下,不可能有人能看懂这些类的调用关系,组合关系,这点是我非常讨厌的写法。每一章都没有一个非常清晰的思路告诉读者,使得我越看越郁闷。 3. 每个章节都是点到为止,说了这个东西可以这样这样做,丢下chromium的大概流程图然后就结束了。 看你写这么大一个话题不容易,只好打上2星
  •     书中比较靠谱的内容都是根据文档翻译的。
  •     略读了一遍,概念和原理比较多,还行吧,能收获一些东西
  •     介绍了各项浏览器技术,对代码结构和主要类层次做了概括式的分析,可以作为 WebKit 源码阅读的一个向导
  •     入门级,可用于熟悉代码结构
  •     作为前端工程师,很有必要了解下每天打交道的浏览器的工作原理,有利于改进自己的程序。
  •     基本没收获。比官方那些几百年不更新的DOC还要一般。唯一有价值的大概只是每章罗列出来的一些类,方便自己下断点调试跟踪。既然号称技术内幕,总归是要分析代码的,与其浮在表面说一些不痛不痒的内容,不如选一个靠谱的分支把代码分析一遍,好歹匹配上xx internals的名字
  •     坐高铁上读一读,貌似有些部分更新度不够
  •     不知道是写得不好还是我看得姿势不对,反正云里雾里,什么都在说,可是什么也没说清楚,看到第8章终于看不下去了
  •     由于是这方面的第一本书,是一个好的开始,除去这点,并不看好此书。内容泛泛而已。
  •     口水
  •     有些章节还是适合反复读的,但是有点过于局限于分析代码
  •     基本上是个代码结构索引,覆盖面还挺广的
  •     对代码结构讲的比较多,原理性的还是偏少,似乎有点讲解webkit源码的赶脚。收获有限。
  •     泛泛地谈谈浏览器的原理吧。
  •     不错
  •     很多东西点到为止,没有很深入探讨CSS HTML的原理,对于前端开发来说,帮助最大的应该是缓存那章
  •     主题不错,写的略捉急。。
  •     基本上没讲什么东西,大部分都是科普类的文字,去掉类似于百度百科介绍性的文字后,原创的估计所剩无几了。
  •     作者功力深厚,可以看出他对chromium的源代码非常熟悉。
  •     难得的好书,把渲染引擎和javascript引擎讲得很详细。心中放了多年的问题解了。可以反复看几遍,感觉一遍不够。
  •     本科时候英特尔实习组里的大神写的,弥补了 WebKit 相关书籍的空白。虽然写得尽可能浅白了,但我还是没怎么读懂
  •     webkit方面技术第一本书,不容易
  •     讲的太空洞,实质性内容不多。
  •     以为很深,但是好像没有代码分析的样子。每个章节之间没有衔接,后来才知道是博文整理成册。关于 WebKit 的中文书确实少,还是多看下官方文档和 Slideshare 比较好。 --- Updated 一年后发现需要重读。
  •     WebKit源代码阅读预备知识。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024