Firefox 101 发布说明 (面向开发者)
本文档提供有关 Firefox 101 中将影响开发者的变更信息。Firefox 101 于 2022 年 5 月 31 日发布。
Web 开发人员的变更
HTML
无显著变化。
CSS
-
用于检测用户是否偏好在网页内容显示中选择更高(
more)或更低(less)对比度的prefers-contrast媒体特性现已默认可用。此特性现在还允许用户通过新的custom值指定用于对比度的颜色集(Firefox bug 1656363)。 -
引入了三种新的视口大小:小(
s)、大(l)和动态(d)。这些新尺寸除了现有的vh、vw、vmax和vmin之外,还添加了新的 视口百分比长度单位。新的视口百分比长度单位包括svh、lvh、dvh、svw、lvw、dvw、svmax、lvmax、dvmax、svmin、lvmin和dvmin(Firefox bug 1610815)。此外,vb和vi单位现已默认支持(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.adoptedStyleSheets和ShadowRoot.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 端点。
以下命令和事件可用
-
添加了
session模块,包括用于全局订阅(session.subscribe)和取消订阅(session.unsubscribe)事件的命令的部分实现,以及在不使用 WebDriver classic 时创建直接 WebDriver BiDi 会话(session.new)的功能。 -
添加了
browsingContext模块,包括用于打开新标签页或窗口(browsingContext.create)或关闭此类窗口(browsingContext.close)、检索打开的浏览上下文(browsingContext.getTree)以及在浏览上下文中导航(browsingContext.navigate)的命令。还支持浏览上下文创建时的事件(browsingContext.contextCreated)。 -
添加了
log模块,包括对日志事件(log.entryAdded)的支持。
有关更多信息,请参阅 完整的 Bug 列表。
附加组件开发人员的变更
- 添加了
storage.StorageArea.onChanged事件,使您能够监听local和sync存储区域中内容的变更(Firefox bug 1758475)。 - Manifest V3 预览功能
- 添加了
scriptingAPI,该 API 提供了执行脚本、插入和删除 CSS 以及管理内容脚本注册的功能(Firefox bug 1687764)。此 API 可用于 Manifest V3 扩展,并接管了tabsAPI 的执行脚本以及插入和删除 CSS 功能。 - 添加了
actionAPI,该 API 在 Manifest V3 扩展中接管了browserActionAPI 的功能。相应地,在 manifest 中添加了"action"manifest 键以及commands键的_execute_action特殊快捷方式。请注意,browserActionAPI 和"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.fetch、content.XMLHttpRequest和content.WebSocket)已从内容脚本执行环境中移除。
- 添加了