Skip to content
目录

16 — Chromium 官方文档提要

这一篇不再罗列文档细节,只保留复习时最有用的官方主题。

线程与任务

核心结论:

  • Chrome 关注响应性,UI / IO / Renderer 主线程都不能被长任务阻塞。
  • 优先用 task 和 sequence 组织异步逻辑。
  • 重任务放到 ThreadPool。
  • 跨线程共享状态要谨慎,优先消息传递。

Mojo 与服务化

核心结论:

  • Mojo 是 Chromium 的现代 IPC 基础设施。
  • .mojom 定义接口,Remote 调用,Receiver 接收。
  • Network、GPU、Storage 等服务可以通过 Mojo 跨进程连接。

沙箱

核心结论:

  • Renderer 被视为不可信 target。
  • Browser 进程作为 broker 管理权限和敏感操作。
  • 沙箱依赖 OS 安全机制,目标是限制 Renderer 被攻破后的破坏范围。

cc 与一帧生命周期

核心结论:

  • Blink 生成绘制记录,cc 负责光栅和合成准备。
  • Pending / Active 树让新内容准备时旧内容仍可显示。
  • 一帧通常受 vsync、主线程、光栅、合成和 GPU 提交共同影响。

FrameTree、BFCache、RenderDocument

核心结论:

  • FrameTree 描述页面 frame 结构。
  • OOPIF 让跨站 iframe 可以跨进程。
  • BFCache 让返回页面不必重新解析和执行。
  • RenderDocument 倾向让导航创建新的 RenderFrameHost,降低旧文档复用风险。

Network Service

核心结论:

  • 网络能力从 Renderer 移到可信服务。
  • Browser / Network Service 负责请求策略、安全检查、缓存、Cookie、CORS 等。
  • 关键路径要减少不必要的线程和进程跳转。

总结

Chromium 官方文档反复强调几件事:关键线程不能阻塞,Renderer 不可信,跨进程通信要类型安全,渲染要尽量减少主线程依赖,导航和文档生命周期比“打开页面再关闭”复杂得多。

MIT License.