什么是 Chrome 变体版本?

Chrome 用于测试新浏览器功能的机制

您可能听说过 Chrome 变体版本或 Chrome 现场试验,甚至可能听说过 Chrome Finch。

这些都代表同一事物:一种用于测试 Chrome 浏览器的新功能或更改的机制,或者是 Chrome 操作系统(在 Chromebook 上运行的 Chrome 操作系统)的机制。

Chrome 变体版本有哪些用途?

借助 Chrome 变体,Chrome 可以为部分用户激活新功能、停用某项功能或尝试对某项功能进行更改。

并非 Chrome 中的所有功能都是通过 Chrome 变体版本机制引入的。不过,每当我们需要特别小心地进行更改时,或者更改存在以我们意料之外的方式影响性能的风险时,Chrome 团队可以使用 Chrome 变体。“变更”可能意味着对 Chrome 代码进行了性能提升、对浏览器的外观或功能进行了更新,甚至有时甚至对 JavaScript API 进行了修改。

Chrome 变体版本还可用于验证关于某项更改或更新的假设。例如,对于 Chrome 变体组中一定比例的用户,我们尝试调整 QUIC 网络协议参数,以使 Chrome 更快地满足用户实际网络条件。

您可能会遇到 Chrome 变体版本的另一个方面是您在使用 Chrome 的源试用。默认情况下,所有提供有效试用令牌的网页上都会启用源试用功能,但在某些情况下,系统会使用 Chrome 变体来控制某项功能的激活。这意味着某些用户可能无法使用源试用功能,即使他们访问的网页提供了有效的试用令牌也是如此。有关符合激活源试用功能的用户所占比例的信息,请参阅针对每个源试用的文档和更新。

Chrome 变体版本如何运作?

在桌面设备或移动设备上,浏览器每 30 分钟或每次启动 Chrome 时,都会向 Chrome 后端发出请求以获取 Chrome 变体配置文件(称为变体种子)。也就是说,使用专用服务器来提供 Chrome 变体版本种子。Chrome 向服务器发出 HTTPS 请求,服务器以增量压缩种子作为响应。

前往“Chrome 变体版本”后端的浏览器和操作系统的相关信息;“Chrome 变体”种子会发送到带有随机种子的浏览器。

当您设备上的 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 照片选择器,最初发现该组在网络上分享的图片数量显著增加。然而,在我们保留变体的六个月中,我们看到使用量显著下降。这是因为在推出新的照片选择器时,网站鼓励网站向文件输入元素添加 accept 属性,从而为所有用户提供更好的体验。

如何使用 Chrome 变体进行验证?

如果有助于改进 Chrome 功能和性能的设置已启用 (chrome://settings/syncSetup?search=improve),Chrome 就可以通过称为“用户指标分析”(UMA) 的机制自动监控指标,并将其发送到 Chrome 后端。您可以访问 chromestatus.com/metrics,查看 Chrome 的匿名使用情况统计信息示例,例如使用 CSS 属性、HTML 或 JavaScript 功能的网页加载所占的百分比。

Chrome 变体在将一组用户的统计信息与另一组用户的统计信息进行比较时特别有用。例如,您可以只为部分用户启用某项功能,而 Chrome 可以比较每组用户的指标。这些指标可能包括内存用量、网页加载时间或浏览器功能使用情况。这样一来,Chrome 工程师就可以比较已启用此功能的用户、已停用此功能的用户或具有不同功能变体的用户的性能或其他指标。

Chrome 变体版本现场试验

特征的每组变体称为研究或现场试验,每个变体都有固定的时长。针对某项功能的研究结束后,非默认行为组中的所有用户都将获得该功能的默认 Chrome 设置:启用或停用。

可由 Chrome 变体控制的大多数功能都对应于可通过 chrome://flags 页面设置的标志。或者,如果您从命令行运行 Chrome,则可以使用 --enable-features--disable-features 标志配置 Chrome 变体。

适用于企业的 Chrome 变体版本

对于企业客户,Chrome 还提供了 Chrome 变体政策来管理 Chrome 变体版本。当然,我们建议您将 Chrome 变体版本保持启用状态,以便 Chrome 可以快速提供重要的安全修复程序。

了解详情