您可能听说过 Chrome 变体(有时也称为 Chrome 现场试用),甚至是内部代码名称 Chrome Finch。
这些都是指同一项功能:一种用于测试 Chrome 浏览器或 ChromeOS(在 Chromebook 上运行的 Chrome 操作系统)的新功能或更改的机制。
什么是 Chrome 变体版本?
借助 Chrome 变体,Chrome 可以为部分用户启用新功能、停用功能或试用功能变更。
Chrome 中的部分功能并非使用 Chrome 变体版本推出的。不过,Chrome 团队可以随时使用 Chrome 变体版本。Chrome 变体版本可用于:
- 允许 Chrome 工程师在进行特定更改时格外小心。他们可能会发现浏览器性能存在风险,或者有其他疑虑。
- 验证有关更改或更新的假设。例如,对于 Chrome 变体组中的部分用户,我们修改了 QUIC 网络协议参数,以便 Chrome 在用户的真实网络条件下运行得更快。
- 控制源试用功能的启用。默认情况下,系统会在提供有效试用令牌的所有网页上启用来源试用。但在某些情况下,某些用户可能无法使用某项功能,即使他们访问了提供有效试用令牌的页面也是如此。
Chrome 变体版本如何运作?
在桌面设备或移动设备上,每 30 分钟或每次启动 Chrome 时,浏览器都会向 Chrome 后端发出请求,以获取 Chrome 变体配置文件(称为变体种子)。有一个专用服务器用于提供 Chrome 变体版本种子。Chrome 向服务器发出 HTTPS 请求,服务器会响应一个差分压缩种子。
当设备上的 Chrome 联系请求种子文件时,Chrome 会提供版本号和其所运行的操作系统。Chrome 变体版本后端返回的文件用于启用功能、停用功能或指定功能的变体。
Chrome 会使用种子文件中的数据和本地存储的随机化种子,将浏览器随机分配到一个变体组。您设备上的浏览器会跟踪其所属的变体组。
功能发布和 Chrome 渠道
Chrome 变体版本最重要的用途之一是,面向一定比例的 Chrome 客户端逐步推出更改或新功能。对于像 Chrome 这样复杂的应用来说,这一点至关重要。Chrome 拥有数十亿用户,他们使用数千种类型的设备,分布在多个平台上,并使用数十种不同的语言访问数百万个不同的应用和网站。
Chrome 会通过 Chrome Canary、开发者版和 Beta 版的使用和测试获得宝贵反馈。我们可以使用 Chrome 变体版本在任何这些发布渠道中启用或停用功能。不过,这些渠道主要供开发者和其他专家使用。
Chrome 稳定版用户与 Chrome 的交互方式不同,而且数量要多得多,因此我们始终需要在稳定版渠道上进行验证。这样,我们就可以解决在正常浏览器使用过程中遇到的任何问题。Chrome 工程师无法始终预测真实用户对大规模变更和新功能的反应。
借助 Chrome 变体版本,您可以查看 Chrome 稳定版的使用情况和指标。 通过衡量 Chrome 稳定版中更改的影响,我们可以尽可能提供最佳功能并打造更好的浏览器,即使权衡因素很复杂也是如此。
Chrome 工程师何时使用 Chrome 变体版本?
Chrome 需要 Chrome 变体版本的主要原因有三个。
激活新功能
对于任何在某种程度上可能存在更高风险或可能会影响性能的功能,使用 Chrome 变体来控制新功能的启用特别有用。
借助 Chrome 变体版本,我们可以向部分用户提供新功能。 然后,Chrome 工程师可以检查性能差异,或查看变体组中的其他类型的反馈。
停用功能
Chrome 变体版本可用作安全机制来关闭功能,但这种情况很少发生。
例如,新的网络功能可能会受到拒绝服务攻击。您可以使用 Chrome 变体快速启用该功能,因为 Chrome 变体配置每 30 分钟下载一次,并且每次重启 Chrome 时都会激活设置。
相比之下,更新 Chrome 并等待新版本传播到数十亿用户手中会慢得多。
试用功能更改
Chrome 变体版本可用于验证更改和更新。例如,我们可以微调 Chrome 离线恐龙游戏的难度,让互动体验更有趣。
Chrome 变体版本还可用于研究新功能的长期影响。为此,我们会使用 Chrome 变体机制,将功能暂时不向一小部分用户(可能不超过 1%)提供。留存组有助于检查只有在过段时间后才会显现的更改和副作用。
对于界面更改,预留组可能尤为重要,因为用户可能会在功能刚推出时与其互动,但长期行为可能会有所不同。
例如,我们在 Chrome 中推出了照片选择器,但暂时只向一小部分用户提供该功能,以便比较结果。我们向大量用户分发了新的 Android 照片选择器,最初发现该群体在网络上分享的图片数量显著增加。不过,在采用“留存变体”的 6 个月内,我们发现使用量提升幅度显著下降。这是因为新照片选择器的推出鼓励网站向文件输入元素添加 accept 属性,从而为所有用户带来更好的体验。
如何使用 Chrome 变体版本进行验证?
如果“帮助我们改进 Chrome 的功能和性能”设置处于启用状态 (chrome://settings/syncSetup?search=improve
),Chrome 可以使用用户指标分析 (UMA) 自动监控指标并将其发送到 Chrome 后端。
您可以在 chromestatus.com/metrics 上查看 Chrome 匿名使用情况统计数据示例,例如使用 CSS 属性、HTML 或 JavaScript 功能的网页加载百分比。
Chrome 变体特别适用于比较一组用户与另一组用户的统计信息。例如,您可以为部分用户启用某项功能,而为其他用户停用该功能,然后 Chrome 就可以比较各个群组的指标。这些指标可能包括内存用量、网页加载时间或浏览器功能的使用情况。这样一来,Chrome 工程师便可以比较启用了该功能的用户、停用了该功能的用户或使用不同功能变体的用户之间的性能或其他指标。
现场试验
每个功能的一组变体称为一项研究或现场试验,并且每项试验都有固定的时长。研究完成后,所有被纳入非默认行为群组的用户都会获得该功能的默认 Chrome 设置:启用或停用。
大多数可通过 Chrome 变体版本控制的功能都对应于可从 chrome://flags
页面设置的标志。或者,如果您通过命令行运行 Chrome,则可以使用 --enable-features
和 --disable-features
标志配置 Chrome 变体版本。
--reset-variation-state
标志会强制重置当前客户端的 Chrome 变体状态。这意味着客户可能会移至不同的 Chrome 变体组。
适用于企业的 Chrome 变体版本
对于企业客户,Chrome 还提供了 Chrome 变体版本政策来管理 Chrome 变体版本。我们建议您让 Chrome 变体版本保持启用状态,以便 Chrome 能够快速提供重要的安全修复程序。