Firefox 119 的开发者说明
==================

本文提供了有关 Firefox 119 中影响开发者的变更信息。Firefox 119 于 2023 年 10 月 24 日发布。

为 Web 开发者带来的变化
--------------

### HTML

#### 移除

* `<input>` 元素不再支持非标准的 `mozactionhint` 属性。请使用 `enterkeyhint` (en-US)。（详见 Firefox bug 1735980）。
### CSS

* CSS 函数 `attr()` 现在支持回退值。这样，如果缺少全局属性，就可以设置回退值（Firefox bug 1448248）。
### JavaScript

* 现在支持用于对可迭代元素进行分组的 `Object.groupBy()` 和 `Map.groupBy()` 静态方法（详见 Firefox bug 1792650）。
* `String.prototype.isWellFormed()` 和 `String.prototype.toWellFormed()` 方法可分别用于检查字符串是否包含规范的 Unicode 文本（即不包含单独代理项），并将不规范字符串清理为规范的 Unicode 文本。（详见 Firefox bug 1850755）。
### SVG

* 接受 `<length>` 值的 SVG 属性现在支持所有 SVG 元素的第 3 版 length CSS 数据类型值。这样就可以根据字体大小（`cap`、`rem` 等）、视口（`vh`、`vw`、`vmin` 等）或绝对长度（`px`、`cm` 等）确定 SVG 元素的大小，例如：`<line x1="10vw" y1="10vh" x2="50vw" y2="50vh"/>`。（详见 Firefox bug 1287054）。
### HTTP

* HTTP 响应标头 `Cross-Origin-Embedder-Policy` 的 `credentialless` 指令现已在桌面平台（以及除安卓以外的移动平台）上得到支持，其允许在未明确选择的跨源服务器上进行 `no-cors` 资源请求，尽管没有 cookie 或其他凭据（Firefox bug 1851467）。
### API

* 现在可以通过在传递给 `WebTransport.createBidirectionalStream()` (en-US) 和 `WebTransport.createUnidirectionalStream()` (en-US) 的选项参数中包含 `sendOrder` 属性，以指定发送流的相对优先级（Firefox bug 1816925）。
* 现已支持 `AuthenticatorAttestationResponse` (en-US) 接口的 `getAuthenticatorData()` (en-US)、`getPublicKeyAlgorithm()` (en-US) 和 `getPublicKey()` (en-US) 方法（详见 Firefox bug 1816519 和 Firefox bug 1816520）。
* 已支持 Web Authentication API (en-US) 的凭证属性扩展（`credProps`），允许用户在创建/注册后查询凭证是否可被发现（Firefox bug 1844437）。
* `SubtleCrypto.deriveKey()` 方法现在支持 HKDF 算法，作为其 `derivedKeyAlgorithm` 参数的选项（详见 Firefox bug 1851928）。
* 现已支持 `PublicKeyCredential` (en-US) 接口的 `parseCreationOptionsFromJSON()` (en-US)、`parseRequestOptionsFromJSON()` (en-US) 和 `toJSON()` (en-US) 方法。这些方法非常方便，可将用于创建和共享凭证对象的对象转换为 JSON 表示形式，以便进行序列化/反序列化并与服务器共享（详见 Firefox bug 1823782）。

#### DOM

* ARIA 反射现在默认支持不引用其他元素的属性；只有非 IDREF 属性才会被反射。现在，你可以通过 JavaScript API 直接获取和设置 DOM 元素上的 ARIA 属性，而不必使用 `setAttribute` 和 `getAttribute`。例如，现在除了支持 `buttonElement.setAttribute("aria-pressed", "true");` 以外，还支持 `buttonElement.ariaPressed = "true";`（Firefox bug 1785412）。
### WebDriver 一致性（WebDriver BiDi、Marionette）

#### 常规

* 在按下鼠标中键或右键的情况下执行 `pointerDown` 操作时，相关 HTML 元素发出的 `mousedown` 事件的 `buttons` 属性值被调换（Firefox bug 1850086）。
* 在执行输入类型为 `wheel` 且原点设置为 `pointer` 的 `scroll` 操作时，会不适当地引发 `invalid argument` 错误，而当前的 WebDriver 规范不支持这种组合（Firefox bug 1850166）。

#### WebDriver BiDi

* 新增了 `browsingContext.reload` 命令，允许用户重新加载当前在给定浏览上下文中显示的页面或框架（Firefox bug 1830859）。
* 新增了 `browsingContext.userPromptClosed` 事件，该事件会在 `alert`、`confirm` 或 `prompt` 类型的用户提示关闭时触发（Firefox bug 1824221）。
* 新增了 `browsingContext.navigationStarted` 事件，当 Firefox 启动新导航时会触发该事件（Firefox bug 1756595）。
* 新增了 `script.realmCreated` 和 `script.realmDestroyed` 事件，允许用户监控给定浏览上下文的 JavaScript 领域（Realm）的生命周期。这种领域基本上是一个孤立的执行环境（`sandbox`），有自己唯一的全局对象（window）（Firefox bug 1788657、Firefox bug 1788659）。
* 当打开 HTTP 身份验证对话框时，会意外发送 `browsingContext.userPromptOpened` 事件（Firefox bug 1853302）。
* 设置为 `null` 的 `context` 字段将不再发出不需要的事件。因为底层浏览上下文已关闭，此类事件不再有效（Firefox bug 1847563）。

#### Marionette

* 更新了尝试使用 `Addon:Install` 命令安装 WebExtension 时可能出现的错误代码列表，以便与 Firefox 的最新错误代码相匹配（Firefox bug 1852537）。
更早期的版本
------

* Firefox 118 for developers (en-US)
* Firefox 117 for developers (en-US)
* Firefox 116 for developers (en-US)
* Firefox 115 for developers (en-US)
* Firefox 114 for developers (en-US)
* Firefox 113 for developers (en-US)
* Firefox 112 for developers (en-US)
* Firefox 111 for developers (en-US)
* Firefox 110 for developers (en-US)
* Firefox 109 for developers (en-US)
* Firefox 108 for developers (en-US)
* Firefox 107 for developers (en-US)
* Firefox 106 for developers (en-US)
* Firefox 105 for developers (en-US)
* Firefox 104 for developers (en-US)
* Firefox 103 for developers (en-US)
* Firefox 102 for developers (en-US)
* Firefox 101 for developers (en-US)
* Firefox 100 for developers (en-US)
* Firefox 99 for developers (en-US)
* Firefox 98 for developers (en-US)
* Firefox 97 for developers (en-US)
* Firefox 96 for developers (en-US)
* Firefox 95 for developers (en-US)
* Firefox 94 for developers (en-US)
* Firefox 93 for developers (en-US)
* Firefox 92 for developers (en-US)
* Firefox 91 for developers (en-US)
* Firefox 90 for developers (en-US)
* Firefox 89 for developers (en-US)
* Firefox 88 for developers (en-US)