开发者经常向我们反映,很难跟上网络上的变化,也很难了解这些变化发生的原因。今天,我们将推出一个名为 Chrome Dev Insider 的新系列,届时我们将分享:(1) 有哪些新功能和新闻价值;(2) 关于我们如何做出关于某个关键主题(例如改变 FLOC)的决定或如何处理我们与生态系统的合作(例如 Interop 2022)以及 (3) 任何需要您了解的用户代理字符串的真正重要事项(例如,您需要了解的关于用户代理的重要信息)。
在分享我们所做的工作时,本次更新将围绕我们 2022 年的四项优先事项:
- 打造令人愉悦的用户体验:让用户更直观地使用操作;比如性能、交易、身份或过渡。
- 提升 Web 的功能:支持 Web 的角色从作为内容消费平台转变为提供各种体验的平台,包括那些需要深度操作系统和硬件级别集成的体验。
- 简化 Web 开发流程:让决策制定更轻松,提高开发者的工作效率。
- 加强网络隐私保护:为网络用户提供的内容面对开发者越来越精密的跟踪和定位,他们希望能够更好地保护数据。
新闻报道: Interop 2022
在规划路线图时,我们会查看开发者反馈,了解 Web 开发者的主要痛点和需求等。反复出现的关键主题是浏览器兼容性,使用户在各种浏览器中都能获得相同的体验。在过去的一年里,我们一直在与生态系统合作,解决这一主题,作为我们“简化 Web 开发”的首要任务之一。
去年,Microsoft、Chrome 和生态系统参与者宣布推出 Compat 2021,这使得所有热门浏览器引擎(Chromium、Gecko 和 Webkit)在今年确定的五个主要领域的得分均超过 90%。此外,Compat 2021 为 CSS 网格(使用率为 12% 且稳步增长)和 CSS Flexbox(使用率为 77%)等强大功能奠定了坚实的基础。
上个月,Apple、Bcoup、Google、Igalia、Microsoft 和 Mozilla 共同致力于解决 Web 开发者发现的主要浏览器兼容性问题,并就通用基准达成一致。由此诞生了 Interop 2022,该项目旨在为平台带来更多同质化特性。该基准重点关注开发者认为对提高工作效率至关重要的 15 个优先领域。
内部消息:与我们的浏览器同行合作
我把 Interop 2022 放在首位,与参与了这些对话的 Robert Nyman 和 Philip Jägenstedt 坐下来聊聊,以便了解内部情况。以下是剪辑的合并结果。
这项计划的初衷是什么?
Robert:这一切都始于 2019 年,当时我们进行 MDN DNA 2019 问卷调查。兼容性问题显然是开发者构建 Web 应用的主要问题,因此我们在 2020 年 MDN 浏览器兼容性报告中提供了更详细的信息。这为我们提供了足够的信息和可作为行动依据的数据来启动 Compat 2021 工作,进而促使我们继续开展这项工作,并通过 Interop 2022 扩大其范围。
Philip:我还想介绍一下 web-platform-tests 和 2021 年 CSS 现状。早在几年前,我们就一直与其他浏览器供应商合作开展 WPT 测试,我们非常希望能够抓住此机会。针对这些功能的测试大多都已编写完毕,因此我们只需查看一下测试并添加一些遗漏的测试即可。Google 在 wpt.fyi 上投入了大量资金,而 Mozilla 也要感谢 WPT 取得今天的成功。当然,Mozilla 也在 MDN DNA 调查中发挥了重要作用。除此之外,还有《2021 年 CSS 现状》报告。为了整合 Interop 2022 这样的技术,我们需要有关 Web 开发者需求的新反馈,因此我们与调查问卷维护人员 Sacha 合作,提出了一些有关浏览器兼容性问题的新问题。这对我们在 Interop 2022 规划流程中起到了很大的帮助。
您在 Compat 2021 中有任何心得或反馈吗?
Robert:衡量并掌握每个浏览器引擎表现的得分和数据分析确实很有用,因此我们可以跟踪进展情况,确保讨论和解决不明确或需要优先处理的问题。我们还很快发现,“互操作性”这个计划更名了浏览器供应商通常会对“兼容性”和“互操作性”这两个术语加以区分,其中“兼容性”是指网站“兼容性”,“互操作性”是指两个或多个行为相同的浏览器。从该术语的角度来说,这项工作是关于互操作性的,因此该项目的命名是一致的。
我们的愿景是什么?
Robert:为了保持网络的开放性,浏览器和呈现引擎的多样性至关重要。遗憾的是,对于我们的开发者来说,目前的代价非常高昂,因为他们必须始终如一地为各个引擎提供不同级别的功能支持。我们的愿景是,开发者将 Web 平台视为最可行的选择和最能满足其需求的选择,并且他们可以专注于打造尽可能最佳的体验,而不是花费大量时间来解决互操作性问题。显而易见,为了实现这一目标,所有主流浏览器引擎都需要提供用户最迫切的功能,才能真正让开发者在网络平台上取得成功。
当有着不同目标的浏览器(有时)共同努力时,我们如何共同推进工作?
Philip:我们的做法一直是寻找共同的利益领域,找到那些目标已经大体一致的双赢合作。通过同时优先处理数量有限的工作,我们可以重点关注这些领域,与单纯单独工作相比,可以更快地推进工作,获得更出色的质量。这就是道理。
我认为有必要认识到,这种以共识为基础的方法存在局限性,因为目标不充分一致,我们需要以其他方式继续发展。有时,提供更多证据来证明 Web 开发者或用户的需求会有所帮助,但浏览器供应商最终还是可以发布未得到广泛认可的产品。在最理想的情况下,当 Web 开发者尝试使用该功能时,他们发现该功能可以满足自己的需求,并要求在所有浏览器中使用相同的功能,以此来证明该功能的价值。
回顾一下 Interop 2022,我们看到管道中是否会引入非设计或布局功能?
Philip:当然可以!Interop 2022 并不局限于样式和布局功能,但最终确实非常倾向于 CSS。部分原因是 CSS 2021 的现状是最新的,但也因为 Web 开发者告诉我们,这是他们遇到不同浏览器差异的最大问题。表单和对话框元素等多个焦点领域不仅仅局限于 CSS,而且我们还围绕修改 API 以及指针和鼠标事件开展了一些调查工作。我希望在 Interop 2023 中,我们能在整个网络上收集更多有关开发者需求的最新数据,并在工作中纳入更多此类功能。
即将发生的重要变化
本系列文章的其中一个目的是让开发者提前了解即将发生的重要变化;改进用户体验和平台功能的关键因素。
我们预计会在下方所列的时间内做出这些更改。不过,功能的发布版本可能会发生变化。
用户代理缩减
User-Agent 标头及其关联的 JS 接口不仅会传输有用的浏览器和设备信息,还会携带着沿袭和不准确的信息。与近乎无穷无尽的 UA 字符串解析 bug 相比,这种 bug 更棘手,因为系统会被动地将所有导航和子资源请求发送到服务器。这代表大约 10 位的熵,当用户浏览网页时,服务器可以使用它们来构建稳定的跟踪标识符。
我们目前的计划是继续发布低熵浏览器主要版本、平台名称和移动性,从而冻结高熵信息,从而减少现有的 UA 字符串。对于需要标头中未包含的其他信息的用例,我们已从 Chrome 89 开始提供 User-Agent Client Hints API。
我们进行了为期 6 个月的源试用,以便进行实验和收集反馈。尽管参与者超过 200 人,但我们非常高兴没有收到有关中断问题的反馈。
- 时间表:在 Chrome 101 中,我们将推进所谓的第 4 阶段:将 UA 字符串中的
MINOR.BUILD.PATCH
信息缩减为0.0.0
。我们会继续提前通知网站,并留出时间为第 5 阶段及之后做好准备。我们还创建了企业政策,供用户选择不接受这些变更,并且会在 Chrome 113 之前运行弃用试用,以便让网站有更多时间来为这些变更做好准备。 - 号召性用语:将您的网站迁移到 UA 客户端提示或参与弃用试用。
本地字体访问 API
Chrome 即将推出 Local Font Access API。虽然网站长久以来一直能够使用本地字体,但此 API 会枚举本地字体列表,并提供对字体数据本身的访问权限。此功能让用户能够在基于网络的设计和其他应用中使用所有字体。
本地字体一直被称为数字“指纹”收集矢量。虽然这个新的 API 不会增加使用字体进行数字“指纹”收集的能力,但 Chrome 会要求用户为网站授予新的 "local-fonts"
权限,然后该网站才能使用新的 Local Font Access API。
未来,我们计划要求使用相同的“本地字体”权限。
使 BFCache 与 Cache-control: no-store
搭配使用
我们发现了一个重大机会,可以改进往返缓存提供即时往返导航的频率。这就需要更改 BFCache 在通过 Cache-control: no-store HTTP 标头提供的网页上的行为方式。我们制定了一项公开提案,旨在通过监控各种信号(例如,每当仅限 HTTP 的 Cookie 发生变化时,将网页从 BFCache 中逐出页面)和针对独特情境划分群组政策(例如针对企业/教育版客户的群组政策),以防止出现明显的意外。这是一个非常复杂但又令人兴奋的机会,我们希望您能进一步仔细查看并提供反馈!
- 时间表:以 Chrome 104(2022 年 7 月)为目标平台,假设没有重大意外情况。
- 行动呼吁:请参阅提案了解详情,包括如何让正在实施的实现方案成为现实,以及分享反馈的方法,例如我们的方法会带来新障碍的实际场景。
通过这一系列视频,我希望能够让我们的开发者社区拉近与我的团队和工作之间的关系,从而让他们产生专注力和联系。敬请关注此聊天室,了解更多动态。
在此祝您一切顺利。
您对第一期《Chrome Dev Insider》有何看法?欢迎分享反馈。