实验性功能

Web 是一个强大的平台,但它在可以解决的问题方面仍然存在差距。那些想要为 Web 开发但需要更多不同功能的人员,不得不将其 Web 应用捆绑在封装容器中,并在应用商店中发布。

开发者可以选择将他们自己的自定义浏览器作为特定于平台的应用来发布,这会不成比例地增加其 Web 应用的大小。这也将迫使他们承担额外的安全和维护负担,以保持浏览器分支和封装容器的更新。

这种方法还会失去 Web 的覆盖面,常常迫使他们选择要支持哪些设备和操作系统,而这些设备和操作系统通常需要不同的封装容器,这进一步扩大了安全和维护负担。

填补这些功能方面的差距是解决此问题的关键,从而使 Web 成为未来的软件平台,与特定于平台的 SDK 相比,涵盖尽可能多的用例。

Project Fugu

这就是功能项目(称为 Project Fugu)的用武之地。功能项目(或 Project Fugu)是一项跨公司协作,旨在通过向 Web 公开这些平台的功能,同时保持用户安全、隐私、信任和 Web 的其他核心原则,使 Web 应用具有与特定于平台的应用相同的功能。

跟踪功能

有一个公开跟踪器,用于跟进所有发布新功能的工作。在跟踪器上,您可以看到

  • 正在开发或考虑的每个 API 的状态。
  • API 针对的平台。
  • 每个 API 的链接和附加信息。
  • 搜索和筛选功能。
  • 时间轴视图。

请求功能

如果您想请求新功能怎么办?您可以在 Chromium 错误跟踪器中提交问题,或者您可以访问 webwewant.fyi 并填写表格以联系相应的浏览器供应商。

每个功能的流程

在发布之前,正在进行的 API 可能处于两种状态,这两种状态都允许您对其进行测试。

  • 开发者试用:该功能位于标记之后,API 不一定稳定,您不应将其用于真实用户。您可以通过转到 about:flags 在基于 Chromium 的浏览器上启用或停用标记,从而在您自己的浏览器实例上进行测试。
  • 源试用:一种状态,其中功能可以通过源启用,开发者可以为比其单个浏览器实例更广泛的受众运行测试,但该功能仍在测试中,并且实现可能会更改,更多详细信息如下。

源试用

源试用允许您试用新功能,并就可用性、实用性和有效性向 Web 标准社区提供反馈。源试用下提供的 API 是

  • 实验性的,它们可能会更改并且可能变得不可用,包括不扩展到实验之外,并且即使最终为所有用户启用,也可能在一段时间内不可用。因此,在可能的情况下,您应该实现功能检测或优雅降级,以处理功能不可用的情况。
  • 足够稳定以供真实用户使用,但它们在整个试用过程中可能会发生变化。
  • 在全球所有用户中受到限制,以确保它们不会成为事实上的标准,因此建议您按照每个浏览器的试用指南,在代码库中为您的一部分用户激活该功能。
  • 仅限于启动源试用的浏览器供应商,因此,例如,Chrome 源试用在 Safari、Firefox 或 Edge 中不起作用。

如果这些要求对您来说可以接受,您可以注册一个源以参与试用。您可以在 Chrome 此处找到注册源试用的说明,对于 Microsoft Edge,请访问此链接

A list of available origin trials for Google Chrome.

A list of available origin trials for Microsoft Edge.

Safari 实验性功能

Safari 还允许开发者尝试和测试新的和未完成的 API 和功能,但它不提供源试用。您无法为用户启用 Safari 的实验性功能。

Safari 的解决方案类似于标记,称为实验性功能。每个新版本的 Safari 都带有许多实验性功能,其中一些默认启用,而另一些默认停用。

作为开发者,您可以使用以下方式更改这些默认设置

  • macOS 版 Safari 中的“开发”>“实验性功能”菜单。
  • iOS 和 iPadOS“设置”应用,方法是转到“Safari”>“高级”>“实验性功能”。

Experimental features available on Safari on iPadOS.

Firefox 实验性功能

Firefox 通过设置提供实验性功能,您可以通过使用 about:config 访问配置编辑器来启用或停用这些设置。

资源