Chrome 132 Beta 版

发布时间:2024 年 11 月 13 日

除非另有说明,否则以下更改适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版渠道版本。如需详细了解此处列出的功能,请点击提供的链接或访问 ChromeStatus.com 上的列表。截至 2024 年 11 月 13 日,Chrome 132 仍处于 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 有助于竖向书写非 CJK 文字。与 vertical-rlvertical-lr 不同,它们没有适合 CJK 语言的行为。

Web API

捕获所有屏幕

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

多次调用 getDisplayMedia() 需要用户多次手势操作,每次都需要用户选择下一个屏幕,并且无法保证应用已选择所有屏幕。getAllScreensMedia() 方法在所有这些方面都有所改进。

此功能仅在桌面设备上提供。

对话切换事件

了解 <dialog> 元素的打开和关闭时间非常有用,而 popover 已经具有在弹出式窗口打开或关闭时调度的 ToggleEvent。以前,若要检测 <dialog> 何时打开,您必须注册一个突变观察器来检查打开状态,但这需要大量工作,如果使用事件会更轻松。

此变更纳入了弹出式窗口分派的相同 ToggleEvent,但适用于 <dialog> 元素:当调用 showModalshow 时,<dialog> 会分派一个包含 newState=openToggleEvent。当 <dialog> 关闭时(使用表单、按钮或 closewatcher),它应调度一个 newState=closedToggleEvent

元素捕获

对于通过预先存在的方式获取的视频 MediaStreamTrack 以启动标签页捕获,元素捕获允许更改轨道,以便仅捕获从给定元素开始的 DOM 子树。

此 API 与 Region Capture API 有些相似,但为应用提供了更大的灵活性,因为遮挡内容和被遮挡内容均不包含在捕获范围内。

FedCM 授权功能

此功能捆绑了身份提供商 (IdP) 可用于实现授权流程的几项功能,例如允许用户向信赖方 (RP) 授予对其日历的访问权限。具体而言:

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

FedCM 模式 API 和“使用其他账号”API

针对 FedCM 的两项新扩展服务:

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

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

RequestResponse 接口添加了 bytes() 方法,该方法会返回一个以 Uint8Array 解析的 promise。虽然 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) 响应标头可能会给 localhost Web 服务器带来问题,因为 STS 会在所有端口上应用主机范围的设置。这会导致在本地测试的 Web 开发者遇到兼容性问题。它还会影响使用软件软件包的最终用户,这些软件包通常会出于临时原因启动 localhost 网络服务器。例如,将身份验证令牌从 Web 登录传递到本地软件包。如果某个本地监听器在 localhost 响应中设置了 Strict-Transport-Security,则该设置会应用于所有后续 localhost 请求,而无论端口如何。

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

键盘可聚焦滚动容器

由于存在无障碍功能回归问题,此功能(自 Chrome 130 起)的推出已停止。此问题已修复,该功能将继续随 Chrome 132 一起推出。

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

对 Private State Token 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 标头。

使用 Magic 注释的显式编译提示

此功能可让您附加有关应在 JavaScript 文件中急切解析和编译哪些函数的信息。相应信息将编码为 magic 注释。

弃用和移除

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

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

navigator.storage 已成为存储压力事件的 EventTarget,但从未通过原型阶段。此无效代码将被移除,因此 navigator.storage 将不再扩展 EventTarget

移除带前缀的 HTMLVideoElement 全屏 API

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

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

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

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

这些方法现在只是现代 API 的别名。多年来,它们的使用量一直在稳步下降。