Commit graph

51457 commits

Author SHA1 Message Date
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
Simon Wülker
2af1225e4f
Forward manager_number to NullBrowser constructor (#37125)
Testing: No tests, if `test-wpt` broke again then we would notice pretty
quickly.
Fixes: https://github.com/servo/servo/issues/37124

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-25 15:12:55 +00:00
Josh Matthews
3a04f4195e
script: Return global objects for DOM objects in the relevant realm (#37120)
DomObject::global is a tricky API because it's used pervasively but has
subtle requirements that are not documented and not yet enforced by the
type system (#36116). The method returns the relevant global object for
a given DOM object, but that operation is only meaningful if there is an
active realm. We usually, but not always, have an active realm.

This change avoids a footgun by following the principle of least
surprise. Rather than making every single caller of `something.global()`
both prove that there is an active realm and think about which realm
they want active, we implement the obvious behaviour: always activate
the realm of the callee before obtaining the relevant global.
 
Testing: Existing WPT coverage is sufficient; this method is called all
over the codebase.
Fixes: #37070 #27037

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-05-25 03:21:05 +00:00
Servo WPT Sync
0d44ca8ddc
Sync WPT with upstream (25-05-2025) (#37123)
Automated downstream sync of changes from upstream as of 25-05-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-05-25 01:27:24 +00:00
Simon Wülker
2b840a4d9a
Don't set a prototype for unscopable objects (#37122)
Testing: Covered by existing web platform tests
Fixes: https://github.com/servo/servo/issues/25022

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-25 00:16:31 +00:00
Simon Wülker
4ae72ecb8e
Make unscopable objects writable and enumerable (#37119)
Testing: Covered by existing web platform tests
Fixes: https://github.com/servo/servo/issues/37118

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-24 16:02:08 +00:00
zefr0x
60eb7c923d
use ruff rather than flake8 for python code linting (#37045)
The initially used config is compatible with flake8 rules, including all
pycodestyle (pep8) and pyflakes rules.

Testing: Broke some python files and used `mach test-tidy --all` to test
the linting.
Fixes: servo/servo#37041

Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
2025-05-24 14:19:47 +00:00
Simon Wülker
88fd2e43c8
Unconditionally enable the URLPattern API (#37116)
We fail only a couple of the URLPattern tests and I think that's mostly
due to bugs in the `urlpattern` crate.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-24 13:20:45 +00:00
Simon Wülker
7fd0c81f55
Implement URLPattern::{text, exec} (#37044)
With this change the URLPattern API is fully implemented. I'll look into
the remaining failures and then enable the preference by default.

Testing: Covered by web platform tests

Depends on https://github.com/servo/servo/pull/37042

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-24 11:12:11 +00:00
Ashwin Naren
0ed2c4816c
script: Add support for polygons in HtmlAreaElement::hit_test (#37064)
Uses raycasting to determine whether point is in polygon

Testing: Added unittest
Fixes: None to my knowledge

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-05-24 09:53:27 +00:00
Kingsley Yung
abc3374f9b
ImageBitmap::new returns without Fallible (#37114)
ImageBitmap::new always returns Ok. Simplify it by changing to return
DomRoot<ImageBitmap> directly.

The #[allow(dead_code)] seems unnecessary. This patch also removes it.

Testing: No test is needed.
Fixes: #37105

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-05-24 09:50:50 +00:00
Martin Robinson
57b99d641e
layout: Use the viewport size as the background-attachment: fixed positioning area (#37097)
This fixes the combination of `background-attachment: fixed` and
`no-repeat`. The positioning of the background should be relative to the
viewport, so using an infinite rectangle breaks things like `center`.

I'm not sure what the original motivation of using an infinite rectangle
here
and it doesn't seem to break any tests to stop using it.

Testing: This fixes `/css/CSS2/backgrounds/background-bg-pos-206.xht`.
Fixes #37082.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-24 09:45:53 +00:00
Jonathan Schwender
78f74d0d5e
ohos: servoshell: Use Flex{Column} to avoid Column bug (#37087)
The `Column()` height and thus also the XComponent height extends beyond
the physical display for unknown reasons. This is a problem on websites
that have a footer bar, since the footer is partially below the display
end.
Using Flex with Column direction works as expected.

Testing: Manual inspection with DevEco Testing inspecting the height of
the children elements in ArkUI
Fixes: Part of the servoshell surface extending beyond the physical
screen on ohos

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-05-24 01:37:46 +00:00
Oriol Brufau
d18000fee8
Add another incremental layout that starts at stacking tree construction (#37088)
This allows to skip rebuilding the box tree when it's only necessary to
rebuild the stacking context tree.
Bumps Stylo to https://github.com/servo/stylo/pull/187

Testing: Unneeded (no behavior change). Just improving performance.
However, this adds a new test for dynamic changes of `z-index`, which we
were breaking in an earlier iteration of this patch.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-23 23:40:02 +00:00
Andrei Volykhin
1f5087d773
imagebitmap: Make ImageBitmap serializable and transferable (#37101)
According to specification ImageBitmap objects are serializable objects
and transferable objects.

https://html.spec.whatwg.org/multipage/#the-imagebitmap-interface:imagebitmap-11

Testing:
 - html/canvas/element/manual/imagebitmap/*
 - html/infrastructure/safe-passing-of-structured-data/*
 - html/webappapis/structured-clone/*
 - workers/semantics/structured-clone/*

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-23 20:40:25 +00:00
Martin Robinson
cd36c35cf2
Enable all remaining disabled intermittent tests (#37094)
These were disabled long ago, but nowadays the intermittent filter can
ignore them when they flake. In addition, running them will allow us to
know if they are still intermittent or not since all intermittent
failures are tracked in GitHub via mentions on issues.

Testing: This is a change to test configuration.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-23 18:33:56 +00:00
dependabot[bot]
f1c46aae6e
build(deps): bump cc from 1.2.23 to 1.2.24 (#37108)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.23 to 1.2.24.
<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.24</h2>
<h3>Other</h3>
<ul>
<li>Regenerate windows sys bindings (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1471">#1471</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.23...cc-v1.2.24">1.2.24</a>
- 2025-05-23</h2>
<h3>Other</h3>
<ul>
<li>Regenerate windows sys bindings (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1471">#1471</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="332d31dd62"><code>332d31d</code></a>
chore: release v1.2.24 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1472">#1472</a>)</li>
<li><a
href="77dddcae70"><code>77dddca</code></a>
Regenerate windows sys bindings (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1471">#1471</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.23...cc-v1.2.24">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.23&new-version=1.2.24)](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-23 17:37:21 +00:00
dependabot[bot]
bd5c027e9f
build(deps): bump weezl from 0.1.8 to 0.1.10 (#37107)
Bumps [weezl](https://github.com/image-rs/weezl) from 0.1.8 to 0.1.10.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/image-rs/weezl/blob/master/Changes.md">weezl's
changelog</a>.</em></p>
<blockquote>
<h2>Version 0.1.10</h2>
<ul>
<li>Reverted changes made in 0.1.9 to the behavior of the decoder under
non
libtiff-compatibility mode. Trying to read the decoder with an empty
output
buffer will at least inspect the next symbol and either error or
indicate the
end-of-stream accordingly.</li>
</ul>
<h2>Version 0.1.9 (yanked)</h2>
<ul>
<li>Increased decoding throughput by 3—30% depending on CPU and
data.</li>
<li>Added <code>{encode,decode}::Configuration</code> as builder types
for their respective
module. They can be cheaply cloned.</li>
<li>Added <code>decode::Configuration::with_yield_on_full_buffer</code>
to explicitly opt-in
to libtiff compatibility. The decoder will not read or interpret further
symbols of the decoding stream when the output buffer is full. This
enables a
caller to stop fetching symbols and elide an end of stream marker based
on
out-of-band length information. The decoder might otherwise error,
trying to
interpret data that does not belong to the stream.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="fd444602c5"><code>fd44460</code></a>
Bump crate in Cargo.lock file</li>
<li><a
href="7ef0eb40ca"><code>7ef0eb4</code></a>
Release notes for 0.1.10</li>
<li><a
href="4dc5761d51"><code>4dc5761</code></a>
Merge pull request <a
href="https://redirect.github.com/image-rs/weezl/issues/49">#49</a> from
image-rs/issue-48-behavior-change-on-empty-buffer</li>
<li><a
href="9563fd8a47"><code>9563fd8</code></a>
Fix behavior difference for 0.1.9</li>
<li><a
href="cb2c8421cc"><code>cb2c842</code></a>
Merge pull request <a
href="https://redirect.github.com/image-rs/weezl/issues/47">#47</a> from
image-rs/release-0.1.9</li>
<li><a
href="6d36f9b616"><code>6d36f9b</code></a>
Bump lockfile</li>
<li><a
href="d14169c023"><code>d14169c</code></a>
Release information for 0.1.9</li>
<li><a
href="5fa96ad878"><code>5fa96ad</code></a>
Merge pull request <a
href="https://redirect.github.com/image-rs/weezl/issues/46">#46</a> from
image-rs/performance-tuning</li>
<li><a
href="3bdf6844cd"><code>3bdf684</code></a>
Reduce burst loop register pressure</li>
<li><a
href="d3022443f8"><code>d302244</code></a>
Elimite data dependencies in creating burst codes</li>
<li>Additional commits viewable in <a
href="https://github.com/image-rs/weezl/compare/v0.1.8...v0.1.10">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=weezl&package-manager=cargo&previous-version=0.1.8&new-version=0.1.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-23 17:33:20 +00:00
Simon Wülker
fcc391d852
Allow undefined variants in IDL unions (#37042)
Testing: Includes a test which ensures that unions with a `undefined`
variant compile
Fixes https://github.com/servo/servo/issues/28679
Part of https://github.com/servo/servo/issues/30287

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-23 16:16:22 +00:00
Martin Robinson
9c0c1cf30f
layout: Regardless of restyle damage, always reflow when viewport changes (#37099)
This fixes an issue where a viewport change did not trigger a reflow,
when the restyle damage was was otherwise REPAINT. Viewport changes
mean changes to the initial containing block, which is one of the main
inputs to layout. This should trigger a reflow always.

Testing: Unfortunately, our testing infrastructure is not good enough
yet
to test changes to layout when resizing the `WebView`, so it is quite
difficult to write tests for this change.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-23 13:42:45 +00:00
Narfinger
8788248fec
Removing unused dependencies in crates. (#37096)
Removed unused dependencies in various crates using cargo-machete, grep
and cargo-udeps.

Testing: The CI tests if any dependencies were used that are removed.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-23 12:58:00 +00:00
dependabot[bot]
048471275d
build(deps): bump system-deps from 7.0.4 to 7.0.5 (#37092)
Bumps [system-deps](https://github.com/gdesmott/system-deps) from 7.0.4
to 7.0.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gdesmott/system-deps/releases">system-deps's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.5</h2>
<h3>Other</h3>
<ul>
<li>set rust-version to 1.78.0</li>
<li>allow cfg-expr between 0.17 and 0.20</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gdesmott/system-deps/blob/main/CHANGELOG.md">system-deps's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/gdesmott/system-deps/compare/v7.0.4...v7.0.5">7.0.5</a>
- 2025-05-22</h2>
<h3>Other</h3>
<ul>
<li>set rust-version to 1.78.0</li>
<li>allow cfg-expr between 0.17 and 0.20</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c421e3d455"><code>c421e3d</code></a>
chore: release v7.0.5</li>
<li><a
href="88a7508ba6"><code>88a7508</code></a>
set rust-version to 1.78.0</li>
<li><a
href="383a578e21"><code>383a578</code></a>
allow cfg-expr between 0.17 and 0.20</li>
<li>See full diff in <a
href="https://github.com/gdesmott/system-deps/compare/v7.0.4...v7.0.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=system-deps&package-manager=cargo&previous-version=7.0.4&new-version=7.0.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-23 07:52:42 +00:00
Euclid Ye
6d04ef2d6a
Remove accidentally re-added logic to WebDriverSession::input_cancel_list (#37081)
Re-remove deleted logic from `WebDriverSession::input_cancel_list` logic
in #37010 which was re-adedd during merge resolution in #36932.
Otherwise, duplicate items would be registered in Release Actions.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-23 07:50:42 +00:00
TIN TUN AUNG
23ce7b31ac
Animation: update image active frame when update the rendering (#36286)
When no CSS animation exist, register timer for image animation, update
animated image active image frame as part of update_the_rendering, mark
node as dirty if the corresponding image need update. Added unit test to
test ImageAnimationState.

Part of https://github.com/servo/servo/issues/36057, the last step to
let the Animated Image "Move".

Testing: Introduced new WPT RefTest for animated image, but fail because
of https://github.com/servo/servo/issues/36931. New unit test for
`ImageAnimationState`.
Fixes: https://github.com/servo/servo/issues/22903
https://github.com/servo/servo/issues/36057

[Try](1472472966)

---------

Signed-off-by: rayguo17 <rayguo17@gmail.com>
2025-05-23 03:13:35 +00:00
Narfinger
2353c0089f
OHOS CI: Allow run.json to be overwritten in upload action. (#37083)
The CI does multiple build runs so we need to handle it being
overwritten.

Multiple different build of OHOS servoshell would fight for who is first
to upload run.json and the other would error out.
Now we allow both to succeed by overwrite the run.json

Testing: Testrun:
4268974880

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

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-23 02:17:41 +00:00
Martin Robinson
7f0cebd442
layout: Support wavy and double for text-decoration-line (#37079)
- Add support for `text-decoration-line: double`: Line drawing is done
similar to how it works in Firefox and Chromium. A gap of half of line
thickness is added between each line.
- Fix support for `text-decoration-line: wavy`: Wavy lines rectangles
were not calcualted properly, which meant they were rendered as solid
lines. Now the amplitude of the wave is 1.5 times line thickness.

Testing: A manual test is updated `tests/html/text_deco_simple.html`
to cover more cases. In general, rendering of text-decorations is
difficult
to test via reftesting.
Fixes #17887.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-22 17:42:50 +00:00
dependabot[bot]
0ea40d6365
build(deps): bump anstyle-wincon from 3.0.7 to 3.0.8 (#37091)
Bumps [anstyle-wincon](https://github.com/rust-cli/anstyle) from 3.0.7
to 3.0.8.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a731b50503"><code>a731b50</code></a>
chore: Release</li>
<li><a
href="f20e5baf87"><code>f20e5ba</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/253">#253</a>
from epage/once</li>
<li><a
href="37c9af4dfa"><code>37c9af4</code></a>
refactor: Avoid once_cell on new Rust</li>
<li><a
href="4d45d3a016"><code>4d45d3a</code></a>
chore(deps): Update Rust Stable to v1.87 (<a
href="https://redirect.github.com/rust-cli/anstyle/issues/252">#252</a>)</li>
<li><a
href="382dc34489"><code>382dc34</code></a>
style: Make clippy happy</li>
<li><a
href="2c10c471be"><code>2c10c47</code></a>
chore: Release</li>
<li><a
href="e77af2ef8b"><code>e77af2e</code></a>
docs: Update changelog</li>
<li><a
href="6d3640291c"><code>6d36402</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/248">#248</a>
from rust-cli/renovate/crossterm-0.x</li>
<li><a
href="7617d95baa"><code>7617d95</code></a>
chore(deps): Update Rust crate crossterm to 0.29.0</li>
<li><a
href="2f5287b8be"><code>2f5287b</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/anstyle/issues/249">#249</a>
from epage/foo</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-cli/anstyle/compare/anstyle-wincon-v3.0.7...anstyle-wincon-v3.0.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anstyle-wincon&package-manager=cargo&previous-version=3.0.7&new-version=3.0.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-22 17:41:08 +00:00
dependabot[bot]
9377ac8dc4
build(deps): bump rustversion from 1.0.20 to 1.0.21 (#37090)
Bumps [rustversion](https://github.com/dtolnay/rustversion) from 1.0.20
to 1.0.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/rustversion/releases">rustversion's
releases</a>.</em></p>
<blockquote>
<h2>1.0.21</h2>
<ul>
<li>Support <code>-Zfmt-debug=none</code> (<a
href="https://redirect.github.com/dtolnay/rustversion/issues/61">#61</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1f833903f9"><code>1f83390</code></a>
Release 1.0.21</li>
<li><a
href="8be7057332"><code>8be7057</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/rustversion/issues/61">#61</a>
from dtolnay/debugnone</li>
<li><a
href="91dd8ef7b1"><code>91dd8ef</code></a>
Ignore elidable_lifetime_names pedantic clippy lint</li>
<li><a
href="052138c8c8"><code>052138c</code></a>
Support -Zfmt-debug=none</li>
<li><a
href="17dc0fd54f"><code>17dc0fd</code></a>
Pin nightly toolchain used for miri job</li>
<li>See full diff in <a
href="https://github.com/dtolnay/rustversion/compare/1.0.20...1.0.21">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustversion&package-manager=cargo&previous-version=1.0.20&new-version=1.0.21)](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-22 17:39:11 +00:00
Narfinger
4c1a09e17b
Improved OHOS Benchmarking to use different websites (#37055)
Workflow changes includes to allow a given runs.json file to be read by
hitrace-bench and perform the benchmarks.
It depends on the updated CI tools. Requires CI modification in
https://github.com/servo/ci-runners/pull/36.

Testing: This change was tested on the CI.
4261677656
A corresponding bencher output is here:
99a369f7-e6c3-4141-83f9-0ecddac484a5?back=L2NvbnNvbGUvcHJvamVjdHMvc2Vydm8tY2kvcmVwb3J0cz9wZXJfcGFnZT04JnBhZ2U9MQ%3D%3D

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-22 01:31:35 +00:00
Ashwin Naren
1d9204b4b1
Return the proper texture format for GetPreferredCanvasFormat (#37073)
This follows firefox's implementation:
24d49101ce/dom/webgpu/Instance.h (L68)

It changes the default on most systems to `Bgra8Unorm` but leaves it as
`Rgba8Unorm` on android.

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-05-21 20:07:00 +00:00
Sebastian C
cdf5fdd2b4
script: Refactor dom/headers to match spec better (#36943)
This includes removing an implementation of normalize for `ByteString`,
because it is effectively duplicated in net under
`trim_http_whitespace`. This is part of an attempt to cleanup and
centralize code for header parsing and manipulation.

Testing: Covered by existing WPT tests

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-05-21 19:07:32 +00:00
dependabot[bot]
aaacd61800
build(deps): bump winit from 0.30.10 to 0.30.11 (#37072)
Bumps [winit](https://github.com/rust-windowing/winit) from 0.30.10 to
0.30.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-windowing/winit/releases">winit's
releases</a>.</em></p>
<blockquote>
<h2>Winit release v0.30.11</h2>
<h3>Fixed</h3>
<ul>
<li>On Windows, fixed crash in should_apps_use_dark_mode() for Windows
versions &lt; 17763.</li>
<li>On Wayland, fixed <code>pump_events</code> driven loop deadlocking
when loop was not drained before exit.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="911fad0af0"><code>911fad0</code></a>
Winit version 0.30.11</li>
<li><a
href="2191eacfc8"><code>2191eac</code></a>
chore: appease clippy</li>
<li><a
href="f7ac8127e3"><code>f7ac812</code></a>
wayland: fix pump events's loop drop deadlock</li>
<li><a
href="bd2b5cda8d"><code>bd2b5cd</code></a>
windows: Fix crash in for Windows versions &lt; 17763</li>
<li><a
href="3930a6334f"><code>3930a63</code></a>
ci/deny: allow scripts in zerocopy</li>
<li><a
href="17b5737972"><code>17b5737</code></a>
Fix typos from updated <code>typos</code> tool (<a
href="https://redirect.github.com/rust-windowing/winit/issues/4213">#4213</a>)</li>
<li><a
href="f49a2a1827"><code>f49a2a1</code></a>
clippy: fix casing in windows backend</li>
<li>See full diff in <a
href="https://github.com/rust-windowing/winit/compare/v0.30.10...v0.30.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=winit&package-manager=cargo&previous-version=0.30.10&new-version=0.30.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-21 17:30:05 +00:00
dependabot[bot]
5fc77008dc
build(deps): bump jiff from 0.2.13 to 0.2.14 (#37071)
Bumps [jiff](https://github.com/BurntSushi/jiff) from 0.2.13 to 0.2.14.
<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.14 (2025-05-20)</h1>
<p>This release includes a smattering of bug fixes, and hopefully a
small
improvement to the time it takes to compile Jiff. Also, in this release,
when
<code>TZ</code> is set to a non-empty but invalid value, Jiff will
always fall back to
<code>Etc/Unknown</code> when using <code>TimeZone::system()</code>.
This differs from previous
behavior where Jiff would, in this case, attempt to read the system's
default
time zone. This change brings Jiff into consistency with existing Unix
tooling
like <code>date</code>, and is also arguably a better failure mode. That
is, when <code>TZ</code> is
set but invalid, we shouldn't silently fall back to the default system
time
zone, but instead do something that indicates something has potentially
gone
wrong.</p>
<p>Enhancements:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/364">#364</a>:
Jiff now falls back to <code>Etc/Unknown</code> for invalid
<code>TZ</code> values.</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/pull/379">#379</a>:
Improve compilation times.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/365">#365</a>:
Fixes a compile error in Jiff when only the
<code>tzdb-concatenated</code> feature was
enabled.</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/366">#366</a>:
Fixes slow initial <code>Zoned::now()</code> in environments where
<code>/usr/share/zoneinfo</code>
is on a very slow file system (like CI environments).</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/376">#376</a>:
Avoids searching for a tzdb at <code>/usr/share/zoneinfo</code> on
Windows.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8105228403"><code>8105228</code></a>
0.2.14</li>
<li><a
href="39b9903e06"><code>39b9903</code></a>
changelog: 0.2.14</li>
<li><a
href="c0cfb2390d"><code>c0cfb23</code></a>
test: add another scratch test for printing some interesting spans</li>
<li><a
href="ca0697735b"><code>ca06977</code></a>
error: try to reduce amount of codegen by forcefully unlining error
constructors</li>
<li><a
href="08abeadd09"><code>08abead</code></a>
tz: fallback to <code>Etc/Unknown</code> when <code>TZ</code> is set to
an invalid value</li>
<li><a
href="e22013e9b9"><code>e22013e</code></a>
tz: don't search for tzdb at /usr/share/zoneinfo</li>
<li><a
href="c5c232094c"><code>c5c2320</code></a>
ci: improve tzdb init times and tests</li>
<li><a
href="0f9fdf8ec8"><code>0f9fdf8</code></a>
tz: improve performance of initial <code>Zoned::now()</code></li>
<li><a
href="4e4939d199"><code>4e4939d</code></a>
jiff-icu: bump ICU4X to 2.0.0</li>
<li><a
href="e729efaea3"><code>e729efa</code></a>
jiff-icu: upgrade to ICU4X 2.0.0</li>
<li>Additional commits viewable in <a
href="https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.13...jiff-static-0.2.14">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.13&new-version=0.2.14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot 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-21 17:26:15 +00:00
Martin Robinson
9781f1241a
layout: Move text decoration propagation to stacking context tree construction (#37069)
Text decorations have a special kind of propagation. Instead of
propating these during box tree construction, move propagation to
stacking context tree construction. This will allow for using a very
easy type of incremental layout when text decorations change. For
instance, when a link changes color during hovering over it, we can skip
all of box and fragment tree construction.

In addition, propagation works a bit better now and color and style
properly move down from their originating `Fragment`s.

This introduces three new failures, because now we are drawing the
text-decoration with the correct color in more places, which exposes an
issue we have with text-decorations not being drawn in relation to the
baseline (taking into account `vertical-align`).

Testing: There are tests for these changes.
Fixes #31736.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-05-21 16:38:29 +00:00
Ashwin Naren
cebb1619ae
chore: fix warnings for Windows-specific fonts code (#37063)
Fix warnings from `components/fonts/platform/windows/font.rs` and
`components/fonts/platform/windows/font_list.rs` due to deprecations
from dwrote.

Testing: none, should behave as it did before

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-21 16:30:43 +00:00
Martin Robinson
856ffa6ecb
layout: When there is no restyle damage, do not re-layout (#37048)
When the computed restyle damage is empty, do not do a layout. Instead,
just rebuild the display list. In the future, even that can be omitted,
but that requires changes to the compositor.

These kind of relayouts commonly happen when the cursor is moving around
the page and no style rules cause changes to :hover.

Testing: This is covered existing WPT tests and should only have
performance
impacts. Unfortunately there are currently no performance tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-05-21 15:52:11 +00:00
Andrei Volykhin
859a0ffbd5
htmlmediaelement: Make dirty element on any intrinsic size changes (#37056)
To properly compute (the video) element's content size for
layout requires to dirty the element on any intrinstic size changes.

Full list of the operations which cause layout invalidation:
- media metadata update (NEW)
- removing "src" attribute
- video frame update
- show poster image

Testing:
html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm
Fixes: https://github.com/servo/servo/issues/34434

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-21 11:18:24 +00:00
Andrei Volykhin
a5c3d6f075
bump(deps): bump servo-media from eb96030 to 4931a4b (#37066)
Summary:
- Do validation of stream duration on seekable() method
(https://github.com/servo/media/pull/437)

Testing: /html/semantics/embedded-content/*

Fixes: https://github.com/servo/servo/issues/36748
Fixes: https://github.com/servo/servo/issues/36809

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-21 11:17:18 +00:00
batu_hoang
f52fa9b672
Synchronize dispatch_actions in WebDriver (#36932)
Implement missing synchronization in `dispatch_actions` of `WebDriver`.
https://w3c.github.io/webdriver/#dispatching-actions

> The user agent event loop has spun enough times to process the DOM
events generated by the last invocation of the >[dispatch tick
actions](https://w3c.github.io/webdriver/#dfn-dispatch-tick-actions)
steps.

- Add a way for `ScriptThread` to notify `WebDriver` about the
completion of input commands.
- Add a `webdriver_id` field for `InputEvent`. `ScriptThread` uses it to
distinguish WebDriver events and sends notification.

Tests:
`./mach test-wpt --product servodriver -r
tests\wpt\tests\webdriver\tests\classic\element_click\events.py` pass if
`hit_testing` pass. Check
[issue](https://github.com/servo/servo/issues/36676#issuecomment-2882917136)

cc: @xiaochengh

---------

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-21 11:03:04 +00:00
Oriol Brufau
3a527d784b
layout: Fix min-content inline size of multi-line row flex container (#37011)
`min_content_main_size_for_multiline_container` was initialized to an
outer size, but then it could be clamped by inner sizes.

This patch ensures that it's clamped by outer sizes, and refactors
`FlexItemBoxInlineContentSizesInfo`.

Testing: Covered by WPT
Fixes: #37008

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-21 06:57:50 +00:00
Simon Wülker
384d8f1ff8
Coalesce animated image frame data into a single shared memory region (#37058)
This makes servo use less file descriptors for animated images and
avoids the crash described in
https://github.com/servo/servo/issues/36792.

Doing this also forces the end users to be more explicit about whether
they want to deal with all image frames or just the first one.
Previously, `Image::bytes` silently returned only the data for the first
frame. With this change there's now a `frames` method which returns an
iterator over all frames in the image.

Testing: No tests - this simply reduces the number of fds used. Servo
doesn't currently display animated gifs anyways.
Fixes: https://github.com/servo/servo/issues/36792

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-20 20:40:46 +00:00
dependabot[bot]
d5e02d27be
build(deps): bump hyper-util from 0.1.11 to 0.1.12 (#37061)
Bumps [hyper-util](https://github.com/hyperium/hyper-util) from 0.1.11
to 0.1.12.
<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.12</h2>
<h2>tl;dr</h2>
<ul>
<li>Add <code>client::legacy::proxy::Tunnel</code> connector that wraps
another connector with HTTP tunneling.</li>
<li>Add <code>client::legacy::proxy::{SocksV4, SocksV5}</code>
connectors that wraps another connector with SOCKS.</li>
<li>Add <code>client::proxy::matcher::Matcher</code> type that can use
environment variables to match proxy rules.</li>
<li>Add <code>server::graceful::Watcher</code> type that can be sent to
watch a connection in another task.</li>
<li>Add <code>GracefulShutdown::count()</code> method to get number of
currently watched connections.</li>
<li>Fix missing <code>must_use</code> attributes on
<code>Connection</code> futures.</li>
<li>Fix tracing span in GAI resolver that can cause panics.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>fix(server): Enforce <code>serve_connection</code> result usage by
<a href="https://github.com/Sol-Ell"><code>@​Sol-Ell</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/178">hyperium/hyper-util#178</a></li>
<li>fix(tracing): revert <a
href="https://redirect.github.com/hyperium/hyper-util/issues/134">#134</a>
- tracing span removal in legacy DNS <code>GaiResolver</code> by <a
href="https://github.com/arpadav"><code>@​arpadav</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/179">hyperium/hyper-util#179</a></li>
<li>docs(service): document service utilities by <a
href="https://github.com/cratelyn"><code>@​cratelyn</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/180">hyperium/hyper-util#180</a></li>
<li>refactor: replace manual implementations of
<code>ReadBufCursor</code> methods by <a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/181">hyperium/hyper-util#181</a></li>
<li>feat(server): add graceful::Watcher type by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/182">hyperium/hyper-util#182</a></li>
<li>feat(server): implement default for server auto connection builder
by <a href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/183">hyperium/hyper-util#183</a></li>
<li>feat(client): add <code>proxy::Tunnel</code> legacy util by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/140">hyperium/hyper-util#140</a></li>
<li>docs(client): Include .pool_timer() in the Client builder example by
<a href="https://github.com/sulami"><code>@​sulami</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/186">hyperium/hyper-util#186</a></li>
<li>feat(server): add method to get number of watching connection by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/185">hyperium/hyper-util#185</a></li>
<li>Add a proxy Matcher by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/171">hyperium/hyper-util#171</a></li>
<li>feat(client): add macOS system proxy support for Matcher by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/189">hyperium/hyper-util#189</a></li>
<li>feat(client): add windows system proxies for Matcher by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper-util/pull/190">hyperium/hyper-util#190</a></li>
<li>feat(client): add proxy::SocksV4 and proxy::SocksV5 connectors by <a
href="https://github.com/JPDye"><code>@​JPDye</code></a> in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/187">hyperium/hyper-util#187</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Sol-Ell"><code>@​Sol-Ell</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/178">hyperium/hyper-util#178</a></li>
<li><a href="https://github.com/arpadav"><code>@​arpadav</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/179">hyperium/hyper-util#179</a></li>
<li><a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/181">hyperium/hyper-util#181</a></li>
<li><a href="https://github.com/sulami"><code>@​sulami</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/186">hyperium/hyper-util#186</a></li>
<li><a href="https://github.com/JPDye"><code>@​JPDye</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper-util/pull/187">hyperium/hyper-util#187</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hyperium/hyper-util/compare/v0.1.11...v0.1.12">https://github.com/hyperium/hyper-util/compare/v0.1.11...v0.1.12</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.12 (2025-05-19)</h1>
<ul>
<li>Add <code>client::legacy::proxy::Tunnel</code> connector that wraps
another connector with HTTP tunneling.</li>
<li>Add <code>client::legacy::proxy::{SocksV4, SocksV5}</code>
connectors that wraps another connector with SOCKS.</li>
<li>Add <code>client::proxy::matcher::Matcher</code> type that can use
environment variables to match proxy rules.</li>
<li>Add <code>server::graceful::Watcher</code> type that can be sent to
watch a connection in another task.</li>
<li>Add <code>GracefulShutdown::count()</code> method to get number of
currently watched connections.</li>
<li>Fix missing <code>must_use</code> attributes on
<code>Connection</code> futures.</li>
<li>Fix tracing span in GAI resolver that can cause panics.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8805922b82"><code>8805922</code></a>
v0.1.12</li>
<li><a
href="7e343759c3"><code>7e34375</code></a>
feat(client): add proxy::SocksV4 and proxy::SocksV5 connectors (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/187">#187</a>)</li>
<li><a
href="7e742487c0"><code>7e74248</code></a>
feat(client): add windows system proxies for Matcher (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/190">#190</a>)</li>
<li><a
href="acdda1a114"><code>acdda1a</code></a>
feat(client): add macOS system proxy support for Matcher (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/189">#189</a>)</li>
<li><a
href="6c29abb198"><code>6c29abb</code></a>
feat(client): add proxy::matcher utilities (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/171">#171</a>)</li>
<li><a
href="e74ab78886"><code>e74ab78</code></a>
feat(server): add method to get number of watching connection (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/185">#185</a>)</li>
<li><a
href="9ac0dfe7f7"><code>9ac0dfe</code></a>
docs(client): Include .pool_timer() in the Client builder example (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/186">#186</a>)</li>
<li><a
href="a891979d49"><code>a891979</code></a>
feat(client): add <code>proxy::Tunnel</code> legacy util (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/140">#140</a>)</li>
<li><a
href="c39da459a1"><code>c39da45</code></a>
feat(server): implement <code>Default</code> for server auto connection
<code>Builder</code> (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/183">#183</a>)</li>
<li><a
href="8610b189d0"><code>8610b18</code></a>
feat(server): add graceful::Watcher type (<a
href="https://redirect.github.com/hyperium/hyper-util/issues/182">#182</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/hyperium/hyper-util/compare/v0.1.11...v0.1.12">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.11&new-version=0.1.12)](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-20 17:43:31 +00:00
dependabot[bot]
ce1f40011a
build(deps): bump system-deps from 7.0.3 to 7.0.4 (#37060)
Bumps [system-deps](https://github.com/gdesmott/system-deps) from 7.0.3
to 7.0.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gdesmott/system-deps/releases">system-deps's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.4</h2>
<h3>Fixed</h3>
<ul>
<li>fix new clippy warning</li>
</ul>
<h3>Other</h3>
<ul>
<li>update to itertools 0.14</li>
<li>update to cfg-expr 0.20</li>
<li>fix trailing ' in commands</li>
<li>add names to test manifests</li>
<li>use codecov-action v4</li>
<li>update coverage badge</li>
<li>use actions/checkout@v4</li>
<li>re-add coverage job</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gdesmott/system-deps/blob/main/CHANGELOG.md">system-deps's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/gdesmott/system-deps/compare/v7.0.3...v7.0.4">7.0.4</a>
- 2025-05-20</h2>
<h3>Fixed</h3>
<ul>
<li>fix new clippy warning</li>
</ul>
<h3>Other</h3>
<ul>
<li>update to itertools 0.14</li>
<li>update to cfg-expr 0.20</li>
<li>fix trailing ' in commands</li>
<li>add names to test manifests</li>
<li>use codecov-action v4</li>
<li>update coverage badge</li>
<li>use actions/checkout@v4</li>
<li>re-add coverage job</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3dec89d4af"><code>3dec89d</code></a>
chore: release v7.0.4</li>
<li><a
href="25fe060b4a"><code>25fe060</code></a>
update to itertools 0.14</li>
<li><a
href="c44bcbc229"><code>c44bcbc</code></a>
update to cfg-expr 0.20</li>
<li><a
href="2081eb3d0b"><code>2081eb3</code></a>
fix new clippy warning</li>
<li><a
href="9802427dda"><code>9802427</code></a>
test: fix trailing ' in commands</li>
<li><a
href="38acdbcf22"><code>38acdbc</code></a>
add names to test manifests</li>
<li><a
href="0cfb6ee14d"><code>0cfb6ee</code></a>
ci: use codecov-action v4</li>
<li><a
href="6fcbb37d87"><code>6fcbb37</code></a>
README: update coverage badge</li>
<li><a
href="fe1d0995a4"><code>fe1d099</code></a>
ci: use actions/checkout@v4</li>
<li><a
href="74a5fd2cd5"><code>74a5fd2</code></a>
ci: re-add coverage job</li>
<li>See full diff in <a
href="https://github.com/gdesmott/system-deps/compare/v7.0.3...v7.0.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=system-deps&package-manager=cargo&previous-version=7.0.3&new-version=7.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-20 17:42:19 +00:00
Josh Matthews
603ae44bcd
net: Measure memory usage of storage thread. (#37053)
Our persistent localstorage data can be meaningfully large after testing
real world sites. This change ensures it shows up in about:memory.

Testing: Opened about:memory after launching the browser with a
persistent config
Fixes: Part of #11559

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-05-20 14:50:02 +00:00
Taym Haddadi
5b2305784a
Stream implement pipeThrough (#36977)
Part of https://github.com/servo/servo/issues/34676

https://github.com/servo/servo/pull/36905 needs to be merged first.

---------

Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
2025-05-20 14:33:22 +00:00