Commit graph

51687 commits

Author SHA1 Message Date
Martin Robinson
56e901d0c2
compositor: Always send an animating tick when a pipeline starts animating (#37507)
Instead of taking into account whether the entire WebView starts
animating, always send an animation tick when a pipeline moves from the
"not animating" to "animating" state. It could be that the WebView was
animating, but not painting if the animation was not producing display
lists. In that case, the required tick would never come, because it is
sent after a repaint.

Testing: Added a new WPT test.
Fixes: #37458.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-06-17 17:47:42 +00:00
dependabot[bot]
ded753f01b
build(deps): bump gleam from 0.15.0 to 0.15.1 (#37515)
Bumps [gleam](https://github.com/servo/gleam) from 0.15.0 to 0.15.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/servo/gleam/commits/v0.15.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gleam&package-manager=cargo&previous-version=0.15.0&new-version=0.15.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-06-17 17:27:33 +00:00
dependabot[bot]
8362d75985
build(deps): bump tracing-attributes from 0.1.29 to 0.1.30 (#37516)
Bumps [tracing-attributes](https://github.com/tokio-rs/tracing) from
0.1.29 to 0.1.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tracing/releases">tracing-attributes's
releases</a>.</em></p>
<blockquote>
<h2>tracing-attributes 0.1.30</h2>
<h3>Fixed</h3>
<ul>
<li>Fix <code>tracing::instrument</code> regression around shadowing (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3311">#3311</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tracing/issues/3311">#3311</a>:
<a
href="https://redirect.github.com/tokio-rs/tracing/pull/3311">tokio-rs/tracing#3311</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e63ef57f3d"><code>e63ef57</code></a>
chore: prepare tracing-attributes 0.1.30 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3316">#3316</a>)</li>
<li><a
href="6e59a13b1a"><code>6e59a13</code></a>
attributes: fix tracing::instrument regression around shadowing (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3311">#3311</a>)</li>
<li><a
href="e4df761275"><code>e4df761</code></a>
tracing: update core to 0.1.34 and attributes to 0.1.29 (<a
href="https://redirect.github.com/tokio-rs/tracing/issues/3305">#3305</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tracing/compare/tracing-attributes-0.1.29...tracing-attributes-0.1.30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tracing-attributes&package-manager=cargo&previous-version=0.1.29&new-version=0.1.30)](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-06-17 17:24:45 +00:00
dependabot[bot]
a923560637
build(deps): bump r-efi from 5.2.0 to 5.3.0 (#37513)
Bumps [r-efi](https://github.com/r-efi/r-efi) from 5.2.0 to 5.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/r-efi/r-efi/releases">r-efi's
releases</a>.</em></p>
<blockquote>
<h2>r-efi-5.3.0</h2>
<pre><code># r-efi - UEFI Reference Specification Protocol Constants and
Definitions
<h2>CHANGES WITH 5.3.0:</h2>
<pre><code>* Remove the optional dependency on `compiler-builtins`,
which was
  needed to build r-efi as part of rustc. This is no longer necessary.

Contributions from: David Rheinsberg, Trevor Gross

- Dußlingen, 2025-06-17
</code></pre>
<p></code></pre></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/r-efi/r-efi/blob/main/NEWS.md">r-efi's
changelog</a>.</em></p>
<blockquote>
<h2>CHANGES WITH 5.3.0:</h2>
<pre><code> * Remove the optional dependency on `compiler-builtins`,
which was
needed to build r-efi as part of rustc. This is no longer necessary.
<pre><code>Contributions from: David Rheinsberg, Trevor Gross

- Dußlingen, 2025-06-17
</code></pre>
<p></code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="97b55bed1c"><code>97b55be</code></a>
build: prepare v5.3.0</li>
<li><a
href="addacc1f3f"><code>addacc1</code></a>
Remove <code>compiler-builtins</code> from <code>rustc-dep-of-std</code>
dependencies</li>
<li><a
href="345756ae42"><code>345756a</code></a>
ci: use shared publish-workflow</li>
<li>See full diff in <a
href="https://github.com/r-efi/r-efi/compare/v5.2.0...v5.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=r-efi&package-manager=cargo&previous-version=5.2.0&new-version=5.3.0)](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-06-17 17:18:42 +00:00
dependabot[bot]
38572db371
build(deps): bump async-compression from 0.4.24 to 0.4.25 (#37514)
Bumps
[async-compression](https://github.com/Nullus157/async-compression) from
0.4.24 to 0.4.25.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Nullus157/async-compression/blob/main/CHANGELOG.md">async-compression's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/Nullus157/async-compression/compare/v0.4.24...v0.4.25">0.4.25</a>
- 2025-06-17</h2>
<h3>Changed</h3>
<ul>
<li>Update <code>bzip2</code> dependency to <code>0.6</code>. (<a
href="https://redirect.github.com/Nullus157/async-compression/pull/350">#350</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8f9394ddb7"><code>8f9394d</code></a>
chore: release v0.4.25 (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/351">#351</a>)</li>
<li><a
href="d6175d52dc"><code>d6175d5</code></a>
chore(deps): update bzip2 requirement from 0.5 to 0.6 (<a
href="https://redirect.github.com/Nullus157/async-compression/issues/350">#350</a>)</li>
<li>See full diff in <a
href="https://github.com/Nullus157/async-compression/compare/v0.4.24...v0.4.25">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.24&new-version=0.4.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 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-06-17 17:12:20 +00:00
Euclid Ye
f22c273ea9
script::webdriver_handlers: Replace find_node_by_unique_id with get_known_element (#37502)
Implement previously missing step 3 of [get a known
element](https://w3c.github.io/webdriver/#dfn-get-a-known-element): "If
node is not null and node does not implement Element, return error with
error code no such element"

Testing: All webdriver conformance test

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-17 15:23:59 +00:00
Narfinger
6159a11905
OHOS: Fixed some clippy lints (#37510)
Fixed some clippy lints which were in the OHOS code.

Testing: Normal testcases apply and changes are trivial.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-06-17 14:09:37 +00:00
Simon Wülker
f29eee5356
Make layout build a display list when the highlighted DOM node changed (#37501)
Highlights from the devtools trigger reflows. Previously, incremental
layout would notice that nothing about the box tree changed and skip
generating a new display list. This caused the highlights to never be
painted.

Forcing a new DL in this case makes reflows that happen *while* there is
a highlighted DOM node (which did not change since the last reflow)
slightly less efficient. We could check if the highlighted node changed
and only force a new display list if it did, but I'm not sure if
`OpaqueNode`s can be compared like that. It also seems like a very niche
issue.

Testing: This is hard to test for, so there are no tests.
Fixes https://github.com/servo/servo/issues/37500.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-17 11:14:41 +00:00
Martin Robinson
c0970ea655
compositor: Wait for both Script and the Constellation when shutting down Pipelines (#37505)
Previously, the Constellation would immediately ask the Compositor to
shut down a pipeline, even before the ScriptThread finished shutting it
down. This meant that the Compositor might remove a Pipeline and then
re-add it if the ScriptThread sent a Pipeline-related message (such as a
new display list) in the meantime.

This change makes it so that the Compositor waits for both the
Constellation and the ScriptThread to finish shutting down a Pipeline
before removing its data. In addition, the Constellation no longer
synchronously waits on the Compositor when shutting down Pipelines. This
was important when the Compositor would talk to the ScriptThread
directly, but isn't necessary any longer.

Testing: This is very hard to test, because it depends on the creation
and destruction of many iframes and the particular timing of of all
the messaging between Servo bits. That said, this was tested manually
by observing the completion of Speedometer 2.1.
Fixes: #37458.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-06-17 09:56:31 +00:00
Andrei Volykhin
1bd8f38810
imagebitmap: Resolve promise with ImageBitmap on bitmap task source (#37488)
Follow the ImageBitmap specification and use the global scope bitmap
task source
to fulfill resolved promise (asynchronously). 
https://html.spec.whatwg.org/multipage/#bitmap-task-source

Any promise rejection must be done synchronously.

Testing: Improvements in the following WPT test
-
html/canvas/element/manual/imagebitmap/createImageBitmap-resolves-in-task.any.js

Fixes (partially): #34112

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-06-17 08:19:32 +00:00
dependabot[bot]
ef5e9b5f4d
build(deps): bump slab from 0.4.9 to 0.4.10 (#37492)
Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.9 to 0.4.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/slab/releases">slab's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.10</h2>
<ul>
<li>Add <code>Slab::get_disjoint_mut</code> (<a
href="https://redirect.github.com/tokio-rs/slab/issues/149">#149</a>)</li>
<li>Drop build script and <code>autocfg</code> dependency (<a
href="https://redirect.github.com/tokio-rs/slab/issues/150">#150</a>)</li>
<li>Fix redundant import warning in no_std builds (<a
href="https://redirect.github.com/tokio-rs/slab/issues/143">#143</a>)</li>
<li>Fix <code>clippy::needless_lifetimes</code> warning (<a
href="https://redirect.github.com/tokio-rs/slab/issues/147">#147</a>)</li>
<li>Internal CI improvements (<a
href="https://redirect.github.com/tokio-rs/slab/issues/141">#141</a>, <a
href="https://redirect.github.com/tokio-rs/slab/issues/146">#146</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md">slab's
changelog</a>.</em></p>
<blockquote>
<h1>0.4.10 (June 15, 2025)</h1>
<ul>
<li>Add <code>Slab::get_disjoint_mut</code> (<a
href="https://redirect.github.com/tokio-rs/slab/issues/149">#149</a>)</li>
<li>Drop build script and <code>autocfg</code> dependency (<a
href="https://redirect.github.com/tokio-rs/slab/issues/150">#150</a>)</li>
<li>Fix redundant import warning in no_std builds (<a
href="https://redirect.github.com/tokio-rs/slab/issues/143">#143</a>)</li>
<li>Fix <code>clippy::needless_lifetimes</code> warning (<a
href="https://redirect.github.com/tokio-rs/slab/issues/147">#147</a>)</li>
<li>Internal CI improvements (<a
href="https://redirect.github.com/tokio-rs/slab/issues/141">#141</a>, <a
href="https://redirect.github.com/tokio-rs/slab/issues/146">#146</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6a1b675665"><code>6a1b675</code></a>
Release v0.4.10 (<a
href="https://redirect.github.com/tokio-rs/slab/issues/151">#151</a>)</li>
<li><a
href="f801afe5cb"><code>f801afe</code></a>
feat: add <code>get_disjoint_mut</code> (<a
href="https://redirect.github.com/tokio-rs/slab/issues/149">#149</a>)</li>
<li><a
href="8e65636d42"><code>8e65636</code></a>
Bump MSRV to v1.46 (<a
href="https://redirect.github.com/tokio-rs/slab/issues/150">#150</a>)</li>
<li><a
href="30e8dd746a"><code>30e8dd7</code></a>
Fix clippy::needless_lifetimes warning (<a
href="https://redirect.github.com/tokio-rs/slab/issues/147">#147</a>)</li>
<li><a
href="fecdd68a53"><code>fecdd68</code></a>
Fix CI failures (<a
href="https://redirect.github.com/tokio-rs/slab/issues/146">#146</a>)</li>
<li><a
href="f7b621f6cf"><code>f7b621f</code></a>
Always set #![no_std] to fix redundant import warning (<a
href="https://redirect.github.com/tokio-rs/slab/issues/143">#143</a>)</li>
<li><a
href="334a8373bd"><code>334a837</code></a>
Update CI config (<a
href="https://redirect.github.com/tokio-rs/slab/issues/141">#141</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/slab/compare/v0.4.9...v0.4.10">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=slab&package-manager=cargo&previous-version=0.4.9&new-version=0.4.10)](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-06-16 18:42:35 +00:00
dependabot[bot]
c9acd443a0
build(deps): bump jiff from 0.2.14 to 0.2.15 (#37490)
Bumps [jiff](https://github.com/BurntSushi/jiff) from 0.2.14 to 0.2.15.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md">jiff's
changelog</a>.</em></p>
<blockquote>
<h1>0.2.15 (2025-06-13)</h1>
<p>This release fixes a bug where error values were being constructed
during
parsing even in the success case. This was a regression introduced in
<code>0.2.14</code>
as a result of trying to improve compilation times. Thankfully, fixing
this
regression doesn't seem to meaningfully impact the amount of IR
generated by
compiling Jiff.</p>
<p>Bug fixes:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/pull/385">#385</a>:
Fixes a performance regression for parsing.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8842b0fcf7"><code>8842b0f</code></a>
0.2.15</li>
<li><a
href="e355d4880e"><code>e355d48</code></a>
error: partially re-inline error constructors</li>
<li><a
href="78ba38538b"><code>78ba385</code></a>
doc: fix outdated mentions of <code>Span</code> assuming 24-hour
days</li>
<li>See full diff in <a
href="https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.14...jiff-static-0.2.15">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jiff&package-manager=cargo&previous-version=0.2.14&new-version=0.2.15)](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-06-16 18:35:47 +00:00
dependabot[bot]
d8c2b710d3
build(deps): bump libc from 0.2.172 to 0.2.173 (#37491)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.172 to 0.2.173.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/libc/releases">libc's
releases</a>.</em></p>
<blockquote>
<h2>0.2.173</h2>
<h3>Added</h3>
<ul>
<li>AIX: Add an AIX triple to Cargo.toml for doc (<a
href="https://redirect.github.com/rust-lang/libc/pull/4475">#4475</a>)</li>
<li>FreeBSD: Add the <code>SO_SPLICE</code> socket option support for
FreeBSD &gt;= 14.2 (<a
href="https://redirect.github.com/rust-lang/libc/pull/4451">#4451</a>)</li>
<li>Linux GNU: Prepare for supporting <code>_TIME_BITS=64</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4433">#4433</a>)</li>
<li>Linux: Add constant PACKET_IGNORE_OUTGOING (<a
href="https://redirect.github.com/rust-lang/libc/pull/4319">#4319</a>)</li>
<li>Linux: Add constants and types for <code>nsfs</code> ioctls (<a
href="https://redirect.github.com/rust-lang/libc/pull/4436">#4436</a>)</li>
<li>Linux: Add constants for Memory-Deny-Write-Execute
<code>prctls</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4400">#4400</a>)</li>
<li>Linux: Add constants from <code>linux/cn_proc.h</code> and
<code>linux/connector.h</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4434">#4434</a>)</li>
<li>Linux: Add new flags for <code>pwritev2</code> and
<code>preadv2</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4452">#4452</a>)</li>
<li>Linux: Add pid_type enum values (<a
href="https://redirect.github.com/rust-lang/libc/pull/4403">#4403</a>)</li>
<li>Linux: Update pidfd constants and types (Linux 6.9-6.15) (<a
href="https://redirect.github.com/rust-lang/libc/pull/4402">#4402</a>)</li>
<li>Loongarch64 musl: Define the <code>MADV_SOFT_OFFLINE</code> constant
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4448">#4448</a>)</li>
<li>Musl: Add new fields since 1.2.0/1.2.2 to <code>struct
tcp_info</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4443">#4443</a>)</li>
<li>Musl: Prepare for supporting v1.2.3 (<a
href="https://redirect.github.com/rust-lang/libc/pull/4443">#4443</a>)</li>
<li>NuttX: Add <code>arc4random</code> and <code>arc4random_buf</code>
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4464">#4464</a>)</li>
<li>RISC-V Musl: Add <code>MADV_SOFT_OFFLINE</code> definition (<a
href="https://redirect.github.com/rust-lang/libc/pull/4447">#4447</a>)</li>
<li>Redox: Define SCM_RIGHTS (<a
href="https://redirect.github.com/rust-lang/libc/pull/4440">#4440</a>)</li>
<li>VxWorks: Add missing UTIME defines and TASK_RENAME_LENGTH (<a
href="https://redirect.github.com/rust-lang/libc/pull/4407">#4407</a>)</li>
<li>Windows: Add more <code>time.h</code> functions (<a
href="https://redirect.github.com/rust-lang/libc/pull/4427">#4427</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Redox: Update <code>SA_</code> constants. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4426">#4426</a>)</li>
<li>Redox: make <code>CMSG_ALIGN</code>, <code>CMSG_LEN</code>, and
<code>CMSG_SPACE</code> const functions (<a
href="https://redirect.github.com/rust-lang/libc/pull/4441">#4441</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>AIX: Enable libc-test and fix definitions/declarations. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4450">#4450</a>)</li>
<li>Emscripten: Fix querying emcc on windows (use emcc.bat) (<a
href="https://redirect.github.com/rust-lang/libc/pull/4248">#4248</a>)</li>
<li>Hurd: Fix build from missing <code>fpos_t</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4472">#4472</a>)</li>
<li>Loongarch64 Musl: Fix the <code>struct ipc_perm</code> bindings (<a
href="https://redirect.github.com/rust-lang/libc/pull/4384">#4384</a>)</li>
<li>Musl: Fix the <code>O_LARGEFILE</code> constant value. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4443">#4443</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/libc/blob/0.2.173/CHANGELOG.md">libc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/libc/compare/0.2.172...0.2.173">0.2.173</a>
- 2025-06-09</h2>
<h3>Added</h3>
<ul>
<li>AIX: Add an AIX triple to Cargo.toml for doc (<a
href="https://redirect.github.com/rust-lang/libc/pull/4475">#4475</a>)</li>
<li>FreeBSD: Add the <code>SO_SPLICE</code> socket option support for
FreeBSD &gt;= 14.2 (<a
href="https://redirect.github.com/rust-lang/libc/pull/4451">#4451</a>)</li>
<li>Linux GNU: Prepare for supporting <code>_TIME_BITS=64</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4433">#4433</a>)</li>
<li>Linux: Add constant PACKET_IGNORE_OUTGOING (<a
href="https://redirect.github.com/rust-lang/libc/pull/4319">#4319</a>)</li>
<li>Linux: Add constants and types for <code>nsfs</code> ioctls (<a
href="https://redirect.github.com/rust-lang/libc/pull/4436">#4436</a>)</li>
<li>Linux: Add constants for Memory-Deny-Write-Execute
<code>prctls</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4400">#4400</a>)</li>
<li>Linux: Add constants from <code>linux/cn_proc.h</code> and
<code>linux/connector.h</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4434">#4434</a>)</li>
<li>Linux: Add new flags for <code>pwritev2</code> and
<code>preadv2</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4452">#4452</a>)</li>
<li>Linux: Add pid_type enum values (<a
href="https://redirect.github.com/rust-lang/libc/pull/4403">#4403</a>)</li>
<li>Linux: Update pidfd constants and types (Linux 6.9-6.15) (<a
href="https://redirect.github.com/rust-lang/libc/pull/4402">#4402</a>)</li>
<li>Loongarch64 musl: Define the <code>MADV_SOFT_OFFLINE</code> constant
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4448">#4448</a>)</li>
<li>Musl: Add new fields since 1.2.0/1.2.2 to <code>struct
tcp_info</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4443">#4443</a>)</li>
<li>Musl: Prepare for supporting v1.2.3 (<a
href="https://redirect.github.com/rust-lang/libc/pull/4443">#4443</a>)</li>
<li>NuttX: Add <code>arc4random</code> and <code>arc4random_buf</code>
(<a
href="https://redirect.github.com/rust-lang/libc/pull/4464">#4464</a>)</li>
<li>RISC-V Musl: Add <code>MADV_SOFT_OFFLINE</code> definition (<a
href="https://redirect.github.com/rust-lang/libc/pull/4447">#4447</a>)</li>
<li>Redox: Define SCM_RIGHTS (<a
href="https://redirect.github.com/rust-lang/libc/pull/4440">#4440</a>)</li>
<li>VxWorks: Add missing UTIME defines and TASK_RENAME_LENGTH (<a
href="https://redirect.github.com/rust-lang/libc/pull/4407">#4407</a>)</li>
<li>Windows: Add more <code>time.h</code> functions (<a
href="https://redirect.github.com/rust-lang/libc/pull/4427">#4427</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Redox: Update <code>SA_</code> constants. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4426">#4426</a>)</li>
<li>Redox: make <code>CMSG_ALIGN</code>, <code>CMSG_LEN</code>, and
<code>CMSG_SPACE</code> const functions (<a
href="https://redirect.github.com/rust-lang/libc/pull/4441">#4441</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>AIX: Enable libc-test and fix definitions/declarations. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4450">#4450</a>)</li>
<li>Emscripten: Fix querying emcc on windows (use emcc.bat) (<a
href="https://redirect.github.com/rust-lang/libc/pull/4248">#4248</a>)</li>
<li>Hurd: Fix build from missing <code>fpos_t</code> (<a
href="https://redirect.github.com/rust-lang/libc/pull/4472">#4472</a>)</li>
<li>Loongarch64 Musl: Fix the <code>struct ipc_perm</code> bindings (<a
href="https://redirect.github.com/rust-lang/libc/pull/4384">#4384</a>)</li>
<li>Musl: Fix the <code>O_LARGEFILE</code> constant value. (<a
href="https://redirect.github.com/rust-lang/libc/pull/4443">#4443</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9288ec0123"><code>9288ec0</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4486">#4486</a>
from tgross35/fix-no-publish</li>
<li><a
href="6787debbcf"><code>6787deb</code></a>
Fix publishing on the <code>libc-0.2</code> branch</li>
<li><a
href="1c5b5538c8"><code>1c5b553</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4481">#4481</a>
from tgross35/release</li>
<li><a
href="2d0dfd33ba"><code>2d0dfd3</code></a>
chore: release libc 0.2.173</li>
<li><a
href="92347ec8c9"><code>92347ec</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/libc/issues/4476">#4476</a>
from tgross35/backport-scotch-bonnet</li>
<li><a
href="1a418edf7c"><code>1a418ed</code></a>
lints: Remove <code>allow(dead_code)</code></li>
<li><a
href="7be1a7a7d8"><code>7be1a7a</code></a>
lints: Remove <code>allow(redundant_semicolons)</code></li>
<li><a
href="53301c2052"><code>53301c2</code></a>
lints: Warn rather than deny by default</li>
<li><a
href="6595c614b4"><code>6595c61</code></a>
Add AIX triple to Cargo.toml for doc.</li>
<li><a
href="600d8adc21"><code>600d8ad</code></a>
Add ctest-next stub and expected dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/libc/compare/0.2.172...0.2.173">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.172&new-version=0.2.173)](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-06-16 18:35:31 +00:00
dependabot[bot]
8ad9c64c3a
build(deps): bump rustls from 0.23.27 to 0.23.28 (#37489)
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.27 to
0.23.28.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="12fe0c123f"><code>12fe0c1</code></a>
Prepare 0.23.28</li>
<li><a
href="46ba039ba0"><code>46ba039</code></a>
Expose <code>named_groups</code> extension in
<code>ClientHello</code></li>
<li><a
href="b9a530a746"><code>b9a530a</code></a>
ci-bench: low-noise benchmarks with rustls-fuzzing-provider</li>
<li><a
href="9b452d26a4"><code>9b452d2</code></a>
fuzzing-provider: support no-op ticketer</li>
<li><a
href="136e857c77"><code>136e857</code></a>
fuzzing-provider: make ciphersuites public</li>
<li><a
href="96d66569c9"><code>96d6656</code></a>
Only include renegotiation SCSV for TLS1.2 attempts</li>
<li><a
href="568b2c6500"><code>568b2c6</code></a>
Use <code>ProtocolName</code> for ALPN protocol pervasively</li>
<li><a
href="229dfe250d"><code>229dfe2</code></a>
Allow future customisation of alert sent for
<code>InvalidMessage</code></li>
<li><a
href="d8828602c5"><code>d882860</code></a>
Return more specific type from <code>outer_hello_ext()</code></li>
<li><a
href="34cdce3d8c"><code>34cdce3</code></a>
Return more specific type from <code>grease_ext()</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/rustls/compare/v/0.23.27...v/0.23.28">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustls&package-manager=cargo&previous-version=0.23.27&new-version=0.23.28)](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-06-16 18:25:04 +00:00
Simon Wülker
048de52238
Don't allocate in Dom::trace even when debug assertions are enabled (#37487)
`Dom::trace` currently allocates a new string when debug assertions are
enabled:

0f61361e27/components/script_bindings/root.rs (L232-L241)

This allocation is very heavy in profiles (~14% of runtime). While it
doesn't affect production builds, these few characters are not providing
enough value to justify the cost.

This changes the method to instead only use `std::any::type_name`,
without `format!`. With this change, all the string-format related
methods vanish from the profile.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-16 17:32:33 +00:00
Euclid Ye
f60e9cdff5
layout: capitalize string for TextTransformCase::Capitalize in fn rendered_text_collection_steps (#37486)
Previously, `rendered_text_collection_steps` ignores
`TextTransformCase::Capitalize` due to limitation of iterator. Now we
handle the case outside.

Testing: Added a new test as not covered by existing wpt-test, except
for the indirectly related WebDriver test.
`./mach test-wpt -r
tests\wpt\tests\webdriver\tests\classic\get_element_text\get.py
--product servodriver`

Fixes: #37469

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-16 14:12:07 +00:00
webbeef
910cc0b687
Fix panic in formelement.rs (#37459)
Use borrowing directly with iterators instead of holding the borrowed
value for a longer scope.

Testing: Covered by existing tests, and manual testing with the test
case from https://github.com/servo/servo/issues/37430
Fixes: https://github.com/servo/servo/issues/37430

Signed-off-by: webbeef <me@webbeef.org>
2025-06-16 12:41:37 +00:00
Andrei Volykhin
bcade589e7
imagebitmap: Crop bitmap data with formatting (#37397)
Follow the ImageBitmap specification and make cropping of the bitmap
data to the source rectangle with formatting:
https://html.spec.whatwg.org/multipage/#cropped-to-the-source-rectangle-with-formatting

For now the next functionality not implemented:
- image orientation support (such as EXIF metadata)
- color space conversion (image, blob)

The convertion from ResizeQuality to "image" FilterType:
 - pixelated/low/medium/high -> Nearest/Triangle/CatmullRom/Lanczos3

Other browsers use the following sample filtering:
 - chromium (skia): Nearest/Linear/Linear/CatmullRom
 - firefox (skia): Lanczos3

Testing: Improvements in the following WPT tests
 - html/canvas/element/manual/imagebitmap/*

Fixes (partially): #34112

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-06-16 12:09:04 +00:00
Martin Robinson
0f61361e27
layout: Unify scrollable overflow calculation and include position: absolute (#37475)
Previously, layout was handling scrollable overflow and srolling area
calculation separately, only excluding the "unreachable scrollable
overflow region" at the last step. In addition, `position: absolute` was
not included in scrollable overflow calculation.

This change combines the two concepts into a single scrollable overflow
calculation and starts taking into account `position: absolute`.
Finally, `BoxFragment::scrollable_overflow_for_parent` is converted to
use early returns which reduces the amount of indentation.

Fixes #35928.
Fixes #37204.
Testing: This causes some WPT test to pass, but also two to start
failing:
- `/css/css-masking/clip-path/clip-path-fixed-scroll.html`: This seems
to fail
because script is scrolling past the boundaries of the document. This is
a
failure that was uncovered by the fixed element now being added to the
   page's scroll area.
- `/css/css-overflow/overflow-outside-padding.html`: One test has
started to fail
here because now the absolutely positioned element is included in the
scroll area,
and I think there is an issue with how we are placing RTL items with
negative margins.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-06-16 11:30:31 +00:00
Martin Robinson
29e618dcf7
fonts: Start using fontations to read font tables (#37287)
Use `read-fonts` to read font tables for FreeType fonts. This is the
first step to using fontations throughout Servo. The main benefit here
is that we no longer need to provide our own table data structures and
we can read tables from these fonts without making copies of the table
contents.

Testing: This should not change observable behavior and is covered by
existing WPT tests. I have run some manual microbenchmarks and have not
noticed any changes in performance that are larger than the general
noise.
This adds a new memory map of the font file for local fonts, but this
should be very cheap as FreeType is already doing this internally and
subsequent maps should just reuuse the existing memory-mapped file.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-06-16 11:29:50 +00:00
batu_hoang
1044f8fbf5
Revert "Remove duplication in dispatch_pending_point_input_events" (#37482)
Revert "Remove duplication in dispatch_pending_point_input_events"
(https://github.com/servo/servo/pull/37426) which causes a serious bug.

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
2025-06-16 08:36:05 +00:00
Narfinger
3b73b83a9f
Allow OHOS servoshell to have a simple multiple tab implementation. (#36891)
Currently we just pause the compositor and replace the window in it
while having separate bookkeeping to remember which window belongs to
which tab.
Currently there are no tests for OHOS, so we cannot test the changes.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Co-authored-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
2025-06-16 08:17:31 +00:00
Rodion Borovyk
71bf9fb92d
Fix the native-bluetooth feature on macOS (#37476)
Fix the native-bluetooth feature on macOS builds. Enable the
native-bluetooth by default.

Testing: Added --features native-bluetooth to GH actions so the build
will fail if something is wrong. Don't know why it was not enabled
previously, please let me know if it is ok to leave the feature enabled.
Fixes: https://github.com/servo/servo/issues/37454

As for the numerous such warnings
```
warning: unexpected `cfg` condition value: `cargo-clippy`
   --> third_party/blurmac/src/framework.rs:480:43
    |
480 |             let uuidstring: *mut Object = msg_send![cbuuid, UUIDString];
    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: no expected values for `feature`
    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
    = help: try referring to `sel_impl` crate for guidance on how handle this unexpected cfg
    = help: the macro `sel_impl` may come from an old version of the `objc` crate, try updating your dependency with `cargo update -p objc`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
    = note: this warning originates in the macro `sel_impl` which comes from the expansion of the macro `msg_send` (in Nightly builds, run with -Z macro-backtrace for more info)
```

that macOS builds generates (mentioned
[here](https://github.com/servo/servo/pull/37439)) I found this:
https://github.com/SSheldon/rust-objc/issues/125. Also, in general the
`objc` crate seems to be stale and people are forking it, so maybe I
should start a Zulip conversation about migrating to something like this
https://github.com/madsmtm/objc2?

---------

Signed-off-by: Rodion Borovyk <rodion.borovyk@gmail.com>
2025-06-16 06:58:08 +00:00
Ngo Iok Ui (Wu Yu Wei)
e69962e646
canvas: prevent unwrap on offscreen canvas (#37460)
Remove all unwrap usage on offscreen canvas to prevent panic.

Testing:
`tests/wpt/tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-crash.html`
Fixes: #37415

---------

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
Signed-off-by: Yu Wei Wu <yuweiwu@YunoMacBook-Air.local>
Co-authored-by: Yu Wei Wu <yuweiwu@YunoMacBook-Air.local>
2025-06-16 05:39:56 +00:00
Euclid Ye
f8f7c6ebd1
[WebDriver] Properly report error for find_element & find_elements; Get correct visible text when matching links (#37452)
1. Properly report new types of errors for `find_element` and
`find_elements`. Previously never reported.
1.1. `InvalidSelector`
1.2. `NoSuchElement`
1.3. `InvalidArgument`

2. Get the visible text for `<a>` correctly in
`script::webdriver_handler` so that matching would work.

Testing: `./mach test-wpt -r --log-raw "D:\servo test log\all.txt"
webdriver/tests/classic/find_element/find.py
webdriver/tests/classic/find_elements/find.py --product servodriver`

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-16 05:23:26 +00:00
Simon Wülker
62b078dd62
Remove "isInitial" argument from memberInit (#37477)
This argument is always `True`.

Testing: Correct generation of dictionary binding code should be covered
by wpt

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-15 23:19:48 +00:00
Simon Wülker
9d10e41a1a
Don't count <img> elements with both name and id twice in document's named getter (#37455)
A document's named getter collects elements with either matching name or
id's (varies per element type) and returns them .

We implement this the following way:
* Create an iterator with elements whose `name` attribute matches
* Create an iterator with elements whose `id` attribute matches
* Concatenate both

The spec then asks us if there is more than one element in the list,
which we implement by checking whether the iterator returns `None` after
we get the first element. However, the same element can appear in both
iterators if it is a `img` element and both it's name and id attribute
match. Therefore, we need to check if there are more elements *which are
not equal to the first one*.

Testing: New web platform tests pass

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-15 18:54:53 +00:00
Oriol Brufau
ae20cdbdc9
layout: Ensure that min/max-content sizes ignore sizing properties (#37464)
This amends #37457 so that the min-content and max-content inline sizes
of a replaced element stop depending on the value of the inline sizing
properties.

In practice I don't think this has any observable effect, but now the
code obeys https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes, and
it's simpler.

Testing: Unneeded

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-06-15 16:11:18 +00:00
Tim van der Lippe
f2d0be1b9a
script: Fix check for document root when targeting CSP events (#37474)
The check was incorrect, where it was never matching and always
discarding the element. Instead, we should check the owner document,
which is the shadow-including root of the node.

Part of #4577

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-06-15 14:54:41 +00:00
Tim van der Lippe
576c7445b8
Use DOMString for internal data of Trusted Types (#37472)
This avoids various conversions back and forth between DOMString and
String. By using DOMString consistently, we avoid these
double-conversions. The only caveat are the USVString which are
initially passed into
TrustedScriptURL.

Part of #36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-06-15 14:12:33 +00:00
Tim van der Lippe
dfbd5b7d21
Modularize security_manager by moving report logic (#37347)
Move all report structs into the same file, to
keep them consistent and reuse functions such as stripping
of the URL and serialization of disposition. This is part
of modularizing security_manager, which contained various
logic related to CSP.

Part of #4577

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-06-15 14:10:19 +00:00
Xiaocheng Hu
f09042340c
Stop DedicatedWorker from handling remaining messages after closed (#37471)
Stop DedicatedWorker from handling remaining messages after closed

Testing: WPT workers/WorkerGlobalScope-close.html

Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com>
2025-06-15 08:09:08 +00:00
Euclid Ye
9352a9db7c
script: Support webdriver's Get Element Text operation for non-HTML elements (#37470)
Fix `WebDriverScriptCommand::GetElementText` similar to
https://github.com/servo/servo/pull/37452#discussion_r2146350739, by
correctly retrieving rendered text.

Testing: `./mach test-wpt -r --log-raw "D:\servo test
log\gt_ele_txt.txt" webdriver/tests/classic/get_element_text --product
servodriver`

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-15 05:32:29 +00:00
batu_hoang
810c0e6891
Remove duplication in dispatch_pending_point_input_events (#37426)
Follow up to:
https://github.com/servo/servo/pull/37285#pullrequestreview-2916829212,
this PR removes duplicate code.
cc: @xiaochengh

---------

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
2025-06-15 05:32:13 +00:00
Euclid Ye
5d42ab05fb
[WebDriver] Improve get active element (#37425)
Report `NoSuchElement` if the active element is null, according to spec.

Testing: `./mach test-wpt -r --log-raw "D:\servo test log\all.txt"
.\tests\wpt\tests\webdriver\tests\classic\get_active_element --product
servodriver`
Partly fixes: #37420. We can pass `get_active_element` test once #37424
is done.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-15 05:17:59 +00:00
Servo WPT Sync
1eb62a1ffb
Sync WPT with upstream (15-06-2025) (#37468)
Automated downstream sync of changes from upstream as of 15-06-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-06-15 04:21:56 +00:00
Jay Wang
96adb1e959
improvement: body element check (#37442)
Created a new method `HTMLElement::is_body_element` that replaces
`HTMLBodyElement::is_the_html_body_element`.

Testing: Existing WPT tests should pass.
Fixes: https://github.com/servo/servo/issues/37429

---------

Signed-off-by: iamlockon <xdddxyyyxzzz123@gmail.com>
2025-06-15 04:11:32 +00:00
Tim van der Lippe
c74a422e4c
Implement script prepare text for Trusted Types (#37466)
Recently added WPT tests for this are now mostly passing. The remaining
tests fail on importmap support.

Part of #36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-06-14 22:33:25 +00:00
Oriol Brufau
f963f2731d
layout: Properly handle intrinsic min/max block sizes on replaced element (#37457)
This change aligns Servo with both Blink and WebKit in common cases.

When the `aspect-ratio` property is set to a different value than the
natural ratio, then Blink and WebKit disagree, we match Blink.

Gecko doesn't support intrinsic min/max block sizes at all.

Note this patch doesn't fix the intrinsic contributions, they will need
to be addressed in a follow-up patch.

Testing: Covered by WPT
Fixes: #37433

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-06-14 09:24:10 +00:00
Michael Mc Donnell
a27f2bb84d
Fix Rust-analyzer errors and warnings in blurmac (#37439)
I got 22 errors and 63 warnings when I opened the Servo project in
Visual Studio Code with the Rust-analyzer extension on Linux. The
`blurmac` package, which is vendored in the source tree, only needs to
be be compiled on macOS.

With this change I get zero errors and 2 unrelated warnings.

Testing: I don't have a mac and cannot test it there. I only tested it
building on Linux. I also did not test test the Bluetooth feature. I
think the change is pretty straightforward and unlikely to cause a major
regression.

Signed-off-by: Michael Mc Donnell <michael@mcdonnell.dk>
2025-06-14 06:08:07 +00:00
dependabot[bot]
e6ae4434cb
build(deps): bump windows-link from 0.1.1 to 0.1.3 (#37450)
Bumps [windows-link](https://github.com/microsoft/windows-rs) from 0.1.1
to 0.1.3.
<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-link&package-manager=cargo&previous-version=0.1.1&new-version=0.1.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 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-06-14 03:48:30 +00:00
dependabot[bot]
b65f78c83f
build(deps): bump syn from 2.0.102 to 2.0.103 (#37449)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.102 to 2.0.103.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/syn/releases">syn's
releases</a>.</em></p>
<blockquote>
<h2>2.0.103</h2>
<ul>
<li>Insert parentheses around binary operation with attribute (<a
href="https://redirect.github.com/dtolnay/syn/issues/1871">#1871</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85d427679f"><code>85d4276</code></a>
Release 2.0.103</li>
<li><a
href="6f7b0f39b3"><code>6f7b0f3</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1871">#1871</a>
from dtolnay/binaryattr</li>
<li><a
href="89f88facd1"><code>89f88fa</code></a>
Correctly track bailouts in parenthesized binary expressions</li>
<li><a
href="0e07372e40"><code>0e07372</code></a>
Add binary operator attribute bailout test</li>
<li><a
href="ca8d876bde"><code>ca8d876</code></a>
Insert parentheses around binary operation with attribute</li>
<li><a
href="5be0f7121f"><code>5be0f71</code></a>
Add binary operator attribute tests</li>
<li><a
href="026bb3cf32"><code>026bb3c</code></a>
Discard paren attrs in unparenthesize test</li>
<li><a
href="217dd626aa"><code>217dd62</code></a>
Preserve attributes of Expr::Paren in FlattenParens</li>
<li><a
href="ef977c1059"><code>ef977c1</code></a>
Update test suite to nightly-2025-06-11</li>
<li>See full diff in <a
href="https://github.com/dtolnay/syn/compare/2.0.102...2.0.103">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syn&package-manager=cargo&previous-version=2.0.102&new-version=2.0.103)](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-06-13 17:29:36 +00:00
dependabot[bot]
851f8b9200
build(deps): bump cc from 1.2.26 to 1.2.27 (#37448)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.26 to 1.2.27.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/releases">cc's
releases</a>.</em></p>
<blockquote>
<h2>cc-v1.2.27</h2>
<h3>Other</h3>
<ul>
<li>Regenerate windows sys bindings (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1485">#1485</a>)</li>
<li>Update windows-bindgen requirement from 0.61 to 0.62 (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1484">#1484</a>)</li>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1483">#1483</a>)</li>
</ul>
</blockquote>
</details>
<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.26...cc-v1.2.27">1.2.27</a>
- 2025-06-13</h2>
<h3>Other</h3>
<ul>
<li>Regenerate windows sys bindings (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1485">#1485</a>)</li>
<li>Update windows-bindgen requirement from 0.61 to 0.62 (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1484">#1484</a>)</li>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1483">#1483</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7043e38035"><code>7043e38</code></a>
chore: release v1.2.27 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1486">#1486</a>)</li>
<li><a
href="1d99fe33a4"><code>1d99fe3</code></a>
Regenerate windows sys bindings (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1485">#1485</a>)</li>
<li><a
href="2e34d13d5d"><code>2e34d13</code></a>
Update windows-bindgen requirement from 0.61 to 0.62 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1484">#1484</a>)</li>
<li><a
href="191bcf56c4"><code>191bcf5</code></a>
Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1483">#1483</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.26...cc-v1.2.27">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.26&new-version=1.2.27)](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-06-13 17:19:05 +00:00
dependabot[bot]
94af8e5a3d
build(deps): bump thread_local from 1.1.8 to 1.1.9 (#37446)
Bumps [thread_local](https://github.com/Amanieu/thread_local-rs) from
1.1.8 to 1.1.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Amanieu/thread_local-rs/releases">thread_local's
releases</a>.</em></p>
<blockquote>
<h2>v1.1.9</h2>
<h3>Other</h3>
<ul>
<li>Add release-plz for automated releases</li>
<li>Remove once_cell dependency</li>
<li>Bump MSRV to 1.61</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Amanieu/thread_local-rs/blob/master/CHANGELOG.md">thread_local's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/Amanieu/thread_local-rs/compare/v1.1.8...v1.1.9">1.1.9</a>
- 2025-06-12</h2>
<h3>Other</h3>
<ul>
<li>Add release-plz for automated releases</li>
<li>Remove once_cell dependency</li>
<li>Bump MSRV to 1.61</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4b7cc0f30b"><code>4b7cc0f</code></a>
chore: release v1.1.9</li>
<li><a
href="11f0bcc9f1"><code>11f0bcc</code></a>
Add release-plz for automated releases</li>
<li><a
href="b5aa929035"><code>b5aa929</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/thread_local-rs/issues/76">#76</a>
from james7132/remove-once-cell-dependency</li>
<li><a
href="d7f100ab3f"><code>d7f100a</code></a>
Remove once_cell dependency</li>
<li><a
href="6920311014"><code>6920311</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/thread_local-rs/issues/73">#73</a>
from Swatinem/msrv</li>
<li><a
href="e3d9a42add"><code>e3d9a42</code></a>
Bump MSRV to 1.61</li>
<li>See full diff in <a
href="https://github.com/Amanieu/thread_local-rs/compare/1.1.8...v1.1.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=thread_local&package-manager=cargo&previous-version=1.1.8&new-version=1.1.9)](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-06-13 17:11:36 +00:00
Servo WPT Sync
a7e9df0fef
Sync WPT with upstream (13-06-2025) (#37436)
Automated downstream sync of changes from upstream as of 13-06-2025
[no-wpt-sync]

---------

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-06-13 14:15:36 +00:00
Simon Wülker
e4da496e2d
Cleanup Cargo.toml [patch] section (#37437)
* Removes a reference to my stylo fork i accidentally added in
https://github.com/servo/servo/pull/37345
* Removes a similar reference for rust-content-security-policy 
* Adds `web_atoms` to the `html5ever` patch list. This crate lives in
the html5ever repo since https://github.com/servo/html5ever/pull/599 and
you'll need to patch it when you're patching htmlever

Testing: These are comments, no tests needed

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-13 13:00:39 +00:00
Ngo Iok Ui (Wu Yu Wei)
11be71b56c
chore: revert patch suggestions (#37435)
Revert unintended change in #37345

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
2025-06-13 12:48:26 +00:00
Jonathan Schwender
6ad6542aac
mach: Add TSAN support (#37195)
Add ThreadSanitizer support to mach (`--with-tsan`).

This refactors the current infrastructure to support `--with-asan` to a
more generic `Santiizer`.
If the need for adding multiple sanitizers at once (e.g. address + leak
sanitizer) arises, we can easily change the `SanitizerKind` enum to a
`enum.Flag` instead.

Testing: Manually run `./mach build --with-tsan` and `./mach run
--with-tsan` (on macos) and observe TSAN reporting data races.

Closes: #14869

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-06-13 12:26:57 +00:00
Domenico Rizzo
b8738074d1
[#26488] Refactored RTCDataChannel for safer dropping and added Promise comment (#37332)
Fixes (partially) #26488 and apply the
https://github.com/servo/servo/pull/37324#discussion_r2133989190
comment.

Testing: No tests added
Fixes: Partially #26488

---------

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
2025-06-13 12:20:45 +00:00
Martin Robinson
f451dccd0b
layout: Store scroll offsets in the ScrollTree (#37428)
There are currently five places that scroll offsets are stored:

 - DOM: A set of scroll offsets used for script.
 - Layout: An array of scroll offsets that is used for tracking
   layout-side scroll offsets.
 - Layout: The scroll offsets stored in the `ScrollTree`. These are
   currently unset and unused.
 - Compositor: The scroll offsets stored in the `ScrollTree` mirrored
   from layout.
 - WebRender: The scrolled offsets stored in the WebRender spatial tree.

This change is the first step in combining the first three into the
layout `ScrollTree`. It eliminates the extra array of scroll offsets
stored in layout in favor of the storing them in the `ScrollTree`. A
followup change will eliminate the ones stored in the DOM.

- In addition the `ScrollState` data structure is eliminated as these
are
now stored in a `HashMap` everywhere when passing them via IPC.
- The offsests stored in layout can now never scroll past the boundaries
of the scrolled content.

Testing: This should not change behavior and is thus covered by existing
WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: stevennovaryo <steven.novaryo@gmail.com>
2025-06-13 12:01:27 +00:00