赞
踩
本篇文章翻译自chromium官方的源代码结果说明
http://www.chromium.org/developers/how-tos/getting-around-the-chrome-source-code
由于目前我对chromium的代码本身还没有特别深入的了解,只希望能尽可能还原原文的意思。
目录
1 总览
2 关于解决方案文件的简要说明
3 顶级工程目录
4 "content/"下目录树的简要说明
5 "chrome/"下目录树的简要说明
6 个人的学习计划
7 常规操作的代码路径
7.1 程序启动
7.2 打开标签页和初始化导航
7.3 从地址栏中导航
7.4 导航页和会话历史
chromium分为三个主要的部分(不包括第三方库):浏览器browser, 渲染器renderer和Webkit。browser是主进程,它涉及所有的UI和IO。renderer是由browser驱动的子进程,通常一个标签页对应一个子进程。renderer中嵌入了Webkit用于网页的布局和渲染。
解决方案文件位于chrome/chrome.sln
关于webkit更加详细的说明
WebKit
我们使用 WebKit这个开源项目来展示网页。此代码主要是由Apple编写的并存放在/third_party/WebKit目录中。WebKit主要包括两部分:“WebCore”负责核心布局功能,“JavaScriptCore”用来执行JavaScript。我们只将JavaScriptCore用于测试目的,通常我们使用高性能的V8 JavaScript引擎取代它。我们实际不使用苹果称之为“WebKit”的软件层(译注:就是WebKit/Source/WebKit目录下的内容,Webkit/Source目录下同样有WebCore和JavaScriptCore目录),这个软件层用在如Safari这样的应用程序中,用来衔接WebCore和OS X。为了方便,我们通常将从Apple获取的代码称作“WebKit”。(其实只使用了WebCore)
The WebKit Port
在最底层,我们有我们的WebKit“Port”。这是我们实现的平台相关的代码,它用来衔接平台和WebCore。这些文件位于WebKit目录中,通常在Chromium目录中或者以Chromium为后缀名。实际上Port的大部分代码不是和操作系统相关的:你可以把它看成是WebCore的Chromium Port(用来衔接WebKit和Chromium的)。有些部分,如字体渲染,必须针对每个操作系统平台分别处理。
在你下载chromium的源码后,你看到一系列的顶级工程目录,这些工程如下:
下边是一个依赖关系图,下游的模块不能直接包含上游的模块代码(例数,content不能包含chrome头文件),但可以使用嵌入的api进行调用。
“chrome/”下目录树的简要说明
当你最终完成编译环境,并准备开始工作,理想的情况是在开始写你自己的代码前,你有足够的时间阅读并理解每一行代码。但是实际上,你会发现就算你一天内什么事情都不干,光把每天的更新的代码看完也是一件很困难的事情,所以你不想能通读所有的代码。那么应该怎样做呢?我们建议你针对你要学习的东西建立你自己的学习计划,你可以从以下这些地方入手:
幸运的是,chromium有一些一流的设计文档,虽然有一些旧(比如,当往下看时会发现一些文档的链接已经被迁移、重命名或者由于重构已经消失),但是与代码结合起来看会更容易理解代码。
阅读重要的开发文档
multi-process-architecture
displaying-a-web-page-in-chrome
inter-process-communication
threading
阅读你们团队拥有的一些入门文档。可能有一些文档只有在你需要在某个代码上进行开发才需要了解它们,否则你并不用太在意它们。
学习一些代码风格:
important-abstractions-and-data-structures
smart-pointer-guidelines
chromium-string-usage
然后,如果时间充许,简单过一遍所有的设计文档,阅读跟你相关的部分。启动程序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。