Chrome 145

稳定版发布日期:2026 年 2 月 10 日

除非另有说明,否则以下变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 145 稳定版发布。

CSS 和界面

添加对 text-justify CSS 属性的支持

应用 text-align: justify 时,您可以使用 text-justify 属性控制文本的对齐方式。例如,即使在英文文本中,您也可以通过扩大字符间距来强制实现两端对齐。

跟踪 bug #40321528 | ChromeStatus.com 条目 | 规范

为 CSS letter-spacingword-spacing 属性启用百分比值

letter-spacingword-spacing CSS 属性启用百分比值,如 CSS 文本模块级别 4 规范中所定义。百分比值是相对于空格字符 (U+0020) 的预先测量值计算的。这可让您更灵活地控制排版,尤其是在自适应设计中,文本间距需要适应不同的视口和字体大小。

跟踪 bug #327740939 | ChromeStatus.com 条目 | 规范

针对高 border-radius 改进了边框半径阴影边缘计算

此变更可确保近圆形元素(其中 border-radius 接近 50%)上的阴影和剪切边界与曲边的视觉轮廓完全一致。

这样可以更一致地渲染复杂的圆角形状,从而消除高半径值带来的视觉差异。border-radius 调整系数可确保小半径的边角看起来清晰锐利,但随着半径值接近 50%,该系数会逐渐减弱。

这也适用于非圆形轮廓(使用 corner-shape),这些轮廓现在使用相同的半径调整机制。

跟踪 bug #448651073 | ChromeStatus.com 条目 | 规范

多列的列换行

添加对 column-wrapcolumn-height CSS 属性的支持(来自多列布局模块第 2 级)。

这样可以实现纵向列布局,甚至二维列布局。列可以具有明确的受限高度,而不是从多列容器的 content-box 高度派生而来。当一行中的所有列都已填满时,它们会换到新的一行,而不是在内嵌方向上创建溢出列。

跟踪 bug #403183884 | ChromeStatus.com 条目 | 规范

GlobalEventHandlers 公开 onanimationcancel 事件

CSS 动画级别 1 扩展了 HTML 规范中定义的 GlobalEventHandlers 接口,声明了四个新的事件处理程序:onanimationstartonanimationiterationonanimationendonanimationcancel。只有 onanimationcancel 事件处理脚本从 GlobalEventHandlers IDL 中缺失。

跟踪 bug #464010037 | ChromeStatus.com 条目 | 规范

可自定义的选择列表框

此功能将可自定义的选择支持扩展到列表框渲染模式,包括列表框模式下的单选和多选。

列表框呈现模式会在流中或页面中呈现 select 元素,而不是通过单独的按钮和弹出式窗口呈现。您可以使用 multiplesize 属性选择在各个平台上启用列表框呈现模式,例如 <select multiple><select size=4>。当 appearance: base-select CSS 属性应用于具有这些属性的 select 元素时,可改善渲染和输入行为。

此功能不支持为多选弹出式窗口自定义 select,但稍后会支持。您必须设置以下属性才能获得多选弹出式窗口:<select multiple size=1>

跟踪 bug #357649033 | ChromeStatus.com 条目 | 规范

focus 上的 focusVisible 选项

调用 focus() 方法时,您可以在 FocusOptions 字典中提供 focusVisible 布尔值。如果为 true,则始终在新聚焦的元素周围绘制聚焦环,并且该聚焦环与 :focus-visible 伪类匹配。如果为 false,则不会绘制焦点环,并且 :focus-visible 不匹配。 如果缺少此属性,用户代理会自行决定是否应绘制焦点环,并相应地匹配 :focus-visible 伪类。

跟踪 bug #462191849 | ChromeStatus.com 条目 | 规范

在强制颜色模式下启用单色表情符号渲染。

此变更更新了强制颜色模式下的 Chromium 表情符号呈现行为。 在计算值解析期间,如果表情符号的 font-variant-emoji 值计算结果为 normalunicode,则会使用其单色字形(如果可用)进行渲染。

因此,Chromium 会抑制彩色表情符号的渲染,从而确保表情符号完全参与强制配色模式流水线,并遵循系统高对比度颜色。强制颜色模式之外的行为保持不变。

跟踪 bug #420857717 | ChromeStatus.com 条目 | 规范

非根滚动器上的滚动效果

此示例展示了非根滚动容器上的弹性过度滚动效果。当嵌套的可滚动元素达到其滚动边界时,过滚动功能会应用于该元素,而不仅仅是根滚动器。这样可以减少对自定义 JavaScript 变通方法的需要,并且可以使用 overscroll-behavior 按元素进行控制。

跟踪 bug #41102897 | ChromeStatus.com 条目 | 规范

功能

在 Android 上显示真实窗口位置

Android 版 Chrome 使用 window.screenXwindow.screenYwindow.outerWidthwindow.outerHeight 准确报告浏览器窗口的位置和大小。

Chrome 之前错误地假定 Android 上的所有浏览器窗口都从坐标 (0, 0) 开始。对于使用自由窗口模式的 Android 平板电脑,此假设并不准确。网站在通过 window.screenXwindow.screenY 查询窗口的屏幕位置时,始终收到 0。这些字段以全局工作区坐标空间存储窗口左上角的坐标。

此外,Android 版 Chrome 错误地假设浏览器窗口的外部尺寸等于网站视口的内部尺寸。

window.screenXwindow.screenY 具有别名:window.screenLeftwindow.screenTop

跟踪 bug #417632037 | ChromeStatus.com 条目 | 规范

JavaScript

更新/插入

这是一项针对 Map.prototype.getOrInsertMap.prototype.getOrInsertComputedWeakMap.prototype.getOrInsertWeakMap.prototype.getOrInsertComputed 的 ECMAScript 提案。

跟踪 bug #434977728 | ChromeStatus.com 条目 | 规范

崩溃报告键值对 API

新的键值对 API window.crashReport 由每个文档的映射提供支持,该映射用于保存 Chrome 附加到崩溃报告的数据。

如果网站发生任何渲染器进程崩溃,放置在此 API 的后备映射中的数据将通过 CrashReportBody 发送。这样一来,您就可以调试应用中的哪些特定状态可能会导致给定的崩溃。

跟踪 bug #400432195 | ChromeStatus.com 条目 | 规范

默认缩短用户代理字符串

从 Chrome 145 开始,Chrome 会移除 UserAgentReduction 政策。此政策用于控制 Chrome 是否发送精简版或完整版 User-Agent 字符串。

为了增强用户隐私保护并降低被动跟踪能力,Chrome 从版本 110 开始默认减少用户代理标头中包含的信息。UserAgentReduction 政策是为企业管理此过渡而提供的临时措施。

网站访问浏览器和设备信息的推荐机制是用户代理客户端提示 (UA-CH)。UA-CH 要求网站主动请求特定信息,与旧版 User-Agent 字符串相比,这种方法更能保护隐私。如需了解详情,请参阅 web.dev 文章迁移到用户代理客户端提示

从 Chrome 145 开始,UserAgentReduction 政策不再生效。Chrome 默认发送精简的用户代理字符串。依赖此政策来接收完整(旧版)User-Agent 字符串的系统或应用可能无法再接收到预期的详细信息。

ChromeStatus.com 条目

NavigationTransition 具有一个 from 属性,用于公开导航的旧网址。公开 to(一个 NavigationDestination)即可完成此操作。当使用预提交处理程序时,此属性尤其有用,因为在预提交期间,当前网址尚未切换到目标网址。

navigation.transition 仅针对拦截的导航(即同源文档发起的导航)公开。

跟踪 bug #447171238 | ChromeStatus.com 条目 | 规范

安全付款确认:浏览器绑定密钥

这会在安全付款确认断言和凭据创建之上添加额外的加密签名。相应的私钥未在设备之间同步。这有助于您满足支付交易的设备绑定要求。

跟踪 bug #377278827 | ChromeStatus.com 条目 | 规范

安全付款确认:用户体验更新

更新了 Android Chrome 上 SPC 对话框的界面元素。

除了用户体验演示之外,还添加了以下内容:

  • 商家可以提供与付款相关的付款实体徽标的可选列表,这些徽标会显示在用户体验中。
  • 系统会根据用户是否要在不使用 SPC 的情况下继续交易或取消交易,向商家返回不同的输出状态。在这两种情况下,都只会发送一个输出状态。
  • 向支付工具添加了一个新的支付详情标签字段,以便在 SPC 中以两行显示文本。

跟踪 bug #405173922 | ChromeStatus.com 条目 | 规范

您可以在使用 Cookie Store API 设置 Cookie 时指定 maxAge

Cookie 过期时间已可使用 expires 属性进行配置,但 maxAge 提供了一种更惯用的选项,并使 Cookie Store APIdocument.cookieSet-Cookie HTTP 标头提供的选项保持一致。

跟踪 bug #430926231 | ChromeStatus.com 条目 | 规范

针对非折叠选择项的删除命令的 InputEvent 类型

此报告可针对所选文本准确报告删除快捷键的 inputType 值。当在 contenteditable 元素中使用 Ctrl+BackspaceCtrl+Delete 等删除命令并选择文本时,beforeinputinput 事件会报告 deleteContentBackwarddeleteContentForward,而不是 deleteWordBackwarddeleteWordForward。这样一来,您就可以正确了解发生了哪些编辑操作,并实现可靠的撤消、重做或自定义编辑行为。

跟踪 bug #41423062 | ChromeStatus.com 条目 | 规范

clipboardchange 事件的粘性激活

这需要用户进行粘性激活或拥有 clipboard-read 权限才能触发 clipboardchange 事件,从而防止未经授权的剪贴板监控。

clipboardchange 事件相对较新(Chrome 144),并且对面向 Web 的更改极少。在大多数情况下,发生剪贴板监控时,粘性用户激活或 clipboard-read 权限已存在(例如,在远程桌面客户端中)。

跟踪 bug #468821937 | ChromeStatus.com 条目 | 规范

多媒体

通过 VideoFrame.metadata() 从 WebRTC 视频帧公开 rtpTimestamp

添加了一个 VideoFrame.metadata() 方法,用于返回包含 rtpTimestamp 字段的字典(如果底层 VideoFrame 在其原生元数据中包含此字段)。否则,返回一个空字典。只有来自 WebRTC 源的视频帧才附加了 rtpTimestamp 元数据。

其他元数据字段已存在于原生实现中,并且可能会随着时间的推移向 JavaScript 公开,如提议的规范中所述。

ChromeStatus.com 条目 | 规范

存储

IndexedDB:SQLite 后端(内存上下文)

Chromium 的 IndexedDB 实现已基于 SQLite 重写,以替换之前使用 LevelDB 和扁平文件混合的实现。Web API 没有变化。

这有助于提高可靠性,并在一定程度上提升性能。

此设置仅适用于内存中的上下文,例如 Chromium 和 Google Chrome 中的无痕模式。这样可以限制任何新 bug 的影响,并推迟迁移已持久保存到磁盘的现有数据的需求。

跟踪 bug #436880911 | ChromeStatus.com 条目 | 规范

性能

让 Web 应用了解双峰性能时间

PerformanceNavigationTiming 对象上的新 confidence 字段可让您辨别导航计时是否代表您的 Web 应用。

跟踪 bug #1413848 | ChromeStatus.com 条目 | 规范

向性能条目添加了 presentationTimepaintTime

这会在元素时间、LCP、长动画帧和绘制时间中公开 paintTimepresentationTime

paintTime 表示渲染阶段结束且浏览器开始绘制阶段的时间。presentationTime 表示“像素到达屏幕”的时间,这在一定程度上取决于具体实现。

此功能条目省略了活动时间,该时间会单独设置。

跟踪 bug #378827535 | ChromeStatus.com 条目 | 规范

LayoutShift API 中 CssPixels 的使用

此功能会更改 LayoutShift API 中的归因数据(prevRectcurrentRect),使其以 CSS 像素而非物理像素进行报告。此行为与其他布局相关 API 不一致,因为其他布局相关 API 都使用 CSS 像素。此变更可提高一致性,简化您的使用流程,并与调试和工具中的预期单位保持一致。

跟踪 bug #399058544 | ChromeStatus.com 条目 | 规范

安全

设备绑定会话凭证

借助设备绑定会话凭据 (DBSC),网站可以将用户的会话绑定到其特定设备,从而使被盗的会话 Cookie 难以在其他机器上使用。

ChromeStatus.com 条目 | 规范

Origin API

是 Web 实现的基本组成部分,对于用户代理维护的安全边界和隐私边界至关重要。HTML 和网址之间的概念界定明确,并包含广泛使用的相邻概念,例如网站

不过,来源不会直接向您显示。虽然各种对象上都有各种来源 getter,但每个 getter 返回的都是来源的 ASCII 序列化,而不是来源本身。这会带来一些负面影响。 实际上,在处理序列化来源时,您尝试进行同源或同网站比较往往会出错,从而导致出现漏洞。从哲学角度来看,这似乎是一个缺失的安全原语,您很难准确地进行 Polyfill。

在 Chrome 145 中,Chrome 通过引入封装来源概念的 Origin 对象来弥补平台中的这一差距,并提供比较、序列化和解析等实用方法。

跟踪 bug #434131026 | ChromeStatus.com 条目 | 规范

本地网络访问权限拆分

这是对本地网络访问 (LNA) 限制的增强,其中 Chrome 将所需的权限从一个本地网络访问权限拆分为两个单独的权限。

旧权限为 local-network-access。新权限为 local-network(针对向本地地址空间中的 IP 发出的 LNA 请求)和 loopback-network(针对向环回地址空间中的 IP 发出的 LNA 请求)。

旧权限将保留为别名,并继续适用于 permissions.queryPermissions Policy。企业政策将继续以相同的方式运作;我们稍后会添加更新、更精细的企业政策。

跟踪 bug #465491626 | ChromeStatus.com 条目 | 规范

Trusted Types 规范对齐

Trusted Types 最初于 2019 年在 Chromium 中实现并推出,此后已在许多网站中得到应用。最近,其他浏览器供应商也对此产生了兴趣。

Trusted Types 规范是与原始实现一起作为“猴子补丁”规范共同编写的。随着其他人尝试实现相同的规范,它获得了新的关注。它已“上游化”到 HTML + DOM(以及少量 CSP)。在此过程中,系统会发现并修正各种不一致之处。其中一些修复可能对开发者可见。目的是更新实现,使其与上游到 HTML 中的规范保持一致。

与此同时,WebKit 已推出更新后的 Trusted Types 规范的实现,这让 Chrome 确信此更新具有高度的 Web 兼容性。

跟踪 bug #330516530 | ChromeStatus.com 条目 | 规范

图形

WebGPU:subgroup_uniformity 功能

这会为均匀性分析添加一个新范围,并更改每个范围中检查的语言部分,以便在更多情况下将子群组功能视为均匀。

跟踪 bug #454653380 | ChromeStatus.com 条目 | 规范

独立式 Web 应用

WebRequest.SecurityInfoControlled Frame

此功能为 ControlledFrame 引入了 WebRequest.SecurityInfo API。它允许 Web 应用拦截向服务器发出的 HTTPS、WSS 或 WebTransport 请求,检索服务器的证书指纹(由浏览器验证),然后使用该指纹手动验证与同一服务器建立的单独原始 TCP/UDP 连接的证书。这为应用提供了一种确认其正在与正确服务器通信的方法。

跟踪 bug #462114142 | ChromeStatus.com 条目 | 规范

源试用

添加了对在 Blink 中使用 jxl-rs(一种内存安全的纯 Rust 解码器)解码 JPEG XL (image/jxl) 图片的支持。

JPEG XL 是一种现代图片格式,已标准化为 ISO/IEC 18181,具有以下优势:

  • 采用渐进式解码,以提升感知到的加载性能。
  • 支持广色域、HDR 和高位深度。
  • 动画支持。

此实现使用 jxl-rs 而不是 C++ libjxl 参考解码器,以满足 Chromium 的内存安全要求。解码器通过 enable-jxl-image-format 标志和 enable_jxl_decoder build 标志进行门控。

ChromeStatus.com 条目

WebAudio:可配置的渲染量子

AudioContextOfflineAudioContext 现在接受可选的 renderSizeHint,这允许用户在传递整数时请求特定的渲染量子大小,在未传递任何内容或传递 default 时使用默认的 128 帧,或者在指定 hardware 时请求 User-Agent 选择合适的渲染量子大小。

源试用 | ChromeStatus.com 条目

弃用和移除

移除对 macOS 上过时虚拟相机的支持

Chrome 会针对其支持的所有 macOS 版本移除对过时虚拟摄像头的支持。

跟踪 bug #461717105 | ChromeStatus.com 条目

移除用于在 BMP 中嵌入 JPEG 或 PNG 的 BMP 扩展程序

Chrome 移除了用于在 BMP 中嵌入 JPEG 或 PNG 的 BMP 扩展程序。

跟踪 bug #456842524 | ChromeStatus.com 条目 | 规范