主要观点:
- 若只是为好玩从头构建浏览器引擎,应停止;若要构建有竞争力且在某些方面超越 Chromium 的引擎,给出建议。
关键信息: - 安全和性能要求紧密约束设计,如站点隔离、内容主线程完整性等。
- 要在多个方面做到极致以提升性能,如页面加载性能、滚动和动画、输入延迟、高质量视频播放等。
- 可从底层开始并行处理、使用特定编程语言(可能是 Rust)、处理浏览器更新时的状态保存与恢复、构建诊断工具等以超越现有浏览器。
重要细节: - 站点隔离需为每个站点的 JS 提供独立 OS 地址空间,确定沙盒内容进程中的内容及与浏览器其他部分的接口。
- 内容主线程是瓶颈,应避免其他工作阻塞,现代浏览器引擎有调度主线程活动的启发式方法。
- 要让 JS-DOM 调用高效,同时实现大量 WebIDL 接口且方便开发者,需处理跨 DOM/JS 边界的 GC 周期。
- 要最小化页面加载延迟,需预渲染、实现现代 HTTP、使用增量 HTML 解析器等。
- 滚动和动画要避免因页面 JS 运行而卡顿,通过构建场景图让合成器渲染。
- 要最小化输入响应延迟,研究整个处理流程。
- 高质量视频播放要实现相关 API、沙箱化容器解复用等。
- 可并行处理、用 Rust 编程、处理浏览器更新状态、构建诊断工具等以超越现有浏览器。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。