Commit graph

51428 commits

Author SHA1 Message Date
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
Martin Robinson
d8294fa423
layout: Split stacking context and display list construction (#37047)
Previously, after a layout was finished (or skipped in the case of
repaint-only layout), both the stacking context tree and display list
were built. In the case of repaint-only layout, we should be able to
skip the reconstruction of the stacking context tree and only do display
list building.

This change does that, also generally cleaning and up and clarifying the
data structure used during this phase of layout. This opens up the
possibility of a new kind of incremental layout that does both repaint
and a rebuild of the stacking context tree.

On the blaster.html test case[^1], this reduces tightly-measured layout
time from ~45-50 milliseconds to ~25-30 milliseconds on my M3.

[^1]: https://gist.github.com/mrobinson/44ec87d028c0198917a7715a06dd98a0

Testing: There are currently no performance tests for layout. :( This
should
not modify the results of WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-05-20 13:42:39 +00:00
Sebastian C
27c8a899ea
Replace hsts preload list hashmap with an FST (#37015)
This reduces the memory used by the preload list to just 1.9MB. The
total memory savings in HSTS from
pre-103cbed928
is now 62MB, or 96%. And in terms of total resident memory is a 7.5%
reduction. The DAFSA/DAWG used by Firefox is 1.1MB so there could be
additional gains available but this seems like the best option based on
maintained libraries available (I could not find a good maintained
library for DAFSAs in Rust).

The main trick is this: the FST map API is currently designed to map
byte sequences to u64 values. Because we only need to determine if a
preloaded domain has the `includeSubdomains` flag set, we encode that
into the lowest bit of the ids in the map. This way finding an entry in
the map directly provides us with the `includeSubdomains` flag and we
don't need to keep another mapping in memory or on disk.

Updated the `./mach update-hsts-preload` command to generate the new FST
map file. (Not sure if I need to update any dev-dependencies anywhere
for this change)

This change also replaces the use of "mozilla.org" with "example.com" in
the HSTS unit tests to make sure that entries in the preload list do not
influence the tests (since example.com should not ever end up on the
preload list)

Testing: Updated unit tests
Fixes: #25929

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-05-20 04:26:55 +00:00
dependabot[bot]
3a6d3c7bed
build(deps): bump setuptools from 70.0.0 to 78.1.1 in /python (#37050)
Bumps [setuptools](https://github.com/pypa/setuptools) from 70.0.0 to
78.1.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v78.1.1</h1>
<h2>Bugfixes</h2>
<ul>
<li>More fully sanitized the filename in PackageIndex._download. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4946">#4946</a>)</li>
</ul>
<h1>v78.1.0</h1>
<h2>Features</h2>
<ul>
<li>Restore access to _get_vc_env with a warning. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4874">#4874</a>)</li>
</ul>
<h1>v78.0.2</h1>
<h2>Bugfixes</h2>
<ul>
<li>Postponed removals of deprecated dash-separated and uppercase fields
in <code>setup.cfg</code>.
All packages with deprecated configurations are advised to move before
2026. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4911">#4911</a>)</li>
</ul>
<h1>v78.0.1</h1>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/pypa/setuptools/issues/4909">#4909</a></li>
</ul>
<h1>v78.0.0</h1>
<h2>Bugfixes</h2>
<ul>
<li>Reverted distutils changes that broke the monkey patching of command
classes. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4902">#4902</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li>Setuptools no longer accepts options containing uppercase or dash
characters in <code>setup.cfg</code>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8e4868a036"><code>8e4868a</code></a>
Bump version: 78.1.0 → 78.1.1</li>
<li><a
href="100e9a61ad"><code>100e9a6</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/4951">#4951</a></li>
<li><a
href="8faf1d7e0c"><code>8faf1d7</code></a>
Add news fragment.</li>
<li><a
href="2ca4a9fe47"><code>2ca4a9f</code></a>
Rely on re.sub to perform the decision in one expression.</li>
<li><a
href="e409e80029"><code>e409e80</code></a>
Extract _sanitize method for sanitizing the filename.</li>
<li><a
href="250a6d1797"><code>250a6d1</code></a>
Add a check to ensure the name resolves relative to the tmpdir.</li>
<li><a
href="d8390feaa9"><code>d8390fe</code></a>
Extract _resolve_download_filename with test.</li>
<li><a
href="4e1e89392d"><code>4e1e893</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="3a3144f0d2"><code>3a3144f</code></a>
Fix typo: <code>pyproject.license</code> -&gt;
<code>project.license</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4931">#4931</a>)</li>
<li><a
href="d751068fd2"><code>d751068</code></a>
Fix typo: pyproject.license -&gt; project.license</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v70.0.0...v78.1.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=70.0.0&new-version=78.1.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)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/servo/servo/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 20:52:13 +00:00
Sebastian C
e7432cda09
Add memory reporting for public suffix list (#37049)
Plumbs in the memory reporting into resource_thread since that's where
the other user of the public suffix list (HSTS) reports.

Testing: Checked about:memory on servo.org

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-05-19 18:50:22 +00:00
Kousuke Takaki
ec448b1423
script: Make Blob.ArrayBuffer() more specification-compliant (#35748)
I have modified the Blob.ArrayBuffer implementation to comply with the
specification part of #25209.
See also: #35151.

Testing: This does not seem to affect tested behavior, so no new tests.

Signed-off-by: yoseio <98276492+yoseio@users.noreply.github.com>
2025-05-19 11:55:06 +00:00
Vincent Ricard
6e97fc0bc4
Use spec compliant content-type extraction in more places and enable a <stylesheet> quirk (#28321)
This changes includes two semi-related things:

1. Fixes some specification compliance issues when parsing mime
   types and charsets for `XMLHttpRequest`.
2. Implements a `<stylesheet>` parsing quirk involving mime types.

Testing: There are tests for these changes.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-19 11:38:01 +00:00
Narfinger
d8837e4a52
Allow OHOS bencher to get the model name for testbed. (#37026)
Allow OHOS bencher to get the model name for testbed.

Currently we rely on simple `hdc bugreport` and awk. `hdc bugreport`
spits out a lot of information so it is kind of slow. But that should be
ok.
Working run (with the usual caveats of removing the checks in the file)
can be found here:
1506965290

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-19 10:21:34 +00:00
Martin Robinson
573663d502
layout: Correct damage propagation and style repair for repaint-only layout (#37004)
When making last-minute changes to the repaint-only layout pass, damage
propagation was broken, meaning that full layout was always done. This
change fixes that, meaning that times in the `blaster.html` test case
now reflect those described in the original commit message from #36978.

In addition, some style repair is now fixed:
- `InlineFormattingContext`s now keep a `SharedInlineStyles` for the
root of the IFC
    which is updated during style repair.
 - `BlockFormattingContext`s now properly update their style.

These changes are verified by turning on repaint only layout for more
properties
in Stylo via servo/stylo#183.

Testing: Manual performance testing via `blaster.html`.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-19 10:17:49 +00:00
dependabot[bot]
89f7026cc8
build(deps): bump content-security-policy from 334bfcb to 58a09ee (#37031)
Bumps
[content-security-policy](https://github.com/servo/rust-content-security-policy)
from `334bfcb` to `58a09ee`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="58a09ee320"><code>58a09ee</code></a>
Fix directive check for requests</li>
<li>See full diff in <a
href="334bfcbf0a...58a09ee320">compare
view</a></li>
</ul>
</details>
<br />


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

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

---

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

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore 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-19 10:00:33 +00:00
Euclid Ye
7ac302f255
Fix WebDriverSession::input_cancel_list related logic (#37010)
- Remove incorrect addition to `input_cancel_list` in
`dispatch_keyup_action`
- For `KeyDown` and `PointerDown`, delay the addition to
`input_cancel_list` until "Dispatching action algorithm" is done to
match the spec. Previously the addition is done before notifying
constellation. Moreover, this makes sure that `pointerUp` is appended
even if `dispatch_pointerdown_action` returns early, so that [Release
Actions](https://w3c.github.io/webdriver/#release-actions) always have
the correct order.
- Remove incorrect addition to `input_cancel_list` in
`dispatch_pointerup_action`. This wrongly added "pointerdown" in
[Release Actions](https://w3c.github.io/webdriver/#release-actions)
- Reduce code duplication
- Add TODO for PointerInputState::subtype and pointerID

Testing: `./mach test-wpt -r --log-raw "D:\servo test
log\perform-actions.txt"
tests\wpt\tests\webdriver\tests\classic\perform_actions --product
servodriver` has no new failures so no regression. There are a lot more
passing tests, but I think mostly are because there is no CI for
webdriver.

cc @xiaochengh @jdm @PotatoCP @longvatrong111

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-19 08:34:04 +00:00
Simon Wülker
e2424fcec7
Remove the dom_shadowdom_enabled preference (#37043)
The preference was enabled by default in early march 2025, but was kept
around in case something major breaks
(https://github.com/servo/servo/pull/35899#discussion_r1988222297).

In the time since, no major bugs have been reported:
* https://github.com/servo/servo/issues/36722 is a bug in the UA shadow
tree, not the shadow dom itself. It's also independent of the
preference.
* https://github.com/servo/servo/issues/36273 looks like it *might* be
related to the shadow DOM, but it also requires experimental features so
it might be caused by something else entirely.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-18 17:42:21 +00:00
Kingsley Yung
1271dbf6ec
Remove ref_filter_map dependency (#36857)
Instead, use the `filter_map` functions of `std::cell::Ref` and
`accountable_refcell::Ref`, which provide the same functionality as
`ref_filter_map`.

Testing: Refactoring for removing dependency. No extra test is needed.
Fixes: #36851

---------

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-05-18 14:00:58 +00:00
Simon Wülker
edea2caec1
Make getAllTypes unwrap IDL record<K, V> types (#37039)
IDL `record` types can themselves contain types that are not described
anywhere else. An example is in
https://github.com/servo/servo/issues/37038, where the `record` contains
a definition of a union. These inner types must be returned from
`getAllTypes`, otherwise we won't generate code for them.

This PR also adds a few type annotations. I can remove them if
requested, but I think they're helpful.

Testing:  Includes a regression test
Fixes: https://github.com/servo/servo/issues/37038

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-18 09:30:20 +00:00
Servo WPT Sync
070a8cf937
Sync WPT with upstream (18-05-2025) (#37040)
Automated downstream sync of changes from upstream as of 18-05-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-05-18 01:43:27 +00:00
Tim van der Lippe
ed469fe72f
Propagate destination through load_data (#37020)
This way, we don't always set the destination to Document (which is as
the spec is written today). Instead, we set it it in the load_data,
depending on which context we load it from.

Doing so allows us to set the `Destination::IFrame` for navigations in
iframes, enabling all frame-related CSP checks.

While we currently block iframes when `frame-src` or `child-src` is set,
their respective tests don't pass yet. That's because we don't yet
handle the cases
where we fire the correct `load` event.

Also update one WPT test to correctly fail, rather than erroring. That's
because it was using the wrong JS test variable.

Part of #4577

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-05-17 08:22:11 +00:00
Josh Matthews
a028291466
Don't build testbinding-related code by default (#37034)
Disabling the TestBinding-related bindings and implementations saves 2mb
in a release build. Also, we lost the related test preferences when we
turned the layout-2020 tests on, so the tests have all been failing for
a long time.

Testing: Existing tests in CI.

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-05-17 08:14:19 +00:00
zefr0x
2eab9c6df1
docs(security): avoid possible misconception in the security policy (#37032)
With ac24cd6139, the URL is changed from
pointing to the normal Github issues to Github's private security
reporting feature, but the text hasn't been updated to reflect this.


Testing: Static docs file without dynamic effects.

Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
2025-05-16 21:27:42 +00:00
dependabot[bot]
3cfdf17d22
build(deps): bump cc from 1.2.22 to 1.2.23 (#37030)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.22 to 1.2.23.
<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.23</h2>
<h3>Other</h3>
<ul>
<li>support &quot;vxworks&quot; and &quot;nto&quot; OSes on
<code>get_base_archiver_variant</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1456">#1456</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.22...cc-v1.2.23">1.2.23</a>
- 2025-05-16</h2>
<h3>Other</h3>
<ul>
<li>support &quot;vxworks&quot; and &quot;nto&quot; OSes on
<code>get_base_archiver_variant</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1456">#1456</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2e3a7a5b8b"><code>2e3a7a5</code></a>
chore: release v1.2.23 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1470">#1470</a>)</li>
<li><a
href="8ee6782817"><code>8ee6782</code></a>
support &quot;vxworks&quot; and &quot;nto&quot; OSes on
<code>get_base_archiver_variant</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1456">#1456</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.22...cc-v1.2.23">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.22&new-version=1.2.23)](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-16 19:58:44 +00:00
Oriol Brufau
78f3f455dc
layout: Fix align-content on stretched row flex containers (#37024)
Fixes a regression from #36973, which didn't take into account that
stretching flex items affects their final block size when the cross axis
is the block axis.

Testing: Adding new test
Fixes: #37023

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-16 19:15:16 +00:00
Martin Robinson
c1a70f4eb2
compositor: Batch all pending scroll event updates into a single transaction (#36974)
When multiple WebViews are updating scroll events, instead of taking the
list of `WebView`s to avoid a double-borrow, batch scroll events into a
single transaction. This should make processing slightly more efficient
and avoids having to take the vector of WebViews.

Testing: No behavior change here and this aspect of WebView interaction
is untestable currently.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-16 18:26:59 +00:00
Martin Robinson
639eb7bc55
fonts: Fix calculation of font underline thickness on macOS (#37029)
There was a typo in how underline thickness (in pixels) was converted
to app units. It was interpreting the pixel value as an f64 app unit
value, which meant that the resulting thickness was 1/60 of the value
expected.

Testing: macOS does not currently run WPT tests, so it is difficult to
test
this one. I have manually confirmed that underlines now show up and are
the
expected thickness.
Fixes: #36945

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-16 18:23:02 +00:00
Martin Robinson
cea4046a3f
Unsimplify rust-toolchain.toml by adding clippy and rustfmt (#37028)
This is a speculative fix for some intermittent clippy failures that we
are seeing on the CI such as:
4235166617

These entries were removed in #35117, but it seems that they are
necessary now.

Testing: This is a fix for the CI, so functioning CI is effectively the
test.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-05-16 17:04:27 +00:00
Simon Wülker
33a68eb2d5
Remove CoreResourceMsg::Synchronize (#37019)
This message is unused.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-15 20:20:55 +00:00
dependabot[bot]
f7b16730be
build(deps): bump bitflags from 2.9.0 to 2.9.1 (#37018)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.0 to
2.9.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/releases">bitflags's
releases</a>.</em></p>
<blockquote>
<h2>2.9.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Document Cargo features by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/444">bitflags/bitflags#444</a></li>
<li>Prepare for 2.9.1 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/445">bitflags/bitflags#445</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.0...2.9.1">https://github.com/bitflags/bitflags/compare/2.9.0...2.9.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md">bitflags's
changelog</a>.</em></p>
<blockquote>
<h1>2.9.1</h1>
<h2>What's Changed</h2>
<ul>
<li>Document Cargo features by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/444">bitflags/bitflags#444</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.0...2.9.1">https://github.com/bitflags/bitflags/compare/2.9.0...2.9.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="51927b32ce"><code>51927b3</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/445">#445</a>
from KodrAus/cargo/v2.9.1</li>
<li><a
href="1c35c8a908"><code>1c35c8a</code></a>
prepare for 2.9.1 release</li>
<li><a
href="3d5d100cfa"><code>3d5d100</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/444">#444</a>
from KodrAus/docs/cargo-features</li>
<li><a
href="994608d972"><code>994608d</code></a>
update compile errors</li>
<li><a
href="dffa2e314c"><code>dffa2e3</code></a>
document Cargo features</li>
<li>See full diff in <a
href="https://github.com/bitflags/bitflags/compare/2.9.0...2.9.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bitflags&package-manager=cargo&previous-version=2.9.0&new-version=2.9.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-15 17:43:53 +00:00
dependabot[bot]
8fa52e17f5
build(deps): bump errno from 0.3.11 to 0.3.12 (#37017)
Bumps [errno](https://github.com/lambda-fairy/rust-errno) from 0.3.11 to
0.3.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lambda-fairy/rust-errno/releases">errno's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.12</h2>
<ul>
<li>Issue a better error message if the target is unsupported.
<a
href="https://redirect.github.com/lambda-fairy/rust-errno/pull/110">#110</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lambda-fairy/rust-errno/blob/main/CHANGELOG.md">errno's
changelog</a>.</em></p>
<blockquote>
<h1>[0.3.12] - 2025-05-12</h1>
<ul>
<li>Issue a better error message if the target is unsupported.
<a
href="https://redirect.github.com/lambda-fairy/rust-errno/pull/110">#110</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eb75f22d05"><code>eb75f22</code></a>
Release 0.3.12. (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/111">#111</a>)</li>
<li><a
href="a9bd71ea31"><code>a9bd71e</code></a>
Issue a better error message if the target is unsupported. (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/110">#110</a>)</li>
<li>See full diff in <a
href="https://github.com/lambda-fairy/rust-errno/compare/v0.3.11...v0.3.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=errno&package-manager=cargo&previous-version=0.3.11&new-version=0.3.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-15 17:31:23 +00:00
Simon Wülker
b100a98e1d
Fully support <input type=color> (#36992)
This change adds a shadow-tree widget for `<input type=color>` elements.
It also involves some changes to the way layout interacts with the DOM,
because currently all `input` and `textarea` elements are rendered as
plain text and their descendants are ignored. This obviously doesn't
work for `<input type={color, date, range, etc}>`.


![image](https://github.com/user-attachments/assets/4f16c3b0-1f79-4095-b19d-1153f5853dd5)

<details><summary>HTML used for the screenshot above</summary>

```html
<input type=color>
```

</details>



Testing: I doubt that this affects WPT tests, because the appearance and
behaviour of the widget is almost entirely unspecified.

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-15 17:30:38 +00:00
Simon Wülker
f9382fcaa0
Remove layout-2013 profiling categories (#37014)
This change also removes the ProfilingCategory::variant_name function,
because strum_macros::IntoStaticStr is already being used and does the
same thing.

Testing: This change compiles and that's good enough

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-05-15 16:54:02 +00:00
Narfinger
3af0992ead
Added a new workflow that benchmarks simple startup and loading of servo.org on HarmonyOS. (#36878)
Added a new workflow that benchmarks simple startup and loading of
servo.org on HarmonyOS.
Needs https://github.com/servo/ci-runners/pull/34 to be merged and
applied to the runners.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-15 12:52:33 +00:00
Oriol Brufau
cd0dbb9afb
layout: Obey intrinsic min/max block sizes on flex containers (#36973)
Intrinsic sizing keywords weren't working correctly on the min and max
block sizes of a flex container, because we weren't setting the
`CacheableLayoutResult::content_block_size` to the right value. This
also ensures that `align-content` aligns within the final size of the
container.

Note it's not very clear what to do for single-line containers, they are
being discussed in https://github.com/w3c/csswg-drafts/issues/12123

Testing: Adding new WPT tests. There are still some failures, but most
subtests would fail without this change.
Fixes: #36981

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-15 07:57:07 +00:00