Published: March 05, 2025
除非另有说明,否则以下更改适用于 Android、ChromeOS、Linux、macOS 和 Windows 的最新 Chrome Beta 版渠道。如需详细了解此处列出的功能,请点击提供的链接或访问 ChromeStatus.com 上的列表。截至 2025 年 3 月 5 日,Chrome 135 仍处于 Beta 版阶段。您可以从 Google.com 下载桌面版最新版本,也可以从 Android 上的 Google Play 商店下载最新版本。
CSS 和界面
此版本新增了 13 项 CSS 和界面功能。
锚点定位:记住滚动偏移量
添加了对“记住滚动
偏移量”概念的支持。当定位的元素具有默认锚点,并且在一侧与此锚点绑定,而在另一侧与原始包含块绑定时,在调整元素大小时会考虑滚动偏移量。这意味着,当文档以给定的滚动偏移量滚动时,您可以将所有可见空间(使用 position-area)用于锚定元素。为了避免每次滚动文档时都进行布局(调整元素大小),浏览器会使用“记住滚动偏移量”,而不是始终使用当前滚动偏移量。记住的滚动偏移量会在“锚点重新计算点”更新,即定位的元素最初显示的位置,或者在选择其他位置选项(position-try-fallbacks) 时。
CSS 惰性
使元素处于惰性状态会影响该元素是否可聚焦、编辑、选择和通过页内查找进行搜索。它还会影响该元素是否在无障碍树中可见。interactivity 属性用于指定元素及其扁平树后代(包括文本运行)是否处于惰性状态。interactivity 属性接受以下两个值之一:auto 或 inert。
逻辑溢出属性
借助 overflow-inline 和 overflow-block CSS 属性,您可以根据书写模式设置内联和块方向的溢出。在水平书写模式下,overflow-inline 映射到 overflow-x,而在垂直书写模式下,它映射到 overflow-y。
与符号相关的函数:abs() 和 sign()
dynamic-range-limit 属性
允许网页限制 HDR 内容的最大亮度。
shape() 函数
借助 shape() 函数,您可以在 clip-path 属性中使用响应式自由形状。它允许您定义一系列命令,这些命令与 path() 中的命令等效。不过,这些命令接受响应式单位(例如 % 或 vw)以及任何 CSS 值(例如自定义属性)。
::column 伪元素
::column 伪元素,允许对生成的内容片段应用一组有限的样式。具体而言,这仅限于不影响布局的样式,因此可以在布局后应用。
::scroll-button() 伪元素
允许将交互式滚动按钮创建为伪元素。例如:
.scroller {
overflow: auto;
}
.scroller::scroll-button(inline-start) {
content: "<";
}
.scroller::scroll-button(inline-end) {
content: ">";
}
这些按钮应可聚焦,并且行为与按钮类似(包括其 UA 样式)。
激活后,应按某个方向滚动一定量。
如果无法按该方向滚动,则应停用这些按钮(并使用 :disabled 设置样式),否则应启用这些按钮(并使用 :enabled 设置样式)。借助选择器,您可以在四个逻辑方向(block-start、block-end、inline-start、inline-end)以及四个物理方向(up、down、left、right)中定义按钮。
::scroll-marker 和 ::scroll-marker-group
为滚动容器添加了 ::scroll-marker 和 ::scroll-marker-group。
借助这些伪元素,您可以为滚动容器内的所有关联项创建一组可聚焦的标记。
嵌套伪元素样式
支持对嵌套在其他伪元素内的伪元素设置样式。
到目前为止,支持的伪元素包括:::before::marker 和 ::after::marker,未来将支持 ::column::scroll-marker。
对 :visited 链接历史记录进行分区
为了消除用户浏览记录泄露问题,只有在之前从该顶级网站和框架源点击过锚点元素时,这些元素才会设置为 :visited 样式。通过仅对之前在此网站和框架中点击过的链接设置样式,现在已废弃许多为获取 :visited 链接样式信息而开发的边信道攻击,因为它们不再向网站提供有关用户的新信息。
对于 自链接,存在例外情况,即指向网站自身页面的链接可以设置为 :visited 样式,即使之前未在该顶级网站和框架来源中点击过这些链接也是如此。此豁免仅在顶级框架或与顶级框架同源的子框架中启用。隐私保护优势仍然存在,因为网站已经知道用户访问过哪些子页面,因此不会泄露任何新信息。这是社区要求的例外情况,可改善用户体验。
插值进度函数表示法:CSS *progress() 函数
safe-area-max-inset-* 变量
除了 safe-area-inset 环境变量之外,Chrome 现在还支持这些变量的 max-area-safe-inset-* 变体。与动态内边衬区不同,最大边衬区不会更改,并且表示可能的最大安全区域边衬区。
在构建高性能的边缘到边缘网络体验时,这些值是必需的。
Web API
向 Web Speech API 添加 MediaStreamTrack 支持
向 Web Speech API 添加 MediaStreamTrack 支持。Web Speech API 是一种 Web 标准 API,允许开发者将语音识别和合成功能融入到网页中。目前,Web Speech API 使用用户的默认麦克风作为音频输入。借助 MediaStreamTrack 支持,网站可以使用 Web Speech API 为其他音频来源(包括远程音轨)添加字幕。
Blob 网址分区:提取和导航
作为存储分区功能的延续,此功能实现了按存储键(顶级网站、框架来源和 has-cross-site-ancestor 布尔值)对 Blob 网址访问进行分区,但顶级导航除外,顶级导航将仅按框架来源进行分区。
脚本的 CSP require-sri-for
借助 require-sri-for 指令,您可以断言给定类型的每个资源都需要进行完整性检查。如果尝试加载没有完整性元数据的该类型资源,该尝试将失败并触发 CSP 违规报告。此 intent 涵盖了此指令的 "script" 值
。
为 srcdoc iframe 创建 Service Worker 客户端并继承其控制器
Srcdoc 上下文文档目前不是 Service Worker 客户端,也不受其父级的 Service Worker 的涵盖。这会导致一些差异(例如,资源时间报告会报告这些文档加载的网址,但 Service Worker 不会拦截这些网址)。此功能旨在通过为 srcdoc iframe 创建 Service Worker 客户端并使其继承其父级的 Service Worker 控制器来解决这些差异。
向捕获的指针分派点击事件
如果在分派 pointerup 事件时捕获了指针,则 click 事件将分派给捕获的目标,而不是根据界面事件规范分派给 pointerdown 和 pointerup 事件的最近公共祖先。对于未捕获的指针,click 目标保持不变。
Float16Array
添加了 Float16Array 类型化数组。在写入 Float16Array 实例时,数值会舍入为 IEEE fp16。
将导航发起者纳入 HTTP 缓存分区键
Chrome 的 HTTP 缓存键控方案已更新,以包含 is-cross-site-main-frame-navigation 布尔值,从而缓解涉及顶级导航的跨网站泄露攻击。具体而言,这将阻止跨网站攻击,攻击者可以在其中发起对给定页面的顶级导航,然后导航到已知由该页面加载的资源,以便通过加载时间推断敏感信息。此更改还通过阻止恶意网站使用导航来推断用户之前是否访问过给定网站,从而提高了隐私保护水平。
HSTS 跟踪防护
缓解第三方通过 HSTS 缓存进行的用户跟踪。
此功能仅允许对顶级导航进行 HSTS 升级,并阻止对子资源请求进行 HSTS 升级。这样做使得第三方网站无法使用 HSTS 缓存跨网络跟踪用户。
调用者命令:command 和 commandfor 属性
借助 <button> 元素上的 command 和 commandfor 属性,您可以以更易于访问且更具声明性的方式为按钮分配
行为,同时减少
bug 并简化交互所需的 JavaScript 代码量。具有
commandfor和command属性的按钮在被点击、触摸或
通过按键操作时,将对
commandfor引用的元素分派CommandEvent,并具有一些默认行为,例如打开对话框和弹出式窗口。
链接 rel="facilitated-payment" 以支持推送付款
添加了对 <link rel="facilitated-payment" href="..."> 的支持,作为浏览器应通知已注册的付款客户端有关待处理的推送付款的提示。
NavigateEvent sourceElement 属性
当导航由元素(即链接点击或表单提交)发起时,NavigateEvent 上的 sourceElement 属性将返回发起元素。
NotRestoredReasons API 原因名称更改
NotRestoredReasons API 正在更改一些原因文本,以与标准化名称保持一致。监控这些原因的开发者可能会注意到原因文本发生了变化。
设备端 Web Speech API
Service Worker 客户端网址忽略 history.pushState 更改
修改了 Service Worker Client.url 属性,以忽略使用 history.pushState() 和其他类似历史记录 API 进行的文档网址更改。Client.url 属性旨在成为忽略此类更改的 HTML 文档的创建网址。
支持 rel 和 relList 属性,适用于 SVGAElement
SVG 2.0 中的 SVGAElement 接口允许对 <a> 元素
进行操作,类似于 HTML 锚点元素。支持 rel 和 relList 属性
可增强开发者的安全性和隐私保护。与 HTML 锚点元素保持一致可确保 Web 技术的一致性和易用性。
RTC 编码帧的时间戳
此功能旨在向 Web 公开一些时间戳,这些时间戳存在于通过 RTCPeerConnection 传输的 WebRTC 编码帧中。相关时间戳包括:
- 捕获时间戳:最初捕获帧时的时间戳
- 接收时间戳:接收帧时的时间戳
更新 ProgressEvent 以对“loaded”和“total”使用 double 类型
ProgressEvent 具有属性 loaded 和 total,用于指示进度,其类型现在为 unsigned long long。借助此功能,这两个属性的类型将更改为 double,这让开发者可以更好地控制值。例如,开发者现在可以创建一个 total 为 1 且 loaded 从 0 逐渐增加到 1 的 ProgressEvent。如果省略 max 属性,则这与 <progress> HTML
元素的默认行为保持一致。
fetchLater API
fetchLater() API 是一种 JavaScript API,用于请求延迟提取,尤其适用于在页面生命周期结束时进行更可靠的信标处理。在文档中调用后,浏览器会将延迟请求排入 PENDING 状态的队列,并将在以下最早的条件满足时调用该请求:
文档被销毁。在用户指定的时间之后。出于隐私保护方面的原因,无论剩余多少时间,当文档进入 bfcache 时,所有待处理的请求都将被刷新。浏览器决定发送请求的时间。
该 API 返回一个 FetchLaterResult,其中包含一个布尔值字段 activated,该字段可能会更新以告知延迟请求是否已发送。发送成功后,浏览器将忽略整个响应,包括正文和标头。
请注意,从 API 用户的角度来看,确切的发送时间是未知的。
新的来源试用
在 Chrome 135 中,您可以选择加入以下新的 来源试用。
兴趣调用者
此功能为 interesttarget 属性添加了 <button> 和 <a>
元素。interesttarget 属性为元素添加了“兴趣”行为,这样,当用户对元素“表现出兴趣”时,系统会在目标元素上触发操作。操作可以包括显示弹出式窗口等。用户代理将使用鼠标悬停在元素上、在键盘上按特殊热键或在触摸屏上长按元素等方法来检测用户何时对元素“表现出兴趣”。
当表现出兴趣或失去兴趣时,系统会在目标上触发 InterestEvent,对于弹出式窗口,这些事件具有默认操作(显示和隐藏弹出式窗口)。
基于签名的完整性
此功能为 Web 开发者提供了一种机制来验证他们所依赖资源的来源,从而为信任网站的依赖项奠定技术基础。简而言之:服务器可以使用 Ed25519 密钥对对响应进行签名,而 Web 开发者可以要求用户代理使用特定的公钥验证签名。这为内容安全政策提供的基于网址的检查以及子资源完整性提供的基于内容的检查提供了一个有用的补充。
废弃和移除
此版本的 Chrome 引入了以下废弃和移除。 如需查看计划废弃、当前废弃和之前移除的列表,请访问 ChromeStatus.com。
此版本的 Chrome 废弃了一项功能。
废弃 Intl 语言区域信息的 getter
Intl 语言区域信息 API 是第 3 阶段 ECMAScript TC39 提案,旨在通过公开语言区域信息(例如周数据 [一周中的第一天、周末开始日、周末结束日、第一周的最小天数] 以及语言区域中使用的文本方向小时周期)来增强 Intl.Locale 对象。Chrome 在 Chrome 99 中实现了一个实现,但该提案更改为将多个 getter 移至函数。我们需要移除已废弃的 getter 并重新启动重命名的函数。
此版本的 Chrome 移除了三项功能。
移除已废弃的 navigator.xr.supportsSession 方法
在 2019 年 9 月收到 TAG 对 API 形态的反馈后,WebXR 规范中的 navigator.xr.supportsSession 已被 navigator.xr.isSessionSupported 方法取代。从那时起,它在 Chrome 中被标记为已废弃,并生成控制台警告,将开发者重定向到更新后的 API。该调用的使用率非常低,并且已确认用于构建 WebXR 内容的所有主要框架都已更新为使用较新的调用。
移除 NavigateEvent canTransition 属性
在 Chrome 108 中,NavigateEvent 的 transitionWhile() 方法和 canTransition 属性已替换为新的 intercept() 方法和 canIntercept 属性。当时,transitionWhile() 方法已被移除。不过,我们忘记移除 canTransition 属性:相反,我们将其保留为 canIntercept 的别名。在 Chrome 135 中,我们将修复此问题并移除 canTransition。对 canTransition 的任何使用都可以替换为 canIntercept,行为不会发生任何变化。
移除 WebGPU 限制 maxInterStageShaderComponents
由于以下因素的组合,maxInterStageShaderComponents 限制将被移除:
- 与
maxInterStageShaderVariables冗余:此限制已具有类似用途,用于控制着色器阶段之间传递的数据量。 - 细微差异:虽然这两个限制的计算方式略有不同,但这些差异很小,可以在
maxInterStageShaderVariables limit中有效管理。 - 简化:移除
maxInterStageShaderComponents可简化着色器接口并降低开发者的复杂性。 开发者无需管理两个单独的限制(这两个限制同时适用,但存在细微差异),而是可以专注于名称更恰当且更全面的maxInterStageShaderVariables。