了解 Chrome 如何移除效果不佳的功能,同时尽可能减少对最终用户和开发者的影响。
Chrome 会不断添加新功能,但有时也需要移除某些功能。
移除功能可以降低浏览器代码库的复杂性,并减少潜在的攻击途径,从而有助于确保浏览器安全无虞。通过在整个 Web 平台上精心协调的方法,浏览器供应商可以移除效果不佳的平台功能,同时最大限度地减少对最终用户和开发者的干扰。
移除浏览器功能
如果浏览器在没有警告的情况下移除功能,会导致网站出现故障,并使开发者难以规划向替代技术的迁移。相反,浏览器供应商会采取系统性方法,在移除功能之前很早就提供警告、支持资源和详细时间表。
弃用和移除
从 Chrome 中移除某项功能主要分为两个阶段:
- 弃用:警告开发者某项功能计划移除,并提供资源来帮助网站迁移到替代方案。使用已弃用的功能时,Chrome 开发者工具“问题”面板中会显示警告,并且有关弃用时间表和支持的信息会发布在 Chrome 平台状态以及面向开发者的 Chrome 文章和博文中。
- 移除:最初,默认停用该功能,但允许开发者通过设置 Chrome 标志或参与弃用试用暂时继续使用该功能。当网站不再依赖已停用的功能时,请移除相应代码。
Blink intent
基于 Chromium 的网络浏览器(例如 Chrome)使用 Blink 渲染引擎将代码和资源转换为您可以查看和互动的网页。当工程师想要更改 Blink 时,他们会在 blink-dev 邮件列表中发帖,以获得继续操作的批准。这些邮寄名单帖子称为 Blink Intent。
如果工程师打算弃用某个 Blink 功能,然后将其移除,他们会在 blink-dev 邮件列表中发布“弃用意向”,随后发布“移除意向”。这两个 intent 通常会合并为弃用和移除 intent。
弃用意向
当 Blink 工程师想要开始警告开发者某个浏览器功能计划移除时,会发布“弃用意向”。届时,该功能将继续可用,但开发者将通过 Chrome 开发者工具、博文、chromestatus.com 以及 MDN 和其他位置的功能文档获得支持和信息。
示例: 要废弃的 Intent:变更事件
移除意向
当 Blink 工程师打算停用某项功能并移除相应代码时,会发布“移除意向”。移除意向通常会与弃用意向相结合,形成弃用和移除意向。
示例:Intent to Deprecate and Remove: Web SQL
最大限度地减少对用户和开发者的干扰
Chrome 会尽可能避免移除功能。
Chrome 工程师在着手弃用某项功能之前,始终会先查看该功能的使用率和其他数据。仅当出现以下情况时,才会移除某项功能:例如,只有极少数用户使用该功能,并且有更好的替代方案;或者生态系统发生变化,导致该功能现在可能存在严重的安全漏洞。如果其他浏览器计划继续支持某项功能,Chrome 通常不会移除该功能:功能移除必须在浏览器引擎之间协调。
除了在 blink-dev 邮件列表中发布“意向”帖子之外,我们还会在 Chrome 开发者博客中宣布弃用。 Chrome 开发者工具和功能文档中还提供了警告和支持信息。时间表也会发布在已弃用功能的 chromestatus.com 条目中。
暂时重新启用已弃用的功能
弃用试用是一种源试用,可用于暂时重新启用已更改或在移除之前默认处于停用状态的功能。例如,从 Chrome 127 开始,变更事件已被移除。如果网站在移除这些事件之前需要更多时间,可以注册弃用试用,以便在指定网站上暂时重新启用这些事件,从而为网站提供更多时间来迁移到替代功能。
对于某些已弃用的功能,我们会提供 Chrome flag,以便为个别用户(例如正在迁移到替代方案的开发者)临时提供对相应功能的访问权限。
采取行动
作为开发者,您需要为 Web 平台的变化做好准备。
您可以查看每款浏览器的每个新版本的版本说明,但还应使用预稳定版浏览器渠道来测试和调整网站,以便为即将到来的更改(包括移除)做好准备。至少要确保您的开发团队使用 Chrome 开发者渠道和 Chrome 稳定版来访问您正在处理的网站。作为开发者,您可以同时运行多个渠道。这样一来,您就可以使用未来的 Chrome 版本进行测试,同时还可以在 Chrome 稳定版中体验您的网站,而稳定版很可能是绝大多数用户使用的渠道。
定期检查 Chrome 开发者工具控制台,看看是否有弃用警告。开发者工具提供信息和资源链接,帮助您迁移到已弃用的功能。您还应使用多个 Chrome 渠道进行自动化和手动测试。