Commit graph

51501 commits

Author SHA1 Message Date
atbrakhi
568d24d4e3
DevTools: Fix empty debugger > source panel (#37197)
This patch fixes the source panel in the DevTools that was broken due to
missing breakpoint actor implementation. The client was sending messages
to the breakpoint actor that didn't exist in Servo, resulting in
"unknown actor"
warnings in the logs(See logs in issue description)

To fix this this patch implements the `BreakpointListActor` that handles
`setBreakpoint` and `setActiveEventBreakpoints` messages with empty
replies. This PR does not implement `breakpoint` functionality

<img width="1512" alt="image"
src="https://github.com/user-attachments/assets/ac4985a6-9fd3-4854-a491-b39241e19d13"
/>



Fixes: https://github.com/servo/servo/issues/37196

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
2025-05-31 06:51:03 +00:00
Gregory Terzian
8a808f89fd
dom: implement signal abort on controller and signal (#37192)
Part of https://github.com/servo/servo/issues/34866

Implement signal abort, and part of running abort steps.

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-05-31 06:32:46 +00:00
dependabot[bot]
9959bc4e0f
build(deps): bump parking_lot from 0.12.3 to 0.12.4 (#37199)
Bumps [parking_lot](https://github.com/Amanieu/parking_lot) from 0.12.3
to 0.12.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md">parking_lot's
changelog</a>.</em></p>
<blockquote>
<h2><code>parking_lot</code> - <a
href="https://github.com/Amanieu/parking_lot/compare/parking_lot-v0.12.3...parking_lot-v0.12.4">0.12.4</a>
- 2025-05-29</h2>
<ul>
<li>Fix parked upgraders potentially not being woken up after a write
lock</li>
<li>Fix clearing <code>PARKED_WRITER_BIT</code> after a timeout</li>
</ul>
<h2><code>parking_lot_core</code> - <a
href="https://github.com/Amanieu/parking_lot/compare/parking_lot_core-v0.9.10...parking_lot_core-v0.9.11">0.9.11</a>
- 2025-05-29</h2>
<ul>
<li>Use Release/Acquire ordering in
thread_parker::windows::Backend::create</li>
<li>Remove warnings due to new lint on unknown cfgs</li>
</ul>
<h2><code>lock_api</code> - <a
href="https://github.com/Amanieu/parking_lot/compare/lock_api-v0.4.12...lock_api-v0.4.13">0.4.13</a>
- 2025-05-29</h2>
<ul>
<li>Remove warnings due to new lint on unknown cfgs</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="df66e66b99"><code>df66e66</code></a>
Update CHANGELOG.md</li>
<li><a
href="bc72f024e0"><code>bc72f02</code></a>
chore: release</li>
<li><a
href="7bd09e2aff"><code>7bd09e2</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/469">#469</a>
from Amanieu/release-plz-changelog</li>
<li><a
href="965216fb1f"><code>965216f</code></a>
Use a single changelog with release-plz</li>
<li><a
href="398560e062"><code>398560e</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/467">#467</a>
from Amanieu/release-plz</li>
<li><a
href="a7c490f8f5"><code>a7c490f</code></a>
Add release-plz for automatic releases</li>
<li><a
href="4989a4fb6b"><code>4989a4f</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/466">#466</a>
from Amanieu/issue-465</li>
<li><a
href="249cb2a2aa"><code>249cb2a</code></a>
Fix parked upgraders potentially not being woken up after a write
lock</li>
<li><a
href="a0d2de0b01"><code>a0d2de0</code></a>
Fix clearing <code>PARKED_WRITER_BIT</code> after a timeout</li>
<li><a
href="03b019228d"><code>03b0192</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/464">#464</a>
from Amanieu/ci-msrv</li>
<li>Additional commits viewable in <a
href="https://github.com/Amanieu/parking_lot/compare/0.12.3...parking_lot-v0.12.4">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-30 21:11:06 +00:00
Oriol Brufau
de2da3b1e1
layout: Split overflow calculation after fragment tree construction (#37203)
Instead of computing scrollable overflow while constructing the fragment
tree, we will now do it later. In the future this will also allow to
only recalculate the overflow without rebuilding the tree when transform
properties change, but that's left for a follow-up.

Stylo PR: https://github.com/servo/stylo/pull/194

Testing: One test is now passing (more investigation is needed), but
otherwise this isn't expected to have any effect.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-30 19:41:05 +00:00
dependabot[bot]
079198c898
build(deps): bump parking_lot_core from 0.9.10 to 0.9.11 (#37202)
Bumps [parking_lot_core](https://github.com/Amanieu/parking_lot) from
0.9.10 to 0.9.11.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md">parking_lot_core's
changelog</a>.</em></p>
<blockquote>
<h2><code>parking_lot_core</code> - <a
href="https://github.com/Amanieu/parking_lot/compare/parking_lot_core-v0.9.10...parking_lot_core-v0.9.11">0.9.11</a>
- 2025-05-29</h2>
<ul>
<li>Use Release/Acquire ordering in
thread_parker::windows::Backend::create</li>
<li>Remove warnings due to new lint on unknown cfgs</li>
</ul>
<h2><code>lock_api</code> - <a
href="https://github.com/Amanieu/parking_lot/compare/lock_api-v0.4.12...lock_api-v0.4.13">0.4.13</a>
- 2025-05-29</h2>
<ul>
<li>Remove warnings due to new lint on unknown cfgs</li>
</ul>
<h2>parking_lot 0.12.3 (2024-05-24)</h2>
<ul>
<li>Export types provided by arc_lock feature (<a
href="https://redirect.github.com/Amanieu/parking_lot/issues/442">#442</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="df66e66b99"><code>df66e66</code></a>
Update CHANGELOG.md</li>
<li><a
href="bc72f024e0"><code>bc72f02</code></a>
chore: release</li>
<li><a
href="7bd09e2aff"><code>7bd09e2</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/469">#469</a>
from Amanieu/release-plz-changelog</li>
<li><a
href="965216fb1f"><code>965216f</code></a>
Use a single changelog with release-plz</li>
<li><a
href="398560e062"><code>398560e</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/467">#467</a>
from Amanieu/release-plz</li>
<li><a
href="a7c490f8f5"><code>a7c490f</code></a>
Add release-plz for automatic releases</li>
<li><a
href="4989a4fb6b"><code>4989a4f</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/466">#466</a>
from Amanieu/issue-465</li>
<li><a
href="249cb2a2aa"><code>249cb2a</code></a>
Fix parked upgraders potentially not being woken up after a write
lock</li>
<li><a
href="a0d2de0b01"><code>a0d2de0</code></a>
Fix clearing <code>PARKED_WRITER_BIT</code> after a timeout</li>
<li><a
href="03b019228d"><code>03b0192</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/464">#464</a>
from Amanieu/ci-msrv</li>
<li>Additional commits viewable in <a
href="https://github.com/Amanieu/parking_lot/compare/core-0.9.10...parking_lot_core-v0.9.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=parking_lot_core&package-manager=cargo&previous-version=0.9.10&new-version=0.9.11)](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-05-30 17:41:14 +00:00
dependabot[bot]
4839a0e5d0
build(deps): bump lock_api from 0.4.12 to 0.4.13 (#37201)
Bumps [lock_api](https://github.com/Amanieu/parking_lot) from 0.4.12 to
0.4.13.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md">lock_api's
changelog</a>.</em></p>
<blockquote>
<h2><code>lock_api</code> - <a
href="https://github.com/Amanieu/parking_lot/compare/lock_api-v0.4.12...lock_api-v0.4.13">0.4.13</a>
- 2025-05-29</h2>
<ul>
<li>Remove warnings due to new lint on unknown cfgs</li>
</ul>
<h2>parking_lot 0.12.3 (2024-05-24)</h2>
<ul>
<li>Export types provided by arc_lock feature (<a
href="https://redirect.github.com/Amanieu/parking_lot/issues/442">#442</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="df66e66b99"><code>df66e66</code></a>
Update CHANGELOG.md</li>
<li><a
href="bc72f024e0"><code>bc72f02</code></a>
chore: release</li>
<li><a
href="7bd09e2aff"><code>7bd09e2</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/469">#469</a>
from Amanieu/release-plz-changelog</li>
<li><a
href="965216fb1f"><code>965216f</code></a>
Use a single changelog with release-plz</li>
<li><a
href="398560e062"><code>398560e</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/467">#467</a>
from Amanieu/release-plz</li>
<li><a
href="a7c490f8f5"><code>a7c490f</code></a>
Add release-plz for automatic releases</li>
<li><a
href="4989a4fb6b"><code>4989a4f</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/466">#466</a>
from Amanieu/issue-465</li>
<li><a
href="249cb2a2aa"><code>249cb2a</code></a>
Fix parked upgraders potentially not being woken up after a write
lock</li>
<li><a
href="a0d2de0b01"><code>a0d2de0</code></a>
Fix clearing <code>PARKED_WRITER_BIT</code> after a timeout</li>
<li><a
href="03b019228d"><code>03b0192</code></a>
Merge pull request <a
href="https://redirect.github.com/Amanieu/parking_lot/issues/464">#464</a>
from Amanieu/ci-msrv</li>
<li>Additional commits viewable in <a
href="https://github.com/Amanieu/parking_lot/compare/lock_api-0.4.12...lock_api-v0.4.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lock_api&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 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-05-30 17:40:00 +00:00
dependabot[bot]
329d25b3a2
build(deps): bump cc from 1.2.24 to 1.2.25 (#37198)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.24 to 1.2.25.
<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.25</h2>
<h3>Other</h3>
<ul>
<li>make <code>powerp64</code> use <code>powerpc64-linux-gnu</code>
prefix (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1474">#1474</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.24...cc-v1.2.25">1.2.25</a>
- 2025-05-30</h2>
<h3>Other</h3>
<ul>
<li>make <code>powerp64</code> use <code>powerpc64-linux-gnu</code>
prefix (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1474">#1474</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0012da571e"><code>0012da5</code></a>
chore: release v1.2.25 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1478">#1478</a>)</li>
<li><a
href="7666d4f4f3"><code>7666d4f</code></a>
make <code>powerp64</code> use <code>powerpc64-linux-gnu</code> prefix
(<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1474">#1474</a>)</li>
<li><a
href="4a2a4486d8"><code>4a2a448</code></a>
Update rusqlite requirement from 0.35.0 to 0.36.0 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1476">#1476</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.24...cc-v1.2.25">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.24&new-version=1.2.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-05-30 17:18:43 +00:00
Narfinger
13a980ff22
Constellation can now optionally report memory usage when the page is loaded. (#37151)
The constellation can now tell the memory reporter to report the memory
to a trace file when a page is loaded.
Additionally, we amend the memory reporter to allow a simple message
where it will report the memory to a tracing provider (at the moment
only OHOS/hitrace is supported but easy extension is possible).

I am not sure if this is the right approach or if the embedder should
decide to have the memory reporting done.

Testing: This does not change functionality of any of the rendering.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-30 17:15:06 +00:00
Steven Novaryo
5580704438
Implement Input type=text UA Shadow DOM (#37065)
Implement Shadow Tree construction for input `type=text`, adding a text
control inner editor container and placeholder container. Subsequently,
due to the changes of the DOM tree structure, the changes will add a new
NodeFlag `IS_TEXT_CONTROL_INNER_EDITOR` to handle the following cases.
- If a mouse click button event hits a text control inner editor, it
will redirect the focus target to its shadow host.
- In text run's construction, the text control inner editor container
queries the selection from its shadow host. This is later used to
resolve caret and selection painting in the display list.

This will be the first step of fixing input `type=text` and other
single-line text input element widgets. Such as, implementing
`::placeholder` selector.



Testing: Existing WPT test and new Servo specific appearance WPT.
Fixes: #36307

---------

Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
2025-05-30 12:02:10 +00:00
Martin Robinson
578c52fe2b
constellation: Wait for canvas thread to shut down before shutting down system font service (#37182)
The canvas thread might need access to the system font service before it
shuts down. Ensure that it finishes shutting down before triggering the
shutdown of the system font service. This should avoid issues where
canvas tries to access fonts right before shutting down.

Fixes: #36849.
Testing: Since this fixes a flaky crash on shutdown, there isn't a good
way to write a test for it.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-30 11:44:16 +00:00
Fuguo
5de3b5d166
Add slot default display style test (#37189)
Add `<slot>` default display style testcase

Testing: Add a new testcase for slot element default disply style.
Fixes: Add slot default display style test for #37174

---------

Signed-off-by: kongbai1996 <1782765876@qq.com>
Signed-off-by: Fuguo <1782765876@qq.com>
Co-authored-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-30 08:13:07 +00:00
Kenzie Raditya Tirtarahardja
871630606f
Send synthetic keydown/keyup at ime_insert_text (#37175)
At `egl/app_state.rs`, send keydown and keyup with PROCESS KEY when
inserting text. This fixes OHOS input event, but maybe also for Android
in the future (if it implements `ime_insert_text`). We will get input
event since keydown is dispatched
(https://github.com/servo/servo/pull/37078).

This implementation is similar to
[Chromium's](https://source.chromium.org/chromium/chromium/src/+/main:content/public/android/java/src/org/chromium/content/browser/input/ImeAdapterImpl.java;drc=404e8d654e8b26336d2cb103b9c21faecbf7f73a;bpv=1;bpt=1;l=851?gsn=sendCompositionToNative&gs=KYTHE%3A%2F%2Fkythe%3A%2F%2Fchromium.googlesource.com%2Fcodesearch%2Fchromium%2Fsrc%2F%2Fmain%3Flang%3Djava%3Fpath%3Dorg.chromium.content.browser.input.ImeAdapterImpl%23d840961d441fd4bb569f9689c86da91fb714c0c153366e3198a85e9c7a098dce)
Android key event.

Testing: manually checked on OHOS device
For: https://github.com/servo/servo/issues/36259, but only in OHOS

Signed-off-by: PotatoCP <kenzieradityatirtarahardja.18@gmail.com>
Co-authored-by: PotatoCP <kenzieradityatirtarahardja.18@gmail.com>
Co-authored-by: stevennovaryo <steven.novaryo@gmail.com>
2025-05-30 02:06:15 +00:00
Martin Robinson
559ba4b3ee
script: Let canvas serialization to image fail gracefully (#37184)
Instead of panicking when serialization of canvas to image data (whether
through `toBlob()` or via `toDataURL()`), properly handle failed
serialization. This is an implementation of the appropriate error
handling from the specification text.

Testing: This change includes a new Serov-specific test, because it is
impossible to know what the canvas size limits are of all browsers.
Fixes: #36840.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-29 16:09:05 +00:00
Tim van der Lippe
36e4886da1
Implement basics of link preloading (#37036)
These changes allow a minimal set of checks for font-src
CSP checks to pass.

Part of #4577
Part of #35035

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-05-29 11:26:27 +00:00
Martin Robinson
9dc1391bef
compositor: Add an initial RefreshDriver (#37169)
This adds a *very* basic implementation of the `RefreshDriver` concept
to the Servo renderer. The initial idea is that controls the frequency
of display during animations. It eliminates the "slowdown" workaround
for WPT tests and now Servo animations don't move faster than 120 FPS
(observed to be slower in practice).

This establishes a base change which will be used to implement
non-display-list-producing layouts in a followup change.

Fixes #3406. (though much more work remains)
Testing: Covered by existing WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-29 10:43:49 +00:00
Andrei Volykhin
801ac9e22a
pixels: Add limitation to max image total bytes length (#37172)
Limit the maximum image allocation size to 2GB to minimize the
possibility of out of memory errors on some `ImageBitmap`, `ImageData`,
`Canvas`, and `OffscreenCanvas` operations such as construction,
`toBlob`, and `toDataURL`. Other browsers have similar limits:
 - Chromium: 2^32-1 (~4GB)
- Firefox: 2^31-1 (~2GB)

Testing: Improvements to the following tests:
-
`html/canvas/element/pixel-manipulation/2d.imageData.object.ctor.basics.html`
assert_throws_dom("INDEX_SIZE_ERR", function() { new ImageData(1 << 31,
1 << 31); });
-
`html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args.html`
   makeOversizedCanvas + makeOversizedOffscreenCanvas

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-29 10:43:27 +00:00
Euclid Ye
3bb7c71eb6
Chore: Remove unused variable in transition-zero-duration-with-delay.html (#37179)
Fix the mistake I made in #35978
Testing: No behaviour change.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-29 09:56:30 +00:00
Shubham Gupta
54f23a8e3d
build(deps): bump ohos-ime from 0.2.0 to 0.3.0 (#37180)
This patch updates the ohos-ime version from v0.2.0 to v0.3.0

Testing: N/A
Fixes: #37181

Signed-off-by: Shubham Gupta <shubham13297@gmail.com>
2025-05-29 09:50:33 +00:00
Fuguo
1f315e6c9c
Add a user agent style for the <slot> element (#37174)
In Chromium, the slot user agent stylesheet is located in
[html.css](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/html/resources/html.css;l=1654).

Testing: This change fixes
`tests/wpt/meta/shadow-dom/directionality-001.tentative.html.ini`.

Signed-off-by: kongbai1996 <1782765876@qq.com>
2025-05-29 08:20:01 +00:00
dependabot[bot]
c6e37e83e4
build(deps): bump hitrace from 0.1.4 to 0.1.5 (#37170)
Bumps [hitrace](https://github.com/huawei-drc/hitrace) from 0.1.4 to
0.1.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/huawei-drc/hitrace/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hitrace&package-manager=cargo&previous-version=0.1.4&new-version=0.1.5)](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-05-28 22:38:21 +00:00
Kingsley Yung
be7efc94a3
Refactoring HTMLOptionElement::Text into iterative style (#37167)
The original implementation of `HTMLOptionElement::Text` is recursive,
and the program may run out of stack space for a sufficiently large
number of iterations. The patch switches to an iterative implementation,
with `TreeIterator`.

Note that, instead of the usual `while let Some(node) = iterator.next()`
approach, we use `while let Some(node) = iterator.peek()` with the newly
added `TreeIterator::peek` function. This is because the choice of the
next node depends on some checks performed inside the `while` block,
whereas the `next` function determines the next node before entering the
block.

Moreover, the `TreeIterator::peek` function is added, instead of
wrapping the iterator into `Peekable`. This is because we will lose
access to the `TreeIterator::next_skipping_children` function if we wrap
it into `Peekable`.

Testing: This refactoring has to pass the existing tests.
Fixes: #36959

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-05-28 17:58:33 +00:00
dependabot[bot]
398764a928
build(deps): bump clap from 4.5.38 to 4.5.39 (#37171)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.38 to 4.5.39.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.39</h2>
<h2>[4.5.39] - 2025-05-27</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Show short flag aliases before long</li>
<li><em>(help)</em> Merge the short and long flag alias lists</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.39] - 2025-05-27</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Show short flag aliases before long</li>
<li><em>(help)</em> Merge the short and long flag alias lists</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ed2360f9cd"><code>ed2360f</code></a>
chore: Release</li>
<li><a
href="196a14b8c9"><code>196a14b</code></a>
docs: Update changelog</li>
<li><a
href="cd622ab63c"><code>cd622ab</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5846">#5846</a>
from ribru17/alias_fn_dedup</li>
<li><a
href="48ff72be28"><code>48ff72b</code></a>
fix(complete): Deduplicate bash subcmd cases</li>
<li><a
href="b1b6f17f61"><code>b1b6f17</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5843">#5843</a>
from epage/link</li>
<li><a
href="5900216569"><code>5900216</code></a>
fix(derive): Update link for derive attributes</li>
<li><a
href="fde45f9aea"><code>fde45f9</code></a>
chore: Release</li>
<li><a
href="45d5d7edcb"><code>45d5d7e</code></a>
docs: Update changelog</li>
<li><a
href="4b82b97cd9"><code>4b82b97</code></a>
chore: Release</li>
<li><a
href="a982adfbbd"><code>a982adf</code></a>
docs: Update changelog</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.38...clap_complete-v4.5.39">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-28 17:42:17 +00:00
Oriol Brufau
f1c80afbb5
Bump Stylo to servo/stylo#191 (#37168)
Bumps Stylo to "Have filter changes conditionally trigger only repaint
damage".

Testing: Unneeded (no behavior change). Just improving performance.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-28 14:16:59 +00:00
Andrei Volykhin
644138c1da
canvas: Add HTMLVideoElement to CanvasImageSource union type (#37135)
Follow to the specification and add HTMLVideoElement to
CanvasImageSource union type
to allow use it as image source for createPattern/drawImage operations.
https://html.spec.whatwg.org/multipage/#canvasimagesource

https://html.spec.whatwg.org/multipage/#dom-context-2d-createpattern
https://html.spec.whatwg.org/multipage/#dom-context-2d-drawimage

The HTMLVideoElement media resource has an associated origin:
- media provider object (MediaStream/MediaSource/Blob): CORS-same-origin
 - URL record: CORS-cross-origin/CORS-same-origin

https://html.spec.whatwg.org/multipage/media.html#media-resource

Testing:
 - html/canvas/element/*
 - html/semantics/embedded-content/the-canvas-element/*

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-28 12:04:01 +00:00
Martin Robinson
4f4c99a39e
deps: Upgrade font-kit and dirs (#37163)
Testing: This is just a dependency update, so doesn't need tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-28 11:57:23 +00:00
Euclid Ye
45072ae2e0
Let input JS event be dispatched by keydown instead of keypress (#37078)
1. Let `input` JS event be dispatched by `keydown` instead of
`keypress`, according to spec
2. Fire `input` event for Backspace and Delete. But do so only when
something is actually deleted

Testing: Manually tested and compared with other browsers.
Fixes: #37051
cc @xiaochengh

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-28 08:51:05 +00:00
dependabot[bot]
8ebf344e5e
build(deps): bump hyper-util from 0.1.12 to 0.1.13 (#37158)
Bumps [hyper-util](https://github.com/hyperium/hyper-util) from 0.1.12
to 0.1.13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/hyper-util/releases">hyper-util's
releases</a>.</em></p>
<blockquote>
<h2>v0.1.13</h2>
<h2>tl;dr</h2>
<ul>
<li>Fix <code>HttpConnector</code> to always prefer IPv6 addresses
first, if happy eyeballs is enabled.</li>
<li>Fix <code>legacy::Client</code> to return better errors if available
on the connection.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>fix(client): prefer IPv6 addresses before IPv4 even if resolver
ordered differently by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/194">hyperium/hyper-util#194</a></li>
<li>chore(test): make proxy test robust wrt IPv4/v6 by <a
href="https://github.com/Fabian-Gruenbichler"><code>@​Fabian-Gruenbichler</code></a>
in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/195">hyperium/hyper-util#195</a></li>
<li>refactor: limit dependency futures-util to tests and client-legacy
by <a
href="https://github.com/hanna-kruppe"><code>@​hanna-kruppe</code></a>
in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/192">hyperium/hyper-util#192</a></li>
<li>Fix some clippy lints by <a
href="https://github.com/jplatte"><code>@​jplatte</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/196">hyperium/hyper-util#196</a></li>
<li>ConnectErrors improvements by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/197">hyperium/hyper-util#197</a></li>
<li>fix(client): race in connection errors propagation by <a
href="https://github.com/dare3path"><code>@​dare3path</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/184">hyperium/hyper-util#184</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/Fabian-Gruenbichler"><code>@​Fabian-Gruenbichler</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/195">hyperium/hyper-util#195</a></li>
<li><a
href="https://github.com/hanna-kruppe"><code>@​hanna-kruppe</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/192">hyperium/hyper-util#192</a></li>
<li><a href="https://github.com/jplatte"><code>@​jplatte</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/196">hyperium/hyper-util#196</a></li>
<li><a href="https://github.com/dare3path"><code>@​dare3path</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/184">hyperium/hyper-util#184</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hyperium/hyper-util/compare/v0.1.12...v0.1.13">https://github.com/hyperium/hyper-util/compare/v0.1.12...v0.1.13</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/hyper-util/blob/master/CHANGELOG.md">hyper-util's
changelog</a>.</em></p>
<blockquote>
<h1>0.1.13 (2025-05-27)</h1>
<ul>
<li>Fix <code>HttpConnector</code> to always prefer IPv6 addresses
first, if happy eyeballs is enabled.</li>
<li>Fix <code>legacy::Client</code> to return better errors if available
on the connection.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2c3c55f266"><code>2c3c55f</code></a>
v0.1.13</li>
<li><a
href="a01e6b26f5"><code>a01e6b2</code></a>
fix(client): improve client errors details if available (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/184">#184</a>)</li>
<li><a
href="fc1d699f44"><code>fc1d699</code></a>
refactor(client): add socket addr to ConnectError</li>
<li><a
href="0959d4622d"><code>0959d46</code></a>
refactor(client): return the first connect error, not the last</li>
<li><a
href="6328823b45"><code>6328823</code></a>
refactor(client): don't allocate for ConnectError messages</li>
<li><a
href="3a971c9cb4"><code>3a971c9</code></a>
Fix some clippy lints (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/196">#196</a>)</li>
<li><a
href="2b2c35212b"><code>2b2c352</code></a>
refactor: limit dependency futures-util to tests and client-legacy (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/192">#192</a>)</li>
<li><a
href="1bcd489d3d"><code>1bcd489</code></a>
chore(test): make proxy test robust wrt IPv4/v6 (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/195">#195</a>)</li>
<li><a
href="d3b8440f4b"><code>d3b8440</code></a>
fix(client): prefer IPv6 addresses before IPv4 even if resolver ordered
diffe...</li>
<li>See full diff in <a
href="https://github.com/hyperium/hyper-util/compare/v0.1.12...v0.1.13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hyper-util&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 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-05-28 08:14:39 +00:00
dependabot[bot]
325ac9e416
build(deps): bump kurbo from 0.11.1 to 0.11.2 (#37160)
Bumps [kurbo](https://github.com/linebender/kurbo) from 0.11.1 to
0.11.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/linebender/kurbo/releases">kurbo's
releases</a>.</em></p>
<blockquote>
<h2>v0.11.2</h2>
<h2>0.11.2 (2025-04-28)</h2>
<p>This release has an <a
href="README.md#minimum-supported-rust-version-msrv">MSRV</a> of
1.65.</p>
<h3>Added</h3>
<ul>
<li><code>Stroke</code> is now <code>PartialEq</code>,
<code>StrokeOpts</code> is now <code>Clone</code>, <code>Copy</code>,
<code>Debug</code>, <code>Eq</code>, <code>PartialEq</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/379">#379</a>
by <a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>)</li>
<li>Implement <code>Sum</code> for <code>Vec2</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/399">#399</a>
by <a
href="https://github.com/Philipp-M"><code>@​Philipp-M</code></a>)</li>
<li>Add triangle shape. (<a
href="https://redirect.github.com/linebender/kurbo/issues/350">#350</a>
by <a href="https://github.com/juliapaci"><code>@​juliapaci</code></a>,
<a
href="https://redirect.github.com/linebender/kurbo/issues/387">#387</a>
by <a href="https://github.com/tomcur"><code>@​tomcur</code></a>)</li>
<li>Implement <code>Div&lt;f64&gt;</code> and
<code>Mul&lt;f64&gt;</code> for <code>Insets</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/384">#384</a>
by <a
href="https://github.com/liferooter"><code>@​liferooter</code></a>)</li>
<li>Add <code>Vec2::turn_90</code> and <code>Vec2::rotate_scale</code>
methods (<a
href="https://redirect.github.com/linebender/kurbo/issues/409">#409</a>
by <a
href="https://github.com/raphlinus"><code>@​raphlinus</code></a>)</li>
<li>Add <code>min</code> and <code>max</code> methods to
<code>Size</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/412">#412</a>
by <a
href="https://github.com/nils-mathieu"><code>@​nils-mathieu</code></a>)</li>
<li>Add an <code>INFNITY</code> constant to <code>Size</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/413">#413</a>
by <a
href="https://github.com/nils-mathieu"><code>@​nils-mathieu</code></a>)</li>
<li>Add <code>BezPath::with_capacity</code> method (<a
href="https://redirect.github.com/linebender/kurbo/issues/418">#418</a>
by <a
href="https://github.com/LaurenzV"><code>@​LaurenzV</code></a>)</li>
<li>Add <code>Affine::scale_about</code> and
<code>Affine::then_scale_about</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/429">#429</a>
by <a href="https://github.com/xorgy"><code>@​xorgy</code></a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Reduce number of operations in
<code>Triangle::circumscribed_circle</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/390">#390</a>
by <a href="https://github.com/tomcur"><code>@​tomcur</code></a>)</li>
<li>Numerically approximate ellipse perimeter. (<a
href="https://redirect.github.com/linebender/kurbo/issues/383">#383</a>,
<a
href="https://redirect.github.com/linebender/kurbo/issues/407">#407</a>
by <a href="https://github.com/tomcur"><code>@​tomcur</code></a>)</li>
<li>Always inline trivial casts, splats, and swizzles. (<a
href="https://redirect.github.com/linebender/kurbo/issues/428">#428</a>
by <a href="https://github.com/xorgy"><code>@​xorgy</code></a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix documentation of <code>Affine::svd</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/388">#388</a>
by <a href="https://github.com/tomcur"><code>@​tomcur</code></a>)</li>
<li>Fix documentation of cross product. (<a
href="https://redirect.github.com/linebender/kurbo/issues/409">#409</a>
by <a
href="https://github.com/raphlinus"><code>@​raphlinus</code></a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/juliapaci"><code>@​juliapaci</code></a>
made their first contribution in <a
href="https://redirect.github.com/linebender/kurbo/pull/350">linebender/kurbo#350</a></li>
<li><a href="https://github.com/tomcur"><code>@​tomcur</code></a> made
their first contribution in <a
href="https://redirect.github.com/linebender/kurbo/pull/383">linebender/kurbo#383</a></li>
<li><a href="https://github.com/Philipp-M"><code>@​Philipp-M</code></a>
made their first contribution in <a
href="https://redirect.github.com/linebender/kurbo/pull/399">linebender/kurbo#399</a></li>
<li><a
href="https://github.com/liferooter"><code>@​liferooter</code></a> made
their first contribution in <a
href="https://redirect.github.com/linebender/kurbo/pull/384">linebender/kurbo#384</a></li>
<li><a href="https://github.com/LaurenzV"><code>@​LaurenzV</code></a>
made their first contribution in <a
href="https://redirect.github.com/linebender/kurbo/pull/418">linebender/kurbo#418</a></li>
<li><a href="https://github.com/xorgy"><code>@​xorgy</code></a> made
their first contribution in <a
href="https://redirect.github.com/linebender/kurbo/pull/429">linebender/kurbo#429</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/linebender/kurbo/compare/v0.11.1...v0.11.2">https://github.com/linebender/kurbo/compare/v0.11.1...v0.11.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/linebender/kurbo/blob/main/CHANGELOG.md">kurbo's
changelog</a>.</em></p>
<blockquote>
<h2>[0.11.2][] (2025-04-28)</h2>
<p>This release has an [MSRV][] of 1.65.</p>
<h3>Added</h3>
<ul>
<li><code>Stroke</code> is now <code>PartialEq</code>,
<code>StrokeOpts</code> is now <code>Clone</code>, <code>Copy</code>,
<code>Debug</code>, <code>Eq</code>, <code>PartialEq</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/379">#379</a>[]
by [<a
href="https://github.com/waywardmonkeys"><code>@​waywardmonkeys</code></a>][])</li>
<li>Implement <code>Sum</code> for <code>Vec2</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/399">#399</a>[]
by [<a
href="https://github.com/Philipp-M"><code>@​Philipp-M</code></a>][])</li>
<li>Add triangle shape. (<a
href="https://redirect.github.com/linebender/kurbo/issues/350">#350</a>[]
by [<a
href="https://github.com/juliapaci"><code>@​juliapaci</code></a>][], <a
href="https://redirect.github.com/linebender/kurbo/issues/387">#387</a>[]
by [<a
href="https://github.com/tomcur"><code>@​tomcur</code></a>][])</li>
<li>Implement <code>Div&lt;f64&gt;</code> and
<code>Mul&lt;f64&gt;</code> for <code>Insets</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/384">#384</a>[]
by [<a
href="https://github.com/liferooter"><code>@​liferooter</code></a>][])</li>
<li>Add <code>Vec2::turn_90</code> and <code>Vec2::rotate_scale</code>
methods (<a
href="https://redirect.github.com/linebender/kurbo/issues/409">#409</a>[]
by [<a
href="https://github.com/raphlinus"><code>@​raphlinus</code></a>][])</li>
<li>Add <code>min</code> and <code>max</code> methods to
<code>Size</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/412">#412</a>[]
by [<a
href="https://github.com/nils-mathieu"><code>@​nils-mathieu</code></a>][])</li>
<li>Add an <code>INFNITY</code> constant to <code>Size</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/413">#413</a>[]
by [<a
href="https://github.com/nils-mathieu"><code>@​nils-mathieu</code></a>][])</li>
<li>Add <code>BezPath::with_capacity</code> method (<a
href="https://redirect.github.com/linebender/kurbo/issues/418">#418</a>[]
by [<a
href="https://github.com/LaurenzV"><code>@​LaurenzV</code></a>][])</li>
<li>Add <code>Affine::scale_about</code> and
<code>Affine::then_scale_about</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/429">#429</a>[]
by [<a href="https://github.com/xorgy"><code>@​xorgy</code></a>][])</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Reduce number of operations in
<code>Triangle::circumscribed_circle</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/390">#390</a>[]
by [<a
href="https://github.com/tomcur"><code>@​tomcur</code></a>][])</li>
<li>Numerically approximate ellipse perimeter. (<a
href="https://redirect.github.com/linebender/kurbo/issues/383">#383</a>[],
<a
href="https://redirect.github.com/linebender/kurbo/issues/407">#407</a>[]
by [<a
href="https://github.com/tomcur"><code>@​tomcur</code></a>][])</li>
<li>Always inline trivial casts, splats, and swizzles. (<a
href="https://redirect.github.com/linebender/kurbo/issues/428">#428</a>[]
by [<a href="https://github.com/xorgy"><code>@​xorgy</code></a>][])</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix documentation of <code>Affine::svd</code>. (<a
href="https://redirect.github.com/linebender/kurbo/issues/388">#388</a>[]
by [<a
href="https://github.com/tomcur"><code>@​tomcur</code></a>][])</li>
<li>Fix documentation of cross product. (<a
href="https://redirect.github.com/linebender/kurbo/issues/409">#409</a>[]
by [<a
href="https://github.com/raphlinus"><code>@​raphlinus</code></a>][])</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="03942df6bb"><code>03942df</code></a>
Release 0.11.2 (<a
href="https://redirect.github.com/linebender/kurbo/issues/441">#441</a>)</li>
<li><a
href="5495ac1a3a"><code>5495ac1</code></a>
Expand changelog (<a
href="https://redirect.github.com/linebender/kurbo/issues/442">#442</a>)</li>
<li><a
href="ea944bb829"><code>ea944bb</code></a>
Update <code>libm</code> and <code>rand</code> deps (<a
href="https://redirect.github.com/linebender/kurbo/issues/440">#440</a>)</li>
<li><a
href="b85607f998"><code>b85607f</code></a>
Fix <code>clippy::default_trait_access</code> lints (<a
href="https://redirect.github.com/linebender/kurbo/issues/439">#439</a>)</li>
<li><a
href="cb1c2c39b9"><code>cb1c2c3</code></a>
Update deps (<a
href="https://redirect.github.com/linebender/kurbo/issues/438">#438</a>)</li>
<li><a
href="d872acb7f0"><code>d872acb</code></a>
ci: update to stable Rust 1.86, typos 1.31.1 (<a
href="https://redirect.github.com/linebender/kurbo/issues/422">#422</a>)</li>
<li><a
href="c68c4f9469"><code>c68c4f9</code></a>
Improve doc comment on <code>Shape::contains</code> (<a
href="https://redirect.github.com/linebender/kurbo/issues/433">#433</a>)</li>
<li><a
href="d67b9dd98a"><code>d67b9dd</code></a>
Make <code>kurbo</code> a crate within a workspace (<a
href="https://redirect.github.com/linebender/kurbo/issues/434">#434</a>)</li>
<li><a
href="cf7d823a50"><code>cf7d823</code></a>
Update CHANGELOG (<a
href="https://redirect.github.com/linebender/kurbo/issues/430">#430</a>)</li>
<li><a
href="193f413a6f"><code>193f413</code></a>
Always inline trivial casts, splats, and swizzles. (<a
href="https://redirect.github.com/linebender/kurbo/issues/428">#428</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/linebender/kurbo/compare/v0.11.1...v0.11.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=kurbo&package-manager=cargo&previous-version=0.11.1&new-version=0.11.2)](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-05-28 06:41:00 +00:00
Narfinger
2d3a7c87c2
Refactor the memory profiler code to return the struct. (#37155)
Refactor the memory profiler code to return the struct and handle the
serializing in servointernal page.
This allows other users of the memory profiler to see the whole report
without parsing json.

Testing: I do not know if the memory page is covered by tests.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-28 00:58:05 +00:00
Oriol Brufau
ac06b1cfcf
layout: Fix logic for transforms with non-invertible matrix (#37147)
When the the current transformation matrix of a box isn't invertible,
the box and its content shouldn't be displayed.

However, the logic was broken:
- It was only checking the `transform` property, but not individual
transform properties like `scale`.
- It was treating matrices with m₁₁=0 or m₂₂=0 and non-invertible, even
when they can still be invertible and have a visible outcome.
- When m₁₁=0 or m₂₂=0 weren't caused by `transform`, it was replacing
the matrix with the identity.

Testing: Adding new WPT
Fixes: #37146

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-27 18:36:33 +00:00
dependabot[bot]
fef1dd9ea0
build(deps): bump fontconfig-parser from 0.5.7 to 0.5.8 (#37157)
Bumps [fontconfig-parser](https://github.com/Riey/fontconfig-parser)
from 0.5.7 to 0.5.8.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/Riey/fontconfig-parser/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=fontconfig-parser&package-manager=cargo&previous-version=0.5.7&new-version=0.5.8)](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-05-27 17:51:52 +00:00
dependabot[bot]
bec88c5b26
build(deps): bump libloading from 0.8.7 to 0.8.8 (#37156)
Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.7
to 0.8.8.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/nagisa/rust_libloading/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libloading&package-manager=cargo&previous-version=0.8.7&new-version=0.8.8)](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-05-27 17:48:20 +00:00
Domenico Rizzo
ce12f37474
[#26488] Moved Droppable code into a separate struct for CanvasRenderingContext2D (#37136)
This is part of incremental implementation of #26488 . The interface
involved in this PR is CanvasRenderingContext2D.

Testing: Test should be just implemented.
Fixes: Partially #26488

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
2025-05-27 15:45:05 +00:00
Mukilan Thiyagarajan
8a20e42de4
Add support for static SVG images using resvg crate (#36721)
This change adds support for rendering static SVG images using the
`resvg` crate, allowing svg sources in the `img` tag and in CSS
`background` and `content` properties. There are some limitations in
using resvg:

1. There is no support for animations or interactivity as these would
require implementing the full DOM layer of SVG specification.
2. Only system fonts can be used for text rendering. There is some
mechanism to provide a custom font resolver to usvg, but that is not
explored in this change.
3. resvg's handling of certain edge cases involving lack of explicit
`width` and `height` on the root svg element deviates from what the
specification expects from browsers. For example, resvg uses the values
in `viewBox` to derive the missing width or height dimension, but
without scaling that dimension to preserve the aspect ratio. It also
doesn't allow overriding this behavior.

Demo screenshot:
![servo - resvg
img](https://github.com/user-attachments/assets/8ecb2de2-ab7c-48e2-9f08-2d09d2cb8791)

<details>
<summary>Source</summary>

```
<style>
 #svg1 {
   border: 1px solid red;
 }

 #svg2 {
   border: 1px solid red;
   width: 300px;
 }
 #svg3 {
   border: 1px solid red;
   width: 300px;
   height: 200px;
   object-fit: contain;
 }
 #svg4 {
   border: 1px solid red;
   width: 300px;
   height: 200px;
   object-fit: cover;
 }
 #svg5 {
   border: 1px solid red;
   width: 300px;
   height: 200px;
   object-fit: fill;
 }
 #svg6 {
   border: 1px solid red;
   width: 300px;
   height: 200px;
   object-fit: none;
 }
</style>
</head>
<body>
        <div>
          <img id="svg1" src="https://raw.githubusercontent.com/servo/servo/refs/heads/main/resources/servo.svg" alt="Servo logo">
        </div>
        <div>
          <img id="svg2" src="https://raw.githubusercontent.com/servo/servo/refs/heads/main/resources/servo.svg" alt="Servo logo">
          <img id="svg3" src="https://raw.githubusercontent.com/servo/servo/refs/heads/main/resources/servo.svg" alt="Servo logo">
          <img id="svg4" src="https://raw.githubusercontent.com/servo/servo/refs/heads/main/resources/servo.svg" alt="Servo logo">
        </div>
        <div>
          <img id="svg5" src="https://raw.githubusercontent.com/servo/servo/refs/heads/main/resources/servo.svg" alt="Servo logo">
          <img id="svg6" src="https://raw.githubusercontent.com/servo/servo/refs/heads/main/resources/servo.svg" alt="Servo logo">
        </div>
</body>
```

</details>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-27 11:02:40 +00:00
Gregory Terzian
324196351e
script: stub AbortSignal (#37033)
This is a stub for `AbortSignal`, which we would like to merge first in
order to work in parallel on
https://github.com/servo/servo/issues/34866, and perhaps also
https://github.com/servo/servo/issues/36936

---------

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
Co-authored-by: Taym Haddadi <haddadi.taym@gmail.com>
2025-05-27 09:53:43 +00:00
Jonathan Schwender
270dcf879d
bootstrap: Add winget fallback (#32836)
When `choco` is not available, we can install the same packages from
winget. winget is an official package manager from Microsoft, which is
available by default on Windows 11.

Note: `winget` also has non-interactive installation options, but
accepting license agreements should still be the responsibility of the
user, so we don't add any such option for now.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix: Bootstrap on windows without `choco` available.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-05-27 09:51:46 +00:00
Andrei Volykhin
86b3b16b4c
imagebitmap: Use snapshot::Snapshot as bitmap data (#37131)
Replace the holder of actual pixel data of the ImageBitmap interface
([[BitmapData]] slot) from Vec<u8> to snapshot::Snapshot (image bitmap
with metadata).
https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface

It will allow to have all required information (e.g. size, pixel format,
alpha mode)
for further drawing processing to/from canvas2D output bitmap.

Testing: No required tests
Fixes: https://github.com/servo/servo/issues/34112

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-27 06:41:25 +00:00
Jason Tsai
d76b4a14df
refactor: merge cross_realm_transform_* fields into one (#37102)
In https://github.com/servo/servo/pull/36977, when transferring
`TransformStream`, `CrossRealmTransform::Writable` and
`CrossRealmTransform::Readable` are set to different message ports. The
message port will not be readable and writable at the same time when
transferring the stream, so we can now merge
`cross_realm_transform_readable` and `cross_realm_transform_writable`
into a single field `cross_realm_transform`.

Testing: WPT ([passed on try
branch](4278417951))
Fixes: https://github.com/servo/servo/issues/37084

---------

Signed-off-by: Jason Tsai <git@pews.dev>
2025-05-27 02:27:13 +00:00
dependabot[bot]
983bfb2518
build(deps): bump mio from 1.0.3 to 1.0.4 (#37143)
Bumps [mio](https://github.com/tokio-rs/mio) from 1.0.3 to 1.0.4.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md">mio's
changelog</a>.</em></p>
<blockquote>
<h1>1.0.4</h1>
<ul>
<li>Update windows-sys to 0.59
(<a
href="https://redirect.github.com/tokio-rs/mio/pull/1857">tokio-rs/mio#1857</a>).</li>
<li>Fix build failure of uds tests on Android
(<a
href="https://redirect.github.com/tokio-rs/mio/pull/1847">tokio-rs/mio#1847</a>).</li>
<li>Fix set nonblocking socket on AIX
(<a
href="https://redirect.github.com/tokio-rs/mio/pull/1867">tokio-rs/mio#1867</a>).</li>
<li>Emit a better error when using mio on WASM
(<a
href="https://redirect.github.com/tokio-rs/mio/pull/1856">tokio-rs/mio#1856</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/tokio-rs/mio/commits">compare view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-26 19:35:11 +00:00
dependabot[bot]
b780a9f2fc
build(deps): bump tokio from 1.45.0 to 1.45.1 (#37144)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.45.0 to 1.45.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.45.1</h2>
<h1>1.45.1 (May 24th, 2025)</h1>
<p>This fixes a regression on the wasm32-unknown-unknown target, where
code that previously did not panic due to calls to
<code>Instant::now()</code> started failing. This is due to the
stabilization of the first time-based metric.</p>
<h3>Fixed</h3>
<ul>
<li>Disable time-based metrics on wasm32-unknown-unknown (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7322">#7322</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/7322">#7322</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7322">tokio-rs/tokio#7322</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3768696d92"><code>3768696</code></a>
chore: prepare Tokio v1.45.1 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7359">#7359</a>)</li>
<li><a
href="421a7b001c"><code>421a7b0</code></a>
rt: do not track time-based metrics on wasm32-unknown-unknown (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7322">#7322</a>)</li>
<li><a
href="b1bdb3c57b"><code>b1bdb3c</code></a>
ci: update macros_type_mismatch for Rust 1.87.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7339">#7339</a>)</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.45.0...tokio-1.45.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.45.0&new-version=1.45.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-05-26 17:08:28 +00:00
dependabot[bot]
fe00fd0cae
build(deps): bump gpu-descriptor from 0.3.1 to 0.3.2 (#37142)
Bumps [gpu-descriptor](https://github.com/zakarumych/gpu-descriptor)
from 0.3.1 to 0.3.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/zakarumych/gpu-descriptor/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gpu-descriptor&package-manager=cargo&previous-version=0.3.1&new-version=0.3.2)](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-05-26 17:03:54 +00:00
dependabot[bot]
0faa46832c
build(deps): bump cursor-icon from 1.1.0 to 1.2.0 (#37141)
Bumps [cursor-icon](https://github.com/rust-windowing/cursor-icon) from
1.1.0 to 1.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-windowing/cursor-icon/releases">cursor-icon's
releases</a>.</em></p>
<blockquote>
<h2>Cursor icon version 1.2.0</h2>
<ul>
<li>Implement <code>Hash</code> for <code>ParseError</code>.</li>
<li>Add <code>CursorIcon::DndAsk</code> and
<code>CursorIcon::AllResize</code> from the wayland-protocols version
1.42.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-windowing/cursor-icon/blob/main/CHANGELOG.md">cursor-icon's
changelog</a>.</em></p>
<blockquote>
<h2>1.2.0</h2>
<ul>
<li>Implement <code>Hash</code> for <code>ParseError</code>.</li>
<li>Add <code>CursorIcon::DndAsk</code> and
<code>CursorIcon::AllResize</code> from the wayland-protocols version
1.42.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="766287581d"><code>7662875</code></a>
cursor-icon version 1.2.0</li>
<li><a
href="7a3f2e3d95"><code>7a3f2e3</code></a>
api: add new cursors from Wayland spec</li>
<li><a
href="97f87ed795"><code>97f87ed</code></a>
Fix typos (<a
href="https://redirect.github.com/rust-windowing/cursor-icon/issues/16">#16</a>)</li>
<li><a
href="35d512d1a3"><code>35d512d</code></a>
chore: implement <code>Hash</code> for <code>ParseError</code></li>
<li><a
href="b2471cafe3"><code>b2471ca</code></a>
chore: remove deprecated feature cargo-clippy</li>
<li>See full diff in <a
href="https://github.com/rust-windowing/cursor-icon/compare/v1.1.0...v1.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cursor-icon&package-manager=cargo&previous-version=1.1.0&new-version=1.2.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-05-26 16:59:55 +00:00
dependabot[bot]
89c8e46602
build(deps): bump socket2 from 0.5.9 to 0.5.10 (#37138)
Bumps [socket2](https://github.com/rust-lang/socket2) from 0.5.9 to
0.5.10.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md">socket2's
changelog</a>.</em></p>
<blockquote>
<h1>0.5.10</h1>
<ul>
<li>Add cygwin support
(<a
href="https://redirect.github.com/rust-lang/socket2/pull/568">rust-lang/socket2#568</a>,
<a
href="https://redirect.github.com/rust-lang/socket2/pull/578">rust-lang/socket2#578</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/rust-lang/socket2/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=socket2&package-manager=cargo&previous-version=0.5.9&new-version=0.5.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-05-26 16:53:30 +00:00
dependabot[bot]
b09221fabb
build(deps): bump pathfinder_simd from 0.5.4 to 0.5.5 (#37137)
Bumps [pathfinder_simd](https://github.com/servo/pathfinder) from 0.5.4
to 0.5.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/servo/pathfinder/releases">pathfinder_simd's
releases</a>.</em></p>
<blockquote>
<h2>Initial preview build</h2>
<p>This is an initial preview release of Pathfinder.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/servo/pathfinder/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pathfinder_simd&package-manager=cargo&previous-version=0.5.4&new-version=0.5.5)](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-05-26 16:53:01 +00:00
Nico Burns
ca9cc776a1
Link to the Zulip and project repo in README (#37134)
Much of the coordination of Servo development happens in the Zulip and
in the regular meetings (TSC call, Coordination meeting, Triage
meeting).

This PR adds prominent links to these places in the README so that
people can find them.

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-05-26 15:51:50 +00:00
Tony
7147e06b53
servoshell: Ensure that the theme is applied properly on startup (#37128)
Instead of only applying the theme when it changes, apply it to both
egui and all
newly created `WebView`s. 

Reference Zulip thread:
520082314

Testing: There are tests for servoshell currently, so all testing is
manual.
Fixes: #34913

Signed-off-by: Tony <legendmastertony@gmail.com>
2025-05-26 15:09:04 +00:00
Martin Robinson
d3e57a513c
constellation: Pass system theme to new Pipelines (#37132)
Previously, when the theme was set it was only set on currently active
`Window`s. This change makes setting the `Theme` stateful. Now the
`Constellation` tracks what theme is applied to a `WebView` and properly
passes that value to new `Pipeline`s when they are constructed. In
addition, the value is passed to layout when that is constructed as
well.

Testing: this change adds a unit test.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-26 12:05:38 +00:00
zefr0x
c96de69e80
Use ruff to enforce python code formatting (#37117)
Requires servo/servo#37045 for deps and config.

Testing: No need for tests to test tests.
Fixes: servo/servo#37041

---------

Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
2025-05-26 11:54:43 +00:00
Simon Wülker
41ecfb53a1
Rename Stylesheet::Type_ to Stylesheet::Type (#37126)
I'm not sure if `CodegenRust.py` was supposed to remove the underscore,
but we end up exposing `type_` to javascript which is obviously wrong.
There's no need to rename the method in the first place, because `Type`
(with a capital T) is not a rust keyword.

Testing: Covered by existing web platform tests

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-25 17:36:16 +00:00
Simon Wülker
70a2ea3a66
Complete keyword list in CodegenRust.py (#37127)
Newer keywords such as `async`/`await`/`gen` were missing from the list

There are no web platform APIs with these names, but it doesn't hurt to
keep the list up to date.

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-25 16:17:43 +00:00