Chromium源代码目录结构

本章节主要介绍Chromium源代码的目录结构。在Android M之前,Chromium source code位于Android source目录external/chromium_org,从Android M开始,Chromium source code就需要单独下载。整个Chromium工程是非常庞大的,在开始阅读源代码之前,最好对Chromium的源代码目录结构有一个清晰的认识。

官方文档看起来比较旧了,没有更新,也没有覆盖所有目录,这里也只简单介绍我有了解过的目录。

  • android_webview:为了与Android framework层对接,对content层的代码进行了封装;
  • apps:Chrome packaged apps的代码,我们可以不用关注这部分;
  • base:提供给所有子工程使用的通用代码,相当于是一个基础库的实现,例如字符串处理、智能指针等等,只有当代码需要共享给其他顶级目录工程时,才能添加到这里面;
  • breakpad:google的一个用于处理程序奔溃的开源项目,它是直接从GoogleCode的svn拉过来的;
  • build:所有工程共用的编译配置;
  • cc:Chromium合成器的实现;
  • chrome:Chromium浏览器;
  • components:给content层调用的一些组件模块;
  • content:content模块的实现,多进程沙盒浏览器的核心代码;
  • devices:通用底层硬件api的跨平台抽象;
  • ipc:IPC通信模块
  • media:多媒体相关的模块
  • net:为Chromium开发的一个网络库,在运行webkit下的test_shell时可以单独使用,可以参考chrome/common/net;
  • out:编译生成的目录
  • sandbox:沙箱项目,用来防止被黑客攻击的渲染器修改系统;
  • skia:google为Android开发的图形库,直接从Android代码树中复制过来的,在ui/grx之后增加了一些对skia进行封装的类;
  • sql:SQLite数据库方面的模块;
  • testing:google开源测试工具GTest,用来进行单元测试
  • third_party:一些第三方库,比如图片解码、压缩算法库,在chrome/third_party中也有一些chrome专用的第三方库;
  • ui/gfx:共享图形库,这是渲染chromium ui图形的基础;
  • ui/views : 进行ui开发的简单框架,提供了渲染、布局、事件处理机制。大部分的浏览器 ui 都基于这个框架来实现。这个目录下包含了基本对象,还有一些浏览器特定的对象位于chrome/browser/ui/views
  • url:google开源的URL解析和标准化库;
  • V8:google开发的V8 JavaScript引擎,这是从google code的svn中直接拉取的。

content子目录说明

  • Browser:浏览器的后端,处理所有与子进程相关的I/O与通信。与render进行通信并管理网页的绘制,运行在Browser进程;
  • Common:这部分代码被多个进程的使用(如browser进行和renderer进程,browser进程和plugin进程等),是Chromium专用的(所以不合适放到base下边)。
  • Gpu:GPU进程的代码,用来进行3D合成,还包括一些3D相关的API。
  • Plugin:在其他进程中运行浏览器插件的代码。
  • Renderer:标签页渲染子进程的代码,它嵌入了WebKit中并从浏览器进程获取I/O

third_party/WebKit子目录说明

  • public:Blink对外提供的api层,在chromium与webkit之间的起到隔离的作用,它把 WebKit 里面的对象重新封装,对象类型与webkit中的类型对应,命名方式以WebXXX为前缀;
  • Source:webkit引擎的源代码目录;
  • Tools:webkit项目使用的工具模块
  • LayoutTests、ManualTests、PerformanceTests:各种各样的测试用例;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值