Firefox 101 发布说明 (面向开发者)

本文档提供有关 Firefox 101 中将影响开发者的变更信息。Firefox 101 于 2022 年 5 月 31 日发布。

Web 开发人员的变更

HTML

无显著变化。

CSS

  • 用于检测用户是否偏好在网页内容显示中选择更高(more)或更低(less)对比度的 prefers-contrast 媒体特性现已默认可用。此特性现在还允许用户通过新的 custom 值指定用于对比度的颜色集(Firefox bug 1656363)。

  • 引入了三种新的视口大小:小(s)、大(l)和动态(d)。这些新尺寸除了现有的 vhvwvmaxvmin 之外,还添加了新的 视口百分比长度单位。新的视口百分比长度单位包括 svhlvhdvhsvwlvwdvwsvmaxlvmaxdvmaxsvminlvmindvminFirefox bug 1610815)。此外,vbvi 单位现已默认支持(Firefox bug 1610815)。

  • 已为 contain 属性添加对 inline-size 值的支持。有关更多信息,请参阅(Firefox bug 1755565)。

JavaScript

无显著变化。

API

DOM

  • HTMLMediaElement.preservesPitch 现在无需 moz 前缀即可支持。mozPreservesPitch 现在是 preservesPitch 的别名,但已弃用,并可能在未来版本中移除(Firefox bug 1652950)。

  • 现已支持 HTMLInputElement.showPicker(),允许在用户与按钮等其他元素交互时显示输入元素的选择器(Firefox bug 1745005)。

  • DOMException 现在是一个 可序列化的对象,因此可以使用 structuredClone() 进行克隆,或使用 postMessage()worker 之间复制(Firefox bug 1561357)。

  • 现已支持可构造样式表,这使得创建可重用样式表以与 Shadow DOM 配合使用更加容易。更新包括添加了用于创建新样式表的 CSSStyleSheet() 构造函数,可用于在样式表中添加/替换 CSS 规则的 CSSStyleSheet.replace()CSSStyleSheet.replaceSync() 方法,以及用于将样式表共享到文档及其 shadow DOM 子树的 Document.adoptedStyleSheetsShadowRoot.adoptedStyleSheets 属性。有关更多信息,请参阅(Firefox bug 1520690)。

媒体、WebRTC 和 Web Audio

  • 媒体支持查询中的 AV1 编解码器参数现已得到正确解析。这意味着 MediaCapabilities.decodingInfo()HTMLMediaElement.canPlayType()MediaSource.isTypeSupported() 现在将根据提供的编解码器参数准确报告对 AV1 源的播放支持。MediaCapabilities.decodingInfo() 还将利用这些信息准确报告 AV1 视频的“高效解码”。有关更多信息,请参阅(Firefox bug 1757861)。

  • 现在支持 maxFramerate,用于设置用于发送编码的最大帧率(在 RTCPeerConnection.addTransceiver()RTCRtpSender.setParameters() 中)。请注意,零是有效的帧率值,但 Firefox 将其解释为“无帧率限制”。有关更多信息,请参阅(Firefox bug 1611957)。

SVG

  • Firefox UI 中使用 prefers-color-scheme 样式化的 SVG 图像将遵循嵌入器的 color-scheme(以前 prefers-color-scheme 会忽略嵌入器的 color-scheme,并根据设备或浏览器主题触发)。这确保了例如图标始终按照嵌套它的元素的颜色主题进行样式化,而不一定取决于设备(可能不同的)颜色主题。(Firefox bug 1764354)。

WebDriver 一致性 (WebDriver BiDi, Marionette)

从 Firefox 此版本开始,WebDriver BiDi 协议将默认启用。可以通过使用 WebDriver classic(geckodriver, Marionette)并设置 webSocketUrl 功能为 true 来请求 WebDriver BiDi 会话。此功能将包含 BiDi 客户端连接的 WebSocket 端点。

以下命令和事件可用

有关更多信息,请参阅 完整的 Bug 列表

附加组件开发人员的变更

  • 添加了 storage.StorageArea.onChanged 事件,使您能够监听 localsync 存储区域中内容的变更(Firefox bug 1758475)。
  • Manifest V3 预览功能
    • 添加了 scripting API,该 API 提供了执行脚本、插入和删除 CSS 以及管理内容脚本注册的功能(Firefox bug 1687764)。此 API 可用于 Manifest V3 扩展,并接管了 tabs API 的执行脚本以及插入和删除 CSS 功能。
    • 添加了 action API,该 API 在 Manifest V3 扩展中接管了 browserAction API 的功能。相应地,在 manifest 中添加了 "action" manifest 键以及 commands 键的 _execute_action 特殊快捷方式。请注意,browserAction API 和 "browser_action" manifest 键仅在 Manifest V2 扩展中可用。
    • "background" manifest 键属性 "persistent" 可以设置为 false,具体取决于首选项:对于 Manifest V2,是 extensions.eventPages.enabled 首选项;对于 Manifest V3,是 extensions.manifestV3.enabled 首选项。
    • 添加了 "host_permissions" manifest 键,该键可用于 Manifest V3 扩展。
    • Manifest V3 扩展的内容脚本执行环境已发生变化
      • 内容脚本不能再依赖主机权限来执行跨域请求。内容脚本的跨域请求可通过 CORS 进行。
      • content 对象(提供了 content.fetchcontent.XMLHttpRequestcontent.WebSocket)已从内容脚本执行环境中移除。