什么是 Blink intent?

基于 Chromium 的网络浏览器使用 Blink 渲染引擎将代码和资源转换为您可以查看和与之互动的网页。

当工程师想要更改 Blink 时,他们会在 blink-dev 邮寄列表上发布消息,以获得继续操作的批准。这些邮寄名单邮件称为 Blink intent。

blink-dev 邮寄名单

在本文中,您将了解 Blink intent 的运作方式、它们的重要性,以及新功能如何进入 Blink。

Chromium 是一个开源浏览器项目,Chrome 和一些其他浏览器和框架都是基于该项目构建的。Blink 是 Chromium 使用的呈现引擎。

新功能需要经过 Chromium 项目的公开开发流程,才能在 Blink 中发布。“新功能”是指对浏览器代码或架构的任何更改或添加。这可能是新的 JavaScript API、Blink 代码中的重大性能提升,或对浏览器外观或功能的其他更改。

开放式协作流程

Chromium 是一个庞大且复杂的项目,拥有数千名贡献者。当 Chromium 发生变化时,我们会借助每个里程碑邀请更广泛的 Web 生态系统对设计和实现提出意见。

新功能必须尽可能在 Web 平台上实现互操作性,而不能仅在一个浏览器上实现。网站开发者不希望遇到意外情况:浏览器的运行方式不符合预期,或者最终不得不为不同的浏览器和平台编写不同的代码。Blink intent 有助于构建和规范更改流程,使更改更具可预测性,减少意外情况,这对 Web 开发者来说很有帮助。

对于用户,浏览器供应商需要注意,确保更改不会导致网站停止运行。网站所有者经常会停止维护网站。有些网站已经数十年未更新了!浏览器供应商在进行可能导致破坏的更改时,需要考虑这一点。

从想法到提案

我们会通过研究(咨询用户、企业、浏览器工程师、Web 开发者和其他利益相关方)来提出 Web 平台的更改和更新建议。通过这项研究,Chrome 团队可以确定平台缺少哪些功能或需要做出哪些改变。最初,关于 Web 平台上更改或新功能的提案只是页面上的文字。工程师共享文档,以便同事提供反馈和进行讨论。

示例:FedCM

Federated Credential Management (FedCM) 是一个 API,可为管理用户注册和登录的平台提供更好的新机制(称为联合身份),例如,当您选择“使用 Google 账号登录”或“使用 GitHub 账号登录”时。

当 FedCM 等提案准备好供公众讨论后,便会以说明文档的形式发布到 GitHub。目前,任何人都可以在 GitHub 上的说明文档代码库中创建问题,就功能设计提出疑问或发表评论。反馈可能描述其他用例或限制、提供改进建议,或者只是表示支持。

GitHub 上的 FedCM 说明文档

一旦某项提案被标准化机构(例如 W3C)采纳,利益相关方便可以在 Web 标准组织(例如 W3C 工作组)中加入讨论并观看演示。

在工程师开发新功能或对 Blink 渲染引擎进行更改时,他们会在 blink-dev 讨论群组中发布帖子,说明他们打算进入下一阶段来实现该功能。这些帖子称为“intent”。 任何人都可以订阅 blink-dev 组,以便在 Blink 中新功能有进展时收到通知,也可以订阅单个功能以接收更新。

从意图到原型:第一个检查点

此时,Chromium 工程师可以开始实现相应功能。这意味着,该功能的原型功能可能会在功能标志后面提供给开发者进行测试,最初在 Chrome Canary 中提供,然后在其他发布渠道中提供。任何用户都可以在 chrome://flags 页面上设置标志,以便在其浏览器中启用和测试功能。

不过,并非所有标志都可以通过 chrome://flags 页面设置。如需实现更精细的控制,您可以使用命令行标志从终端运行 Chrome。请注意,某些新功能只有在 Chrome Canary 中发布以供测试后才能使用,但这种情况很少见。某些功能没有自己的标志,但如果启用了 experimental-web-platform-features 标志,则可以使用这些功能。对于“较小”的功能(实现时间最多不超过 3 到 6 个月),通常就是如此。

收集有关原型的反馈

开始对新功能进行原型设计后,Chromium 工程师会邀请大家参与讨论和早期实验。此时,反馈对于验证和迭代方案至关重要。如需对 Chrome 中的实现方式发表意见,请访问 Chromium bug

Chromium 问题跟踪器
中创建问题

实验意向:在真实环境中进行测试

如果 Chrome 工程师想要请求运行源试用,则可以在 blink-dev 上发布“Intent to Experiment”帖子(可选)。

意图对 FedCM 进行实验

源试用是一种测试新功能或实验性 Web 平台功能的方法。您需要注册某项功能的原始试用,然后获取试用令牌。该功能将在提供令牌的任何网页上启用。

Chrome 源代码试用版

如需继续推进功能实现进度,Blink API 所有者必须回复 intent 并发送“looks good to me”(我认为可以)帖子(称为 LGTM),以表示批准。

Blink API 所有者是一小群 Chromium 贡献者,他们对 Web 平台及其 API 拥有丰富的经验,并且在 Blink 社区中享有良好声誉,并致力于实现 Blink 的使命和价值。除了批准(或不批准)功能继续实施之外,API 所有者还负责监督 Blink intent 流程本身。

实验意向必须获得 API 所有者的至少 1 个 LGTM。

“FedCM 意向开展实验”帖子的 LGTM

来源试验的价值

开发者可以注册某项功能的原始试用,然后在真实环境中使用真实用户对该功能进行正式版测试,而无需用户执行任何操作即可启用该功能。开发者可以分享测试结果,这会提供有价值的数据洞见和数据,有助于迭代和改进功能。

有意发布:最终里程碑

发布意图表示功能现已完成,并准备面向 Chrome 稳定版中的所有用户正式发布,无需标志或试用令牌。如需发布 intent,必须先从 API 所有者那里获得 三个 LGTM,然后才能继续实现。

推出新功能

功能获得批准后,会合并到即将发布的版本中,然后通过 Chrome 的 Canary 版、开发者版、Beta 版和稳定版渠道进行开发。某些功能的测试和实现需要特别小心,因此我们会逐步面向越来越多的用户发布某些功能。如果出现意外的副作用,还可以回滚功能并重新进行处理。

管理功能生命周期:弃用和移除

还有另外两种类型的 Blink intent:

  • 弃用意图
  • 移除意图

这听起来可能有点令人沮丧,但实际上,这些因素对 Blink 开发的成功至关重要。

当工程师想要开始警告开发者某项功能已安排废弃时,会发布废弃 intent。例如,在 Chrome 开发者工具控制台中提供支持和有关弃用的相关信息。

当工程师打算默认停用代码时,系统会发布移除意图

关于要弃用的 blink.dev intent 的 LGTM

弃用和移除的重要性

废弃和移除对 Web 平台的运行状况至关重要。 它们可确保 Chrome 能够移除对最终用户或 Web 开发者不太实用的功能,并有助于降低代码库的复杂性。例如,在稳定版浏览器中在正式版网站上使用 AppCache 后,我们发现了 AppCache 设计方面的问题,并最终移除了该 API。弃用和移除功能还有助于减少潜在的攻击途径,从而保障 Chrome 的安全。

与所有 Blink intent 一样,Chrome 团队会尽力谨慎做出决策。他们会先查看功能使用率和其他数据,然后再继续操作。我们对移除功能的要求实际上非常高,只有在极少数用户使用某项功能,并且有更好的替代方案时,我们才会移除该功能。

您可以在 Chrome 状态页面上跟踪功能的进度,还可以订阅更新、报告 bug 和查找其他资源。

chromestatus.com 上的 Chrome 功能路线图

如需跟踪新功能,您还可以关注 Chromium 博客。您可以加入 blink-dev 讨论群组,及时了解所有 Blink intent。这可能会导致收到大量电子邮件!或者,您可能更喜欢订阅单个 intent。您可以访问 bit.ly/blinkintents,查看 Blink intent 的电子表格。如果您非常喜欢 Blink intent,甚至可以基于自动化 Blink intent 跟踪器服务进行构建。

后续步骤

不妨参阅 什么是 Chrome 发布渠道?