Chromium 目录结构
Chromium分为两个主要部分:
- browser - 浏览器主进程,UI,IO
- renderer - 核心是blink,可以理解为每个tab内的所有内容
两者是Chromium中的顶级概念。
在src目录下每一个文件夹可以理解为一个project,其中主要project有:
- android_webview - Android的webview,它是对src/content的封装,用于将Chromium整合进Android。
- apps - chrome apps
- base - 基础共享代码,至少有一个project共享的代码才会放在这里
- build - 所有project共享的构建相关配置
- cc - chrome compositor实现
- chrome - chrome(顶级概念中的chrome)
- app - 顶级概念(chrome)对应的程序,启动时运行
- browser - 主窗口UI,IO,存储,它与renderer通信来管理tab内容
- components - 非renderer相关的功能模块,例如自动填充等
- content - 多进程沙箱浏览器核心代码,它包括所有web实现及gpu加速,但不包含任何chrome本身相关的功能,例如自动填充等
- browser - 处理IO及子进程通信,它与renderer通信来管理tab内容
- common - 多进程部分的共享代码
- gpu - gpu进程相关代码
- renderer - 每一个tab的核心子进程
- device - 跨平台低级API
- net - 网络库
- sandbox - 沙箱系统
- skia + third_party/skia - skia
- third_party - chrome的第三方依赖
- blink - blink,因为继承自webkit的许可证原因才放在这里
- ui/gfx - 共享图形类,是chrome ui的基础
- ui/views - 一个用于UI开发的简单框架,大部分浏览器UI在这里实现,其他特殊情况在chrome/browser/ui/views
- url - url解析库
- v8 - v8