Commit Graph

55898 Commits

Author SHA1 Message Date
Martin Robinson
1528f31269 script: Add an initial implementation of the "focus update steps" (#44360)
This moves Servo closer to the focus parts of the HTML specification.
The behavior should be the same as before, but now the code in `script`
matches the structure of the specification.

The main goal is to set us up for:
 - Firing focus events in the right order on nested documents
 - A proper implementation of the unfocusing steps.

Testing: This should not change behavior so is covered by existing
tests.

Signed-off-by: Martin Robinson <mrobinson@fastmail.fm>
Co-authored-by: Martin Robinson <mrobinson@fastmail.fm>
2026-04-22 15:55:36 +00:00
Narfinger
c2b88ff7f5 media: Switch to workspace dependencies and minor cleanup (#44428)
This PR makes minor cleanup in the media crates:
- Switch dependencies to workspace dependencies if they are already
included in the main Cargo.toml
- Switch from crate serde_derive to serde with feature flag derive.
- Switch from the separate crate for OnceCell to the std provided
LazyLock.
- Update num_complex

Testing: The only functional changes are either slight version bumps,
the replacement to LazyLock which is conservative and the num_complex
update which also shouldn't have any behavior changes.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-04-22 14:56:59 +00:00
Kingsley Yung
6934a65e5c script: Validate sanitizer configuration (#44421)
Implement sanitizer configuration validation algorithm, and complete the
"set a configuration" algorithm.

The steps related to processing instructions are marked as TODO. Support
for process instructions was recently added to the specification, and we
will implement it later when tests are ready.

Specification:
- https://wicg.github.io/sanitizer-api/#sanitizerconfig-valid
- https://wicg.github.io/sanitizer-api/#sanitizer-set-a-configuration

Testing: Covered by WPT tests in
`sanitizer-api/sanitizer-config.tentative.html`
Fixes: Part of #43948

---------

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2026-04-22 12:28:57 +00:00
Euclid Ye
d46b0a9826 dependabot: Add rustls-webpki related group (#44429)
This should make #44415, #44418, #44419 
work in one PR without conflict in the future.

Testing: Will be tested in CI in future rounds of update.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-22 11:15:02 +00:00
Tim van der Lippe
6de7311014 script: Add initial implementation of strikethrough command (#44410)
Part of #25005

Testing: WPT

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-04-22 09:23:05 +00:00
dependabot[bot]
7007dc4346 build: bump rustls-webpki from 0.103.12 to 0.103.13 (#44419)
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.12 to
0.103.13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki/releases">rustls-webpki's
releases</a>.</em></p>
<blockquote>
<h2>0.103.13</h2>
<ul>
<li><strong>Fix reachable panic in parsing a CRL</strong>. This was
reported to us as <a
href="https://github.com/rustls/webpki/security/advisories/GHSA-82j2-j2ch-gfr8">GHSA-82j2-j2ch-gfr8</a>.
Users who don't use CRLs are not affected.</li>
<li>For name constraints on URI names, we incorrectly processed excluded
subtrees in a way which inverted the desired meaning. See <a
href="https://redirect.github.com/rustls/webpki/pull/471">rustls/webpki#471</a>.
This was a case missing in the fix for <a
href="https://github.com/advisories/GHSA-965h-392x-2mh5">https://github.com/advisories/GHSA-965h-392x-2mh5</a>.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Actually fail closed for URI matching against excluded subtrees by
<a href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/473">rustls/webpki#473</a></li>
<li>Prepare 0.103.13 by <a
href="https://github.com/ctz"><code>@​ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/474">rustls/webpki#474</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustls/webpki/compare/v/0.103.12...v/0.103.13">https://github.com/rustls/webpki/compare/v/0.103.12...v/0.103.13</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2879b2ce7a"><code>2879b2c</code></a>
Prepare 0.103.13</li>
<li><a
href="2c49773d82"><code>2c49773</code></a>
Improve tests for padding of <code>BitStringFlags</code></li>
<li><a
href="4e3c0b393a"><code>4e3c0b3</code></a>
Correct validation of BIT STRING constraints</li>
<li><a
href="39c91d2525"><code>39c91d2</code></a>
Actually fail closed for URI matching against excluded subtrees</li>
<li>See full diff in <a
href="https://github.com/rustls/webpki/compare/v/0.103.12...v/0.103.13">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-22 09:01:47 +00:00
Euclid Ye
6592e8512b layout: Replace SVG base fragment rect conditionally to support viewBox (#44420)
As titled.

Testing: Manually tested with multiple real websites with viewbox in
svg.
It looked terrible before, but now looking good!
New passing in WPT.

Partially addresses: #38985

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-22 07:53:59 +00:00
Jonathan Schwender
97c08a6f95 net: Optimize initial TLS connection (#44242)
By touching the crypto provider, we can force it to gather entropy.
On my linux VM, that moved ~60ms off the critical path (using aws-lc-rs,
but probably any other crypto provider would show similar behavior).
On my Linux workstation it was around ~30ms.

On Linux caching the rustls platform verifier cache optimizes another
50ms. On other platforms this will be cheaper, since
only on some systems all certificates are read. It might make sense to
explore
caching the whole tlsconfig (for websockets), since it looks like we are
just cloning
the same components and then constructing a new tlsconfig, which would
lead to
the same effective component. But that needs more investigation.


Testing: Doesn't change any visible behavior, covered by existing tests.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-04-22 07:39:59 +00:00
Martin Robinson
09ef444d63 layout: Add placeholders for text carets after finishing a line (#44370)
Instead of readily adding a strut for text carets when processing a line
break, wait until a line is finished. This allows placing a strut on the
final line. In addition to fixing #41338 this will also make it possible
to handle line breaks as a separate kind of text run item so that we can
preserve shaping results between layouts.

In addition, some changes are made in script to ensure that these
placeholders
are never placed for non-textual input elements.

Testing: This change adds a Servo-specific WPT test. Caret rendering
isn't specified.
Fixes: #41338

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-04-22 06:51:54 +00:00
Taym Haddadi
bdbbe641eb SharedWorker: Add SharedWorker and SharedWorkerGlobalScope WebIDL interfaces (#44375)
Testing: covered by WPT test.
part of https://github.com/servo/servo/issues/7458

---------

Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
2026-04-22 03:28:21 +00:00
dependabot[bot]
d995e90976 build: bump webpki-roots from 1.0.6 to 1.0.7 (#44418)
Bumps [webpki-roots](https://github.com/rustls/webpki-roots) from 1.0.6
to 1.0.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki-roots/releases">webpki-roots's
releases</a>.</em></p>
<blockquote>
<h2>1.0.7</h2>
<p>For their April 2026 root store changes, Mozilla has made more
changes than usual:</p>
<blockquote>
<p>These changes are part of Mozilla’s ongoing root store maintenance
under the Mozilla Root Store Policy (MRSP), including <a
href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/#74-root-ca-lifecycles">§7.4</a>
(Root CA Lifecycles) and <a
href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/#753-transition-plan-for-existing-roots">§7.5.3</a>
(Transition Plans). They reflect a combination of lifecycle-based
transitions, CA operator requests, and alignment with intended
certificate usage, including retiring older or less suitable root
certificates, enforcing clear separation of trust purposes (e.g., TLS
vs. S/MIME), and reducing unnecessary trust surface in the Web PKI
ecosystem. Collectively, these actions help to ensure that root
certificates are relied upon only for their intended and actively
maintained use cases, or are retired in accordance with established
distrust timelines.</p>
</blockquote>
<p>This removes:</p>
<ul>
<li>CN=Certigna O=Dhimyotis</li>
<li>CN=COMODO Certification Authority O=COMODO CA Limited</li>
<li>CN=DigiCert Assured ID Root CA O=DigiCert Inc
OU=www.digicert.com</li>
<li>CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com</li>
<li>CN=DigiCert High Assurance EV Root CA O=DigiCert Inc
OU=www.digicert.com</li>
<li>CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA</li>
<li>CN=GTS Root R2 O=Google Trust Services LLC</li>
<li>CN=QuoVadis Root CA 2 O=QuoVadis Limited</li>
<li>CN=QuoVadis Root CA 3 O=QuoVadis Limited</li>
<li>CN=Secure Global CA O=SecureTrust Corporation</li>
<li>CN=SecureTrust CA O=SecureTrust Corporation</li>
<li>CN=SwissSign Gold CA - G2 O=SwissSign AG</li>
<li>CN=TeliaSonera Root CA v1 O=TeliaSonera</li>
<li>CN=Trustwave Global Certification Authority O=Trustwave Holdings,
Inc.</li>
<li>CN=Trustwave Global ECC P256 Certification Authority O=Trustwave
Holdings, Inc.</li>
<li>CN=Trustwave Global ECC P384 Certification Authority O=Trustwave
Holdings, Inc.</li>
<li>O=certSIGN OU=certSIGN ROOT CA</li>
</ul>
<p>See <a
href="https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/o1VliD70ctg/m/pY0JBzTlAQAJ?pli=1">their
announcement</a> for more details.</p>
<h2>What's Changed</h2>
<ul>
<li>Take semver-compatible dependency updates by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/116">rustls/webpki-roots#116</a></li>
<li>Take semver-compatible dependency updates by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/117">rustls/webpki-roots#117</a></li>
<li>Take semver-compatible updates by <a
href="https://github.com/ctz"><code>@​ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/118">rustls/webpki-roots#118</a></li>
<li>Prepare 1.0.7 by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/120">rustls/webpki-roots#120</a></li>
<li>Update dependencies by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/119">rustls/webpki-roots#119</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7">https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="be948464fd"><code>be94846</code></a>
Update dependencies (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/119">#119</a>)</li>
<li><a
href="76476f91c9"><code>76476f9</code></a>
Prepare 1.0.7 (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/120">#120</a>)</li>
<li><a
href="ed392f437c"><code>ed392f4</code></a>
Take semver-compatible updates (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/118">#118</a>)</li>
<li><a
href="ec8b744a63"><code>ec8b744</code></a>
Take semver-compatible dependency updates (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/117">#117</a>)</li>
<li><a
href="84a0c23ef2"><code>84a0c23</code></a>
Take semver-compatible dependency updates (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/116">#116</a>)</li>
<li>See full diff in <a
href="https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpki-roots&package-manager=cargo&previous-version=1.0.6&new-version=1.0.7)](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 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>
2026-04-22 01:06:43 +00:00
dependabot[bot]
4d56440d4e build: bump bpaf from 0.9.24 to 0.9.25 (#44416)
Bumps [bpaf](https://github.com/pacak/bpaf) from 0.9.24 to 0.9.25.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pacak/bpaf/blob/master/Changelog.md">bpaf's
changelog</a>.</em></p>
<blockquote>
<h2>bpaf [0.9.25] - 2026-04-15</h2>
<ul>
<li>Change rendering of an adjacent block in Markdown - this is no
longer a <code>###</code>
but a regular line item instead. Header messes up with generated
navigation on
some pages</li>
<li><code>app_name</code> - parser that extracts the executable
name</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/pacak/bpaf/commits/v0.9.25">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bpaf&package-manager=cargo&previous-version=0.9.24&new-version=0.9.25)](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 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>
2026-04-22 01:01:38 +00:00
dependabot[bot]
c75eea95c3 build: bump webpki-root-certs from 1.0.6 to 1.0.7 (#44415)
Bumps [webpki-root-certs](https://github.com/rustls/webpki-roots) from
1.0.6 to 1.0.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki-roots/releases">webpki-root-certs's
releases</a>.</em></p>
<blockquote>
<h2>1.0.7</h2>
<p>For their April 2026 root store changes, Mozilla has made more
changes than usual:</p>
<blockquote>
<p>These changes are part of Mozilla’s ongoing root store maintenance
under the Mozilla Root Store Policy (MRSP), including <a
href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/#74-root-ca-lifecycles">§7.4</a>
(Root CA Lifecycles) and <a
href="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/#753-transition-plan-for-existing-roots">§7.5.3</a>
(Transition Plans). They reflect a combination of lifecycle-based
transitions, CA operator requests, and alignment with intended
certificate usage, including retiring older or less suitable root
certificates, enforcing clear separation of trust purposes (e.g., TLS
vs. S/MIME), and reducing unnecessary trust surface in the Web PKI
ecosystem. Collectively, these actions help to ensure that root
certificates are relied upon only for their intended and actively
maintained use cases, or are retired in accordance with established
distrust timelines.</p>
</blockquote>
<p>This removes:</p>
<ul>
<li>CN=Certigna O=Dhimyotis</li>
<li>CN=COMODO Certification Authority O=COMODO CA Limited</li>
<li>CN=DigiCert Assured ID Root CA O=DigiCert Inc
OU=www.digicert.com</li>
<li>CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com</li>
<li>CN=DigiCert High Assurance EV Root CA O=DigiCert Inc
OU=www.digicert.com</li>
<li>CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA</li>
<li>CN=GTS Root R2 O=Google Trust Services LLC</li>
<li>CN=QuoVadis Root CA 2 O=QuoVadis Limited</li>
<li>CN=QuoVadis Root CA 3 O=QuoVadis Limited</li>
<li>CN=Secure Global CA O=SecureTrust Corporation</li>
<li>CN=SecureTrust CA O=SecureTrust Corporation</li>
<li>CN=SwissSign Gold CA - G2 O=SwissSign AG</li>
<li>CN=TeliaSonera Root CA v1 O=TeliaSonera</li>
<li>CN=Trustwave Global Certification Authority O=Trustwave Holdings,
Inc.</li>
<li>CN=Trustwave Global ECC P256 Certification Authority O=Trustwave
Holdings, Inc.</li>
<li>CN=Trustwave Global ECC P384 Certification Authority O=Trustwave
Holdings, Inc.</li>
<li>O=certSIGN OU=certSIGN ROOT CA</li>
</ul>
<p>See <a
href="https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/o1VliD70ctg/m/pY0JBzTlAQAJ?pli=1">their
announcement</a> for more details.</p>
<h2>What's Changed</h2>
<ul>
<li>Take semver-compatible dependency updates by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/116">rustls/webpki-roots#116</a></li>
<li>Take semver-compatible dependency updates by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/117">rustls/webpki-roots#117</a></li>
<li>Take semver-compatible updates by <a
href="https://github.com/ctz"><code>@​ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/118">rustls/webpki-roots#118</a></li>
<li>Prepare 1.0.7 by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/120">rustls/webpki-roots#120</a></li>
<li>Update dependencies by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/119">rustls/webpki-roots#119</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7">https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="be948464fd"><code>be94846</code></a>
Update dependencies (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/119">#119</a>)</li>
<li><a
href="76476f91c9"><code>76476f9</code></a>
Prepare 1.0.7 (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/120">#120</a>)</li>
<li><a
href="ed392f437c"><code>ed392f4</code></a>
Take semver-compatible updates (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/118">#118</a>)</li>
<li><a
href="ec8b744a63"><code>ec8b744</code></a>
Take semver-compatible dependency updates (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/117">#117</a>)</li>
<li><a
href="84a0c23ef2"><code>84a0c23</code></a>
Take semver-compatible dependency updates (<a
href="https://redirect.github.com/rustls/webpki-roots/issues/116">#116</a>)</li>
<li>See full diff in <a
href="https://github.com/rustls/webpki-roots/compare/v/1.0.6...v/1.0.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpki-root-certs&package-manager=cargo&previous-version=1.0.6&new-version=1.0.7)](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 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>
2026-04-22 00:52:56 +00:00
dependabot[bot]
4322792c84 build: bump h2 from 0.4.12 to 0.4.13 (#44414)
Bumps [h2](https://github.com/hyperium/h2) from 0.4.12 to 0.4.13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/h2/releases">h2's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.13</h2>
<h2>What's Changed</h2>
<ul>
<li>Implement HTTP/2 informational responses (1xx) support by <a
href="https://github.com/apu031"><code>@​apu031</code></a> in <a
href="https://redirect.github.com/hyperium/h2/pull/865">hyperium/h2#865</a></li>
<li>fix: Unparent connection span by <a
href="https://github.com/Jesse-Bakker"><code>@​Jesse-Bakker</code></a>
in <a
href="https://redirect.github.com/hyperium/h2/pull/868">hyperium/h2#868</a></li>
<li>fix: auto-release padding from DATA frames by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/h2/pull/869">hyperium/h2#869</a></li>
<li>fix: do not assign capacity for pending streams by <a
href="https://github.com/benjaminp"><code>@​benjaminp</code></a> in <a
href="https://redirect.github.com/hyperium/h2/pull/860">hyperium/h2#860</a></li>
<li>perf: reduce huffman decode table size by <a
href="https://github.com/ariaandika"><code>@​ariaandika</code></a> in <a
href="https://redirect.github.com/hyperium/h2/pull/871">hyperium/h2#871</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/Jesse-Bakker"><code>@​Jesse-Bakker</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/h2/pull/868">hyperium/h2#868</a></li>
<li><a
href="https://github.com/ariaandika"><code>@​ariaandika</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/h2/pull/871">hyperium/h2#871</a></li>
<li><a href="https://github.com/apu031"><code>@​apu031</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/h2/pull/865">hyperium/h2#865</a></li>
<li><a href="https://github.com/benjaminp"><code>@​benjaminp</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/h2/pull/860">hyperium/h2#860</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hyperium/h2/compare/v0.4.12...v0.4.13">https://github.com/hyperium/h2/compare/v0.4.12...v0.4.13</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/h2/blob/master/CHANGELOG.md">h2's
changelog</a>.</em></p>
<blockquote>
<h1>0.4.13 (January 5, 2026)</h1>
<ul>
<li>Add support for 1xx informational responses on client and server
side.</li>
<li>Fix auto-releasing of padding bytes of DATA frames for flow control
windows.</li>
<li>Fix to stop assigning capacity to pending streams which can't use it
yet.</li>
<li>Fix tracing to not grab the parent for the connection span.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2aeb81fdb5"><code>2aeb81f</code></a>
v0.4.13</li>
<li><a
href="5f40d38f5b"><code>5f40d38</code></a>
fix: do not assign capacity for pending streams (<a
href="https://redirect.github.com/hyperium/h2/issues/860">#860</a>)</li>
<li><a
href="803d8cd1c6"><code>803d8cd</code></a>
ci: adjust pinned dependencies in msrv job (<a
href="https://redirect.github.com/hyperium/h2/issues/873">#873</a>)</li>
<li><a
href="e38678b1e2"><code>e38678b</code></a>
feat: implement HTTP/2 informational responses support (<a
href="https://redirect.github.com/hyperium/h2/issues/865">#865</a>)</li>
<li><a
href="0fe6457f7e"><code>0fe6457</code></a>
perf: Reduce huffman decode table size (<a
href="https://redirect.github.com/hyperium/h2/issues/871">#871</a>)</li>
<li><a
href="e793b24b15"><code>e793b24</code></a>
fix: auto-release padding from DATA frames (<a
href="https://redirect.github.com/hyperium/h2/issues/869">#869</a>)</li>
<li><a
href="7c9a87487d"><code>7c9a874</code></a>
fix: Unparent connection span (<a
href="https://redirect.github.com/hyperium/h2/issues/868">#868</a>)</li>
<li><a
href="c342e3f18f"><code>c342e3f</code></a>
ci: pin indexmap and tracing for msrv job (<a
href="https://redirect.github.com/hyperium/h2/issues/866">#866</a>)</li>
<li><a
href="b9d5397bd7"><code>b9d5397</code></a>
test: window update stream errors count towards local max (<a
href="https://redirect.github.com/hyperium/h2/issues/859">#859</a>)</li>
<li>See full diff in <a
href="https://github.com/hyperium/h2/compare/v0.4.12...v0.4.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=h2&package-manager=cargo&previous-version=0.4.12&new-version=0.4.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 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>
2026-04-22 00:47:19 +00:00
dependabot[bot]
a65769ae98 build: bump glslopt from 0.1.12 to 0.1.13 (#44413)
Bumps [glslopt](https://github.com/jamienicol/glslopt-rs) from 0.1.12 to
0.1.13.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/jamienicol/glslopt-rs/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=glslopt&package-manager=cargo&previous-version=0.1.12&new-version=0.1.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 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>
2026-04-22 00:32:50 +00:00
Martin Robinson
bec5a6ce37 layout: Simplify the way characters are iterated when segmeting text (#44400)
This is a minor adjustment from #44276 that makes the way characters are
iterated easier to read.

Testing: This should not change behavior so should be covered by
existing tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-04-21 21:11:48 +00:00
Tim van der Lippe
138e7be47e script: Achieve failure parity with other browsers for underline command (#44390)
With these changes, we now fail the minimum set of tests. That is to
say: we don't fail any test that no other browser fails. All test
failures therefore match at least 1 other browser.

The one exception is the updated test expectation. That's because all
browsers fail this test in the exact same way, hence updating the
expectation. We fail it, since I don't know how browsers reach to that
point. I think it's related to traversal of the contained children and
the order that they are traversed in. Unfortunately my attempts at
fixing that have not been fruitful, so leaving that one for now.

Part of #25005

Testing: WPT

---------

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: Martin Robinson <martin@abandonedwig.info>
2026-04-21 17:00:40 +00:00
Narfinger
617c9c0162 script: JSContextify dom/css partially (#44406)
This JSContextifies parts of dom/css directory.

Testing: Compilation is the test.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-04-21 16:46:06 +00:00
Narfinger
99899612cb net: Split ResourceTimings into separate file and create batch attribute setting (#44395)
ResourceFetchTimings are set throughout the methods in http_loader.rs.
These methods are already very complicated, so having multiple times
`context.timings.lock().set_attribute()` can be quite distracting to
understanding.

This introduces ResourceFetchTimingsContainer structure which has the
lock inside and allows setting multiple attributes to clean up the code
in http_loader.

Testing: This is a refactor and does not change functionality.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-04-21 16:28:00 +00:00
atbrakhi
f8c97cd609 devtools: Always pass ownPropertiesLength to devtools (#44369)
Always pass `ownPropertiesLength` to devtools

Testing: All tests are passing
Fixes: part of #39858

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: eri <eri@igalia.com>
2026-04-21 16:26:20 +00:00
Manuel Rego
2cdbada97b Template for roadmap issues (#44398)
As discussed on
[Zulip](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Roadmap/with/580266351),
this is a new template for tracking roadmap issues.

Testing: No needed, just a GitHub issue template.

Signed-off-by: Manuel Rego Casasnovas <rego@igalia.com>
2026-04-21 14:41:34 +00:00
Taym Haddadi
5ac8bf4db3 Implement StorageManager API (#43976)
Add the Storage Standard WebIDL for NavigatorStorage and StorageManager,
wire navigator.storage on Window and Worker, and implement persisted(),
persist(), and estimate().


Testing: covered by WP test.
part of #39100

fixes #39101

---------

Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
2026-04-21 13:41:58 +00:00
Shubham Gupta
d1e3e8080c script: Correctly apply resource timing buffer limit (#44228)
Strictly follow the
[specs](https://w3c.github.io/resource-timing/#performance-can-add-resource-timing-entry)

Also fires the performance resource timing earlier to
match WPT expectations.

Testing: More WPT tests Passed.

---------

Signed-off-by: Shubham Gupta <shubham.gupta@chromium.org>
2026-04-21 11:17:11 +00:00
Kingsley Yung
4a5fe14788 script: Canonicalization of sanitizer configuration (#44335)
Implement the canonicalization of sanitizer configuration, along with
the canonicalization of element with attributes, element, attribute and
name. They are implemented for the `SanitizerConfig`,
`SanitizerElementWithAttributes`, `SanitizerElement` and
`SanitizerAttribute`, through the `SantiizerConfigAlgorithm`,
`Canonicalization` and `NameCanonicalization` trait.

Note that, in the canonicalization of sanitizer configuration, the steps
related to processing instructions are marked as TODO. The feature of
supporting process instructions has just been added to the specification
recently, and the WPT tests are not yet in place. We will add this
support once the tests are ready.

`SanitizerElementWithAttributes`, `SanitizerElement` and
`SanitizerAttribute` are unions of string and dictionary. This makes
accessing its member fields cumbersome. So, the `NameMember` and
`AttributeMember` trait are added to provide helper function for them to
reduce boilerplate code.

Specification:
-
https://wicg.github.io/sanitizer-api/#sanitizer-canonicalize-the-configuration
-
https://wicg.github.io/sanitizer-api/#canonicalize-a-sanitizer-element-with-attributes
- https://wicg.github.io/sanitizer-api/#canonicalize-a-sanitizer-element
-
https://wicg.github.io/sanitizer-api/#canonicalize-a-sanitizer-attribute
- https://wicg.github.io/sanitizer-api/#canonicalize-a-sanitizer-name

Testing: Covered by WPT tests in `sanitizer-api/` subdirectory.
Fixes: Part of #43948

---------

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2026-04-21 10:45:39 +00:00
dependabot[bot]
9ba9916bad build: bump aws-lc-rs from 1.16.2 to 1.16.3 (#44379)
Bumps [aws-lc-rs](https://github.com/aws/aws-lc-rs) from 1.16.2 to
1.16.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aws/aws-lc-rs/releases">aws-lc-rs's
releases</a>.</em></p>
<blockquote>
<h2>aws-lc-rs v1.16.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Key length validation in <code>UnboundCipherKey::new()</code> now
enforced at runtime by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1092">aws/aws-lc-rs#1092</a>
<ul>
<li>The documented error on key length mismatch was never actually
checked. Streaming cipher constructors also relied on
<code>debug_assert_eq!</code> which gets stripped in release builds —
these are now runtime checks.</li>
</ul>
</li>
<li>Support MSAN and TSAN sanitizer builds via
<code>AWS_LC_SYS_SANITIZER</code> environment variable by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1100">aws/aws-lc-rs#1100</a>
<ul>
<li>Accepts <code>asan</code>, <code>msan</code>, or <code>tsan</code>.
The existing <code>asan</code> feature flag continues to work.</li>
</ul>
</li>
</ul>
<h3>Build Improvements</h3>
<ul>
<li>Follow symlinks when classifying include directory entries by <a
href="https://github.com/cmtm"><code>@​cmtm</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1071">aws/aws-lc-rs#1071</a>
<ul>
<li>Fixes builds under Bazel (and other build systems) where source
files in <code>CARGO_MANIFEST_DIR</code> are symlinks into a
content-addressable store.</li>
</ul>
</li>
<li>Improve clang-cl discovery for Windows ARM64 builds by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1060">aws/aws-lc-rs#1060</a>
<ul>
<li>The build script now discovers <code>clang-cl</code> inside Visual
Studio installations rather than requiring it on <code>PATH</code>.</li>
</ul>
</li>
<li>Fix Windows ARM64 FIPS build: pass correct architecture to
<code>vcvarsall.bat</code> by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1075">aws/aws-lc-rs#1075</a></li>
<li>Strip LTO flags from CFLAGS for FIPS builds by <a
href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1087">aws/aws-lc-rs#1087</a>
<ul>
<li>Build environments like RPM mock chroots (e.g. AL2023) that export
<code>-flto=auto</code> in CFLAGS would break the FIPS delocator
pipeline.</li>
</ul>
</li>
<li>MSVC: Fix builtin swap intrinsic check to avoid link-time failures
by <a
href="https://github.com/walter-zeromatter"><code>@​walter-zeromatter</code></a>
in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1086">aws/aws-lc-rs#1086</a></li>
<li>MSVC: Add jitterentropy <code>src</code> subdirectory to include
search path by <a
href="https://github.com/walter-zeromatter"><code>@​walter-zeromatter</code></a>
in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1085">aws/aws-lc-rs#1085</a></li>
<li>MSVC: Use 8.3 short paths on Windows to avoid MAX_PATH limits by <a
href="https://github.com/walter-zeromatter"><code>@​walter-zeromatter</code></a>
in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1081">aws/aws-lc-rs#1081</a></li>
</ul>
<h3>Issues Being Closed</h3>
<ul>
<li>Clarify that build needs to run from VS Developer shell for Windows
builds -- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1056">aws/aws-lc-rs#1056</a></li>
<li>Add MSAN (MemorySanitizer) support, matching existing ASAN support
-- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1077">aws/aws-lc-rs#1077</a></li>
<li>aws-lc-sys fails to compile on iOS arm64 with Clang 15.0.7:
undeclared ioctl in urandom.c -- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1068">aws/aws-lc-rs#1068</a></li>
</ul>
<h2>Other Merged PRs</h2>
<ul>
<li>Prepare aws-lc-sys v0.39.1 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1080">aws/aws-lc-rs#1080</a></li>
<li>Bump aws-lc-fips-sys to v0.13.14 by <a
href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1088">aws/aws-lc-rs#1088</a></li>
<li>CI: Harden artifact workflows and update action versions by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1091">aws/aws-lc-rs#1091</a></li>
<li>Bump actions/checkout from 4 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1096">aws/aws-lc-rs#1096</a></li>
<li>Bump actions/setup-go from 4 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1095">aws/aws-lc-rs#1095</a></li>
<li>Bump codecov/codecov-action from 4 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1094">aws/aws-lc-rs#1094</a></li>
<li>Prepare aws-lc-rs v1.16.3 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1098">aws/aws-lc-rs#1098</a></li>
<li>Prepare aws-lc-sys v0.40.0 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1099">aws/aws-lc-rs#1099</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/cmtm"><code>@​cmtm</code></a> made their
first contribution in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1071">aws/aws-lc-rs#1071</a></li>
<li><a
href="https://github.com/walter-zeromatter"><code>@​walter-zeromatter</code></a>
made their first contribution in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/1086">aws/aws-lc-rs#1086</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/aws/aws-lc-rs/compare/v1.16.2...v1.16.3">https://github.com/aws/aws-lc-rs/compare/v1.16.2...v1.16.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f75bae5248"><code>f75bae5</code></a>
Support MSAN and TSAN sanitizer builds via environment variable (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1100">#1100</a>)</li>
<li><a
href="64677e8fb3"><code>64677e8</code></a>
Improve clang-cl discovery for Windows ARM64 builds (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1060">#1060</a>)</li>
<li><a
href="e2e3e15bbd"><code>e2e3e15</code></a>
Prepare aws-lc-sys v0.40.0 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1099">#1099</a>)</li>
<li><a
href="e0ec10024d"><code>e0ec100</code></a>
Prepare aws-lc-rs v1.16.3 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1098">#1098</a>)</li>
<li><a
href="46ed951c9c"><code>46ed951</code></a>
MSVC Fix: use 8.3 short paths on Windows to avoid MAX_PATH limits in
building...</li>
<li><a
href="27c4cca361"><code>27c4cca</code></a>
Add jitterentropy src subdirectory to include search path (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1085">#1085</a>)</li>
<li><a
href="6b30158f0b"><code>6b30158</code></a>
MSVC Fix: Improve bad intrinsic check on msvc (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1086">#1086</a>)</li>
<li><a
href="5a3f9ca4ba"><code>5a3f9ca</code></a>
Bump codecov/codecov-action from 4 to 6 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1094">#1094</a>)</li>
<li><a
href="6a7b379faa"><code>6a7b379</code></a>
Bump actions/setup-go from 4 to 6 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1095">#1095</a>)</li>
<li><a
href="f7cb890331"><code>f7cb890</code></a>
Bump actions/checkout from 4 to 6 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/1096">#1096</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-lc-rs/compare/v1.16.2...v1.16.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-lc-rs&package-manager=cargo&previous-version=1.16.2&new-version=1.16.3)](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 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>
2026-04-21 02:37:32 +00:00
dependabot[bot]
93e413093f build: bump tokio from 1.52.0 to 1.52.1 in the tokio-rs-related group (#44377)
Bumps the tokio-rs-related group with 1 update:
[tokio](https://github.com/tokio-rs/tokio).

Updates `tokio` from 1.52.0 to 1.52.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.52.1</h2>
<h1>1.52.1 (April 16th, 2026)</h1>
<h2>Fixed</h2>
<ul>
<li>runtime: revert <a
href="https://redirect.github.com/tokio-rs/tokio/issues/7757">#7757</a>
to fix [a regression]<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8056">#8056</a>
that causes <code>spawn_blocking</code> to hang (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8057">#8057</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/7757">#7757</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7757">tokio-rs/tokio#7757</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8056">#8056</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/8056">tokio-rs/tokio#8056</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8057">#8057</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/8057">tokio-rs/tokio#8057</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="905c146aed"><code>905c146</code></a>
chore: prepare to release v1.52.1 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8059">#8059</a>)</li>
<li><a
href="56aaa43e91"><code>56aaa43</code></a>
rt: revert <a
href="https://redirect.github.com/tokio-rs/tokio/issues/7757">#7757</a>
to fix regression in <code>spawn_blocking</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8057">#8057</a>)</li>
<li><a
href="57ff47ab58"><code>57ff47a</code></a>
ci: update <code>trybuild</code> to expect output from rustc 1.95.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8058">#8058</a>)</li>
<li><a
href="812de3e134"><code>812de3e</code></a>
ci: bump taiki-e/cache-cargo-install-action from 1 to 3 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8053">#8053</a>)</li>
<li><a
href="ba82e73c7b"><code>ba82e73</code></a>
ci: use Dependabot to keep github actions up to date (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8052">#8052</a>)</li>
<li><a
href="2e85f9ddf8"><code>2e85f9d</code></a>
ci: replace cirrus-ci with freebsd-vm (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8041">#8041</a>)</li>
<li><a
href="a7e1cd8ff8"><code>a7e1cd8</code></a>
ci: update GitHub Actions workflows to use latest tool versions (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/8047">#8047</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.52.0...tokio-1.52.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.52.0&new-version=1.52.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 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>
2026-04-21 02:23:35 +00:00
dependabot[bot]
c04dc7e77b build: bump uuid from 1.23.0 to 1.23.1 (#44380)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.23.0 to 1.23.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/uuid-rs/uuid/releases">uuid's
releases</a>.</em></p>
<blockquote>
<h2>v1.23.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Remove deprecated <code>msrv</code> feature from wasm-bindgen
dependency by <a
href="https://github.com/guybedford"><code>@​guybedford</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/877">uuid-rs/uuid#877</a></li>
<li>fix: Timestamp::from_gregorian deprecation note by <a
href="https://github.com/aznashwan"><code>@​aznashwan</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/878">uuid-rs/uuid#878</a></li>
<li>Prepare for 1.23.1 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/879">uuid-rs/uuid#879</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/guybedford"><code>@​guybedford</code></a> made
their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/877">uuid-rs/uuid#877</a></li>
<li><a href="https://github.com/aznashwan"><code>@​aznashwan</code></a>
made their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/878">uuid-rs/uuid#878</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/v1.23.0...v1.23.1">https://github.com/uuid-rs/uuid/compare/v1.23.0...v1.23.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ca0c85fe21"><code>ca0c85f</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/879">#879</a> from
uuid-rs/cargo/v1.23.1</li>
<li><a
href="b4db015d34"><code>b4db015</code></a>
prepare for 1.23.1 release</li>
<li><a
href="771069da63"><code>771069d</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/878">#878</a> from
aznashwan/fix-from-gregorian-deprecation-note</li>
<li><a
href="80994a2015"><code>80994a2</code></a>
fix: Timestamp::from_gregorian deprecation note</li>
<li><a
href="90c5be8f17"><code>90c5be8</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/877">#877</a> from
guybedford/remove-wasm-bindgen-msrv</li>
<li><a
href="8b8c4f4f85"><code>8b8c4f4</code></a>
Remove deprecated feature from wasm-bindgen dependency</li>
<li>See full diff in <a
href="https://github.com/uuid-rs/uuid/compare/v1.23.0...v1.23.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uuid&package-manager=cargo&previous-version=1.23.0&new-version=1.23.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 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>
2026-04-21 01:54:12 +00:00
dependabot[bot]
e33b20e445 build: bump orbclient from 0.3.51 to 0.3.53 (#44382)
Bumps orbclient from 0.3.51 to 0.3.53.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=orbclient&package-manager=cargo&previous-version=0.3.51&new-version=0.3.53)](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 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>
2026-04-21 01:38:18 +00:00
dependabot[bot]
f41e1513d9 build: bump atomic_refcell from 0.1.13 to 0.1.14 (#44381)
Bumps [atomic_refcell](https://github.com/mozilla/atomic_refcell) from
0.1.13 to 0.1.14.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/mozilla/atomic_refcell/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=atomic_refcell&package-manager=cargo&previous-version=0.1.13&new-version=0.1.14)](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 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>
2026-04-21 01:28:00 +00:00
Simon Martin
d4a63f87ed webgl: Validate dimensions in TexImage3D properly with level (#44367)
The tex-3d-size-limit.html test verifies that TexImage3D errors out with
gl.INVALID_VALUE if the width / height / depth parameters are greater
than gl.MAX_3D_TEXTURE_SIZE / 2 ** level, in accordance with the mipmap
levels definition.

This patch adds this checks, and fixes a s/depth/level/ typo, and should
stabilize tex-3d-size-limit.html: all its sub-tests will succeed until
the first call to (not implemented) TexSubImage3D, that will end the
test.

It's still possible for the test to fail on environments where
gl.MAX_3D_TEXTURE_SIZE is not 8192 (because the numbering of tests will
be different), and this will have to be until we make all sub-tests
pass, i.e. TexSubImage3D is implemented.

Testing: A bunch of expected failures are removed.
Fixes: https://github.com/servo/servo/issues/44280

Signed-off-by: Simon Martin <simon@nasilyan.com>
2026-04-20 14:19:41 +00:00
Gae24
85eda69130 script: Complete script_module &mut JSContext migration (#44368)
Switch the remaining `SafeJSContext` usages to `&mut JSContext` inside
script_module.rs

Testing: It compiles.
Part of #40600

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2026-04-20 09:12:28 +00:00
Tim van der Lippe
4184b11362 script: Iterate over correct collections when moving (#44347)
Several times, we first need to capture the relevant nodes, perform a
step and then iterate over the nodes. Previously, we would iterate over
it, but the iterator could have moved, hence we would jump over some
nodes.

Instead, capture these beforehand and then iterate over them.

Also fixes the issue where text-decoration wasn't properly checked,
since its a shorthand for 3 longhands. And a PropertyDeclarationBlock
only has longhands.

The two regressions are for tests that now generate the correct HTML,
but their ranges are incorrectly moved from the `a` to the `b`. I went
through the relevant algorithms and didn't spot the mistake. To keep on
making babysteps towards a full implementation, I will tackle these in a
follow-up. These algorithms are already difficult enough to reason
about.

Part of #25005

Testing: WPT

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-04-19 21:51:14 +00:00
Freya Arbjerg
c14b7d66d0 devtools: Replace dead links in debugger.js (#44358)
This replaces dead firefox-source-docs.mozilla.org links in debugger.js 

Testing: Not relevant for comments
Fixes: No issue

Signed-off-by: Freya Arbjerg <git@arbjerg.dev>
2026-04-19 19:25:32 +00:00
Nico Burns
2c91740059 Use our own http server for the webdriver server (#44338)
Helps with: https://github.com/servo/servo/issues/38776. Reduces total
Servo crate count by 7 (977 -> 970).

This PR simply:
- Disables the `server` feature in the `webdriver` crate
- Vendors the implementation of the server from the `webdriver` crate
- Updates dependencies + fixes code to work with new versions

Unfortunately `webdriver` depends on `http` even with the `server`
feature disabled, so we still end up with duplicate versions of `http`.
But at least the duplicate `hyper` is eliminated. Future work could
change the implementation to e.g. move away from `warp` or similar.

Testing: WPT tests use webdriver, so this should be exercised heavily by
those tests.

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2026-04-19 15:42:45 +00:00
Simon Wülker
18d3ad5252 script: Support shadowrootslotassignment on template elements (#44246)
This brings up to date with the specification for declarative shadow
roots: https://github.com/whatwg/html/pull/12267.

The `shadowrootslotassignment` attribute on `<template>` elements
specifies the slot assignment mode used by the declarative shadow root
created by the template.

Testing: New tests start to pass

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2026-04-19 14:22:06 +00:00
Euclid Ye
eea0c586c0 ci: Set LLVM_OBJDUMP env-var when compiling libservo with MSRV in linux (#44352)
[Sometimes](https://github.com/servo/servo/actions/runs/24611835766/job/71967504931#step:10:1076),
CI fails to link pre-built archive, and have to build from source.
Previously this always fail as llvm-objdump is not found.

Testing: Successful [try
run](https://github.com/yezhizhen/servo/actions/runs/24626909297) when
building from source.
Fixes: #44351

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-19 13:44:49 +00:00
Simon Martin
d5dab9e353 webgl: Update stable test expectations to close intermittent issue (#44344)
Since 5634eab8cc, tex-3d-size-limit.html is not crashing anymore, and
even though I updated the test expectations and the test is consistently
passing locally at that commit, it's now failing some tests that should
have failed since the beginning (since there's no associated check in
the code).

I'm not sure why things seem to work with the previous test expectations
update and will follow-up, but in the meanwhile let's update them.

With this, things seem to be pretty good:
```
$ ./mach test-wpt --dev tests/wpt/webgl/tests/conformance2/textures/misc/tex-3d-size-limit.html --repeat 1000 [...]
web-platform-test
~~~~~~~~~~~~~~~~~
Ran 92000 checks (91000 subtests, 1000 tests)
Expected results: 92000
Unexpected results: 0
OK
```

Testing: Test seems to pass consistently with the updated expectations.
Fixes: https://github.com/servo/servo/issues/44280

Signed-off-by: Simon Martin <simon@nasilyan.com>
2026-04-19 08:33:09 +00:00
Josh Matthews
4e267b2f09 net: Update expected Accept-Language header in tests to use current locale. (#44340)
Our choice is to either override the user's locale or updated the
expected result to depend on the locale. Updating the expectation seemed
easier.

Testing: Unit tests pass locally, but CI runs with the en-US locale so
there's no observable difference.
Fixes: #43069

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2026-04-19 08:08:01 +00:00
Servo WPT Sync
345fd4573f Sync WPT with upstream (19-04-2026) (#44339)
Automated downstream sync of changes from upstream as of 19-04-2026
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-04-19 06:08:06 +00:00
Josh Matthews
19354a5b37 net: Update test cookie expiration dates to one century in the future. (#44341)
These dates were chosen 10 years ago, which I'm sure felt like a
reasonably far-future date for a very young web engine. Surprise! We're
still here, so we can be more bold this time.

Testing: Unit tests stop failing.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2026-04-19 04:55:05 +00:00
Asish Kumar
678f9d7a47 net: Keep IP cookie buckets separate (#44152)
Use the full IP address as the cookie storage bucket key instead of
passing IP hosts through the public suffix registrable-domain helper.
This prevents unrelated IP hosts that share suffix-like address segments
from sharing a per-host eviction bucket.

Testing: Added `test_ip_cookie_bucket_collision_eviction`; ran `cargo
test -p servo-net --test main test_ip_cookie_bucket_collision_eviction
--locked`.
Fixes: #44097

---------

Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
2026-04-18 19:55:19 +00:00
Tim van der Lippe
39a3aa991f script: Generate more correct HTML for underline command (#44331)
This makes further steps to generate the correct HTML. Some tests now
have more appropriate HTML, but are not fully passing yet as they
require more fixes. I also missed the fact that there is actually an
algorithm to set the tag name, which I thought didn't exist. Therefore,
also correctly implement that.

Part of #25005

Testing: WPT

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
2026-04-18 18:37:26 +00:00
rovertrack
8dfb6be75b layout: Produce an empty display list when the Document element is removed (#44133)
Previously, when the `Document` element was removed, no further display
list updates would be sent to paint. This change makes it so that when
the `Document` element is removed a single new empty display list is
sent.

Testing: This change adds a new WPT test .
Fixes: #44101

---------

Signed-off-by: Rover track <rishan.pgowda@gmail.com>
2026-04-18 16:48:29 +00:00
Gae24
2b21c528ea script: Clean up prepare the script element related code and remove ModuleOwner (#44179)
Drop the `ModuleOwner` logic in favour of closures passed down by the
script fetching initiator.
When processing inline module scripts a task in now queued on the
networking task source. Since `Rc<ModuleTree>` is not `Send`, a `result`
field is now introduced to `HTMLScriptElement`, which is initialized
before queueing the task.

This slightly improves `inline-async-inserted-execorder.html`, which now
fails at the fourth assertion instead of stopping at the second one (the
inline module script with no dependencies still resolves after the one
that has a parse error).

Testing: Covered by existing tests.

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2026-04-18 15:58:33 +00:00
Nico Burns
87819c5f00 layout: Fix x/y offset not being set for direct abspos grid children (#44324)
Previously absolutely positioned direct children of a CSS Grid had their
position (relative to their parent) hardcoded to (0, 0). This PR changes
that to correctly propagate the position computed by Taffy.

Testing: WPT tests.

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2026-04-18 14:31:09 +00:00
Euclid Ye
d3932a2118 Android: Fix black screen when exiting menu or resuming activity in lifecycle (#44327)
We should request repaint for the platform window when `resume_painting`
or entering
[Resumed](https://developer.android.com/guide/components/activities/activity-lifecycle#onresume)
state in Android activity lifecycle.

Fixes: #44300
Fixes: #40632
Fixes: #39737
Testing: Manually tested with following video proof


https://github.com/user-attachments/assets/046c045d-12d1-43fa-9387-fc504cc4bfe5

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-18 06:20:30 +00:00
webbeef
d16c9984f6 script: registration mechanism for selective broadcast from constellation (#43124)
This introduces a mechanism that let script threads register and
unregister themselves from receiving messages from the constellation.
This is useful when only globals with event listeners or callbacks will
process some message types.
The first migrated API is the webstorage 'storage' event. This patch
ensures that we only send IPC to same origin globals that have an event
handler set.
While we use it for an event here, this is also usable for DOM callbacks
such as the ones used in the Geolocation API.

Testing: optimization with no tests regression:
https://github.com/webbeef/servo/actions/runs/22880845745

---------

Signed-off-by: webbeef <me@webbeef.org>
2026-04-18 02:17:10 +00:00
Euclid Ye
5d91793d1c net: Fix link, reduce visibility, add TODO for Response::url (#44274)
I wanted to follow up to #43987, but don't know how to proceed
meaningfully :(

- Reduce visibility
- Add TODO for `Response::url`. This should be removed and determined by
`url_list` instead.
- Fix some spec link

Testing: Nothing should change as no code change.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-04-18 01:02:48 +00:00
Martin Robinson
b39d9833a4 script: Cancel animations for non-rendered nodes in script (#44299)
Instead of walking the entire fragment tree to find nodes for which
animations and image animations need to be cancelled, this change moves
that logic to `script`. Now, for each animating node the animation
managers will explicitly ask `layout` if the node is being rendered (or
delegating rendering in the case of CSS animations and transitions).

The main goal here is a performance improvement, elimating roughly 1% of
layout time from the profiler when running the
`flexbox-deeply-nested-column-flow.html` test case. This will almost
certainly be an even better improvement on more complex pages as we are
no longer doing things once per fragment tree entry, but once per
animating node.

There is also a subtle behavior improvement here. Before nodes with
`display: contents` had their animations canceled, but now they are not.
For instance, this test case now works properly:

```html
<!DOCTYPE html>
<style>
@keyframes anim {
  from { color: cyan }
  to { color: magenta }
}
div {
  display: contents;
  animation: anim 1s infinite alternate linear;
}
</style>
```

The new layout query will additionally be useful for other parts of
script that need to answer the same "being rendered" or "delegates
rendering to children" question.

Testing: This change adds a new test and gets one more subtest passing.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-04-17 21:59:20 +00:00
Narfinger
a908081352 chore: Remove some clippy complains for 1.95 (#44276)
This removes some complains that clippy will have in 1.95.
As this is mostly just match guards, it doesn't update MSRV.

Testing: This is equivalent exchanges, so current WPT would find
anything.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-04-17 19:55:17 +00:00