《WebKit 技术内幕》纸质实体书免费送啦!

本贴最后更新于 2766 天前,其中的信息可能已经物是人非

** 有需要该书的朋友请回帖沟通寄送方式,谢谢!**

WebKit 技术内幕

WebKit 技术内幕 WebKit 技术内幕

作者

  • 朱永盛

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

内容简介

《WebKit 技术内幕》从炙手可热的 HTML5 的基础知识入手,重点阐述目前应用最广的渲染引擎项目——WebKit。不仅着眼于系统描述 WebKit 内部渲染 HTML 网页的原理,并基于 Chromium 的实现,阐明渲染引擎如何高效地利用硬件和最新技术,而且试图通过对原理的剖析,向读者传授实现高性能 Web 前端开发所需的宝贵经验。

《WebKit 技术内幕》首先从总体上描述 WebKit 架构和组成,而后涵盖 Web 前端和所有与之相关的重要技术,包括网络、资源加载、HTML 和 CSS 解析、渲染树、布局、硬件加速、JavaScript 引擎、多媒体、移动支持、插件机制、安全机制、调试和最新的 Web 平台等。对于每一项技术,在介绍基本含义之上,详细分析 WebKit 内部的工作原理,进而从实践角度道出由此带来的 Web 前端开发启示。

目录

第 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

其他

  • 出版社:电子工业出版社
  • 副标题:
  • 原作名:
  • 出版年:2014-6
  • 总页数:456
  • 定 价:79.00 元
  • 装 帧:
  • ISBN:9787121229640

关于『书单』

书单是黑客派社区的一个纸质书共享活动,所有书均来自捐赠,原则上当前的书籍持有者有义务将书寄送给需要的会员。我们鼓励你在书籍上留下笔迹,任何信息都行,让其他人可以看到一些有意思的内容也是蛮不错的 😅

共享意味着什么

一旦你共享了一本书,就会使用你的社区账号自动发一篇书籍共享帖,这意味着你做了一个承诺:将书送到需要的人手中。如果有同城的书籍需求者回帖,就面交吧!

如何参与

  1. 使用微信扫描如下二维码,进入黑客派社区小程序
    3c04bd33b54a493aa97107a94a1ae706.png
  2. 按照小程序的指引开始即可

一点思考

类似共享书籍的事情有很多人做过,比如:

  • 摆摆书架
  • 青番茄
  • 书巢
  • 丢书大作战
  • 很多社区的书籍交换

大家的出发点都是想让这个世界变得更好。黑客派的『书单』将作为长期活动持续下去,大家随时都能参与进来,让你我的生活变得更丰富有趣!

  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    78 引用 • 391 回帖
  • Web
    117 引用 • 433 回帖 • 8 关注
  • 浏览器内核
    2 引用 • 6 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 想看,但是又懒得看。。。

  • Colyn

    想看 15636826909 匡盟 哈尔滨哈工大一区 谢谢 详细地址居然没法打出来,有保留字 hhh

  • FlyingFinger

    虽然很想看,但是有人提前预定了,就让学弟先看吧~

  • ykz200

    又想看,又懒得看

  • liming

    湖南长沙岳麓区岳麓街道桃花村瓜瓢山 913 终端站 电话:15873169096 姓名:liming
    谢谢