六月是 Servo 多年来最忙碌的一个月,有 349 个拉取请求进入了夜间构建!
Servo 现在支持视口元标签(@shubhamg13,@xiaochengh,#35901)、exportparts 属性(@simonwuelker,#37345)、“::part()”选择器(@simonwuelker,#37307)以及几个新的 Web API 特性:
- <script type="importmap">(@wusyong,@pewsheen,#37291,#37405,#37504,#37552,#37547,#37340)
- ImageBitmap(@tharkum,#37025,#37397,#37488,#37560,#37634)
- DOM 中的 scroll 事件(@PotatoCP,@Asun0204,#36687)
- HTMLScriptElement 上的 supports()方法(@pewsheen,#37313)
- XPath 中的 lang()和 id()函数(@vlindhol,#34594)
属性(@simonwuelker,#37211)- 基本的 IndexedDB 支持,带有 --pref dom_indexeddb_enabled(@arihant2math,@rasviitanen,@jdm,#33044,#37652,#37653)
- 现在可以使用屏幕阅读器来帮助控制 servoshell 的浏览器 UI(@jdm,#37519),但 Servo 的 webviews 尚未对屏幕阅读器可用。
- 现在可以在 CanvasRenderingContext2D 和 CanvasPattern 上使用字典调用 setTransform()(@tharkum,#37692,#37731)。
- 现在在 Web 上的中断处理更加可行,支持 AbortController 上的 abort()和 signal(@gterzian,#37192,#37217),以及 AbortSignal 上的 aborted、reason 和 throwIfAborted()(@gterzian,#37218,#37227,#37245)。
- 实验性的多进程模式(-M / --multiprocess)现在在 Windows 上可用(@wusyong,#37580)。
- 修复了几个 bug,特别是在非 Unicode 文档中 HTML 表单提交的编码 bug(@simonwuelker,#37541),这单独修复了 Web 平台测试中的超过 97000 个子测试。
- Outreachy 实习生 Jerens Lensun(@jerensl)现在正在努力改进 mach 中的 linting!请留意他的补丁,同时查看他写的关于自己经历的博客文章。
Devtools
- Servo 的 devtools 支持变得更强大!现在对网络标签有基本支持(@uthmaniv,#37384,#37263,#37543,#37707),包括列出请求和查看头信息和时间。
- 这项网络检查器的工作离不开 Outreachy 实习生 Usman Baba Yahaya(@uthmaniv)!在接下来的几个月里,请查看他写的关于自己到目前为止的时间的博客文章。
- 此外,devtools 现在与 Firefox 139 兼容(@eerii,#37247),并且我们已经完成了一些支持源代码标签的初步工作(@atbrakhi,@delan,#36774,#37456,#37197)。
Performance
- 在增量布局方面取得了几项改进,这是一类广泛的优化,确保仅在某些内容发生变化时才进行布局工作,且不会重复进行。这些步骤包括样式计算、框树构建、片段树构建、堆叠上下文树构建和显示列表构建。
- Servo 现在在没有变化时可以跳过显示列表构建(@mrobinson,@Loirooriol,#37186),在移动鼠标光标的页面上尤其明显。
- 脚本查询(如 offsetParent 和 getBoundingClientRect())可以读取样式和布局的信息,现在可以在某些步骤不需要更新时跳过样式、框树和片段树更新(@mrobinson,@Loirooriol,#37677),这意味着某些查询现在可以在不进行任何工作的情况下得到回答。
- 现在在许多情况下可以在不进行完整布局的情况下更改“transform”、“scale”、“rotate”、“translate”和“perspective”。
WebDriver
- 继续在 WebDriver 服务器上进行工作,可用于自动化 Servo,并将为我们基于 testdriver.js 的 Web 平台测试提供支持。现在更好地处理了上下文切换(@yezhizhen,@longvatrong111,#37685,#37632,#37411)、发送输入(@longvatrong111,@yezhizhen,@PotatoCP,#37484,#37624,#37403,#37260,#37423,#37224,#37393,#37153,#37095)、检查页面(@yezhizhen,#37521,#37532,#37502,#37452,#37425,#37470)和处理影子根(@yezhizhen,@longvatrong111,#37546,#37578,#37280)的操作。
- 想要使用 WebDriver 自动化 Servo?非常简单,可参考博客文章中的代码。
Donations
- 感谢大家的慷慨支持!现在每月收到 4464 美元(比 5 月下降 2.8%)的定期捐赠,用于支付自我托管的 CI 运行器的费用和最新的 Outreachy 实习生的费用。
- 关注未来几个月 CI 系统的进一步改进,包括专用的基准测试运行器和十分钟的 WPT 构建,这都要归功于大家的支持。
- Servo 也在 thanks.dev 上,已经有 25 个依赖 Servo 的 GitHub 用户在那里赞助我们。如果使用 Servo 库,如 url、html5ever、selectors 或 cssparser,注册 thanks.dev 是回馈社区的好方法。每月 4464 美元,共 10000 美元。资金的使用将由技术指导委员会透明决定,更多细节可查看赞助页面。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。