稳定版发布日期:2026 年 5 月 5 日
除非另有说明,否则以下变更适用于 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 148 稳定版发布。
CSS 和界面
仅限名称的 CSS 容器查询
CSS 查询容器只能根据其 container-name 进行查询,并且容器不需要设置任何 container-type:
#container {
container-name: --foo;
}
@container --foo {
input { background-color: green; }
}
<div id="container">
<div><input></div>
</div>
以前,@container 除了名称之外还需要容器类型。
跟踪 bug #40287550 | ChromeStatus.com 条目 | 规范
At 规则:CSS 功能检测
此功能向 CSS @supports 添加了 at-rule() 函数,使作者能够检测 CSS @ 规则的支持情况。
跟踪 bug #40211832 | ChromeStatus.com 条目 | 规范
开放字体格式 avar2 文本塑形和字形渲染
版本 2 的 avar(轴变量)表使字体设计人员能够创建可变字体,并更好地控制插值。虽然原始可变字体规范可独立处理轴,但 avar2 允许轴相互影响。这样一来,内容创作者就可以更轻松地使用字体,并实现紧凑的存储空间。
Avar2 的工作原理是使用与字体变体相同的熟悉概念,但将变量增量值应用于设计轴规范本身。此外,它还允许您在多个轴的范围内执行此操作。
例如,它允许字体设计师创建“元滑块”,一次性控制多个变体轴,从而使用户无需进行微调,即可找到字体设计空间中的有用角落。
通过 avar2,字体设计人员可以更好地控制字体的可用变异空间,并协调多个轴的设计轴调整。
通过在 avar 版本 2 表中以数学方式定义轴之间的关系,字体可以实现复杂的设计,而无需使用过多的主控形状,从而减小文件大小,因为插值存储得更高效。
跟踪 bug #40246300 | ChromeStatus.com 条目 | 规范
revert-rule 关键字
revert-rule 关键字会将级联回滚到上一个规则,类似于 revert-layer 将级联回滚到上一个层。例如:
div { color: green; }
div { color: revert-rule; /* Effectively green */ }
这与条件结合使用时尤为有用,因为它可以让您在不满足某些条件时消除当前规则:
div {
display: if(style(--layout: fancy): grid; else: revert-rule);
}
跟踪 bug #393582263 | ChromeStatus.com 条目 | 规范
视频和音频元素的延迟加载
向 <video> 和 <audio> 元素添加了 loading 属性,让开发者可以使用 loading="lazy" 将媒体资源加载延迟到元素靠近视口时。这与 <img> 和 <iframe> 元素的现有延迟加载行为相符,可提高网页加载性能并减少流量使用。
跟踪 bug #469111735 | ChromeStatus.com 条目 | 规范
text-decoration-skip-ink: all
为 CSS text-decoration-skip-ink 属性添加对 all 值的支持。
text-decoration-skip-ink 属性已支持 auto 和 none。all 值会进一步扩展此功能,无条件地对所有字形(包括 CJK 字符)应用跳墨,而 auto 会使 CJK 字符不跳墨,因为跳墨往往会在典型的下划线位置为表意文字脚本产生不良的视觉效果。
借助 text-decoration-skip-ink: all,调整了 text-underline-position 或 text-underline-offset 以避免与 CJK 字形冲突的开发者也可以明确选择对这些字符启用跳墨。
跟踪 bug #40675832 | ChromeStatus.com 条目 | 规范
针对 dragEnter、dragLeave 和 dragOver 事件正确设置了 dropEffect
拖放规范要求 dataTransfer 的对象 dropEffect 属性在 dragEnter、dragOver 和 dragLeave 上具有某些预定值。拖动进入和拖动经过应具有基于当前 effectAllowed 的 dropEffect,而 dragLeave 应始终具有 none dropEffect。目前,Chromium 不遵守这些规则。随着此功能的推出,Chromium 将开始遵循规范并为此属性分配正确的值,以便 Web 开发者可以开始依赖此属性。
跟踪 bug #434151262 | ChromeStatus.com 条目 | 规范
在拖动开始时抑制指针事件
根据 HTML 规范,当拖动开始时,用户代理应向拖动源发送相应的事件,以表明指针事件流已结束,并且不应再从该指针接收任何事件。此代码已针对鼠标事件部分实现,并已针对 Android 上的触控拖动完全实现。通过此功能中的工作,我们旨在在所有其他平台上完全满足此规范要求。实际上,这意味着在拖动开始后,拖动源现在将收到 pointercancel、pointerout 和 pointerleave 事件,以表明当前事件流已结束。
跟踪 bug #452372355 | ChromeStatus.com 条目 | 规范
功能
清单本地化
支持清单成员的本地化,以便应用可以根据用户的语言和地区调整其名称、说明、图标和快捷方式。开发者在 Web 应用清单中提供本地化值,浏览器会根据用户的语言设置自动选择合适的资源,从而在不同市场中引入语言支持。
如需了解详情,请参阅对 Web 应用清单的本地化支持。
跟踪 bug #380491647 | ChromeStatus.com 条目 | 规范
Android 设备上的 Web
Android 上的 Web Serial API
Web Serial API 提供了一个接口,用于通过用户系统上的串行端口或模拟串行端口的可移除 USB 和蓝牙设备连接到串行设备。现在,Android 设备也支持此功能了。
用户(尤其是教育、业余爱好和工业领域的用户)会将需要自定义软件来控制的外围设备连接到计算机。例如,学校经常使用机器人技术来教授计算机编程和电子学。这需要能够将代码上传到机器人或远程控制机器人的软件。在工业或业余爱好者环境中,铣床、激光切割机或 3D 打印机等设备由连接的计算机上运行的程序控制。这些设备通常由使用串行连接的小型微控制器控制。
如需了解详情,请参阅 web.dev 上的 Web Serial API 指南和 Web Serial 规范。
跟踪 bug #365514951 | ChromeStatus.com 条目
Android 上的 SharedWorker
长期以来,由于担心 SharedWorker 的进程生命周期不可预测,因此在 Android 上停用了它。SharedWorker 实例可能会意外终止,而不会通知用户或 Web 开发者。
不过,GitHub 上最近的一项讨论(请参阅 GitHub 讨论)表明,SharedWorker 的进程生命周期不可预测的性质可能不像之前认为的那样是一个严重的问题。基于此,我们正在重新启用 Android 上的 SharedWorker,同时调查此行为,以确保稳定可靠的体验。
跟踪 bug #40290702 | ChromeStatus.com 条目 | 规范
Web API
WebGPU:linear_indexing 功能
此功能在浏览器中首次发布后,为 WebGPU 规范添加了功能。
添加了两个新的计算着色器内置值,以提升用户体验。这些常量已针对所有后端实现(作为现有内置值的填充)。
跟踪 bug #482840564 | ChromeStatus.com 条目 | 规范
Web 身份验证立即界面模式
navigator.credentials.get() 的一种新模式,如果浏览器立即知道网站有通行密钥或密码,则会导致浏览器登录界面显示给用户,否则,如果没有此类凭据,则会使用 NotAllowedError 拒绝 Promise。这样一来,如果浏览器可以提供可能成功的登录凭据选择,网站就可以避免显示登录页面,同时仍允许在没有此类凭据的情况下使用传统的登录页面流程。
跟踪 bug #408002783 | ChromeStatus.com 条目 | 规范
获取安全付款确认功能
向 Payment Request 添加了一个新的静态方法,使 Web 开发者能够获取浏览器对安全付款确认的实现功能。
这有助于 Web 开发者了解安全付款确认功能可提供哪些功能,以便他们决定是否要将安全付款确认功能与这些功能搭配使用。
跟踪 bug #484043990 | ChromeStatus.com 条目 | 规范
生命周期更长的共享 worker
此更新为 SharedWorker 构造函数添加了一个新选项 extendedLifetime: true。此新选项请求即使在所有当前客户端都已卸载后,仍保持共享 worker 处于活动状态。这样一来,网页便可在卸载后执行需要 JavaScript 的异步工作,而无需依赖 Service Worker。
跟踪 bug #400473072 | ChromeStatus.com 条目 | 规范
Prompt API
借助 Prompt API,Web 开发者可以直接访问浏览器提供的设备端 AI 语言模型。该 API 设计提供精细的控制,与云 API 形状保持一致,可逐步增强网站功能,提供针对个性化使用情形量身定制的模型互动。这与基于任务的语言模型 API(例如 Summarizer API)以及各种 API 和框架相辅相成,可使用开发者提供的机器学习模型在设备上进行广义推理。
初始实现支持文本、图片和音频输入。此外,响应限制可确保生成的文本符合预定义的正则表达式和 JSON 架构格式。
这支持各种应用场景,从生成图片字幕和执行视觉搜索,到转写音频、对声音事件进行分类、按照特定指令生成文本,以及从多模态素材中提取信息或数据洞见。
跟踪 bug #417526788 | ChromeStatus.com 条目 | 规范
网络和连接
IDNA ContextJ 规则
IDNA 是一种用于处理域名中非 ASCII 字符的机制。它会将 http://네이버.한국/ 等网址编码为 http://xn--950bt9s8xi.xn--3e0b707e/(重定向到 naver.com)。
网址规范会设置 CheckJoiners 标志,从而启用 IDNA2008 中的 ContextJ 规则。此规则禁止在网址的大多数位置使用 ZWNJ(U+200C 零宽度不连接符)和 ZWJ(U+200D 零宽度连接符)。该实现将 UIDNA_CHECK_CONTEXTJ 选项传递给 ICU,并在其中实现此规则。
跟踪 bug #40765949 | ChromeStatus.com 条目 | 规范
在重新分配相同来源时重复使用 no-store 图片
允许在同一文档中重复使用可用的图片,以在将相同的 src 值重新分配给 <img> 元素时绕过 Cache-Control: no-store 重新加载。之前,即使图片已解码并可在文档中使用,Blink 仍会重新提取该图片。这与现有的 Gecko 和 WebKit 行为保持一致。
跟踪 bug #486562295 | ChromeStatus.com 条目 | 规范
性能
资源时间中的 ContentType
向 PerformanceResourceTiming 添加了 contentType 字段,以保存与所提取资源的 Content-Type HTTP 标头(由服务器返回)对应的字符串。
跟踪 bug #1366706 | ChromeStatus.com 条目 | 规范
WebRTC Datachannel:始终协商数据通道
实现了一个 WebRTC 扩展 alwaysNegotiateDataChannels,该扩展定义了一种方法,让应用可以在创建数据通道之前在 SDP offer 中协商数据通道。此方法还会先协商数据 m= 部分,然后再协商任何音频或视频 m 部分,并将其用作 BUNDLE 的“提供方标记的 m= 部分”。
这意味着:
const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();
将创建 SDP 中包含应用 m-line 的 offer,并且:
const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();
将创建一个协商 SDP 中应用 m-line 之后音频 m-line 的 offer。
跟踪 bug #433898678 | ChromeStatus.com 条目 | 规范
新的源试用
声明性 CSS 模块脚本
声明性 CSS 模块脚本是基于脚本的现有 CSS 模块脚本的扩展。它们允许开发者与影子根共享声明式样式表,包括声明式影子根。开发者可以使用 <style type="module" specifier="foo"> 定义内嵌样式模块,并通过引用说明符或网址(例如 <template shadowrootmode="open"
shadowrootadoptedstylesheets="foo">)将声明性模块应用于声明性影子 DOM。
源试用 | 跟踪 bug #448174611 | ChromeStatus.com 条目 | 规范
Container Timing API
借助 Container Timing API,您可以监控 DOM 中带注释的部分何时显示在屏幕上并完成初始绘制。开发者将能够使用 containertiming 属性标记 DOM 的子部分(类似于 Element Timing API 的 elementtiming),并在该部分首次绘制时接收性能条目。借助此 API,开发者可以衡量网页中各种组件的计时。
源试用 | 跟踪 bug #382422286 | ChromeStatus.com 条目 | 规范
Web 应用 HTML 安装元素
允许网站以声明方式提示用户安装 Web 应用。该元素可以选择性地接受两个属性,从而允许安装来自不同来源的内容。
源试用 | 跟踪 bug #454827186 | ChromeStatus.com 条目 | 规范
长动画帧样式时长
向 Long Animation Frame API 添加了 styleDuration 和 forcedStyleDuration 信息,使开发者能够区分样式和布局时间。
源试用 | 跟踪 bug #476826067 | ChromeStatus.com 条目 | 规范
HTML-in-canvas
HTML-in-canvas 可通过三个新的原语使用 canvas 自定义 HTML 的渲染:用于选择加入 canvas 元素的属性 (layoutsubtree)、用于绘制子元素的方法(2d:drawElementImage、WebGL:texElementImage2D、WebGPU:copyElementImageToTexture)以及用于处理更新的 paint 事件。
源试用 | 跟踪 bug #500967896 | ChromeStatus.com 条目 | 规范
连接许可名单
连接许可名单是一项旨在提供对外部端点的明确控制的功能,它通过限制从文档或工作器使用 Fetch API 或其他 Web 平台 API 发起的连接来实现此目的。
提议的实现方案涉及通过 HTTP 响应标头从服务器分发授权端点列表。在用户代理代表网页建立任何连接之前,该代理会根据此许可名单评估目标;与经过验证的端点的连接将被允许,而与列表中条目不匹配的连接将被阻止。
源试用 | 跟踪 bug #447954811 | ChromeStatus.com 条目 | 规范
提示 API 抽样参数
向 Prompt API 添加了抽样参数。这些参数可控制如何从模型中抽样 token,让开发者能够控制输出的“创意性”或“随机性”。此外,它还向 LanguageModel 实例添加了用于读取设置值的属性,以及一个用于获取这些参数的默认值和最大值的静态 LanguageModel 函数。
第一个实现添加了 temperature 和 topK 参数。
源试用 | 跟踪 bug #496663356 | ChromeStatus.com 条目 | 规范
解析 HTML 中的处理指令
处理指令(语法:<?target data>)是一种现有的 DOM 结构,在 XML 中公开,允许节点对象不是元素,但可以对文档的处理具有一定的语义含义。
例如,它们可用于表示流式传输或突出显示范围,而无需新的 DOM 元素,也不会更改 CSS 方面的 DOM 结构,或者作为 HTML 解析器的指令,用于指示如何缓冲和流式传输。
跟踪 bug #481087638 | ChromeStatus.com 条目
OpaqueRange
OpaqueRange 表示表单控件值(例如 <textarea> 或基于文本的 <input>)中的实时文本范围,因此开发者可以使用类似范围的 API 来处理值文本。
它支持 getBoundingClientRect()、getClientRects() 等操作,并可与 CSS 自定义突出显示 API 集成,以实现内嵌建议、突出显示和锚定弹出式窗口等界面。它通过仅公开值偏移量来保留封装,同时针对 startContainer 和 endContainer 返回 null,因此不会公开 DOM 端点和内部结构。