六月份的Servo:真实世界兼容性、媒体查询、SharedWorker等
Servo 0.4.0 包含我们在六月中发布的所有更改,总共又创下了558个提交的新记录(四月:534,五月:391)。有关安全修复,请参见 § 安全 。我们推出了若干新的网页平台功能:‘attr()’ ,现在处于实验模式( @Loirooriol , #45041 ) ‘image(<color>)’ , ‘closest-corner’ ,和 ‘farthest-corner’在‘ellipse()’和‘circle()’中( @Loirooriol , #45421 ) ‘calc()’和其他数学表达式现在可以在解析时间之后解析,例如 sign(1em - 32px)( @Loirooriol , #45421 ) ‘font-feature-settings’ 在‘@font-face’中( @simonwuelker , #45393 ) ‘@media (device-width)’ , ‘@media (device-height)’ , ‘@media (height)’ , ‘@media (aspect-ratio)’ ,及其最小和最大变体( @jdm , @mrobinson , @nicoburns , @jschwe , #44978 , #45707 , #45490 ) ‘@media (orientation)’ ( @nicoburns , #45707 ) ‘@media (pointer)’ 和 ‘@media (any-pointer)’ ( @nicoburns , #45681 ) ‘@media (hover)’ 和 ‘@media (any-hover)’ ( @nicoburns , #45681 ) 还有一堆新的DOM API:SharedWorker( @Taym95 , #45786 ) console.dir()( @Taym95 , #45109 ) Document 和 ShadowRoot 上的 customElementRegistry( @shubhamg13 , #45872 ) CustomElementRegistry上的 initialize()( @shubhamg13 , @yezhizhen , #45903 ) 新的 CustomElementRegistry()( @shubhamg13 , #45791 , #45550 ) Request、Response 和 Blob 上的 textStream()( @yezhizhen , #45864 , #45861 ) Element 上的 setPointerCapture(),releasePointerCapture(),hasPointerCapture()( @webbeef , #45048 ) Element 上的 ontouchstart,ontouchend,ontouchmove,ontouchcancel( @stevennovaryo , #45049 ) crypto.subtle.digest() 用于 KT128 和 KT256( @kkoyung , #45699 ) crypto.subtle.getPublicKey() 用于 ML-KEM 和 ML-DSA( @kkoyung , #45252 ) 这是另一个重大更新,所以这里有一个大纲:您可以帮助!安全 真实世界兼容性 进行中的工作 嵌入API 针对用户和开发者 更多网页平台的信息 垃圾收集安全 性能和稳定性 新贡献者。您可以帮助!Servo 正在稳步成为一个越来越大、越来越忙的项目,到2026年6月,我们处理的提交数量是2023年9月开始时的四倍多。这是艰苦的工作,特别是因为有些事情我们需要了解,而这些通常很难仅通过阅读更改来回答:变更影响谁,如果有的话?是否会影响用户、Servo 开发者、嵌入者或其他某个群体?更改带来了什么可观察的差异,如果有的话?此功能是否需要启用任何偏好,或者是否默认对每个人启用?是否有任何真实世界的网站受到此更改的影响?此更改与哪个问题或更广泛的项目有关?这个问题在PR描述中由 Fixes: #xxxxx 或者 Part of: #xxxxx 来回答。感谢 @jdm 的倡议,现在您可以更轻松地帮助我们回答这些问题,使用 Servo Highfive 机器人!如果您正在处理一个您认为可能对下一个月度更新有趣的拉取请求,即使您并不完全确定,也请通过以下步骤告诉我们:您为您的拉取请求添加月度更新标签,或者评论 @servo-highfive 月度更新 Highfive 会留下评论问您一些问题 您在评论中回答这些问题,包含 @servo-highfive 月度更新回答 安全 Servo 的 JS 运行时 SpiderMonkey 140.10.1 存在几处安全漏洞,这些漏洞已在更新到 SpiderMonkey 140.11.0 的 Servo 0.4.0 中得到修复( @jschwe , #45584 )。有关更多信息,请参见 CVE-2026-8388、CVE-2026-8391、CVE-2026-8974、CVE-2026-8975 和 MFSA 2026-48 。在 Servo 的 JS 运行时中,还修复了几处安全漏洞,更新到 SpiderMonkey 140.12.0 的 Servo 0.4.0( @jschwe , #45766 )。适用于我们的确切 CVE 目前尚不清楚,但有关更多详细信息,请参见 MFSA 2026-58 。SubtleCrypto 中的 RSA 操作现在以恒定时间执行模幂运算( @kkoyung , #45631 )。请注意,我们的 RSA 实现目前对 Marvin Attack 易受攻击 – 有关详细信息,请参见 RUSTSEC-2023-0071 。SubtleCrypto 中的 ML-DSA 操作现在以恒定时间执行 Decompose 步骤,修复 RUSTSEC-2025-0144( @kkoyung , #45294 )。我们修复了 file:/// 目录列表中的 HTML 注入漏洞(XSS),此漏洞影响包含 </script> 的文件名( @sahvx655-wq , #45510 )。真实世界兼容性 lichess.org 上的布局正确性有显著提高,许多网站由于我们对可变字体的改进处理变得更加可读( @simonwuelker , #45768 ),包括 Zulip(servo.zulipchat.com)和 Speedtest(speedtest.net)。 许多网站在 Servo 0.4.0 版本之前就已运行,包括 Google Photos(photos.google.com)和 Cash Converters(cashconverters.com.au),并在 0.4.0 版本中继续正常运行。其他网站,如 Google Maps(maps.google.com)和 OpenStreetMap(...)
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡