除非另有说明,否则以下变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版渠道版本。如需详细了解此处列出的功能,请访问提供的链接或 ChromeStatus.com 上的列表。Chrome 124 于 2024 年 3 月 20 日发布 Beta 版。您可以在桌面设备上访问 Google.com,或在 Android 设备上访问 Google Play 商店,下载最新版本。
CSS
此版本新增了两项 CSS 功能。
CSSImportRule.styleSheet
允许 CSSImportRule.styleSheet 为 null。如果没有关联的 CSS 样式表,CSSImportRule 中的 styleSheet 属性可以为 null。
CSSKeyframesRule.length
公开 CSSKeyframesRule 的 length 属性。支持索引属性的接口必须定义一个名为 length 的整数类型属性。
HTML
此版本新增了两项 HTML 功能。
writingsuggestions 属性
浏览器开始在用户在网络上的各种可编辑字段中输入内容时,向用户提供撰写建议。虽然这通常对用户很有用,但在某些情况下,开发者可能希望关闭浏览器提供的写作辅助功能,例如提供类似功能的扩展程序或网站。
新属性 writingsuggestions 的值为 true 或 false,可让开发者开启或关闭浏览器提供的写作建议。元素的属性状态也可以从祖先元素继承,从而使开发者能够以每个元素、每个文档或子文档为单位控制此功能。
键盘可聚焦滚动容器
通过使用依序焦点导航使滚动容器可聚焦,从而提高无障碍性。在此变更之前,除非 tabIndex 明确设置为 0 或更大值,否则 Tab 键不会聚焦滚动条。
默认情况下,将滚动条设置为可聚焦,这样无法(或不想)使用鼠标的用户就可以使用键盘上的 Tab 键和箭头键来聚焦被剪裁的内容。仅当滚动条不包含任何可通过键盘聚焦的子项时,才会启用此行为。
此功能将从 Chrome 124 开始逐步推出,并将在 Chrome 125 中向所有用户提供。详细了解可通过键盘聚焦的滚动条。
Web API
Attribution Reporting API 的新增功能
Attribution Reporting API 中添加了一些功能,可通过支持解析失败调试报告来创建额外的调试功能,通过支持用于指定首选注册平台的字段来提高 API 的易用性,并提高隐私保护水平。
文档画中画:添加了用于隐藏“返回标签页”按钮的选项
这会向文档画中画 API 添加一个新参数 (disallowReturnToOpener),当该参数设置为 true 时,会提示浏览器不应在画中画窗口中显示允许用户返回到打开器标签页的按钮。
虽然在视频画中画模式下,始终有必要提供一个返回到打开标签页的按钮(视频流可以返回到打开标签页中的视频元素),但在文档画中画模式下,情况并非总是如此。这样一来,如果开发者认为此类按钮不适合其用例,就可以更好地控制用户体验。
如需了解详情,请参阅有关文档画中画的文档。
文档渲染阻塞
借助此功能,作者可以阻止文档渲染,直到关键内容解析完毕,从而确保所有浏览器中的首次绘制效果一致。 如果没有此功能,首次绘制的状态取决于解析器让步的启发法,而启发法可能因浏览器而异。
这对于视图过渡尤为重要,因为第一帧上解析的 DOM 状态可能会极大地改变创建的过渡。
请注意,此功能实现了一种 <link rel=expect href="#id"> 语法,该语法允许 link 元素引用页面上另一个预期元素。然后,系统会阻止渲染,直到预期元素完全解析。这取代了之前允许整个文档被渲染阻塞的 HTML 属性实现。
jitterBufferTarget 个属性
jitterBufferTarget 属性允许应用指定 RTCRtpReceiver 抖动缓冲区要保留的媒体的目标时长(以毫秒为单位)。这会影响用户代理执行的缓冲量,进而影响重新传输和丢包恢复。通过更改目标值,应用可以控制播放延迟与因网络抖动而导致音频或视频帧耗尽的风险之间的权衡。
pageswap 个事件
当导航操作将当前文档替换为新文档时,系统会在当前文档的窗口对象上触发 pageswap 事件。该事件提供有关导航的激活信息(type、新文档的 NavigationHistoryEntry)。
如果导航具有跨文档视图过渡,则系统会在捕获旧文档的状态之前分派该事件。这样,开发者就可以根据导航的激活信息和旧文档的当前视觉状态,配置为过渡捕获的旧状态。
priority HTTP 请求标头
这会为所有 HTTP 请求添加 priority 请求标头,其中包含请求发送时的优先级信息。
RFC 9218(HTTP 的可扩展优先级方案)定义了一个 priority HTTP 请求标头,用于向源站(和中介)发出请求优先级信号。它还定义了 HTTP/2 和 HTTP/3 的协商流程和协议级帧,以承载相同的优先级信息。
该标头只能在首次请求资源时指示其初始优先级,而基于帧的机制则允许在请求之后修改优先级。
标头可以端到端地运行到源服务器(并提供一种机制,让源服务器在被中介识别时替换优先级),而帧仅限于在链路级运行。
此功能专门用于支持基于标头的优先级方案。
专用网络访问权限,可放宽混合内容限制
为了与本地网络上没有全局唯一名称因而无法获取 TLS 证书的设备建立连接,此功能向 fetch() 引入了一个新选项,用于声明开发者与此类设备通信的意图。其中包括一项新的受政策控制的功能,用于限制每个网站对此功能的访问权限,以及用于服务器预检响应的新标头,以提供额外的元数据。
Sec-CH-UA-Form-Factors 客户端提示
此提示会向服务器提供有关用户代理设备规格的信息。它会返回以下一个或多个设备类型值:
- 桌面设备:在个人计算机上运行的用户代理。
- 汽车:嵌入在车辆中的用户代理,用户可能负责操作车辆,无法关注细微细节。
- 移动设备:用户通常随身携带的小型触控设备。
- 平板电脑:一种触控设备,尺寸大于“移动设备”,通常不随身携带。
- XR:增强或替换用户周围环境的沉浸式设备。
- EInk:一种屏幕更新速度慢且色彩分辨率有限或没有色彩分辨率的设备。
- 手表:一种屏幕很小(通常小于 2 英寸)的移动设备,用户可以随身携带,并能快速查看。
setHTMLUnsafe和parseHTMLUnsafe
setHTMLUnsafe 和 parseHTMLUnsafe 方法允许通过 JavaScript 使用声明式 Shadow DOM。与 innerHTML 或 DOMParser 相比,这些方法还提供了一种更简单的方法,可强制将 HTML 解析为 DOM。
Shared Storage API 的更新
此更新增加了对运行跨源 worklet 的支持,而无需创建 iframe。
Streams API:ReadableStream 异步迭代
Streams API 提供了无处不在、可互操作的原语,用于创建、组合和使用数据流。此项变更为 ReadableStream API 添加了对异步可迭代协议的支持,使可读流可用作 await...of 循环的来源。
SVG context-fill 和 context-stroke
实现了一项现有的 SVG 功能,该功能允许在指定填充和描边属性时使用关键字 context-fill 和 context-stroke。这只会影响使用 <use> 元素实例化的 SVG 子树,以及使用 <path> 元素上的 marker 属性实例化的 <marker> 元素。在这种情况下,context-fill 和 context-stroke 会解析为 <use> 或 <path> 上的 fill 和 stroke 属性的值。
WebGPU:ServiceWorker 和 SharedWorker 支持
WebGPU 现已支持 ServiceWorker 和 SharedWorker,与现有的 WebGL 功能保持一致。
Service Worker 可为 WebGPU 提供离线功能和后台处理。这意味着,即使在用户未主动与页面互动时,图形密集型 Web 应用或 Chrome 扩展程序也可以缓存资源并执行计算。
Shared Worker 允许多个标签页或扩展程序上下文协调和共享 WebGPU 资源。这可以带来更流畅的性能,并更高效地利用用户的图形硬件。
WebSocketStream API
WebSocket API 为 RFC6455 WebSocket 协议提供 JavaScript 接口。虽然它一直表现良好,但从人体工程学的角度来看,它并不方便,并且缺少背压这一重要功能。WebSocketStream API 的目的是通过将 WHATWG Streams 与 WebSocket API 集成来解决这些缺陷。
如需了解详情,请参阅 WebSocketStream:将流与 WebSocket API 集成。
TLS 密钥封装机制 X25519Kyber768
通过部署 Kyber768 抗量子密钥协议算法,保护当前的 Chrome TLS 流量免受未来量子密码分析的影响。
这是一种基于 IETF 标准的混合 X25519 和 Kyber768 密钥协议。 此规范和发布不在 W3C 的范围内。此密钥协议将作为 TLS 加密算法推出,对用户而言应该是透明的。
如需了解详情,请参阅使用混合 Kyber KEM 保护 Chrome 流量。
正在进行的源试用
在 Chrome 124 中,您可以选择启用以下新的源试用。
变更事件的弃用试用
变更事件(包括 DOMSubtreeModified、DOMNodeInserted、DOMNodeRemoved、DOMNodeRemovedFromDocument、DOMNodeInsertedIntoDocument 和 DOMCharacterDataModified)可能会损害网页性能,还会显著增加向 Web 添加新功能的复杂性。这些 API 于 2011 年从规范中废弃,并于 2012 年被性能更好的 Mutation Observer API 取代。
从 Chrome 127 开始,系统将默认停用变更事件支持,时间大约在 2024 年 7 月 30 日。请务必在该日期之前将代码迁移到 Mutation Observer API,以免网站出现故障。 如果需要更多时间,请注册变更事件弃用试用,以便在给定网站上重新启用该功能一段时间。此功能可在 Chrome 134 中使用,截止日期为 2025 年 3 月 25 日。
或者,您也可以使用 MutationEventsEnabled 企业政策达到相同目的,同样支持到 Chrome 134。
注册变更事件弃用试用。
弃用和移除
此版本的 Chrome 引入了以下弃用和移除功能。 请访问 ChromeStatus.com,查看计划弃用、当前弃用和之前移除的功能列表。
此 Chrome 版本移除了 1 项功能。
移除了权限和权限政策“window-management”的“window-placement”别名
移除了权限和权限政策“window-management”的“window-placement”别名。这是重命名字符串的更大努力的一部分,最终将弃用并移除“window-placement”。 随着 Window Management API 的不断发展,术语变更可提高描述符的持久性。