发布时间: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 锚点定位:允许在 inset
和 margin
属性中使用 anchor-size()
最初,anchor-size()
仅适用于尺寸属性。规范已更改,以允许在内嵌和边距中使用 anchor-size()
。
CSS 横向书写模式
支持为 writing-mode
CSS 属性使用 sideways-rl
和 sideways-lr
关键字。sideways-rl
和 sideways-lr
有助于垂直书写非中日韩文本。与 vertical-rl
和 vertical-lr
不同,它们不支持适合 CJK 语言的行为。
Web API
截取所有屏幕
使用 getAllScreensMedia()
捕获当前连接到设备的所有屏幕。
多次调用 getDisplayMedia()
需要用户执行多次手势,会给用户带来每次选择下一屏幕的负担,并且无法向应用保证已选择所有屏幕。getAllScreensMedia()
方法在所有这些方面都进行了改进。
此功能仅适用于桌面设备。
对话框切换事件
了解 <dialog>
元素何时打开和关闭非常有用,并且 popover
已经具有在弹出式窗口打开或关闭时分派的 ToggleEvent
。以前,若要检测 <dialog>
何时打开,您必须注册一个更改观察器来检查是否已打开,但这需要完成大量工作,而使用事件会更简单。
这项更改采用了与弹出式窗口分派的 ToggleEvent
相同的 ToggleEvent
,但适用于 <dialog>
元素:调用 showModal
或 show
时,<dialog>
会使用 newState=open
分派 ToggleEvent
。关闭 <dialog>
(使用表单、按钮或 closewatcher)时,它应调度带有 newState=closed
的 ToggleEvent
。
元素捕获
假设通过现有方法获取了用于启动标签页捕获的视频 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()
向 Request
和 Response
接口添加了 bytes()
方法,该方法会返回一个 promise,由 Uint8Array 来解析。虽然 Request
和 Response
具有 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-issuance
和 private-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 功能可让格式为 r32float
、rg32float
和 rgba32float
的 GPU 纹理可混合。
WebGPU:从 GPUDevice 公开 GPUAdapterInfo
GPUDevice adapterInfo
属性公开的 GPUAdapterInfo
与 GPUAdapter
对象相同。
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
,但从未过渡到原型阶段。系统会移除此死代码,因此 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 的别名。这些功能的使用量多年来一直在稳步下降。