03 — Content 与 Chrome 分层
Chromium 里要区分 content 和 chrome。
content 是什么
content 可以理解为“加载和渲染网页所需的通用浏览器内核层”。它提供 WebContents、导航、Renderer 管理、进程通信等基础能力。
它不应该包含 Chrome 产品特性。
chrome 是什么
chrome 是具体浏览器产品层,包含:
- 地址栏、书签、下载、历史记录。
- 扩展、同步、翻译、自动填充。
- Safe Browsing、账号体系、Chrome 特有 UI。
这些功能可以使用 content 提供的扩展点,但不应该反向污染 content。
为什么要分层
主要是为了降低耦合:
content可被content_shell、测试壳或其他嵌入方复用。chrome可以添加产品能力,而不破坏通用内核。- 依赖方向清晰,避免“页面渲染核心”依赖“Chrome 产品功能”。
常见判断
如果一个能力属于 Web 标准、页面渲染、导航、进程管理,通常在 content 或 Blink 相关层。
如果一个能力属于 Chrome 产品体验,比如同步、扩展、翻译、自动填充,通常在 chrome。
总结
content 是 Chromium 的通用网页承载层,chrome 是 Chrome 产品层。二者分层的目的,是让 Web 内核能力可复用、可测试,并避免产品功能反向耦合底层架构。