启动Interop 2025
Interop项目是浏览器厂商与其他平台实现者之间的合作项目,旨在为用户和Web开发者提供高质量的Web平台实现。每年我们会选择一组重点领域,代表我们希望改进互操作性的关键领域。鼓励所有浏览器引擎优先处理通用功能,确保它们能尽快为Web开发者所用。
每个引擎的进展和整体Interop分数通过Interop仪表板跟踪每个重点领域的一组Web平台测试的通过率来衡量。
Interop 2024
在介绍今年的新重点领域之前,我们应该先看看Interop 2024的成功之处。
衡量所有主要浏览器引擎中测试通过百分比的Interop分数,在最新浏览器版本中已达到95%,而年初仅为46%。在预发布浏览器中甚至更高——超过97%。这是一个巨大的胜利,显示了Interop在使浏览器与规范及彼此对齐方面的有效性。
每个浏览器引擎在稳定版浏览器中单独实现了98%的测试通过率,在预发布版中达到99%,其中Firefox略微领先,发布版达到98.8%,Nightly版达到99.1%。
对用户而言,这意味着如requestVideoFrameCallback、Declarative Shadow DOM和Popover等功能,一年前仅有限可用,现在已在所有浏览器中实现互操作。
Interop 2025
基于Interop 2024的成功,我们很高兴将项目延续到2025年。今年我们有19个重点领域;17个新的和2个来自往年的。所有重点领域的完整描述可在Interop代码库中获取。
从2024年我们延续了布局(实际上是"Flexbox和Grid")以及指针和鼠标事件。这些是重要的平台基础,Interop项目已经带来了显著的互操作性改进。然而,对于现代Web如此基础的技术,我们认为设定雄心勃勃的目标并继续优先处理这些领域非常重要,为开发者构建坚实的基础。
新的重点领域代表了平台的广泛横截面。其中许多——如锚点定位和视图过渡——是通过State of HTML和State of CSS等调查中明确的开发者需求确定的。纳入Interop将确保它们尽快可用。
除了这些备受关注的新功能外,我们还想强调一些不太知名的重点领域,并解释为什么我们很高兴看到它们出现在Interop中。
存储访问
在Mozilla,用户隐私是核心原则。跨Web跟踪的最常见方法之一是通过第三方Cookie。当站点从外部服务请求数据时,该服务可以存储数据,当另一个站点使用同一服务时重新发送。因此该服务可以跟踪用户在Web上的浏览。
为了应对这种情况,Firefox的"Total Cookie Protection"对存储进行分区,使第三方按站点接收不同的Cookie数据,从而减少跟踪。其他浏览器也有类似策略,无论是默认还是在隐私浏览模式下。
然而,在某些情况下,非跟踪工作流程(如SSO身份验证)依赖于第三方Cookie。存储分区可能会破坏这些工作流程,浏览器目前必须提供特定站点的变通方案。存储访问API通过让站点请求访问未分区的Cookie来解决这个问题。此处的Interop将允许浏览器推进隐私保护而不破坏关键功能。
Web兼容性
Web兼容性重点领域在Interop中是独特的。它不是关于一个特定标准,而是关注已知会破坏站点的浏览器错误。这些通常出现在平台的较旧部分,存在长期的不一致性。解决这些问题需要使实现与标准对齐,或者在会破坏站点的情况下更新标准本身。
2025年Web兼容性重点领域的一个功能是CSS Zoom。最初是Internet Explorer中的专有功能,它允许通过调整元素的计算尺寸来缩放布局,这是在CSS变换之前。WebKit对其进行了逆向工程,将其引入Blink,但Gecko从未实现它,因为缺乏规范以及它在布局计算中创建的复杂性。
不幸的是,功能未标准化并不能阻止开发者使用它。使用CSS Zoom导致某些站点在Firefox上出现布局问题,尤其是在移动设备上。我们尝试了各种变通方案,并在一些受影响的站点上使用干预措施将zoom替换为CSS变换取得了成功,但尝试直接在Gecko中实现相同方法破坏的站点比修复的更多,因此被放弃。
情况似乎陷入僵局,直到2023年Google调查从Chromium中移除CSS Zoom。不幸的是,事实证明某些用例,如Microsoft Excel Online的工作表缩放,依赖于CSS Zoom的特定行为,因此移除不可行。然而,在澄清用例后,Chromium团队能够提出一个标准化的CSS Zoom模型,该模型更容易实现且不影响兼容性。该提案被CSS WG接受,并导致在Internet Explorer首次发布24年后,在Firefox 126中首次实现CSS Zoom。
通过Interop 2025,我们希望结束CSS Zoom的故事,所有引擎最终在相同的行为上汇聚,背后有真正的开放标准支持。
WebRTC
视频会议现在是现代生活的基本功能,浏览器内视频会议既提供易用性又提供高安全性,因为用户不需要下载本地二进制文件。大多数基于Web的视频会议依赖于WebRTC API,它提供了实现实时通信的高级工具。然而,WebRTC长期遭受互操作性问题的困扰,实现偏离标准并需要非标准扩展来实现关键功能。这导致用户的困惑和沮丧,并削弱了Web作为本地应用可靠替代方案的信任。
鉴于这段历史,我们很高兴首次在Interop中看到WebRTC。重点领域的主要部分是RTCRtpScriptTransform API,它支持跨浏览器端到端加密。尽管未来还有更多工作要做,我们相信Interop 2025将是使WebRTC成为真正可互操作的Web标准的一大步。
移除Mutation Events
移除Mutation Events的重点领域是Interop首次用于协调移除功能。Mutation事件在DOM更改时触发,意味着事件处理程序在DOM操作的关键路径上运行,导致重大性能问题和显著的实现复杂性。尽管它们已在所有引擎中实现,但它们问题重重,以至于从未标准化。相反,开发了mutation observers作为mutation事件用例的标准解决方案,而没有它们的复杂性或性能问题。几乎在mutation observers实现后立即提交了一个Gecko错误:
“我们现在有mutation observers,我们真的希望在未来的某个时候终止对mutation事件的支持。可能还需要一段时间。”
那是在2012年。困难在于Web对向后兼容性的核心承诺。移除人们依赖的功能是不可接受的。然而,去年Chromium确定mutation事件的使用已下降到足够低,允许进行"弃用试验",默认禁用mutation事件,但允许特定站点在有限时间内重新启用它们。
这是个好消息,但长期运行的弃用试验可能对其他浏览器造成问题。完全禁用该功能可能会破坏依赖选择退出的站点。另一方面,我们从经验中知道,某些站点在禁用mutation事件的浏览器中实际上运行得更好(例如,因为它们用于非关键功能,但影响性能)。
通过将此移除纳入Interop 2025,我们可以确保在2025年完全移除mutation事件,并在年底减少平台复杂性并提高Web性能。
Interop调查
除了重点领域,Interop项目还运行旨在长期改进互操作性的调查,针对我们无法使用测试通过率衡量进展的领域。例如,Interop调查可以寻求增加新的测试能力,或增加平台功能的测试覆盖率。
可访问性调查
可访问性测试始于Interop 2023的一部分。它增加了测试可访问名称和计算角色的API,以及1000多个新测试。这些测试形成了Interop 2024中的可访问性重点领域,实现了99.7%的Interop分数。
2025年的重点将是扩展可访问性功能的可测试性。Mozilla正在开发AccessibleNode的原型;一个能够验证可访问性树形状及其状态和属性的API。这将允许我们测试如CSS display: contents或::before/::after等功能对可访问性树的影响。
移动测试调查
今天,所有Interop重点领域都在桌面浏览器中评分。然而,某些功能是移动设备特定的,或者具有移动设备特有的互操作性挑战。
改进移动测试自2023年以来一直是Interop的一部分,在那段时间里,我们在web-platform-tests CI系统中建立移动浏览器方面取得了显著进展。今天我们在Android上有可靠的Chrome和Firefox Nightly运行,iOS上的Safari运行预计很快会有。然而,我们测试框架的某些部分在设计时写入了桌面特定的假设,因此2025年的重点将是使移动测试与桌面持平。目标是允许在未来的Interop项目中包含移动特定的重点领域,帮助改进所有设备类型的互操作性。
推动Web向前发展
Web平台的独特和 distinguishing 特征是其基于开放标准的基础,提供多种实现和用户选择。通过Interop项目,Web平台实现者合作确保这些核心优势与跨浏览器的无缝用户体验相匹配。
通过覆盖现代Web一些最重要新领域和现有领域的重点领域,Interop 2025将交付项目迄今为止一些最大的互操作性胜利。我们相信Firefox和其他浏览器将迎接挑战,为用户和开发者提供更一致和可靠的Web平台。
合作伙伴公告
- Apple
- Bocoup
- Igalia
- Microsoft