Web 开发人员的变更
HTML
无显著变化
CSS
text-emphasis-position
属性现在支持auto
值,使其与text-underline-position
保持一致 (Firefox bug 1919658)。- CSS 现在支持嵌套声明规则,这意味着嵌套的 CSS 现在以正确的顺序解析 (Firefox bug 1918408)。
移除
-moz-user-modify
CSS 属性已被移除。此属性已被弃用,取而代之的是contenteditable
全局属性。(Firefox bug 1920118)。
JavaScript
(?ims-ims:...)
正则表达式修饰符允许您只在正则表达式模式的特定部分进行更改。(Firefox bug 1913752 和 Firefox bug 1899813)。
HTTP
- HTTP
Accept
头的默认/文档值已更改为text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
。这移除了有时会导致兼容性问题的图像 MIME 类型,并与 fetch 规范和 Safari 保持一致。(Firefox bug 1917177)。
移除
- HTTP/2 Server Push 默认情况下通过首选项
network.http.http2.allow-push
设置为false
而停用。此功能不再受任何其他主流浏览器支持,并且在未来的版本中可能会完全移除。(Firefox bug 1915848)。
隐私
- 严格增强跟踪保护现在阻止所有第三方 Cookie。(Firefox bug 1918037)。
API
WebGLRenderingContext
和WebGL2RenderingContext
接口的drawingBufferColorSpace
和unpackColorSpace
属性现已支持。它们分别指定 WebGL 绘图缓冲区的颜色空间,以及导入纹理时要转换到的颜色空间。(Firefox bug 1885491, Firefox bug 1885446)。Notification.silent
属性现已支持,它控制系统通知是否应静音。当在Notification()
构造函数中指定silent: true
时,无论设备设置如何,生成的系统通知都将不附带声音或振动 (Firefox bug 1809028)。<link>
、<script>
和<img>
元素的fetchpriority
属性,HTMLLinkElement
、HTMLScriptElement
和HTMLImageElement
接口的fetchPriority
属性,传递给Request()
构造函数的options.priority
参数,以及 HTTPLink
标头中的fetchpriority
指令,现已支持。这些允许开发者提供关于获取特定资源相对于同类型其他资源的相对优先级的提示,并且可以与其他设置优先级的方式(例如预加载)一起使用。(Firefox bug 1854077)。CSSNestedDeclarations
接口及其关联的CSSNestedDeclarations.style
属性现已支持 (Firefox bug 1918408)。microphone
和camera
权限现在可以在Permissions.query()
方法中使用,以测试是否已授予、拒绝或仍需要用户批准访问相应的硬件。(Firefox bug 1609427 和 Firefox bug 1915222)。
媒体、WebRTC 和 Web Audio
HTMLVideoElement
接口的requestVideoFrameCallback()
和cancelVideoFrameCallback()
方法现已支持。requestVideoFrameCallback()
注册一个回调函数,该函数在新的视频帧发送到合成器时运行。开发者可以使用此函数对每个视频帧执行操作,从而实现更高效的画布绘制、视频分析、与外部音频源同步等等。该方法返回一个回调句柄,可以将其传递给cancelVideoFrameCallback()
以取消未完成的回调请求。(Firefox bug 1919367, Firefox bug 1800882)。MediaStreamTrack.getCapabilities()
方法现已支持。这返回一个对象,详细说明关联MediaStreamTrack
的每个可约束属性的接受值或值范围 (Firefox bug 1179084)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
WebDriver BiDi
- 实施了一些改进,以使 WebDriver BiDi 命令在导航期间或与新创建的标签页一起使用时更可靠。以前,像
browsingContext.setViewport
这样的命令很可能由于AbortError
而失败,现在它们将重试几次以避免此类问题。(Firefox bug 1854942, Firefox bug 1918287, Firefox bug 1918672, Firefox bug 1921756) - 现在,
browsingContext.contextCreated
事件针对延迟加载的帧正确触发。以前,该事件只会在 iframe 实际开始加载其内容时才触发。(Firefox bug 1878166) - 现在,缓存样式表请求的网络事件会正确触发。(Firefox bug 1879438)
- 网络事件计时以前使用错误的单位,以微秒为单位提供。现在它们已正确设置为毫秒。(Firefox bug 1916685)
- 网络事件计时中的
requestTime
现在应该更准确,并且真正匹配请求实际开始的时间。(Firefox bug 1922390)
实验性 Web 功能
这些功能在 Firefox 132 中是新推出的,但默认情况下是禁用的。要试用它们,请在 about:config
页面上搜索相应的首选项并将其设置为 true
。您可以在实验性功能页面上找到更多此类功能。
-
Cookie Store API:
dom.cookieStore.enabled
。Cookie Store API 是一种现代的、基于
Promise
的 Cookie 管理方法,它不会阻塞事件循环,也不依赖于Document
(因此可以供 Service Worker 使用)。截至 Firefox 132,Cookie Store API 的一个子集已实现。(Firefox bug 1800882)。这包括:CookieStore
接口,但不包括返回值的partitioned
。CookieChangeEvent
接口,不包括partitioned
属性。Window.cookieStore
属性。ServiceWorkerGlobalScope.cookieStore
属性。
-
fetch()
的keepalive
选项:dom.fetchKeepalive.enabled
。全局
fetch()
方法有一个keepalive
初始化选项。当keepalive
设置为true
时,如果发起请求的页面在请求完成之前被卸载,浏览器将不会中止关联的请求。这使得 fetch 请求可以在会话结束时发送分析数据时作为
Navigator.sendBeacon()
的替代方案,这有一些优点(您可以使用POST
以外的 HTTP 方法,自定义请求属性,并通过 fetchPromise
实现访问服务器响应)。它也可以在 Service Worker 中使用。(Firefox bug 1906952)。 -
CloseWatcher
:dom.closewatcher.enabled
。CloseWatcher
接口使开发者能够实现可使用设备原生机制关闭的组件,就像内置组件一样。例如,在 Android 上,您可以使用返回按钮关闭对话框:此接口允许您以类似方式关闭自定义侧边栏。(Firefox bug 1888729)。 -
Promise.try()
:javascript.options.experimental.promise_try
。Promise.try()
是一个便利方法,它接受任何类型(同步或异步返回或抛出)的回调,并将其结果包装在Promise
中,以便可以使用 Promise 语义(例如.then()
、.catch()
)来处理它 (Firefox bug 1905364)。 -
带有 source 的
JSON.parse
:javascript.options.experimental.json_parse_with_source
。JSON.parse
源文本访问提案扩展了JSON.parse
的行为,以提供缓解 JavaScript 值和 JSON 文本之间转换大浮点数和日期值等时精度损失问题的特性 (Firefox bug 1913085, Firefox bug 1925334)。具体来说,现在可以使用以下特性:JSON.parse()
reviver
参数的context
参数:提供对已解析的原始 JSON 源文本的访问。JSON.isRawJSON()
:测试一个值是否是JSON.rawJSON()
返回的对象。JSON.rawJSON()
:创建一个包含一段 JSON 文本的“原始 JSON”对象,然后可以将其包含在另一个对象中,以便在字符串化该对象时保留指定的值。