Chrome 117 Beta 版

CSS 网格 subgrid、CSS 的进入和退出动画支持、数组分组、迭代器帮助程序等。

除非另有说明,否则上述更改均适用于最新的 Chrome Beta 版(Android、ChromeOS、Linux、macOS 和 Windows)。如需详细了解此处列出的功能,请通过所提供的链接或 ChromeStatus.com 上的列表详细了解。Chrome 117 的 Beta 版已于 2023 年 8 月 16 日截止。您可以在 Google.com 桌面版或 Android 版 Google Play 商店中下载最新版。

CSS

此版本新增了六项 CSS 功能。前三个属性是对离散属性启用过渡的部分工作,用于实现进入和退出动画

@starting-style 规则

此 @ 规则允许作者在第一次样式更新时启动 CSS 过渡。

首次更新元素的样式或显示类型从 none 更改为其他类型时,CSS 过渡不会触发从初始样式过渡。这是为了避免初始样式出现意外转换。如需从第一次样式更新开始过渡,您现在可以在 @starting-style 规则中应用样式。例如,以下 CSS 在 div 的首次样式更新时,就会启动从绿色到绿黄色的背景颜色转换:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

叠加层属性

借助 overlay 属性,开发者可以将元素保留在顶层以实现退出过渡。添加叠加层属性以指示某个元素是否位于顶层,该属性可采用两个值:noneauto

CSS transition-Behavior 属性

transition-behavior CSS 属性是 transition 属性的长篇幅,支持在转换中使用离散属性。通过为过渡行为指定 allow-discrete 值,离散属性现在会启动动画,并从其初始值翻转到最终值 50%。对于 display: nonecontent-visibility: hidden 是初始值或最终值之一的过渡,可见值将在过渡期间使用。

CSS grid subgrid 值

grid-template-columnsgrid-template-rowssubgrid 值现已在 Chrome 中实现。此值允许嵌套网格使用其父级中定义的轨迹,而无需为行和/或列创建新的轨迹定义。

CSS 文本换行:美观

CSS text-wrap 属性的 pretty 值会针对最佳布局(而非速度)进行优化。它针对的是正文文本,因此需要多行内容。通过使用 pretty,开发者会明确选择速度可能比 wrap 慢的布局方法,从而优化性能。Chrome 中目前的实现是针对孤立词进行优化,以防止在一段文本底部显示单个字词。

在 Chrome 117 中,不妨尝试运行这个 text-wrap: 的详情演示:,看看该值会如何改变文本的呈现方式。

include-intrinsic-size: auto 无 支持

此功能扩展了现有的 contain-intrinsic-size 语法,也包含 auto && none

Web API

数组分组

数组分组是一种极为常见的操作,最好是 SQL 的 GROUP BY 子句和 MapReduce 编程(最好是 map-group-reduce)。通过将数据分组,开发者可以计算更高阶的数据集,例如某个同类群组的平均年龄或某个网页的每日 LCP 值。此功能通过添加 Object.groupByMap.groupBy 静态方法来实现这一点。Object 方法会返回一个普通对象,其中组是属性键。Map 方法会返回 Map,其中键可以是任意值。

通过 Clear-Site-Data 标头清除客户端提示

网站现在可以使用 Clear-Site-Data: "clientHints" 清除客户端提示缓存。现在,当相同标头定位“Cookie”“cache”或“*”时,客户端提示也会被清除。这是因为,如果用户清除界面客户端提示中的 Cookie,那么客户端提示缓存就是缓存,它们分别与通配符目标保持一致。

Clear-Site-Data 标头通配符语法

现在,网站将能够通过发送 Clear-Site-Data: "*" 清除所有存储目标(“Cookie”“缓存”和“存储”)。请注意,Chrome 目前不支持清除“executionContexts”,但如果我们以后添加了它,任何针对“*”的标头也会清除它们。

customElements.getName

customElements.getName() 方法会返回指定自定义元素定义的标记名称。

迭代器帮助程序

迭代器帮助程序是迭代器原型上的新方法,允许一般使用和使用迭代器。

使 CaptureController 从 EventTarget 接口派生

借助 CaptureController 接口,可以进一步操控屏幕截图会话。将来,与拍摄会话相关的事件预计会分派到该控制器上。为了能够管理此类事件的监听器,我们在 CaptureController 上提供了 EventTarget 方法。

PerformanceResourceTiming 分发类型

PerformanceResourceTimingdeliveryType 属性会返回有关如何传送资源的信息。例如,从缓存传递的资源(当前通过 transferSize 公开)以及由上一页预提取的导航。

网址 setter 中的端口溢出检查

设置 url.port 时,系统会检查端口值。超出 16 位数字限制的所有值都将不再有效。例如,更改更改后,以下脚本的行为会有所不同:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

在更改之前,输出为 65536。完成更改后,输出结果将为 80。

Private State Token API

这是一个新 API,无需使用第三方 Cookie 等跨网站永久标识符,即可跨网站传播有限的私密信号。弃用第三方 Cookie 后,依赖第三方 Cookie 的防欺诈方法将无法正常使用。Private State Token API 不生成或定义反欺诈信号:这取决于相应的第一方和令牌颁发者。而是通过对这些信号中传输的信息施加限制来保护隐私。此 API 基于 Privacy Pass 协议的变体,IETF 正对该协议进行标准化。可视为 Privacy Pass 协议的网络公开形式。我们将针对新版本和令牌类型更新 API 规范,并将与 Privacy Pass 工作组规范保持同步。预期变更将出现在底层加密协议和令牌颁发代码中:我们预计面向开发者的发布和兑换 Fetch API 不会发生变化。Private State Token API 以前称为 Trust Token API。重命名是为了更准确地捕获底层语义,并向用户突显隐私保护方面的优势。

与网址标准兼容的 IPv4 嵌入式 IPv6 主机解析器

我们将更新解析 IPv4 嵌入式 IPv6 主机解析器的行为,以严格遵循网页网址标准。以下是针对 IPv6 地址的限制:

  • 嵌入的 IPv4 地址应始终由 4 部分组成。
  • 少于 4 个部分(例如 http://[::1.2])的地址将不再有效。此功能是 2023 年网址互操作工具的一部分。

网址:允许将“%00”用作有效网址路径

目前,如果网址的路径部分包含“%00”(或 null),这不符合网址标准,Chrome 便会认定该网址无效。例如,在 Chrome 中,以下测试会失败,因为 new URL(...) 会抛出“Invalid 网址”(无效网址)异常。

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

根据网址标准,网址路径中的任何字符或字节序列都不应导致网址无效,并且此项变更会将 Chrome 更新为遵循该标准。

WebRTC RTP 标头扩展控件

扩展 WebRTC RTCRtpTransceiver API 以控制协商哪些 RTP 标头扩展。

VideoEncoder 中的每帧量化器

为 VideoEncoder 添加了“量化器”VideoEncoderBitrateMode。这样能够为 AV1、VP9 和 AVC 视频编解码器的每一帧指定量化器参数。

requestDevice()中的 WebUSB exclusionFilters选项

借助 navigator.usb.requestDevice() 中的 exclusionFilters 选项,Web 开发者可以从浏览器选择器中排除某些设备。可用于排除与更广泛的过滤条件匹配但不受支持的设备。

正在进行源试用

在 Chrome 117 中,您可以选择启用以下新的源试用

使用共享 Brotli 进行压缩字典传输

此功能增加了对将指定的先前响应用作 Brotli 压缩 HTTP 响应的外部字典的支持。

注册 CompressionDictionaryTransport 源试用

WebSQL 弃用试用

我们正在从 Chrome 中移除 WebSQL。我们建议依赖 SQLite 的网站通过 Wasm 迁移到 SQLite

通过此弃用试用,需要更多时间进行迁移的开发者能够继续使用 WebSQL,直到 Chrome 123(2024 年 3 月)。注册以参与 WebSQL 弃用试用

标签页式 Web 应用

允许 Web 应用窗口具有标签栏,例如,用于在同一应用中修改多个文档。这会添加新的“标签页式”显示模式和一个新的清单字段,以允许对标签栏进行自定义。

报名参加标签页式 Web 应用源试用

弃用和移除

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

此版本的 Chrome 废弃了两项功能。

废弃 unload 事件

Chrome 117 将开始废弃 unload 事件处理脚本。如果您的网站使用了这些方法,我们强烈建议您阅读关于弃用 unload 的专用博文,了解更多详情。

废弃了 TLS SHA-1 服务器签名

Chrome 将不再支持在 TLS 握手期间使用 SHA-1 为服务器签名进行签名算法。这不会影响服务器证书(已被移除)或客户端证书(会继续受到支持)中的 SHA-1 支持。

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

[WebRTC] 取消发布基于回调的旧版 getStats()

RTCPeerConnection 有两个版本的 getStats(),一个版本符合规范,通过解析 promise 返回报告;另一个是非标准版本,通过回调作为第一个参数返回截然不同的报告。基于回调的回调现已移除。

如需详细了解迁移,以及在需要更多时间时应采取的措施,请参阅旧版 getStats() 迁移指南

移除了 WebRTC getStats datachannelIdentifier 的 -1 值

WebRTC getStats API 提供了 dataChannelIdentifier 属性。如果在建立数据通道连接之前查询统计信息,则此参数将不再提供“-1”值。相反,字典成员将被省略。

移除了 WebRTC getStats encoderImplementation 和 DederImplementation “未知”

WebRTC getStats API 提供了出站和入站视频的编码器和解码器实现名称。如果在对视频帧进行编码或解码之前查询统计信息,该参数将不再提供“unknown”值。相反,字典成员将被省略。

CSS 属性 -webkit-highlight

移除用于突出显示文字但从未标准化的 CSS 属性 -webkit-highlight。它在 Chromium 中没有明显的影响(它已经过解析,但从未用于呈现内容)。该属性已于 2014 年从 WebKit 中移除,并在 MDN 上被标记为已弃用,并已在近期被 CSS 突出显示伪规范取代。