Web 开发人员的变更
HTML
<base>元素的target属性现在禁止使用 ASCII 换行符、制表符或<字符,如果存在任何这些字符,则将值更改为_blank。这可以防止使用未封闭的target属性的悬空标记注入攻击 (Firefox bug 1835157)。
CSS
- 相对颜色语法现在默认启用。相对颜色语法允许你创建相对于原始颜色的颜色值,并允许你使用 颜色函数在不同的颜色空间中更改颜色 (Firefox bug 1900251)。
- 包含图像的内容的
content属性现在支持替代文本。然后,替代文本会暴露给浏览器的可访问性树。(请参阅 Firefox bug 1281158 和 Firefox bug 1896047)。 @propertyat-rule 的syntax描述符现在支持<string>语法组件名称。(请参阅 Firefox bug 1846635)。
移除
- 砌体布局属性
align-tracks和justify-tracks已被移除。这些属性仅在 Firefox 中实现,并且最近从规范中删除 (Firefox bug 1900195)。
JavaScript
- 现在支持可调整大小的
ArrayBuffer和可增长的SharedArrayBuffer,允许在不分配新缓冲区并向其中复制数据的情况下更改缓冲区的大小 (Firefox bug 1884150)。相关方法和属性是:- 使用
SharedArrayBuffer.prototype.grow()方法增长SharedArrayBuffer。允许的最大缓冲区大小使用SharedArrayBuffer()构造函数的options.maxByteLength参数指定。SharedArrayBuffer.prototype.growable和SharedArrayBuffer.prototype.maxByteLength属性分别指示缓冲区是否可以增长及其允许的最大大小。 - 使用
ArrayBuffer.prototype.resize()方法调整ArrayBuffer的大小。允许的最大缓冲区大小使用ArrayBuffer()构造函数的options.maxByteLength参数指定。ArrayBuffer.prototype.resizable和ArrayBuffer.prototype.maxByteLength属性分别指示缓冲区是否可以调整大小及其允许的最大大小。
- 使用
HTTP
- 默认请求和图像请求中的 HTTP
Accept标头现在包含image/svg+xmlMIME 类型 (Firefox bug 1711622)。 - 现在支持 RFC 9218: HTTP 可扩展优先级方案,包括 HTTP
Priority请求和响应标头(允许客户端提示通过连接发送的资源的预期相对优先级),以及 HTTP/2 和 HTTP/3PRIORITY_UPDATE帧(允许在发送标头后后续更改优先级)(Firefox bug 1865040)。
API
- 现在支持
RTCRtpReceiver.getParameters()和RTCRtpSender.getParameters(),它们分别返回一个对象,描述接收器和发送器轨道上用于媒体编码和传输的当前编解码器。(Firefox bug 1534687)。 - 现在支持
Request.bytes()和Response.bytes(),它们分别是从Request和Response获取Uint8Array的便捷方式。(Firefox bug 1896475)。 - 现在支持
PushMessageData.bytes(),用于将推送消息中的数据作为字节数组以Uint8Array对象返回。(Firefox bug 1897871)。 - 支持
Blob.bytes(),用于将Blob中的数据作为字节数组以Uint8Array对象返回。(Firefox bug 1896509)。 - 现在支持
MediaKeys.getStatusForPolicy(),用于检查 CDM 模块(用于解密受 DRM 保护的内容)是否允许根据指定的策略要求(例如系统支持的高带宽数字内容保护 (HDCP) 版本)呈现加密媒体数据,以检查“假设”密钥。这为应用程序提供了一种简单的机制,可以预先知道是否允许以最佳分辨率播放,而无需创建媒体密钥会话或获取真实许可证。(Firefox bug 1878714)。 - 现在支持
RTCRtpTransceiver.setCodecPreferences(),用于设置 WebRTC 本地对等方能够用于解码接收到的数据的编解码器,并按照其首选编解码器顺序排列。Web 应用程序可以使用此功能使远程对等方选择首选编解码器,并禁用特定编解码器的协商,包括用于重传、冗余和前向纠错的编解码器。(Firefox bug 1396922)。 - 声明性 Shadow DOM 的序列化,包括方法
ShadowRoot.getHTML()和Element.getHTML(),以及相关的属性ShadowRoot.serializable和HTMLTemplateElement.shadowRootSerializable。 CSSPropertyRule接口现在默认支持,并表示 CSS@propertyat-rule。该接口允许你获取使用@propertyat-rule 定义的 CSS 自定义属性的值,包括name、syntax、inherits和initialValue(Firefox bug 1864818)。registerProperty()方法现在默认支持。它允许你通过 JavaScript 定义CSS 自定义属性,这类似于在 CSS 中使用@propertyat-rule (Firefox bug 1864818)。
媒体、WebRTC 和 Web Audio
移除
- 非标准的
HTMLMediaElement.seekToNextFrame()方法已被移除,现在任何浏览器都不支持该方法。(Firefox bug 1336404)。
WebDriver 一致性 (WebDriver BiDi, Marionette)
通用
- 我们现在支持扩展的“unhandledPromptBehavior”功能,它可以是字符串(WebDriver 经典)或 JSON 对象(WebDriver BiDi)。对象类型为 WebDriver BiDi 提供了更多功能,例如处理“beforeunload”提示。(Firefox bug 1884650)
WebDriver BiDi
- 为 WebDriver Session 的“BiDi 标志”添加了支持,以与 WebDriver BiDi 规范保持一致。这允许识别为 WebDriver BiDi 创建或升级的会话。(Firefox bug 1898719)
- 为
network.continueRequest命令添加了对几个参数的支持,现在允许在请求通过网络发送之前修改请求的标头、Cookie、方法和正文。(Firefox bug 1850680) - 在
permissions.setPermission命令中添加了对userContext参数的支持,这允许将权限隔离到特定的用户上下文(在 Firefox 中实现为容器)。(Firefox bug 1894217) - 修复了
browsingContext.navigate中的一个错误,该错误会导致导航错误加载错误页面并导致后续命令失败。(Firefox bug 1878690) - 我们修复了为重定向发出的
network.responseCompleted事件的顺序。原始请求的responseCompleted现在始终在重定向事件之前发出。(Firefox bug 1879580) - 为了与当前的 Firefox 行为保持一致,我们引入了解决方法,即不分区与目标上下文中加载的页面具有相同域的通过“storage.setCookie”命令添加的 Cookie。(Firefox bug 1898222)
input.setFiles命令已更新为在指定文件不存在时抛出UnsupportedOperation错误。(Firefox bug 1887644)
Marionette
- 为 WebDriver Session 的“HTTP 标志”添加了支持,以与 WebDriver 经典规范保持一致。这允许识别为 WebDriver 经典创建的会话。(Firefox bug 1884090)
- 在 WebDriver Classic 中添加了对 Permissions API 的支持。(Firefox bug 1524074)
附加组件开发人员的变更
- 添加了使用
declarativeNetRequest.updateStaticRules在静态声明性网络请求规则集中启用和禁用规则,以及使用declarativeNetRequest.getDisabledRuleIds列出静态规则集禁用规则的功能 (Firefox bug 1810762)。 - 一个静态声明性网络请求规则,即通过
declarative_net_request清单键定义的规则,现在在它包含无法识别的属性但其他方面有效时加载 (Firefox bug 1886608)。 - 在
declarativeNetRequest中引入了MAX_NUMBER_OF_DYNAMIC_RULES和MAX_NUMBER_OF_SESSION_RULES。这些属性表示扩展可以添加的动态和会话范围规则的最大数量。它们取代了MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES,后者现在已弃用 (Firefox bug 1894128)。 - 当使用 SOCKS4 时,
proxy.settings属性proxyDNS的默认值现在是false;当使用 SOCKS5 时,默认值是true。以前,SOCKS4 和 SOCKS5 都默认为false(Firefox bug 1741375)。 - 现在支持
webRequest.onAuthRequired通过在addListener参数extraInfoSpec中指定"asyncBlocking"来异步处理身份验证请求 (Firefox bug 1889897)。 - 已添加
optional_host_permissions清单键。此键为扩展中读取或修改主机数据的 API 启用运行时访问请求(在扩展安装后由用户授予访问权限)(Firefox bug 1766026)。 - 非标准 Web API 事件
overflow和underflow已弃用。在 Firefox 131 发布之前,应从扩展文档中移除这些事件的使用 (Firefox bug 1898445)。 - 现在支持脚本在网页执行环境中运行。这是通过对
scriptingAPI 的ExecutionWorld中的MAIN的支持,向contentScripts.register()API 添加world,以及在content_scripts清单键中支持world来提供的 (Firefox bug 1736575)。 scriptingAPI 现在可以将脚本和 CSS 注入到带有about:blank、about:srcdoc和data:URL 的沙盒页面中。这已在 Firefox bug 1475831 中为scripting.executeScript、scripting.insertCSS和scripting.removeCSS实现,并在 Firefox bug 1853411 中通过向scripting.RegisteredContentScript引入matchOriginAsFallback为scripting.registerContentScripts和scripting.updateContentScripts实现。- 内容脚本现在在沙盒
http、https和file:URL 上运行 (Firefox bug 1411641)。 - 清单键
content_scripts现在支持match_origin_as_fallback,contentScripts.register支持matchOriginAsFallback,允许在由于使用 CSP 或 iframe 沙盒而导致文档来源不透明时将脚本注入到about:、data:和blob:页面中 (Firefox bug 1475831 和 Firefox bug 1896669)。此外,现在只有当match_origin_as_fallback为true时,使用content_scripts清单键注册的脚本才能在blob:页面中运行 (Firefox bug 1897113)。 - 为
declarativeNetRequest.RuleCondition属性domainType添加了支持 (Firefox bug 1797408)。 - 包含
browser_specific_settings.gecko清单键中无法识别属性的扩展现在会加载并发出警告。以前,这些扩展在安装时会出错。这确保了如果添加了新的browser_specific_settings.gecko属性,使用该新属性的扩展将在从本次发布开始的 Firefox 版本中加载 (Firefox bug 1757293)。 - 使用非持久性后台脚本的扩展中通过
menus.create创建的上下文菜单现在在扩展重新启动后更可靠地保留。以前,在重新启动时菜单注册会消失的情况 (Firefox bug 1771328)。
实验性 Web 功能
这些功能在 Firefox 128 中是新推出的,但默认禁用。要试用它们,请在 about:config 页面上搜索相应的首选项并将其设置为 true。你可以在实验性功能页面上找到更多此类功能。
-
默认和图像请求的 Accept 标头中的
image/jxlMIME 类型:image.jxl.enabled。默认请求和图像请求中的 HTTP
Accept标头可以配置为指示对image/jxlMIME 类型的支持。(Firefox bug 1711622)。 -
具有独立分区状态的 Cookie (CHIPS):
network.cookie.CHIPS.enabled。CHIPS,或“分区 Cookie”,允许开发者使用
Set-CookieHTTP 标头的partitioned指令将 Cookie 选择加入分区存储。设置后,Cookie 为每个顶级站点拥有单独的存储,并且只能在其设置的相同顶级站点及其子域中读取。这阻止了跨站点跟踪,同时仍然支持第三方 Cookie 的合法用途,例如在站点的不同子域之间持久化嵌入式地图或聊天小部件的状态。(Firefox bug 1898253)。 -
隐私保护归因 API (PPA):
dom.origin-trials.private-attribution.state。PPA API 提供了一种替代用户跟踪的广告归因方法,使用新的
navigator.privateAttribution对象和saveImpression()和measureConversion()方法。有关 PPA 的更多信息,请参阅原始解释器和提议的规范。此实验可以通过源试用或在浏览器中将首选项设置为1来为网站启用。(Firefox bug 1900929)。