0 目录

1 浏览器和浏览器内核

1 浏览器

1.1 浏览器简介

1.2 浏览器特性

1.3 HTML

1.4 用户代理和浏览器行为

1.5 实践: 浏览器用户代理

2 浏览器内核及特性

2.1 内核和主流内核

2.2 内核特征

3 Webkit 内核

3.1 Webkit介绍

4 本书结构

2 HTML 网页和结构

1 网页构成

1.1 基本元素和树状结构

1.2 HTML5 新特性

2 网页结构

2.1 矿结构

2.2 层次结构

2.3 实践: 理解网页结构

3 Webkit 的网页渲染过程

3.1 加载和渲染

3.2 Webkit 的渲染过程

3.3 实践: 从网页到可视化结果

3 Webkit 架构和模块

1 WebKit 架构及模块

1.1 获取 WebKit

1.2 WebKit 架构

1.3 WebKit 源代码结构

2 基于 Blink 的 Chromium 浏览器结构

2.1 Chromium 浏览器的结构及模块

2.2 实践: 从 Chromium 代码结构和运行状态理解现代浏览器

3 WebKit2

3.1 WebKit2 架构及模块

3.2 WebKit 和 WebKit2 嵌入式结构

3.3 比较 WebKit2 和 Chromium 的多进程模型以及接口

4 资源加载和网络栈

1 WebKit 资源加载机制

1.1 资源

1.2 资源缓存

1.3 资源加载器

1.4 过程

1.5 资源的生命周期

1.6 实践: 资源的缓存

2 Chromium 多进程资源加载

2.1 多进程

2.2 工作方式和资源共享

3 网络栈

3.1 WebKit 的网络设施

3.2 Chrimium 网络栈

3.3 磁盘本地缓存

3.4 Coolie 机制

3.5 安全机制

3.6 高性能网络栈

3.7 实践: Chromium 网络工具和信息

4 实践: 高效的资源使用策略

4.1 DNS 和 TCP 连接

4.2 资源的数量

4.3 资源的数据量

5 HTML 解释器和 DOM 模型

1 DOM 模型

2 HTML 解释器

3 DOM 的事件机制

4 影子(Shadow) DOM

4.1 什么是影子 DOM

4.2 WebKit 的支持

4.3 实践: 使用影子 DOM

6 css 解释器和样式布局

1 CSS 基本功能

2 CSS 解释器和规则匹配

3 WebKit 布局

7 渲染基础

1 RenderObject 树

1.1 RenderObject 基础类

1.2 RenderObject 树

2 网页层次和 RenderLayer 树

2.1 层次和 RenderLayer 对象

2.2 构建 RenderLayer 树

3 渲染方式

3.1 绘图上下文(GraphicsContext)

3.2 渲染方式

4 WebKit 软件渲染技术

4.1 软件渲染过程

4.2 Chromium 的多进程软件渲染技术

4.3 实践: 软件渲染过程

8 硬件加速机制

1 硬件加速基础

1.1 概念

1.2 WebKit 硬件加速设施

1.3 硬件渲染过程

1.4 3D 图形上下文

2 Chromium 的硬件加速机制

2.1 GraphicsLayer 的支持

2.2 框架

2.3 命令缓冲区

2.4 Chromium 合成器(Chromium Compositor)

2.5 实践: 减少重绘

3 其他硬件加速模块

3.1 2D 图形的硬件加速机制

3.2 WebGL

3.3 CSS 3D 变形

3.4 其他

3.5 实践: Chromium 的支持

9 JavaScript 引擎

1 概述

1.1 JavaScript 语言

1.2 JavaScript 引擎

1.3 JavaScript 引擎和渲染引擎

2 V8 引擎

2.1 基础

2.2 工作原理

2.3 绑定和扩展

3 JavaScriptCore 引擎

3.1 原理

3.2 结构和模块

3.4 内存管理

3.5 绑定

3.6 比较 JavaScriptCore 和 V8

4 实践-高效的 JavaScript 代码

4.1 编程方式

4.2 例子

4.3 未来

10 插件和 JavaScript 扩展

10.1 NPAPI 插件

10.1.1 NPAPI 简介

10.1.2 WebKit 和 Chromium 的实现

10.2 Chromium PPAPI 插件

10.2.1 原理

10.2.2 结构和接口

10.2.3 工作过程

10.2.4 Native Client

10.3 JavaScript 引擎的扩展机制

10.3.1 混合编程

10.3.2 JavaScript 扩展机制

10.4 Chromium 扩展机制

10.4.1 原理

10.4.2 基础设施

10.4.3 消息传递机制

11 多媒体

11.1 HTML5 的多媒体支持

11.2 视频

11.2.1 HTML5 视频

11.2.2 WebKit 基础设施

11.2.3 Chromium 视频机制

11.2.4 字幕

11.2.5 视频扩展

11.3 音频

11.3.1 音频元素

11.3.2 Web Audio

11.3.3 MIDI 和 Web MIDI

11.3.4 Web Speech

11.4 WebRTC

11.4.1 历史

11.4.2 原理和规范

11.4.3 实践-一个 WebRTC 例子

11.4.4 WebKit 和 Chromium 的实现

12 安全机制

12.1 网页安全模型

12.1.1 安全模型基础

12.1.2 WebKit 的实现

12.2 沙箱模型

12.2.1 原理

12.2.2 实现机制

13 移动WebKit

13.1 触控和手势事件

13.1.1 HTML5 规范

13.1.2 工作原理

13.1.3 启示和实践

13.2 移动化用户界面

13.3 其他机制

13.3.1 新渲染机制

13.3.2 其他机制

14 调试机制

14.1 Web Inspector

14.1.1 基本原理

14.1.2 协议

14.1.3 WebKit 内部机制

14.1.4 Chromium 开发者工具

14.1.5 远程调试

14.1.6 Chromium Tracing 机制

14.2 实践——基础和性能调试

14.2.1 基础调试

14.2.2 性能调试

15 Web 前端的未来

15.1 趋势

15.2 嵌入式应用模式

15.3 Web 应用和 Web 运行环境

15.4 Cordova 项目

15.5 Crosswalk 项目

15.6 Chromium OS 和 Chrome 的 Web 应用

15.6.1 基本原理

15.6.2 其他 Web 操作系统