跳到内容

WebKit2

WebKit 的多进程架构

概览

为了保护系统的其他部分,并允许应用程序即使在用户加载了无限循环或挂起的网页时仍能保持响应,现代 WebKit 采用了多进程架构。网页在其自己的 WebContent 进程中加载。多个 WebContent 进程可以共享一个浏览会话,该会话存在于一个共享的网络进程中。除了处理所有网络访问之外,此进程还负责管理磁盘缓存和允许网站存储结构化数据的 Web API,例如 Web Storage APIIndexedDB APIWebKit2 多进程架构图 由于 WebContent 进程可以即时编译从互联网加载的任意 JavaScript 代码,这意味着它可以写入并执行内存,因此此进程受到严格的沙箱保护。除非用户授予访问权限,否则它无法访问任何文件系统,并且即使存在授予访问这些功能的 Web API,它也无法直接访问底层操作系统的剪贴板、麦克风或摄像机。相反,UI 进程会代理这些请求。

FIXME: IPC 是如何设置的

FIXME: 如何添加/修改 IPC 消息