什么是 Blink intent?

当工程师想要更改 Blink 渲染引擎时,他们会在 blink-dev 邮件列表 中发帖,以获得继续操作的批准。这些邮件列表帖子称为 Blink 意图。

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

blink-dev 邮件列表

了解 Blink Intent 的工作原理、重要性以及新功能如何进入 Blink。

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

如需将新功能添加到 Blink,该功能需要通过 Chromium 项目的开放式开发流程。“新功能”是指对浏览器代码或架构的任何更改或添加。这可能是新的 JavaScript API、Blink 代码的重大性能提升,或者浏览器外观或功能方面的其他一些更改。

开放式协作流程

Chromium 是一个庞大而复杂的项目,有数千名贡献者。当 Chromium 发生更改时,每个里程碑都是邀请更广泛的网络生态系统对设计和实现发表评论的机会。

在可能的情况下,新功能必须在整个网络平台上实现互操作,而不能仅在某个浏览器上实现。网络开发者不希望出现意外情况:当浏览器无法按预期方式工作时,或者当您最终不得不为不同的浏览器和平台编写不同的代码时。Blink 意图有助于构建和规范变更流程,使变更更具可预测性,减少意外情况,这对网络开发者来说是一件好事。

对于用户而言,浏览器供应商需要注意,更改不会导致网站停止工作。网站所有者经常停止维护网站。有些网站已经几十年没有更新了!浏览器供应商在进行可能会导致网站中断的更改时,需要考虑到这一点。

从想法到提案

对网络平台的更改和更新提案来自研究:与用户、企业、浏览器工程师、网络开发者和其他利益相关者进行咨询。通过这项研究,Chrome 团队可以确定平台缺少什么,或者需要更改什么。 最初,关于网络平台上的更改或新功能的提案只是页面上的一些文字。工程师会分享文档,以便同事提供反馈和讨论。

示例:FedCM

GitHub 上的 FedCM 说明

Federated Credential Management (FedCM) 是一种 API,它提供了一种以隐私为中心且用户友好的用户注册 和登录方法,称为联合身份。例如,这适用于 使用 Google 账号登录 和其他社交登录方式。

如需创建浏览器 API,第一步是准备一份提案以供公开讨论。FedCM 的提案已在 GitHub 上以说明文档的形式发布。 欢迎所有人通过在说明文档代码库中创建 GitHub 问题,提出问题或评论功能设计。反馈可能包括开发者对其他应用场景、限制、改进想法或支持承诺的描述。

一旦提案被标准化机构(例如 W3C)采纳,利益相关方就可以加入讨论,并在网络标准组(例如 W3C Working Groups)中观看演示文稿。

对于工程师处理 Blink 渲染引擎的新功能或更改的每个里程碑,他们都会在 blink-dev 讨论组中发布帖子,说明他们打算进入下一阶段,以实现某项功能。这些帖子称为“意图”。 任何人都可以订阅 blink-dev 群组,以便在 Blink 中有新功能进展时收到通知,或者订阅单个功能以获取更新。

意图原型

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

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

收集有关原型的反馈

一旦开始对新功能进行原型设计,Chromium 工程师就会邀请大家进行讨论和早期实验。此时的反馈对于验证和迭代提案至关重要。您可以在Chromium bug中评论 Chrome 中的实现。

Chromium 问题跟踪器 中创建问题。

实验意图:在真实世界中进行测试

如果 Chrome 工程师想要请求运行源试用,则在 blink-dev 上发布实验意图帖子是可选的下一步。

FedCM 的实验意图

源试用是一种测试新的或实验性的网络平台功能的方法。您可以注册某项功能的源试用,然后获取试用令牌。该功能将在提供令牌的任何页面上激活。

可用的 Chrome 源试用 列表。

为了推进功能的实现,Blink API 所有者必须通过回复意图并发布“看起来不错”的帖子(称为 LGTM)来批准。

Blink API 所有者是一小群 Chromium 贡献者,他们对网络平台及其 API 经验丰富,并获得 Blink 社区的认可,承诺遵守 Blink 的使命和价值观。除了批准(或不批准!)功能以推进实现之外,API 所有者还负责监督 Blink 意图流程本身。

实验意图必须获得至少一个来自 API 所有者的 LGTM。

FedCM 实验意图帖子上的 LGTM。

源试用的价值

开发者可以注册某项功能的源试用,然后在真实世界的生产环境中与真实用户一起测试该功能,而无需用户采取任何操作即可激活该功能。开发者可以分享测试结果,这可以提供宝贵的洞见和数据,帮助迭代和改进该功能。

发布意图:最后一个里程碑

发布意图表示某项功能现已完成,可以实现以供 Chrome 稳定版中的所有用户正式版使用,而无需标志或试用令牌。发布意图必须获得来自 API 所有者的三个 LGTM, 然后才能继续实现。

推出新功能

获得批准后,该功能会合并到即将发布的版本中,然后通过 Chrome 发布渠道推进。 新功能的测试和实现通常会特别谨慎。 有些功能会逐步向越来越多的用户推出。 如果出现意外的副作用,功能也可以回滚和重做。

管理废弃和移除

还有另外两种 Blink 意图:

  • 废弃意图
  • 移除意图

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

当工程师想要开始警告开发者某项功能计划废弃时,他们会发布废弃意图 。例如,在 Chrome 开发者工具控制台中提供有关废弃的支持和信息。

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

blink.dev 上废弃意图的 LGTM。

废弃和移除的重要性

废弃和移除对于网络平台的健康状况都至关重要。 它们确保 Chrome 可以移除对最终用户或网络开发者来说效果不佳的功能,并有助于降低代码库的复杂性。例如, AppCache 的设计问题 在稳定版浏览器中的生产网站上使用后被发现,该 API 最终被移除。废弃和移除还有助于通过减少潜在的攻击面来确保 Chrome 的安全。

与所有 Blink 意图一样,Chrome 团队会尽力谨慎地做出决定。他们会在继续操作之前查看功能使用率和其他数据。移除功能的门槛实际上非常高,只有当功能的使用用户比例非常非常小,并且有更好的替代方案可用时,才会移除该功能。

您可以在 Chrome 状态 中跟踪功能进度, 您可以在其中订阅更新、提交 bug 并查找其他资源。

chromestatus.com 上的 Chrome 功能路线图。

如需跟踪新功能,请关注 Chromium 博客并加入 blink-dev 讨论组。该群组可能会产生大量电子邮件,因此您可能更喜欢订阅单个意图。 您可以查看 Blink 意图的 电子表格

如果您非常喜欢 Blink 意图,甚至可以基于 自动化的 Blink 意图跟踪器服务进行构建。

后续步骤

查看什么是 Chrome 发布渠道?