Chrome 132 Beta 版

发布时间:2024 年 11 月 13 日

除非另有说明,否则以下变更适用于最新的 Chrome 测试版(Android、ChromeOS、Linux、macOS 和 Windows)。如需详细了解此处列出的新功能,请点击所提供的链接,或访问 ChromeStatus.com 上的列表。Chrome 132 自 2024 年 11 月 13 日起处于 Beta 版阶段。您可以在桌面版 Google.com 或 Android 版 Google Play 商店下载最新版本。

CSS

此版本新增了两项 CSS 功能。

CSS 锚点定位:允许在 insetmargin 属性中使用 anchor-size()

最初,anchor-size() 仅适用于尺寸属性。规范已更改,以允许在内嵌和边距中使用 anchor-size()

CSS 横向书写模式

支持为 writing-mode CSS 属性使用 sideways-rlsideways-lr 关键字。sideways-rlsideways-lr 有助于垂直书写非中日韩文本。与 vertical-rlvertical-lr 不同,它们不支持适合 CJK 语言的行为。

Web API

截取所有屏幕

使用 getAllScreensMedia() 捕获当前连接到设备的所有屏幕。

多次调用 getDisplayMedia() 需要用户执行多次手势,会给用户带来每次选择下一屏幕的负担,并且无法向应用保证已选择所有屏幕。getAllScreensMedia() 方法在所有这些方面都进行了改进。

此功能仅适用于桌面设备。

对话框切换事件

了解 <dialog> 元素何时打开和关闭非常有用,并且 popover 已经具有在弹出式窗口打开或关闭时分派的 ToggleEvent。以前,若要检测 <dialog> 何时打开,您必须注册一个更改观察器来检查是否已打开,但这需要完成大量工作,而使用事件会更简单。

这项更改采用了与弹出式窗口分派的 ToggleEvent 相同的 ToggleEvent,但适用于 <dialog> 元素:调用 showModalshow 时,<dialog> 会使用 newState=open 分派 ToggleEvent。关闭 <dialog>(使用表单、按钮或 closewatcher)时,它应调度带有 newState=closedToggleEvent

元素捕获

假设通过现有方法获取了用于启动标签页捕获的视频 MediaStreamTrack,元素捕获功能允许更改轨道,以便仅捕获从给定元素开始的 DOM 子树。

该 API 与 Region Capture API 有些相似,但可为应用提供更大的灵活性,因为遮挡内容和被遮挡的内容都会从截取内容中排除。

FedCM 授权功能

该包捆绑了一些功能,可供身份提供方 (IdP) 用于实现授权流程,例如让用户向依赖方 (RP) 授予对其日历的访问权限。具体而言:

  • IdP 需要能够显示针对相应权限的自定义提示(接续 API)。
  • RP 需要一种可扩展的方式,以便向 IdP 传达其想要访问的内容(参数 API)。
  • RP 需要能够自定义或隐藏提及 IdP 分享“姓名、电子邮件地址和个人资料照片”的文本,因为在这种情况下,他们会请求其他信息(fields API)。
  • IdP 可能希望使用其他端点来实现授权流程(多个 config网址)。
  • 某些账号可能只能使用其中一种身份验证和授权流程,因此需要一种方法来在这两种流程中显示不同的账号(账号标签 API)。

FedCM Mode API 和 Use Other Account API

为 FedCM 添加了两个新扩展程序:

  • 模式active 模式允许网站在用户点击按钮(例如点击登录身份提供方按钮)时调用 FedCM,这要求 FedCM 保证始终以可见的界面响应。在活动模式下调用 FedCM API 会在用户退出登录时将用户引导至身份提供方 (IdP) 进行登录。此外,由于是在显式用户手势内调用主动模式,因此与被动模式(无需用户手势要求,可在网页加载时调用)的界面相比,主动模式的界面也更醒目(例如,居中显示和模态)。
  • 使用其他账号:借助此扩展程序,IdP 可以允许用户登录其他账号。

提取:Request.bytes()Response.bytes()

RequestResponse 接口添加了 bytes() 方法,该方法会返回一个 promise,由 Uint8Array 来解析。虽然 RequestResponse 具有 arrayBuffer() 方法,但您无法直接从缓冲区读取。您必须创建 Uint8Array 等视图才能读取它。bytes() 方法改进了获取请求和响应正文的人体工学。

Android 和 WebView 的文件系统访问

借助此 API,开发者可以构建强大的应用,这些应用可使用用户设备的文件系统与用户设备上的其他(非 Web)应用进行交互。用户向 Web 应用授予访问权限后,此 API 让应用可以直接读取用户选择的文件和文件夹内容,或者保存对这些内容的更改。除了读取和写入文件之外,此 API 还支持打开目录并枚举其内容,以及在 IndexedDB 中存储文件和目录句柄,以便日后重新访问相同的内容。

文件系统访问权限在 Chrome 86 中面向桌面平台发布,在 Chrome 132 中面向 Android 和 WebView 发布。

忽略 localhost 的 Strict-Transport-Security

Strict-Transport-Security (STS) 响应标头可能会导致本地主机 Web 服务器出现问题,因为 STS 会在所有端口上全局应用。这会导致在本地进行测试的 Web 开发者遇到兼容性问题。这也影响了使用通常出于暂时性原因启动 localhost Web 服务器的软件包的最终用户。例如,从 Web 登录到本地软件包的身份验证令牌通信。如果一个本地监听器在 localhost 响应中设置了 Strict-Transport-Security,则它会应用于所有后续的 localhost 请求,无论端口如何。

Chrome 132 通过忽略来自 localhost 网址的响应的 Strict-Transport-Security 标头来解决此问题。

键盘可聚焦滚动容器

由于无障碍功能出现回归问题,我们已停止推出此功能(从 Chrome 130 开始)。此问题已得到修复,该功能将继续在 Chrome 132 中推出。

Private State Tokens API 权限政策默认许可名单通配符

对 Private State Tokens API 的访问权限受权限政策功能的控制。 Chrome 132 将 private-state-token-issuanceprivate-state-token-redemption 功能的默认许可名单从 self 更新为 *(通配符)。

PushMessageData::bytes()

PushMessageData 接口模仿了 Body 接口,该接口在今年早些时候通过新的 bytes() 方法进行了修改,遵循了以下原则:API 通常应以 Uint8Arrays 的形式出售字节缓冲区。Chrome 132 还在 PushMessageData 接口上提供了 bytes() 访问器,从而与 Body 接口保持一致。

sharedStorage.selectURL 中的已保存查询

sharedStorage.selectURL() 现在允许按网页保存和重复使用查询,其中系统会在首次运行已保存的查询时扣除两个网页加载预算,但不会在同一网页加载期间对已保存的查询的后续运行扣除预算。为此,您可以在用于为查询命名的 selectURL() 的选项中使用 savedQuery 参数。

针对非活动文档中的弹出式窗口和对话框抛出异常

以前,对位于非活动文档中的弹出式窗口或对话框调用 showPopover()showModal() 会静默失败。系统不会抛出任何异常,但由于文档处于非活动状态,因此不会显示任何弹出式窗口或对话框。从 Chrome 132 开始,这些情况现在会抛出 InvalidStateError

WebAuthn Signal API

允许 WebAuthn 依赖方将有关现有凭据的信息发回给凭据存储提供程序,以便更新或从提供程序和系统界面中移除不正确或已撤消的凭据。

详细了解 Chrome 桌面设备上的通行密钥专用 Signal API

WebGPU:32 位浮点纹理混合

float32-blendable GPU 功能可让格式为 r32floatrg32floatrgba32float 的 GPU 纹理可混合。

WebGPU:从 GPUDevice 公开 GPUAdapterInfo

GPUDevice adapterInfo 属性公开的 GPUAdapterInfoGPUAdapter 对象相同。

WebGPU:纹理视图使用情况

向 WebGPU 纹理视图创建添加了一个可选字段,以请求从源纹理请求一部分用法标志。

默认情况下,纹理视图用法会从源纹理继承,但有些视图格式可能与完整的继承用法不兼容。向纹理视图创建中添加用途字段后,用户可以请求源纹理的用途子集,这些用途与视图格式有效且特定于纹理视图的预期用途。

WebGPU 实现还可以优化低级资源的创建,并在使用具有更专用使用标志的视图时提升性能。

新的来源试用

在 Chrome 132 中,您可以选择参与以下新的源试用

Document-Isolation-Policy

Document-Isolation-Policy 允许文档为自身启用 crossOriginIsolation,而无需部署 COOP 或 COEP,并且无论网页的 crossOriginIsolation 状态如何。该政策由进程隔离机制支持。此外,文档的非 CORS 跨源子资源将在不使用凭据的情况下加载,或者需要带有 CORP 标头。

使用魔法注释提供显式编译提示

借助此功能,您可以附加有关应在 JavaScript 文件中提前解析和编译哪些函数的信息。这些信息将编码为魔法注释。

废弃和移除

此版本的 Chrome 引入了以下弃用和移除功能。如需查看计划弃用、当前弃用和之前移除的功能的列表,请访问 ChromeStatus.com

此版本的 Chrome 移除了两项功能。

navigator.storage 被用作存储压力事件的 EventTarget,但从未过渡到原型阶段。系统会移除此死代码,因此 navigator.storage 将不再扩展 EventTarget

移除了带前缀的 HTMLVideoElement 全屏 API

Chrome 已弃用带前缀的 HTMLVideoElement 全屏 API

它们已被 Element.requestFullscreen() API 取代,该 API 于 2018 年首次在 Chrome 71 中以不带前缀的形式发布。截至 2024 年,大多数浏览器已经支持无前缀 API 好几年了。

Chrome 132 从 HTMLVideoElement 中移除了以下内容:

  • webkitSupportsFullscreen 属性。
  • webkitDisplayingFullscreen 属性。
  • webkitEnterFullscreen() 方法。
  • webkitExitFullscreen() 方法。请注意,FullScreen 中的“S”采用了不同的大小写形式。
  • webkitEnterFullScreen() 方法。
  • webkitExitFullScreen() 方法。

这些方法现在仅是新版 API 的别名。这些功能的使用量多年来一直在稳步下降。