{T}

浏览上下文组:如何计算 Chrome 中渲染进程的个数

概述

Chrome 的渲染进程分配遵循站点隔离(Site Isolation)策略。理解浏览上下文组(Browsing Context Group)的概念,可以精确计算 Chrome 为一组页面分配了多少个渲染进程。


1 浏览上下文组

1.1 定义

浏览上下文组(Browsing Context Group) 是一组通过 window.opener<a target>window.open 相互关联的浏览上下文(标签页/窗口)。同一组内的页面可能共享渲染进程。

1.2 进程分配规则

条件进程分配
不同站点(different-site)独立渲染进程
同一站点(same-site)+ 同一浏览上下文组可能共享渲染进程
同一站点 + 不同浏览上下文组独立渲染进程

1.3 计算示例

code
标签页 A: https://a.com
  → iframe B: https://b.com
  → iframe C: https://sub.a.com

标签页 D: https://a.com(独立打开,非从 A 链接)
页面站点浏览上下文组渲染进程
A + Ca.com组1进程1(同站点共享)
Bb.com组1进程2(不同站点独立)
Da.com组2进程3(不同组独立)

渲染进程总数:3


2 Site Isolation 对进程数的影响

2019 年前,Chrome 按标签页分配进程;Site Isolation 后按站点分配:

时期分配粒度同标签页跨站 iframe
2019 前标签页共享标签页进程
2019 后站点独立进程(站点隔离)

站点隔离增加了渲染进程数量,但提供了 Spectre 级安全防护。


3 总结

渲染进程数 = 不同站点数 + 不同浏览上下文组中同站点的页面数。Site Isolation 确保不同站点的 iframe 运行于独立进程,这是现代 Chrome 安全架构的基石。