下图是在Visual Studio 2005 中打开 Chrome 解决方案之后看到的大概内容。一共有 215 个工程。
1. App目录主要与国际化有关。
2. Base子目录主要记录了一些公用的库
3. Breakpad是一个辅助库,主要用于 Chrome 在 Crash 的情况下用于上报。
4. Build包含了 Google 自己编写的 URL 解析库。
5. Chrome 核心部分,也是需要研究的重点,包含了 Browser , Renderer 、 Plugin 等重要的工程。
6. Courgette 辅助库,主要包含了一个升级包安装时,用于生成二进制包。
7. Media 媒体库,包含了各种媒体支持。
8. Net 网络库,包含了各种网络协议。
9. Print 打印库,包含了网页打印相关功能。
10. SandBox 沙箱辅助库,主要用于进程保护。
11. Third_party 第三方库,主要包含了第三方的一些开源库。
12. Tools 工具库,包含了 memory_watcher 工具,也就是在 Chrome 中按下 Shift + Esc 键出来的内存查看工具。
13. V8 Javascript引擎库, Chrome 将 Webkit 中的 Javascript 引擎替换成了 V8 ,传说比 Webkit 的 JS 引擎要快上好多倍。
14. Webkit Webkit核心库了,包含了核心的布局 (Layout) 、渲染 (Render )、 HTML 、 CSS 等库。 Chrome 并没有直接使用 Webkit ,而是在 Webkit 的基础上封装了一层,体现在里面的 Glue 工程中。
15. Gears 扩展库, Gears通过扩展 JavaScript API 使得浏览器的脚本能够访问本地的缓存数据库。
在Google Gears 的官方网页里, Google 是这样描述 Google Gears 的:
Google Gears是一个开源的浏览器扩展,它允许网络应用程序使用以下 JavaScript API 提供离线功能:
1.在本地储存及操作应用程序的资源;
2.将数据储存在本地的完全可搜索的关系数据里;
3.运行异步 Javascript 以提高应用程序的响应速度 。
更具体地说,Google Gears 会将数据储存在你的硬盘上的一个 SQLite 数据库里,并且这些数据可以通过 SQL 命令获得。 Google 有很多工具,比如 Google Doc , Google Reader , Google Mail 等都利用了 Gears 的特性。