Commit graph

52995 commits

Author SHA1 Message Date
dependabot[bot]
d5f3860470
build(deps): bump the napi-ohos-related group with 5 updates (#39595)
Bumps the napi-ohos-related group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.0` |
`1.1.1` |
| [napi-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.0` | `1.1.1` |
| [napi-build-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.0` |
`1.1.1` |
| [napi-derive-backend-ohos](https://github.com/ohos-rs/ohos-rs) |
`1.1.0` | `1.1.1` |
| [napi-sys-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.0` |
`1.1.1` |

Updates `napi-derive-ohos` from 1.1.0 to 1.1.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1a45ba42f"><code>c1a45ba</code></a>
Bump version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/152">#152</a>)</li>
<li><a
href="3a8e753018"><code>3a8e753</code></a>
feat: allow use zigbuild to build target (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/151">#151</a>)</li>
<li><a
href="e9d0fceaf8"><code>e9d0fce</code></a>
feat: allow check napi-ohos version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/150">#150</a>)</li>
<li><a
href="978c8085de"><code>978c808</code></a>
fix: support new type for generation (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/149">#149</a>)</li>
<li><a
href="9c722e7d8a"><code>9c722e7</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/148">#148</a>
from ohos-rs/feat-0929</li>
<li><a
href="4e600a475d"><code>4e600a4</code></a>
Merge branch 'main' into feat-0929</li>
<li><a
href="cdccff74cc"><code>cdccff7</code></a>
chore(cli): add support for x86_64-pc-windows-gnu (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2935">#2935</a>)</li>
<li><a
href="445ee37b1a"><code>445ee37</code></a>
chore(deps): update dependency lerna to v9 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2937">#2937</a>)</li>
<li><a
href="f6e023cf98"><code>f6e023c</code></a>
chore(deps): update yarn to v4.10.3 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2936">#2936</a>)</li>
<li><a
href="e5ba267f28"><code>e5ba267</code></a>
ci: reduce cache (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2933">#2933</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-ohos` from 1.1.0 to 1.1.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1a45ba42f"><code>c1a45ba</code></a>
Bump version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/152">#152</a>)</li>
<li><a
href="3a8e753018"><code>3a8e753</code></a>
feat: allow use zigbuild to build target (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/151">#151</a>)</li>
<li><a
href="e9d0fceaf8"><code>e9d0fce</code></a>
feat: allow check napi-ohos version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/150">#150</a>)</li>
<li><a
href="978c8085de"><code>978c808</code></a>
fix: support new type for generation (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/149">#149</a>)</li>
<li><a
href="9c722e7d8a"><code>9c722e7</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/148">#148</a>
from ohos-rs/feat-0929</li>
<li><a
href="4e600a475d"><code>4e600a4</code></a>
Merge branch 'main' into feat-0929</li>
<li><a
href="cdccff74cc"><code>cdccff7</code></a>
chore(cli): add support for x86_64-pc-windows-gnu (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2935">#2935</a>)</li>
<li><a
href="445ee37b1a"><code>445ee37</code></a>
chore(deps): update dependency lerna to v9 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2937">#2937</a>)</li>
<li><a
href="f6e023cf98"><code>f6e023c</code></a>
chore(deps): update yarn to v4.10.3 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2936">#2936</a>)</li>
<li><a
href="e5ba267f28"><code>e5ba267</code></a>
ci: reduce cache (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2933">#2933</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-build-ohos` from 1.1.0 to 1.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ohos-rs/ohos-rs/releases">napi-build-ohos's
releases</a>.</em></p>
<blockquote>
<h2>ohrs@1.1.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: character mistake by <a
href="https://github.com/niuhuan"><code>@​niuhuan</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/142">ohos-rs/ohos-rs#142</a></li>
<li>Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/143">ohos-rs/ohos-rs#143</a></li>
<li>fix(windows): use link-arg instead of link-args to support spaces in
paths by <a
href="https://github.com/FabianLars"><code>@​FabianLars</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/144">ohos-rs/ohos-rs#144</a></li>
<li>Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/145">ohos-rs/ohos-rs#145</a></li>
<li>Sync api by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/148">ohos-rs/ohos-rs#148</a></li>
<li>fix: support new type for generation by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/149">ohos-rs/ohos-rs#149</a></li>
<li>feat: allow check napi-ohos version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/150">ohos-rs/ohos-rs#150</a></li>
<li>feat: allow use zigbuild to build target by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/151">ohos-rs/ohos-rs#151</a></li>
<li>Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/152">ohos-rs/ohos-rs#152</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/niuhuan"><code>@​niuhuan</code></a> made
their first contribution in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/142">ohos-rs/ohos-rs#142</a></li>
<li><a
href="https://github.com/FabianLars"><code>@​FabianLars</code></a> made
their first contribution in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/144">ohos-rs/ohos-rs#144</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1a45ba42f"><code>c1a45ba</code></a>
Bump version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/152">#152</a>)</li>
<li><a
href="3a8e753018"><code>3a8e753</code></a>
feat: allow use zigbuild to build target (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/151">#151</a>)</li>
<li><a
href="e9d0fceaf8"><code>e9d0fce</code></a>
feat: allow check napi-ohos version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/150">#150</a>)</li>
<li><a
href="978c8085de"><code>978c808</code></a>
fix: support new type for generation (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/149">#149</a>)</li>
<li><a
href="9c722e7d8a"><code>9c722e7</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/148">#148</a>
from ohos-rs/feat-0929</li>
<li><a
href="4e600a475d"><code>4e600a4</code></a>
Merge branch 'main' into feat-0929</li>
<li><a
href="cdccff74cc"><code>cdccff7</code></a>
chore(cli): add support for x86_64-pc-windows-gnu (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2935">#2935</a>)</li>
<li><a
href="445ee37b1a"><code>445ee37</code></a>
chore(deps): update dependency lerna to v9 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2937">#2937</a>)</li>
<li><a
href="f6e023cf98"><code>f6e023c</code></a>
chore(deps): update yarn to v4.10.3 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2936">#2936</a>)</li>
<li><a
href="e5ba267f28"><code>e5ba267</code></a>
ci: reduce cache (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2933">#2933</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-derive-backend-ohos` from 1.1.0 to 1.1.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1a45ba42f"><code>c1a45ba</code></a>
Bump version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/152">#152</a>)</li>
<li><a
href="3a8e753018"><code>3a8e753</code></a>
feat: allow use zigbuild to build target (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/151">#151</a>)</li>
<li><a
href="e9d0fceaf8"><code>e9d0fce</code></a>
feat: allow check napi-ohos version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/150">#150</a>)</li>
<li><a
href="978c8085de"><code>978c808</code></a>
fix: support new type for generation (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/149">#149</a>)</li>
<li><a
href="9c722e7d8a"><code>9c722e7</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/148">#148</a>
from ohos-rs/feat-0929</li>
<li><a
href="4e600a475d"><code>4e600a4</code></a>
Merge branch 'main' into feat-0929</li>
<li><a
href="cdccff74cc"><code>cdccff7</code></a>
chore(cli): add support for x86_64-pc-windows-gnu (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2935">#2935</a>)</li>
<li><a
href="445ee37b1a"><code>445ee37</code></a>
chore(deps): update dependency lerna to v9 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2937">#2937</a>)</li>
<li><a
href="f6e023cf98"><code>f6e023c</code></a>
chore(deps): update yarn to v4.10.3 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2936">#2936</a>)</li>
<li><a
href="e5ba267f28"><code>e5ba267</code></a>
ci: reduce cache (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2933">#2933</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-sys-ohos` from 1.1.0 to 1.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ohos-rs/ohos-rs/releases">napi-sys-ohos's
releases</a>.</em></p>
<blockquote>
<h2>ohrs@1.1.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: character mistake by <a
href="https://github.com/niuhuan"><code>@​niuhuan</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/142">ohos-rs/ohos-rs#142</a></li>
<li>Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/143">ohos-rs/ohos-rs#143</a></li>
<li>fix(windows): use link-arg instead of link-args to support spaces in
paths by <a
href="https://github.com/FabianLars"><code>@​FabianLars</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/144">ohos-rs/ohos-rs#144</a></li>
<li>Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/145">ohos-rs/ohos-rs#145</a></li>
<li>Sync api by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/148">ohos-rs/ohos-rs#148</a></li>
<li>fix: support new type for generation by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/149">ohos-rs/ohos-rs#149</a></li>
<li>feat: allow check napi-ohos version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/150">ohos-rs/ohos-rs#150</a></li>
<li>feat: allow use zigbuild to build target by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/151">ohos-rs/ohos-rs#151</a></li>
<li>Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/152">ohos-rs/ohos-rs#152</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/niuhuan"><code>@​niuhuan</code></a> made
their first contribution in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/142">ohos-rs/ohos-rs#142</a></li>
<li><a
href="https://github.com/FabianLars"><code>@​FabianLars</code></a> made
their first contribution in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/144">ohos-rs/ohos-rs#144</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1a45ba42f"><code>c1a45ba</code></a>
Bump version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/152">#152</a>)</li>
<li><a
href="3a8e753018"><code>3a8e753</code></a>
feat: allow use zigbuild to build target (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/151">#151</a>)</li>
<li><a
href="e9d0fceaf8"><code>e9d0fce</code></a>
feat: allow check napi-ohos version (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/150">#150</a>)</li>
<li><a
href="978c8085de"><code>978c808</code></a>
fix: support new type for generation (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/149">#149</a>)</li>
<li><a
href="9c722e7d8a"><code>9c722e7</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/148">#148</a>
from ohos-rs/feat-0929</li>
<li><a
href="4e600a475d"><code>4e600a4</code></a>
Merge branch 'main' into feat-0929</li>
<li><a
href="cdccff74cc"><code>cdccff7</code></a>
chore(cli): add support for x86_64-pc-windows-gnu (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2935">#2935</a>)</li>
<li><a
href="445ee37b1a"><code>445ee37</code></a>
chore(deps): update dependency lerna to v9 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2937">#2937</a>)</li>
<li><a
href="f6e023cf98"><code>f6e023c</code></a>
chore(deps): update yarn to v4.10.3 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2936">#2936</a>)</li>
<li><a
href="e5ba267f28"><code>e5ba267</code></a>
ci: reduce cache (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/2933">#2933</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.0...ohrs@1.1.1">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 00:59:09 +00:00
Simon Wülker
e5017b1b50
Move XPath implementation into its own crate (#39546)
XPath (and, in the future, XSLT) is only loosely coupled to `script`. As
`script` is already very large, I'd like to move the xpath parser and
evaluator into a seperate crate. Doing so allows us to iterate on it
more easily, without having to recompile `script`. Abstracting over the
concrete DOM implementation could also allow us to write some more
comprehensive unit tests.

Testing: Covered by existing web platform tests
Part of https://github.com/servo/servo/issues/34527
Fixes https://github.com/servo/servo/issues/39551

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-09-30 19:55:10 +00:00
Martin Robinson
d0dd9d7e3a
servoshell: Do not override HiDPI ratio when taking screenshots (#39501)
This override is meant to force reftests to always run with a device
pixel ratio of 1.0. Reftests are always run in headless mode which uses
a device pixel ratio of 1.0 regardless (unless you override it).
Removing this particular override allows taking screenshots in the
system DPI when taking them in headed mode, which is actually a bit
useful.

Testing: A test verifying the old behavior is removed. This causes 
`/css/pixel_snapping_position_a.html` to start passing.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-09-30 17:44:14 +00:00
Martin Robinson
e9d0a8f95d
libservo: Re-export types that are used by servoshell (#39586)
servoshell should not depend on internal Servo crates. Instead,
`libervo` should re-export any types that are used by embedders. This
change does that re-export for private types currently used by
servoshell.

Testing: This just changes the way types are imported, so curent tests
should suffice.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-09-30 16:36:05 +00:00
Andrei Volykhin
6a1a3aea08
html: Allow legacy referrer policies only for <meta> referrer (#39506)
Follow the HTML specification and allow to use legacy referrer policies
(never/default/always/origin-when-crossorigin) only with 'meta'
referrer.

See https://html.spec.whatwg.org/multipage/#meta-referrer (step 5)

While for another HTML elements with 'referrerpolicy' content attribute
(https://html.spec.whatwg.org/multipage/#referrer-policy-attribute)
and for 'Referrer-Policy' HTTP header

(https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-header-dfn)
the referrer policy should be determine from the standard policy tokens
(https://w3c.github.io/webappsec-referrer-policy/#referrer-policy).

So unknown policy values (legacy from meta-referrer) will be ignored
and determine as 'ReferrerPolicy::EmptyString'.

Testing: No changes

Fixes: #36833

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-09-30 16:29:24 +00:00
Oriol Brufau
f724651e1a
layout: Let min/max constraints avoid collapsing bottom margins (#36322)
When `block-size` was intrinsic and there was no block-end padding or
margin, we were allowing the block-end margin of the box to collapse
with the block-end margin of its contents.

However, due to `min-block-size` or `max-block-size`, the final size can
be different than the intrinsic size of the contents. In that case it
didn't make any sense to collapse end margins, only WebKit does it too.

This patch takes the final size into account, like Gecko and Blink. This
is under discussion in https://github.com/w3c/csswg-drafts/issues/12218,
but for now we will match Blink.

Testing: 2 tests are now passing. There is also 1 new failure, but that
test only passes in WebKit and I don't agree with it.

Fixes: #36321

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-09-30 16:12:31 +00:00
Martin Robinson
439558133f
script: Use conditional_malloc_size_of for Rc types on Window (#39589)
This allows measuring the size of these types conditionally rather than
ignoring them.

Testing: This modifies which things are measured by `MallocSizeOf` which
isn't covered by tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-09-30 16:03:34 +00:00
Simon Wülker
0a1633c52a
script: Remove unreachable assertions in xpath parser (#39588)
`relative_path_expr` can only ever return `Expr::Path`. If we make it
return a `PathExpr` then callers can rely on this invariant.

Testing: There's only limited testing for this change due to
https://github.com/servo/servo/issues/39551. But I think that's okay,
since the change is fairly trivial.
Part of https://github.com/servo/servo/issues/34527

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-09-30 13:20:31 +00:00
Martin Robinson
6ffc0cd482
libservo: Add a WebView::take_screenshot() API and use it for reftests (#39583)
This change adds a new API to the `WebView` for capturing screenshots.
This makes it possible to:

 - use the reftest waiting infrastructure via the API
   easily.
 - take more than a single screenshot in one Servo run.
 - take screenshots, but still paint the `WebView` normally prior
   to the moment that the screenshot is ready, instead of preventing
   all non-screenshot-ready paints while taking a screenshot.

In addition, the previous infrastructure, the `wait_for_stable_image`
option is removed completely.

Testing: This change is tested by the passing of the WPT tests,
as they commonly use the screenshot feature.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Delan Azabani <dazabani@igalia.com>
2025-09-30 11:39:47 +00:00
Shubham Gupta
6995e60ee1
compositor: Add Paint Metric events to Perfetto Traces (#39502)
> Some metrics like TimeToFirstPaint and TimeToFirstContentfulPaint are
only in the HTML traces. [See
this](https://github.com/servo/perf-analysis-tools?tab=readme-ov-file#how-to-analyse-a-single-servo-sample)

In order to analyse the performance and refine
[perf-analysis-tools](https://github.com/servo/perf-analysis-tools) we
need these metrics to be added to Perfetto also.

<img width="993" height="359" alt="Screenshot from 2025-09-26 15-00-00"
src="https://github.com/user-attachments/assets/9755f344-a98e-4671-b347-d76cd6311afe"
/>

<img width="1186" height="359" alt="Screenshot from 2025-09-26 15-00-42"
src="https://github.com/user-attachments/assets/a25e3a5f-eef0-45b7-be69-5de919bfb663"
/>

Testing: Verified by using Perfetto traces

Signed-off-by: Shubham Gupta <shubham.gupta@chromium.org>
2025-09-30 11:07:35 +00:00
Oriol Brufau
0c22f784bb
layout: Avoid negative corner radii values for border-radius (#39571)
The `border-radius` property provides the radii for the border box. For
the curvature of the padding and content boxes, we then subtract the
border and padding sizes. However, we weren't flooring the result by
zero, which could make the background completely disappear when using
`background-clip: padding-box` or `background-clip: content-box`.

Testing: Adding 4 new tests, but 2 of them fail in both Servo and
Firefox.
Fixes: #39540

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-09-30 10:37:44 +00:00
Gae24
5442302f8b
script: move testbinding DOM interfaces to script/dom/test (#39585)
Move testbinding interfaces to it's own module, to avoid cluttering dom
folder.

Testing: A successful build is enough
Part of #38901

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-09-30 10:17:09 +00:00
Martin Robinson
6a2a9a6e33
layout: Ensure that the Epoch stored in layout is accurate (#39568)
The first epoch is 0 as that is the one used in the initial transaction,
but the code was setting the first `Epoch` to `Epoch(1)`. This means
that
when layout advanced the epoch, the `Epoch` of the first produced
display list was `Epoch(2)`.

This change makes the value reflected in `current_epoch` actually match
the index of the display list produced. In addition, we always store
this epoch in `PipelineDetails` in the renderer. This will be important
when adding the `WebView::take_screenshot` API.

Testing: This should not change behavior, so is covered by existing
tests which
rely on proper `Epoch` advancement.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-09-30 06:42:58 +00:00
Rocketjumper
91e4188a64
script: Add line number argument to module script compilation functions (#39544)
Script: added ```line_no``` as argument to both
```fetch_inline_module_script()``` & ```compile_module_script()``` to
fix the inline script reporting wrong line issue
([#39415](https://github.com/servo/servo/issues/39415)).

Originally, the function ```compile_module_script()``` hardwires the
value 1 when invoking ```CompileOptionsWrapper::new()```. This is fine
if the script is written in separate JS file, but for inline scripts, it
will cause confusion if the ```<script>``` tag doesn't start from line
#1.

```line_no``` is obtained from ```line_number```, a member variable from ```HTMLScriptElement```. 

Credits to @jdm for actually pointing out which functions to fix.

Testing: Created a WPT test for this change, specifically: ```tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/evaluation-error-5.html```.

Fixes: issue [#39415](https://github.com/servo/servo/issues/39415)

---------

Signed-off-by: RichardTjokroutomo <richard.tjokro2@gmail.com>
Signed-off-by: Rocketjumper <112361665+RichardTjokroutomo@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-09-30 05:42:32 +00:00
dependabot[bot]
5018cd8015
build(deps): bump backtrace from 0.3.75 to 0.3.76 (#39578)
Bumps [backtrace](https://github.com/rust-lang/backtrace-rs) from 0.3.75
to 0.3.76.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/backtrace-rs/releases">backtrace's
releases</a>.</em></p>
<blockquote>
<h2>backtrace-v0.3.76</h2>
<h3>Behavior</h3>
<ul>
<li>Fix inverted polarity of &quot;full printing&quot; logic in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/726">rust-lang/backtrace-rs#726</a>:
Previously we used to do the opposite of what you would expect.</li>
</ul>
<h3>Platform Support</h3>
<ul>
<li>Windows: Removed hypothetical soundness risk from padding bytes in
<a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/737">rust-lang/backtrace-rs#737</a></li>
<li>Fuchsia: Added appropriate alignment checks during
<code>Elf_Nhdr</code> parsing in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/725">rust-lang/backtrace-rs#725</a></li>
<li>Cygwin: Added support in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/704">rust-lang/backtrace-rs#704</a></li>
<li>Windows (32-bit Arm): Restore support in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/685">rust-lang/backtrace-rs#685</a></li>
<li>NuttX (32-bit Arm): Use builtin <code>_Unwind_GetIP</code> in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/692">rust-lang/backtrace-rs#692</a></li>
<li>RTEMS: Enable libunwind in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/682">rust-lang/backtrace-rs#682</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Update cpp_demangle to 0.5 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/732">rust-lang/backtrace-rs#732</a></li>
<li>Update memchr to 2.7.6 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/734">rust-lang/backtrace-rs#734</a></li>
<li>Switch from windows-targets to windows-link in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/727">rust-lang/backtrace-rs#727</a></li>
<li>Update ruzstd to 0.8.1 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/718">rust-lang/backtrace-rs#718</a></li>
<li>Update object to 0.37 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/718">rust-lang/backtrace-rs#718</a></li>
<li>Update addr2line to 0.25 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/718">rust-lang/backtrace-rs#718</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/backtrace-rs/blob/master/CHANGELOG.md">backtrace's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/backtrace-rs/compare/backtrace-v0.3.75...backtrace-v0.3.76">0.3.76</a>
- 2025-09-26</h2>
<h3>Behavior</h3>
<ul>
<li>Fix inverted polarity of &quot;full printing&quot; logic in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/726">rust-lang/backtrace-rs#726</a>:
Previously we used to do the opposite of what you would expect.</li>
</ul>
<h3>Platform Support</h3>
<ul>
<li>Windows: Removed hypothetical soundness risk from padding bytes in
<a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/737">rust-lang/backtrace-rs#737</a></li>
<li>Fuchsia: Added appropriate alignment checks during
<code>Elf_Nhdr</code> parsing in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/725">rust-lang/backtrace-rs#725</a></li>
<li>Cygwin: Added support in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/704">rust-lang/backtrace-rs#704</a></li>
<li>Windows (32-bit Arm): Restore support in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/685">rust-lang/backtrace-rs#685</a></li>
<li>NuttX (32-bit Arm): Use builtin <code>_Unwind_GetIP</code> in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/692">rust-lang/backtrace-rs#692</a></li>
<li>RTEMS: Enable libunwind in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/682">rust-lang/backtrace-rs#682</a></li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Update cpp_demangle to 0.5 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/732">rust-lang/backtrace-rs#732</a></li>
<li>Update memchr to 2.7.6 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/734">rust-lang/backtrace-rs#734</a></li>
<li>Switch from windows-targets to windows-link in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/727">rust-lang/backtrace-rs#727</a></li>
<li>Update ruzstd to 0.8.1 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/718">rust-lang/backtrace-rs#718</a></li>
<li>Update object to 0.37 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/718">rust-lang/backtrace-rs#718</a></li>
<li>Update addr2line to 0.25 in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/718">rust-lang/backtrace-rs#718</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="775f6a1ba6"><code>775f6a1</code></a>
modify CHANGELOG.md to not be a git log dump</li>
<li><a
href="bb0cdc34d7"><code>bb0cdc3</code></a>
chore: release v0.3.76</li>
<li><a
href="a8b55f020a"><code>a8b55f0</code></a>
Merge of <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/725">rust-lang/backtrace-rs#725</a>:
Fix missing alignment check for ELF note...</li>
<li><a
href="0b838008f8"><code>0b83800</code></a>
Expand <code>take_nhdr</code> doc-comment</li>
<li><a
href="a405950a41"><code>a405950</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/737">#737</a>
from workingjubilee/address-dbghelp-soundness-risks</li>
<li><a
href="06dca9a485"><code>06dca9a</code></a>
Expand doc-comment on <code>do_resolve</code></li>
<li><a
href="05ad047199"><code>05ad047</code></a>
Remove padding bytes risk in dbghelp with MaybeUninit</li>
<li><a
href="dccdb4d50f"><code>dccdb4d</code></a>
Upgrade
<code>cpp_demangle</code><code>rust-lang/backtrace-rs#732</code></li>
<li><a
href="50fe434089"><code>50fe434</code></a><code>rust-lang/backtrace-rs#734</code></li>
<li><a
href="79d35149d7"><code>79d3514</code></a>
Switch from <code>windows-targets</code> to
<code>windows-link</code><code>rust-lang/backtrace-rs#727</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/backtrace-rs/compare/0.3.75...backtrace-v0.3.76">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=backtrace&package-manager=cargo&previous-version=0.3.75&new-version=0.3.76)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 05:37:32 +00:00
Kingsley Yung
34979c8b71
script: Return cached object from CryptoKey.usages getter (#39564)
Create and store a cached object in `CryptoKey` for the `[[usages]]`
internal slot when the key is created or when its `[[usages]]` internal
slot is updated. The getter can then return the cached object as
specified in https://w3c.github.io/webcrypto/#dom-cryptokey-usages,
instead of creating a new object on each call.

Testing: Pass WPT tests that were expected to fail.

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-09-30 03:56:12 +00:00
dependabot[bot]
1accf6d5db
build(deps): bump camino from 1.2.0 to 1.2.1 (#39579)
Bumps [camino](https://github.com/camino-rs/camino) from 1.2.0 to 1.2.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/camino-rs/camino/releases">camino's
releases</a>.</em></p>
<blockquote>
<h2>camino 1.2.1</h2>
<h3>Fixed</h3>
<p>Replaced obsolete <code>doc_auto_cfg</code> with
<code>doc_cfg</code>, to fix Rust nightly builds with the
<code>doc_cfg</code> flag enabled.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/camino-rs/camino/blob/main/CHANGELOG.md">camino's
changelog</a>.</em></p>
<blockquote>
<h2>[1.2.1] - 2025-09-29</h2>
<h3>Fixed</h3>
<p>Replaced obsolete <code>doc_auto_cfg</code> with
<code>doc_cfg</code>, to fix Rust nightly builds with the
<code>doc_cfg</code> flag enabled.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="28e15dbd8a"><code>28e15db</code></a>
[camino] version 1.2.1</li>
<li><a
href="f32d994393"><code>f32d994</code></a>
prepare release</li>
<li><a
href="ea187e4ebb"><code>ea187e4</code></a>
remove doc_auto_cfg (<a
href="https://redirect.github.com/camino-rs/camino/issues/114">#114</a>)</li>
<li><a
href="b0c8086459"><code>b0c8086</code></a>
remove references to dead features from README</li>
<li>See full diff in <a
href="https://github.com/camino-rs/camino/compare/camino-1.2.0...camino-1.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=camino&package-manager=cargo&previous-version=1.2.0&new-version=1.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 03:35:40 +00:00
dependabot[bot]
67ae3f00a7
build(deps): bump cc from 1.2.38 to 1.2.39 (#39580)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.38 to 1.2.39.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.38...cc-v1.2.39">1.2.39</a>
- 2025-09-26</h2>
<h3>Other</h3>
<ul>
<li>Fix cross compilation to xtensa-esp32s3-espidf (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1569">#1569</a>)</li>
<li>Fix autodetect_wasi_compiler: support non utf-8 path (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1568">#1568</a>)</li>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1567">#1567</a>)</li>
<li>Fix rustcflags mapping: require -Clinker-plugin-lto for -flto (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1564">#1564</a>)</li>
<li>Use <code>$WASI_SDK_PATH</code> on WASI targets by default (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1562">#1562</a>)</li>
<li>Fix atomicity violations in concurrent cache operations (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1559">#1559</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f53e817b50"><code>f53e817</code></a>
chore(cc): release v1.2.39 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1570">#1570</a>)</li>
<li><a
href="6d3e24183d"><code>6d3e241</code></a>
Fix cross compilation to xtensa-esp32s3-espidf (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1569">#1569</a>)</li>
<li><a
href="b083806d56"><code>b083806</code></a>
Fix autodetect_wasi_compiler: support non utf-8 path (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1568">#1568</a>)</li>
<li><a
href="53997acc0b"><code>53997ac</code></a>
Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1567">#1567</a>)</li>
<li><a
href="9347e45fb1"><code>9347e45</code></a>
Fix rustcflags mapping: require -Clinker-plugin-lto for -flto (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1564">#1564</a>)</li>
<li><a
href="9a2e7ce93d"><code>9a2e7ce</code></a>
Use <code>$WASI_SDK_PATH</code> on WASI targets by default (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1562">#1562</a>)</li>
<li><a
href="d740f9b1f5"><code>d740f9b</code></a>
Fix atomicity violations in concurrent cache operations (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1559">#1559</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.38...cc-v1.2.39">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cc&package-manager=cargo&previous-version=1.2.38&new-version=1.2.39)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 03:35:37 +00:00
dependabot[bot]
25d3c5a157
build(deps): bump anstyle from 1.0.11 to 1.0.13 (#39577)
Bumps [anstyle](https://github.com/rust-cli/anstyle) from 1.0.11 to
1.0.13.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="14dd743496"><code>14dd743</code></a>
chore: Release</li>
<li><a
href="2baaec7772"><code>2baaec7</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/271">#271</a>
from epage/template</li>
<li><a
href="5d7026ccf0"><code>5d7026c</code></a>
chore: Update from _rust template</li>
<li><a
href="f218f4ae7a"><code>f218f4a</code></a>
docs(docsrs): Update to new doc_cfg feature name</li>
<li><a
href="2a2bebb199"><code>2a2bebb</code></a>
chore: Release</li>
<li><a
href="98b79906a3"><code>98b7990</code></a>
docs: Update changelog</li>
<li><a
href="f28db2de10"><code>f28db2d</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/269">#269</a>
from Muscraft/no-leading-zero</li>
<li><a
href="20258de73f"><code>20258de</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/270">#270</a>
from Muscraft/coverage-rustfmt</li>
<li><a
href="b8a3a15f0b"><code>b8a3a15</code></a>
fix: Ensuse rustfmt is installed for coverage</li>
<li><a
href="ba45662034"><code>ba45662</code></a>
fix: Don't add leading zero to single digit ansi 256</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-cli/anstyle/compare/v1.0.11...v1.0.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anstyle&package-manager=cargo&previous-version=1.0.11&new-version=1.0.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 03:16:59 +00:00
dependabot[bot]
2ce57834c4
build(deps): bump quote from 1.0.40 to 1.0.41 (#39576)
Bumps [quote](https://github.com/dtolnay/quote) from 1.0.40 to 1.0.41.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/quote/releases">quote's
releases</a>.</em></p>
<blockquote>
<h2>1.0.41</h2>
<ul>
<li>Improve compile error when repetition contains no interpolated value
that is an iterator (<a
href="https://redirect.github.com/dtolnay/quote/issues/302">#302</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="594c865ce8"><code>594c865</code></a>
Release 1.0.41</li>
<li><a
href="68956e650b"><code>68956e6</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/quote/issues/302">#302</a>
from dtolnay/hasiter</li>
<li><a
href="6a69784268"><code>6a69784</code></a>
Make diagnostic attribute conditional on compiler version</li>
<li><a
href="5f1924bd99"><code>5f1924b</code></a>
Tweak CheckHasIterator error message</li>
<li><a
href="c0adb26f41"><code>c0adb26</code></a>
Add diagnostic::on_unimplemented for no iterator in repetition</li>
<li><a
href="a1ddcab61b"><code>a1ddcab</code></a>
Combine HasIterator and ThereIsNoIteratorInRepetition to one type</li>
<li><a
href="bf48c854da"><code>bf48c85</code></a>
Switch to trait for checking iterator in repetition</li>
<li><a
href="d3b4777367"><code>d3b4777</code></a>
Update ui test suite to nightly-2025-09-27</li>
<li><a
href="3e6b04d98b"><code>3e6b04d</code></a>
Raise minimum tested compiler to rust 1.76</li>
<li><a
href="07deaaf89e"><code>07deaaf</code></a>
Opt in to generate-macro-expansion when building on docs.rs</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/quote/compare/1.0.40...1.0.41">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=quote&package-manager=cargo&previous-version=1.0.40&new-version=1.0.41)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 03:14:41 +00:00
webbeef
55facf7b15
script: Cache the current favicon on the document (#39575)
This allows us to notify the embedder when navigating back and forth.

Testing: Manual testing following the steps in issue #39529 
Fixes: https://github.com/servo/servo/issues/39529

Signed-off-by: webbeef <me@webbeef.org>
2025-09-30 02:35:49 +00:00
dependabot[bot]
61ce9af122
build(deps): bump gilrs-core from 0.6.5 to 0.6.6 (#39574)
Bumps [gilrs-core](https://gitlab.com/gilrs-project/gilrs) from 0.6.5 to
0.6.6.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ef379ed2b9"><code>ef379ed</code></a>
Prepare for gilrs-core 0.6.6</li>
<li><a
href="dc621ea90d"><code>dc621ea</code></a>
fix macos iokit mappings</li>
<li>See full diff in <a
href="https://gitlab.com/gilrs-project/gilrs/compare/gilrs-core-v0.6.5...gilrs-core-v0.6.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gilrs-core&package-manager=cargo&previous-version=0.6.5&new-version=0.6.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 01:57:01 +00:00
Narfinger
9a4614e835
Remove some default features of image. (#39567)
Not all the features are needed in a browser for image, so we disable
less used image formats to save on binary size.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>

Part of addressing: https://github.com/servo/servo/issues/38966

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-09-29 17:13:59 +00:00
Ashwin Naren
fef56fcc47
Consistently rename storage to webstorage to prevent confusion (#39550)
Add the prefix of "WebStorage" instead of "Storage" for all webstorage
spec related things. For example, a `struct` called `StorageManager`:
this could refer to either webstorage's thread manager or to the backend
for [the storage manager
interface](https://storage.spec.whatwg.org/#storagemanager). webstorage
is the full name of the spec, so I chose to keep that in the names of
files/structs to prevent confusion when storage manager is implemented.

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-09-29 17:13:34 +00:00
Rodion Borovyk
5b1fe60277
script: Empty pending mutation observers when notifying mutation observers (#39456)
Empty the surrounding agent’s pending mutation observers when notifying
mutation observers according to the spec. Also, the code in the method
MutationObserver::queue_a_mutation_record and the corresponding
specification have diverged over the years. These changes bring the code
into conformity with the specification.

Testing: Added a new crash test
Fixes: #39434 #39531

---------

Signed-off-by: Rodion Borovyk <rodion.borovyk@gmail.com>
2025-09-29 14:15:07 +00:00
Narfinger
e64f021550
Allow WebViews and fonts to have a RenderingGroupId. (#39140)
Motivation: The font cache currently has to store a cache of Keys which
need to be given by the webrender instance.
Having a cache for every WebViewId in the future when we have every
webview have the different webrender::DocumentId might be too wasteful
to store this key cache per DocumentId. This proposes to include in the
WebViewId another id, the RenderingGroupId. This id can be easily
changed
to be equivalent to the DocumentId when we support multiple DocumentIds
for a unique Webrender instance.
Additionally this will keep it easier to integrate the currently out of
tree patches for multiple rendering contexts with different webrenders.


Change:
We introduce the RenderingGroupId in the WebViewId and allow a method to
extract it. The font key cache uses this cache
and forwards it to the Compositor when requesting new changes. The
compositor currently ignores this id.
Additionally, the WebView can return the RenderingGroupId. The WebViewId
also has an appropiate constructor for specifying a RenderingGroupId.
Because there currently will be only one RenderingGroupId the
performance will be minimal.


Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>

Testing: This should be covered by WPT tests and normal browsing
behavior works fine.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-09-29 10:01:56 +00:00
Narfinger
32b656adf4
More changes to HashMap/HashSet to use fxhash (#39244)
Moved more functions to fxhash. And provide comments about the choices
when necessary.


Testing: Hash functions shouldn't change functionality.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-09-29 09:51:17 +00:00
Narfinger
389f0d4cc2
Split WindowProxies in script to own struct and allow to get an Rc to it. (#39274)
Split the window_proxies in script thread into its own struct with
appropiate methods. ScriptThread allows to get an Rc to it.
HtmlIFrameElement, Window and WindowProxy now get the Rc on construction
from ScriptThread.


Testing: Just a refactor so should not change any behavior.
Fixes: Addresses part of https://github.com/servo/servo/issues/37969

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-09-29 09:46:49 +00:00
webbeef
47382e0c2c
script: display top-level SVG image documents. (#39494)
SVG images served with the image/svg+xml mime type were recognized as
XML documents instead of images, so were not displayed.

Testing: compare the results of `./mach run
https://raw.githubusercontent.com/servo/servo/467821598b59bd84273d91c9d8a33651e10578b8/resources/resource_protocol/servo-color-negative-no-container.svg`

Signed-off-by: webbeef <me@webbeef.org>
2025-09-29 09:16:22 +00:00
Gae24
7a7129edd7
script: when fetching a worker script abort if response status is not ok (#39468)
According to
[spec](https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-classic-worker-script)
we should abort if the response status is not ok.

Testing: Check tests listed inside issue are not intermittent anymore
Fixes: #39413
Fixes: #22991

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-09-29 09:08:12 +00:00
Andrei Volykhin
af74db4e92
html: Count <image> attributes state changes as the relevant mutations (#39483)
Follow the HTML specification and take into account that state changes
of the <image> 'crossorigin' and 'referrerpolicy' content attributes
(not 'crossOrigin' and 'referrerPolicy' IDL attributes) should be
counted as relevant mutations.

See https://html.spec.whatwg.org/multipage/#relevant-mutations

Testing: Improvements in the following tests
- html/dom/reflection-embedded.html
-
html/semantics/embedded-content/the-img-element/relevant-mutations.html

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-09-29 09:00:51 +00:00
Sam
aaa7f83176
crown: Check closure bodies for unrooted types and fix root TransmitBodyPromise* (#39534)
We should also check closure bodies for unrooted expressions. 

Testing: New crown tests
Fixes: #37331
Fixes (partial): #37330

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-09-29 08:57:23 +00:00
Simon Wülker
6c062bbea8
Remove references to stylo from mach test-unit (#39562)
`stylo` does not live in the servo repository anymore.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-09-29 07:55:02 +00:00
dependabot[bot]
2560543ac7
build(deps): bump aws-lc-sys from 0.32.0 to 0.32.1 (#39555)
Bumps [aws-lc-sys](https://github.com/aws/aws-lc-rs) from 0.32.0 to
0.32.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="08c02c9a70"><code>08c02c9</code></a>
Prepare aws-lc-sys v0.32.1 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/898">#898</a>)</li>
<li>See full diff in <a
href="https://github.com/aws/aws-lc-rs/compare/aws-lc-sys/v0.32.0...aws-lc-sys/v0.32.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-lc-sys&package-manager=cargo&previous-version=0.32.0&new-version=0.32.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 04:27:27 +00:00
dependabot[bot]
41cb185333
build(deps): bump async-compression from 0.4.31 to 0.4.32 (#39556)
Bumps
[async-compression](https://github.com/Nullus157/async-compression) from
0.4.31 to 0.4.32.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b79f66d406"><code>b79f66d</code></a>
chore: release (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/389">#389</a>)</li>
<li><a
href="15eb2e1aba"><code>15eb2e1</code></a>
Use io::ErrorKind::OutOfMemory for xz2/bzip2 codecs (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/387">#387</a>)</li>
<li>See full diff in <a
href="https://github.com/Nullus157/async-compression/compare/async-compression-v0.4.31...async-compression-v0.4.32">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-compression&package-manager=cargo&previous-version=0.4.31&new-version=0.4.32)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 02:12:04 +00:00
dependabot[bot]
a6412c0e47
build(deps): bump compression-codecs from 0.4.30 to 0.4.31 (#39559)
Bumps
[compression-codecs](https://github.com/Nullus157/async-compression)
from 0.4.30 to 0.4.31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Nullus157/async-compression/releases">compression-codecs's
releases</a>.</em></p>
<blockquote>
<h2>compression-codecs-v0.4.31</h2>
<h3>Other</h3>
<ul>
<li>Use io::ErrorKind::OutOfMemory for xz2/bzip2 codecs (<a
href="https://redirect.github.com/Nullus157/async-compression/pull/387">#387</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="b79f66d406"><code>b79f66d</code></a>
chore: release (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/389">#389</a>)</li>
<li><a
href="15eb2e1aba"><code>15eb2e1</code></a>
Use io::ErrorKind::OutOfMemory for xz2/bzip2 codecs (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/387">#387</a>)</li>
<li><a
href="fcd9e87710"><code>fcd9e87</code></a>
chore(async-compression): release v0.4.31 (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/386">#386</a>)</li>
<li><a
href="4ebce398de"><code>4ebce39</code></a>
Flush compressed data out of encoders more often (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/383">#383</a>)</li>
<li>See full diff in <a
href="https://github.com/Nullus157/async-compression/compare/compression-codecs-v0.4.30...compression-codecs-v0.4.31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=compression-codecs&package-manager=cargo&previous-version=0.4.30&new-version=0.4.31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 02:11:45 +00:00
dependabot[bot]
c48241dbdd
build(deps): bump ab_glyph from 0.2.31 to 0.2.32 (#39557)
Bumps [ab_glyph](https://github.com/alexheretic/ab-glyph) from 0.2.31 to
0.2.32.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/alexheretic/ab-glyph/releases">ab_glyph's
releases</a>.</em></p>
<blockquote>
<h2>ab-glyph-0.2.32</h2>
<ul>
<li>Add <code>FontArc</code> support for no_std targets with
cfg(target_has_atomic = &quot;ptr&quot;).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ffde4c677f"><code>ffde4c6</code></a>
Release ab_glyph 0.2.32</li>
<li><a
href="d551d510e3"><code>d551d51</code></a>
Add FontArc support for no_std targets with cfg(target_has_atomic =
&quot;ptr&quot;) (#...</li>
<li><a
href="971e5a9b33"><code>971e5a9</code></a>
Release ab_glyph_rasterizer 0.1.10</li>
<li><a
href="f2e376ac04"><code>f2e376a</code></a>
Fix remaining <code>draw_line_scalar</code> index oob panic scenarios
(<a
href="https://redirect.github.com/alexheretic/ab-glyph/issues/120">#120</a>)</li>
<li><a
href="c476792ab6"><code>c476792</code></a>
Fix 1.89 clippy lints</li>
<li><a
href="727737fbe9"><code>727737f</code></a>
Update dev-dependencies</li>
<li>See full diff in <a
href="https://github.com/alexheretic/ab-glyph/compare/ab-glyph-0.2.31...ab-glyph-0.2.32">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ab_glyph&package-manager=cargo&previous-version=0.2.31&new-version=0.2.32)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 01:29:59 +00:00
dependabot[bot]
b9451b1729
build(deps): bump tokio-rustls from 0.26.3 to 0.26.4 (#39558)
Bumps [tokio-rustls](https://github.com/rustls/tokio-rustls) from 0.26.3
to 0.26.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/tokio-rustls/releases">tokio-rustls's
releases</a>.</em></p>
<blockquote>
<h2>0.26.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Add TLS certificate compression features by <a
href="https://github.com/manifest"><code>@​manifest</code></a> in <a
href="https://redirect.github.com/rustls/tokio-rustls/pull/130">rustls/tokio-rustls#130</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0c14e1496e"><code>0c14e14</code></a>
Bump version to 0.26.4</li>
<li><a
href="9074308f09"><code>9074308</code></a>
Add TLS certificate compression features</li>
<li><a
href="7ee318d670"><code>7ee318d</code></a>
build(deps): bump seanmiddleditch/gha-setup-ninja from 4 to 6</li>
<li><a
href="6f740df495"><code>6f740df</code></a>
build(deps): bump rcgen from 0.14.4 to 0.14.5</li>
<li><a
href="dc01fcd2b0"><code>dc01fcd</code></a>
build(deps): bump actions/checkout from 3 to 5</li>
<li><a
href="fb76ce36ff"><code>fb76ce3</code></a>
Add Dependabot configuration</li>
<li>See full diff in <a
href="https://github.com/rustls/tokio-rustls/compare/v/0.26.3...v/0.26.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio-rustls&package-manager=cargo&previous-version=0.26.3&new-version=0.26.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 01:27:26 +00:00
dependabot[bot]
7af96a9f22
build(deps): bump the serde-related group with 2 updates (#39553)
Bumps the serde-related group with 2 updates:
[serde](https://github.com/serde-rs/serde) and
[serde_core](https://github.com/serde-rs/serde).

Updates `serde` from 1.0.227 to 1.0.228
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.228</h2>
<ul>
<li>Allow building documentation with
<code>RUSTDOCFLAGS='--cfg=docsrs'</code> set for the whole dependency
graph (<a
href="https://redirect.github.com/serde-rs/serde/issues/2995">#2995</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a866b336f1"><code>a866b33</code></a>
Release 1.0.228</li>
<li><a
href="5adc9e816c"><code>5adc9e8</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2995">#2995</a>
from dtolnay/rustdocflags</li>
<li><a
href="ab581789f4"><code>ab58178</code></a>
Workaround for RUSTDOCFLAGS='--cfg=docsrs'</li>
<li>See full diff in <a
href="https://github.com/serde-rs/serde/compare/v1.0.227...v1.0.228">compare
view</a></li>
</ul>
</details>
<br />

Updates `serde_core` from 1.0.227 to 1.0.228
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/serde/releases">serde_core's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.228</h2>
<ul>
<li>Allow building documentation with
<code>RUSTDOCFLAGS='--cfg=docsrs'</code> set for the whole dependency
graph (<a
href="https://redirect.github.com/serde-rs/serde/issues/2995">#2995</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a866b336f1"><code>a866b33</code></a>
Release 1.0.228</li>
<li><a
href="5adc9e816c"><code>5adc9e8</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/serde/issues/2995">#2995</a>
from dtolnay/rustdocflags</li>
<li><a
href="ab581789f4"><code>ab58178</code></a>
Workaround for RUSTDOCFLAGS='--cfg=docsrs'</li>
<li>See full diff in <a
href="https://github.com/serde-rs/serde/compare/v1.0.227...v1.0.228">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 01:09:57 +00:00
dependabot[bot]
4972a83fba
build(deps): bump windows-sys from 0.61.0 to 0.61.1 (#39554)
Bumps [windows-sys](https://github.com/microsoft/windows-rs) from 0.61.0
to 0.61.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/microsoft/windows-rs/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=windows-sys&package-manager=cargo&previous-version=0.61.0&new-version=0.61.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 01:00:47 +00:00
Ashwin Naren
d12dc23083
storage: Move storage related backend threads to their own crate (#39418)
This PR moves storage related APIs (currently just webstorage and
indexeddb) into their own crate. This reduces the congestion in the net
thread.

Related Zulip thread:
https://servo.zulipchat.com/#narrow/channel/263398-general/topic/indexedDB.20location/with/535911631

Sub PRs:
- [x] Move shared storage/net stuff to base (`IpcSend` and
`CoreResourcePool`) #39419

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-09-28 08:00:20 +00:00
Tim van der Lippe
ba5f36b671
script: Implement parsing of Link HTTP headers (#39052)
The Link HTTP header can do the same as link elements,
in that they can preload/prefetch/etc... This implements
the basics of header parsing and hooks it up for preload.

Note that we use a new nom-rfc8288 crate that implements
the parsing behavior. However, that crate is too strict
in that empty attributes (;; as part of the header) are
discarded and resulting in a parsing failure. Therefore,
we use its lenient parsing mode.

Part of #35035

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-09-28 07:22:09 +00:00
Euclid Ye
41b1a8706b
webdriver: Safely converting to OpenGL coordinates when taking (element) screenshot (#39543)
When taking element screenshot, we need to convert y-coordinates to
comply with OpenGL. With dpi > 1, sometimes y can be -1 due to rounding,
resulting in panic when
660f90f687/components/shared/compositing/rendering_context.rs (L655)

This PR safely converts.

Testing: When running in headed mode with dpi > 1,
`/webdriver/tests/classic/take_element_screenshot/scroll_into_view.py`
always passes locally now without panic.
Fixes the panic:
https://github.com/servo/servo/issues/39306#issuecomment-3342204869

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-09-28 04:50:16 +00:00
Servo WPT Sync
660f90f687
Sync WPT with upstream (28-09-2025) (#39541)
Automated downstream sync of changes from upstream as of 28-09-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-09-28 01:59:05 +00:00
Narfinger
3ccb7540c0
net: Do not send data scheme requests to DevTools (#39318)
Simple check to not send data urls to devtools.


Testing: Looked at reddit.com which sends data url and tested it with
this fix.
Fixes: Should fix https://github.com/servo/servo/issues/39127.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-09-27 21:46:17 +00:00
Excitable Snowball
601ad7e5c6
script: Add message to InvalidStateError (#39535)
Adding an optional message to be attached to an InvalidStateError.

Testing: Only a refactor, no behavior change
Fixes: Partially #39053

Signed-off-by: Excitable Snowball <excitablesnowball@gmail.com>
2025-09-27 19:23:05 +00:00
Martin Robinson
55d094a871
script: Make stylesheets loaded via <link> elements block the rendering (#39536)
Stylesheets loaded via the `<link>` element should block the rendering
of the page according to the HTML specification [1]. This change makes
it so that they do this and, in addition, we do not take reftest
screenshots until all no element is blocking the rendering.

This change does not add support for the `blocking` attribute of
`<link>`, but that can be added in a follow change. In addition to
fixing a few tests, this change likely makes other tests no longer
intermittent. We will need to watch CI runs after this lands in order to
verify that though.

Testing: This change fixes at least two WPT tests.
Fixes: #26424.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-09-27 13:32:26 +00:00
Euclid Ye
6aa82309c3
webdriver: Wait animation frame callbacks before taking (element) screenshot (#39539)
According to spec, we should wait animation frame callbacks before
taking (element) screenshot. As "element screenshot" would automatically
scroll into view, this solves intermittency.

Testing: Manually tested on pages, and
`take_element_screenshot/scroll_into_view.py` passes stably now.
Fixes: #39306

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-09-27 13:29:44 +00:00
Martin Robinson
5f5f2abc0f
script: Rename StylesheetLoader to ElementStylesheetLoader (#39537)
`StylesheetLoader` implements the `StylesheetLoader` trait from Stylo.
This is pretty confusing as the names are the same. This change renames
the Servo version to `ElementStyleSheet` loader so that it's clearer
from reading the code what each of these things are.

Testing: This change just makes a few renames so shouldn't change test
results.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-09-27 13:04:46 +00:00
Josh Matthews
3f68bdacfe
Revert "Add abort signal preference to experimental web features" (#39538)
Reverts servo/servo#39421 . There are too many new intermittent
failures.

Fixes: https://github.com/servo/servo/issues/39516 
Fixes: https://github.com/servo/servo/issues/39521 
Fixes: https://github.com/servo/servo/issues/39522 
Fixes: https://github.com/servo/servo/issues/39523 
Fixes: https://github.com/servo/servo/issues/39524 
Fixes: https://github.com/servo/servo/issues/39527 
Fixes: https://github.com/servo/servo/issues/39532 
Fixes: https://github.com/servo/servo/issues/39512 
Fixes: https://github.com/servo/servo/issues/39503
2025-09-27 12:42:15 +00:00