稳定版发布日期:2025 年 4 月 29 日
除非另有说明,否则以下变更适用于适用于 Android、ChromeOS、Linux、macOS 和 Windows 的 Chrome 136 稳定版。
HTML 和 DOM
CanvasTextDrawingStyles
的语言支持
与所有 DOM 元素一样,<canvas>
DOM 元素也接受 lang
属性,该属性用于定义针对字体选择的语言专用处理(当字体具有语言区域专用字形时)。浏览器会遵循此属性。不过,创建 OffscreenCanvas
时无法设置语言区域信息,这可能会导致以下状态:屏幕外画布生成的渲染结果与其输出所使用的画布不同。此功能会向 CanvasTextDrawingStyles
添加 lang
IDL 属性,以便开发者直接控制文本绘制和指标的语言。
跟踪 bug #385006131 | ChromeStatus.com 条目 | 规范
CSS 和界面
dynamic-range-limit
属性
让网页能够限制 HDR 内容的最大亮度。
跟踪 bug #1470298 | ChromeStatus.com 条目 | 规范
分区 :visited
链接历史记录
为防止用户浏览记录泄露,只有在用户之前从此顶级网站和框架源点点击了锚元素时,锚元素才会采用 :visited
样式。
“自链接”除外,指向网站自身网页的链接可以采用 :visited
样式,即使之前从这个顶级网站和框架源中未曾点击过这些链接也是如此。此豁免仅在与顶级框架同源的顶级框架或子框架中启用。由于网站已经知道用户访问了哪些子网页,因此不会泄露任何新信息,隐私保护优势仍然存在。这是社区提出的一项例外情况,旨在改善用户体验。
跟踪 bug #1448609 | ChromeStatus.com 条目 | 规范
未带前缀的 print-color-adjust
借助 print-color-adjust
属性,您可以调整打印网页中的颜色。这与 Chrome 已支持的 -webkit-print-color-adjust
相同,但采用了标准化名称。
-webkit-
前缀版本不会被移除。
MDN 文档 | 跟踪 bug #376381169 | ChromeStatus.com 条目 | 规范
将 string
attr()
类型重命名为 raw-string
CSS 工作组已决定将 string
attr()
类型替换为 raw-string
。
因此,从 Chrome 136 开始,attr(data-foo string)
会变为 attr(data-foo raw-string)
。
跟踪 bug #400981738 | ChromeStatus.com 条目 | 规范
不限类型的 var()
回退
var()
函数的回退部分不会根据被引用的自定义属性的类型进行验证。
跟踪 bug #372475301 | ChromeStatus.com 条目
Web API
将点击事件分派给捕获的指针
如果在分派 pointerup
事件时捕获指针,click
事件现在会分派给捕获的目标,而不是分派给 pointerdown
和 pointerup
事件的最近共同祖先,如界面事件规范所述。
对于未捕获的指针,click
目标保持不变。
跟踪 bug #40851596 | ChromeStatus.com 条目 | 规范
使用魔法注释提供显式编译提示
允许附加有关应在 JavaScript 文件中提前解析和编译哪些函数的信息。
这些信息会编码为魔法注释。
跟踪 bug #13917 | ChromeStatus.com 条目 | 规范
将导航启动器纳入 HTTP 缓存分区键
Chrome 的 HTTP 缓存键值方案已更新为包含 is-cross-site-main-frame-navigation
布尔值,以防范涉及顶级导航的跨网站泄露攻击。
具体而言,这将防止跨网站攻击,在这种攻击中,攻击者可以发起对给定网页的顶级导航,然后导航到已知由该网页加载的资源,以便使用加载时间推断敏感信息。这项变更还可以防止恶意网站使用导航信息推断用户是否之前访问过给定网站,从而更好地保护隐私。
跟踪 bug #398784714 | ChromeStatus.com 条目 | 规范
Protected Audience:文本转换帮助程序
与 WebAssembly 交互的 Protected Audience 出价和评分脚本需要高效地将字符串类型的数据转换为(和从)字节数组(例如,使用“内存”ArrayBuffer 将字符串传入和传出 WebAssembly)。这提供了两个独立函数 protectedAudience.encodeUtf8
和 protectedAudience.decodeUtf8
,它们的执行效率比在 JavaScript 中执行这些任务高出一个数量级。
RegExp.escape
RegExp.escape 是一个静态方法,用于接受字符串并返回一个转义版本,该版本可用作正则表达式中的模式。
例如:
const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.
console.log(ourLongText.replace(re));
推测规则:代码字段
这样,开发者就可以向推测规则添加标记字段。此可选字段可用于跟踪推测规则的来源。例如,在中间服务器上对它们进行不同的处理。与推测相关联的所有标记都将随 Sec-Speculation-Tags
标头一起发送。
跟踪 bug #381687257 | ChromeStatus.com 条目 | 规范
更新了 ProgressEvent,以便为 loaded
和 total
使用 double 类型
ProgressEvent 具有表示进度的属性 loaded
和 total
,它们的类型现在为 unsigned long long
。
借助此功能,这两个属性的类型会改为 double
,从而让开发者能够更好地控制值。例如,开发者现在可以创建 total
为 1 且 loaded
从 0 逐渐增加到 1 的 ProgressEvent。这与省略 max 属性时的 <progress>
HTML 元素的默认行为一致。
隐私权和安全
针对 iframe 的“权限”政策报告
引入了一种名为“潜在的权限政策违规行为”的新违规类型,该类型仅会查看权限政策(包括仅报告政策)和 iframe 中设置的 allow
属性,以检测强制执行的权限政策与传播到 iframe 的权限之间的冲突。
跟踪 bug #40941424 | ChromeStatus.com 条目 | 规范
减少 Accept-Language 标头信息中的数字“指纹”收集
减少 Accept-Language
标头值字符串在 HTTP 请求和 navigator.languages 中公开的信息量。现在,Chrome 会在 Accept-Language 标头中发送用户最喜欢的语言,而不是在每次 HTTP 请求中发送用户首选语言的完整列表。
跟踪 bug #1306905 | ChromeStatus.com 条目
身份
FedCM 更新
通过在同一 get()
调用中包含所有提供方,允许 FedCM 在同一对话框中显示多个身份提供方。这样,开发者就可以通过一种便捷的方式向用户展示所有受支持的身份提供方。
Chrome 136 还移除了对 FedCM 被动模式下的添加其他账号功能的支持。 此功能可在选择器中将“使用其他账号”按钮与其他 IdP 账号一起显示。此功能目前未被使用,并且根据用户体验对话,我们认为支持此功能会导致流程变得更复杂,而没有太大的好处。此功能仍可在 FedCM 活跃模式下正常运行。
跟踪 bug #1348262 | ChromeStatus.com 条目 | 规范
Web 身份验证有条件创建(通行密钥升级)
借助 WebAuthn 条件式创建请求,网站可以将现有密码凭据升级为通行密钥。
跟踪 bug #377758786 | ChromeStatus.com 条目 | 规范
图片和媒体内容
AudioContext
中断状态
向 AudioContextState
添加了 "interrupted"
状态。借助这项新状态,用户代理可以在独占音频访问 (VoIP) 期间或笔记本电脑盖子关闭时暂停播放。
跟踪 bug #374805121 | ChromeStatus.com 条目 | 规范
捕获的 Surface 控件
这是一个 Web API,可让 Web 应用:
- 将轮子事件转发到已捕获的标签页。
- 读取和更改已截取标签页的缩放级别。
跟踪 bug #1466247 | ChromeStatus.com 条目 | 规范
CapturedSurfaceResolution
在屏幕共享时公开所捕获 surface 的像素比。
此功能可帮助应用节省系统资源,或根据捕获 Surface 的实际和逻辑分辨率调整质量与带宽之间的权衡。
跟踪 bug #383946052 | ChromeStatus.com 条目 | 规范
WebRTC 中支持 H265 (HEVC) 编解码器
此次变更生效后,HEVC 将加入 VP8、H.264、VP9 和 AV1 的行列,成为 WebRTC 中受支持的编解码器。您可以使用 MediaCapabilities API 查询支持情况。
跟踪 bug #391903235 | ChromeStatus.com 条目 | 规范
更新了 MediaRecorder 的 H26x 编解码器支持
Chromium 的 MediaRecorder API 现在支持 HEVC 编码,引入了 hvc1.* 编解码器字符串,并添加了支持 MP4 中可变分辨率视频的新编解码器 (hev1.* 和 avc3.*)。
Chromium M130 中的 WebCodecs 中添加了对 HEVC 平台编码的支持。作为后续行动,我们在 Chromium 中添加了对 MediaRecorder API 的支持。该 API 现在同时支持具有不同 HEVC 和 H.264 MIME 类型规范的 MP4 和 Matroska 多路复用器类型。只有当用户的设备和操作系统提供必要功能时,才支持 HEVC 编码。
使用 DOMPointInit
时,请使用 getCharNumAtPosition
、isPointInFill
、isPointInStroke
此项更改使 Chromium 代码符合 SVGGeometryElement
和 SVGPathElement
的最新 W3C 规范,即在 getCharNumAtPosition
、isPointInFill
和 isPointInStroke
中使用 DOMPointInit
而非 SVGPoint
。
跟踪 bug #40572887 | ChromeStatus.com 条目 | 规范
WebGPU:GPUAdapterInfo
isFallbackAdapter
属性
GPUAdapterInfo
isFallbackAdapter
布尔值属性用于指示适配器是否存在明显的性能限制,以换取更广泛的兼容性、更可预测的行为或更出色的隐私保护。请注意,并非所有系统都提供回退适配器。
跟踪 bug #403172841 | ChromeStatus.com 条目 | 规范
浏览器更改
Fluent 滚动条
此功能可使 Windows 和 Linux 上的 Chromium 滚动条(叠加滚动条和非叠加滚动条)采用现代设计,以适应 Windows 11 Fluent 设计语言。
在 Linux 和 Windows 中,非叠加 Fluent 滚动条将默认处于启用状态。由于 Chromium 的 Linux 滚动条设计一直与 Windows 上提供的设计保持一致,因此这项变更也适用于 Linux。我们仍在确定如何公开启用叠加 Fluent 滚动条。
跟踪 bug #1292117 | ChromeStatus.com 条目
源试用
Audio Output Devices API:setDefaultSinkId()
此功能会将 setDefaultSinkId()
添加到 MediaDevices
,以便顶级帧更改其子帧使用的默认音频输出设备。
源测试 | ChromeStatus.com 条目 | 规范
让 Web 应用能够了解双峰性能时间
由于 Web 应用无法控制的因素,网页加载性能可能会呈现双峰分布。例如:
- 当用户代理首次启动(“冷启动”场景)时,它必须执行许多耗时的初始化任务,这些任务会争用系统资源。
- 浏览器扩展程序可能会影响网站的性能。例如,某些扩展程序会在您访问的每个网页上运行额外的代码,这可能会增加 CPU 使用率并导致响应时间变慢。
- 当机器忙于执行密集型任务时,网页的加载速度可能会变慢。
PerformanceNavigationTiming
对象上新增的 confidence
字段可让开发者判断导航时间是否能代表其 Web 应用。
Origin Trial | 跟踪 bug #1413848 | ChromeStatus.com 条目 | 规范
更新了 Canvas 文本渲染实现
这项变更不会在网页上显示。
CanvasRenderingContext2D
、measureText()
、fillText()
和 strokeText()
的实现发生了重大变化。这可能会影响性能,因此我们希望运行源代码试用版,以便大量使用画布的应用可以试用新实现。
源起试用 | 跟踪 bug #389726691 | ChromeStatus.com 条目
废弃和移除
移除“HTMLFencedFrameElement.canLoadOpaqueURL()
”
HTMLFencedFrameElement
方法 canLoadOpaqueURL()
已于 2023 年被 navigator.canLoadAdAuctionFencedFrame()
取代,自指向新 API 以来,调用该方法都会导致出现弃用控制台警告。该方法已从 Chrome 136 中移除。