理解WebKit和Chromium: 前言
转载请注明原文地址:http://blog.csdn.net/milado_nju
这几年来,我阅读了很多WebKit和Chromium的代码,也给它们提交过一些的代码补丁包(patch),一个感觉是代码量真的很大,常常看了这块忘了那块;另一个感觉是文档真的很少,特别是WebKit(chromium有不少设计文档,但是还不够详细,不够系统)。这让我觉得非常痛苦,常常摸不着头绪。鉴于自己的经历,觉得很有必要把阅读代码后的理解和总结记录下来,一来帮助自己回忆,二来可以分享给其他人,三来方便大家一起交流。
这将会是一个系列,该系列的介绍方式会以一个个专题的形式来给出,例如WebKit的DOM树,Render树,Chromium多进程模型,消息处理,IPC等等,每个专题大概分成以下几个部分来描述:1) 了解背景知识,基本的结构和流程; 2) 各个模块的架构和设计,以及它们是如何工作的; 3) 帮助阅读和理解chromium的代码
根据这些专题所涉及的内容,大概把它们分为三个部分,第一个部分是基础话题,第二部分是高级话题,第三部分是开放话题,下面是这个系列的具体内容目录,未来可能会根据需要做一些修改:
1. 基础篇
- WebKit, WebKit2, Chromium和Chrome介绍
- WebKit和Blink
- 浏览器概述
- WebKit和Chromium代码目录结构介绍
- WebKit和Chromium组成部分
- Chromium用户界面介绍
- Chromium多进程模型
- Chromium多线程模型
- Chromium消息循环
- Chromium多进程通信机制
- 页面渲染的基本过程
- Chromium网络栈
- WebKit资源加载机制
- Chromium的多进程资源加载机制
- Chromium资源磁盘缓存
- HTML解析和DOM
- CSS基础
- WebKit渲染基础
- WebKit移植(port)
- Chromium插件和扩展基础
- Web Inspector
- 主循环和requestAnimationFrame
- 触控(Touch Events)
- HTML5多媒体支持
2. 高级篇
- Chromium软件渲染(software rendering)
- Chromium的GPU硬件加速
- Chromium硬件加速合成(gpu accelerated compositing)
- 硬件加速之RenderLayer树到合成树
- Canvas2D
- WebGL
- WebKit的CSS实现
- WebKit布局(layout)
- Chromium Compositor(CC)
- JavaScript引擎介绍
- V8引擎
- JavaScriptCore引擎
- V8扩展机制
- 插件模型(NPAPI Plugin)
- Chrome扩展机制(extension)
- PepperAPI和NativeClient
- Skia
- Chromium绘图模型
- Views
- Aura
- WebWorker
- 视频
- 音频
- WebSocket
- Content API和CEF3
- SPDY
- WebRTC
- Chromium移动版(Chromium for Mobile)
- Chromium For Android
- 基于Chromium内核的Android WebView
- Android4.4上的Chromium WebView
- Chromium WebView和Chrome浏览器渲染机制
- ChromiumOS
- Chromium开发者工具
- Chromium Tracing机制
- 安全模型基础
- 沙箱模型(sandbox)
- 移动化
3. 开放篇
- SysApps
- 多点触控
- Web应用和Web运行环境
- PhoneGap
- Web应用
By yongsheng@chromium.org