Commit graph

52445 commits

Author SHA1 Message Date
Martin Robinson
6fdf40dce7
layout: Always build Tag and BaseFragmentInfo with ServoThreadSafeLayoutNode (#38680)
This cleanup makes the interface a bit simpler and prevents problems
where the pseudo-element information is not passed by accident.

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

---------

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-08-18 12:19:09 +00:00
Martin Robinson
8743a11ba4
tidy: Add a rule ensuring that // comments are followed by a space in Rust (#38698)
This shows up sometimes in code reviews, so it makes sense that tidy
enforces it. `rustfmt` supports this via comment normalization, but it
does many other things and is still an unstable feature (with bugs).

Testing: There are new tidy tests for this change.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-08-18 12:09:09 +00:00
Simon Wülker
8ca00a3b0c
Add missing backtick in README.md (#38757)
The build instructions for OHOS were missing a backtick.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-08-18 11:53:08 +00:00
Jo Steven Novaryo
7489a0349f
layout: Do not include position:fixed children when calculating scrollable overflow for root element (#38618)
Reimplementation of: #35931

For a `FragmentTree` we define a scrollable overflow calculation that
includes the overflow all of it's children `Fragments`. In practice we
are using this calculation for scrolling area of the viewport and
defining the root scroll frames. However, since uncontained fixed
positioned element is located outside of the document and should not be
scrolled, and therefore it would make no sense to include them in the
calculation of its scrollable overflow as well.

Testing: New and existing WPT tests
Fixes: #38617
Fixes: #38182

---------

Signed-off-by: Jo Steven Novaryo <jo.steven.novaryo@huawei.com>
2025-08-18 11:25:31 +00:00
Nico Burns
7dcd89a6f9
Use built-in conversion function from unicode_script to convert script for harfbuzz (#38704)
Replaces a big match statement with a call to `unicode_script`'s
`Script::short_name` method which has the same big match statement. We
special case `Script::Unknown` because the `short_name` method returns
empty string for that variant, but harfbuzz represents it with `Zzzz`.

EDIT: `Zzzz` seems to be in the spec so I've sent a PR to
`unicode_script` to use it:
https://github.com/unicode-rs/unicode-script/pull/23
EDIT: And https://github.com/unicode-rs/unicode-script/pull/24 which
would allow us to remove this method entirely.

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-08-18 08:16:29 +00:00
Jerens Lensun
788d6db94d
script_bindings(python): Add ruff rule for strict typing in function (#38694)
This is part of introducing the Ruff rule [flake8-annotations
(ANN)](https://docs.astral.sh/ruff/rules/#flake8-annotations-ann) into
the script_bindings folder.

Since `codegen.py` has 10k lines of code, the strategy is to introduce
the rule first while ignoring the `ANN` Ruff rule for `codegen.py`. We
will then gradually add type annotations slice by slice to ensure no new
errors occur outside of `ANN`.

Testing: `./mach test-wpt webidl`

---------

Signed-off-by: Jerens Lensun <jerensslensun@gmail.com>
2025-08-18 07:26:30 +00:00
Josh Matthews
27dededa65
Enable dom_abort_controller_enabled for AbortController test subdirectory (#38749)
Since we don't enable the preference as part of
`--enable-experimental-web-platform-features` yet, we don't run any
automated tests for the AbortController feature. This change means that
we at least explicitly test the interface.

Testing: Just enabling new tests.
Part of: https://github.com/servo/servo/issues/34866

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-18 07:25:04 +00:00
Jonathan Schwender
2e6219b52d
CI: Bump setup-ohos-sdk to 0.2.3 (#38741)
Includes a fix, which deletes the SDK for ohos-native hosts, saving some
disk and cache space, since we only need the version for linux hosts.

Testing: [mach try
ohos](https://github.com/jschwe/servo/actions/runs/17024914816)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-18 05:54:31 +00:00
Euclid Ye
ce9425f3e8
embedder: Remove Int variant from WebDriverJSValue (#38748)
According to
[spec](https://w3c.github.io/webdriver/#dfn-json-deserialize), we should
only care about
[Number](https://262.ecma-international.org/5.1/#sec-4.3.19) that is
f64.

This change also closes the gap between `JSValue` and `WebDriverJSValue`
and potentially merge into one in the future.

Testing: No regression. However, we have lots of TIMEOUT due to
https://github.com/servo/servo/pull/38622.

Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
2025-08-18 04:39:52 +00:00
Simon Wülker
e19fade481
Replace FreeTypeFaceHelpers with a safe wrapper struct (#38634)
Testing: only safety annotations change, no tests are required.
Fixes: https://github.com/servo/servo/issues/38627

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-08-17 21:46:16 +00:00
Tim van der Lippe
4de9a9d100
Implement trusted types for setTimeout/setInterval (#38736)
I had a difficult time figuring out where the relevant steps had to be
added. Therefore, I aggressively commented the spec steps so eventually
I discovered where I should add them.

Part of #36258

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-08-17 20:53:16 +00:00
Tim van der Lippe
a31235e52b
Add trusted type checks for global event handler attributes (#38718)
This only covers the global event handlers for now, while I figure out
which others we are missing. We don't seem to be missing the
WindowEventHandlers, but not sure where the others coming from.

Part of #36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-08-17 19:44:22 +00:00
Josh Matthews
9da8142e2a
fonts: Measure more FontContext heap usage. (#38733)
Replace a hand-written MallocSizeOf implementation with an automatically
derived one. This exposes more than 1MB of previously-untracked heap
data on servo.org.

Testing: Compared about:memory output for servo.org before and after.
Part of: #11559

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-17 18:59:30 +00:00
Kingsley Yung
d490c5c06b
script: Throw error when lower is greater than upper in IDBKeyRange (#38735)
IDBKeyRange::Bound doesn't check if the lower bound is greater than the
upper bound. When this happens, it should throw DataError.

Reference: Step 5 of
<https://www.w3.org/TR/IndexedDB-2/#dom-idbkeyrange-bound>

Testing: Passing WPT tests that were expected to fail before.

---------

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-08-17 15:21:45 +00:00
Jonathan Schwender
ee781b71b4
tests: Vendor blink perf tests (#38654)
Vendors the [blink perf
tests](https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/blink/perf_tests/).
These perf tests are useful to evaluate the performance of servo. 
The license that governs the perf tests is included in the folder. 
Running benchmark cases automatically is left to future work.

The update.py script is taken from mozjs and slightly adapted, so we can
easily filter
(and patch if this should be necessary in the future.

Testing: This PR just adds the perf_tests, but does not use or modify
them in any way.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-17 09:54:04 +00:00
Ashwin Naren
7621332824
tests: Turn on IndexedDB tests and update results (#38722)
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-08-17 08:32:29 +00:00
Servo WPT Sync
fbf0eb11a2
Sync WPT with upstream (17-08-2025) (#38721)
Automated downstream sync of changes from upstream as of 17-08-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-08-17 01:49:38 +00:00
Rahul Menon
389277fa72
content: Make QuotaExceededError serializable (#38720)
Implements (de)serialization behavior for QuotaExceededError and enables
the annotation on the WebIDL spec.

Testing: Adds its own WPT tests
Fixes: https://github.com/servo/servo/issues/38685

---------

Signed-off-by: Rahul Menon <menonrahul02@gmail.com>
2025-08-16 20:33:37 +00:00
Josh Matthews
e80d36783a
script: Ensure JS->webdriver conversions have a non-empty settings stack (#38709)
JS scripts that are evaluated already run with an [entry
script](https://html.spec.whatwg.org/#entry) on the script settings
stack. The codepaths that do something with the return value (eg.
WebDriver and embedder JS evaluation) have the potential to run
additional JS, since they can trigger getters for arbitrary properties
of objects, so they also need an entry script present in case code like
e649b9b91d/components/script/dom/location.rs (L182)
is executed.

Testing: Added a regression unit test.
Fixes: #38692

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-16 17:14:56 +00:00
Josh Matthews
f19b2f6e84
Add preference observer API for runtime webxr preference changes (#38649)
Adds a global preference observer that is notified whenever any
preference value is updated. This is used to support runtime
configuration of WebXR automated testing, which is a prerequisite for
running multiple WPT tests in a single browser session.

Testing: Ran `./mach test-wpt /webxr --product=servodriver`
Fixes: #38647

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-16 08:49:13 +00:00
Ashwin Naren
fc3feceee5
Switch indexeddb backend to sqlite and improve IPC messaging (#38187)
- Use sqlite instead of heed. (one indexed database = one sqlite
database)
- Implement the backend for indexes
- Use keyranges where needed (as specified by the spec)
- Implement `getKey`
- Fix channel error messaging (led to a bunch of changes to how async
requests are handled)

Note: `components/net/indexeddb/engines/sqlite/serialize.rs` is unused;
I can delete it if needed.

Testing: Switching to sqlite eliminated many panics (exposing some new
failures).
Fixes: #38040

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-08-16 07:27:17 +00:00
Ashwin Naren
f4bbdf8010
net: Fix possible indexeddb key range singleton related panic (#38281)
If `.as_singleton()` was called on a range that had both lower and upper
set as `None`, it would have panicked.

Testing: Nothing seems to have changed
Fixes: #37647

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-08-16 03:19:01 +00:00
Servo WPT Sync
e649b9b91d
Sync WPT with upstream (16-08-2025) (#38706)
Automated downstream sync of changes from upstream as of 16-08-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-08-16 00:46:10 +00:00
sagudev
85588fada0
compositing: Use webrender_api::ExternalImageSource instead of WebRenderImageSource (#38703)
There is no reason to roll our own type.

Motivation: I need `ExternalImageSource::Invalid`.

Testing: Covered by existing WPT tests, but it's just refactor

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-08-15 19:39:07 +00:00
Tim van der Lippe
18e05d3aab
Implement trusted types for setAttribute (#38700)
Callers now call `set_attribute` directly, to avoid the trusted types
machinery, as well as skip validation. That's not required by spec as
well.

This implements part of the DOM integration from
https://github.com/whatwg/dom/pull/1268

Part of #36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-08-15 19:18:19 +00:00
dependabot[bot]
8290761066
build(deps): bump async-trait from 0.1.88 to 0.1.89 (#38702)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.88
to 0.1.89.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/async-trait/releases">async-trait's
releases</a>.</em></p>
<blockquote>
<h2>0.1.89</h2>
<ul>
<li>Improve IDE functionality (<a
href="https://redirect.github.com/dtolnay/async-trait/issues/293">#293</a>,
thanks <a
href="https://github.com/Veykril"><code>@​Veykril</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a7e91e98a5"><code>a7e91e9</code></a>
Release 0.1.89</li>
<li><a
href="fbcfcaca02"><code>fbcfcac</code></a>
Merge pull request 293 from Veykril/lw/quote_spanned</li>
<li><a
href="fd93990620"><code>fd93990</code></a>
Improve use of spans in <code>quote_spanned</code></li>
<li><a
href="a5093fe762"><code>a5093fe</code></a>
Add type-mismatch ui test</li>
<li><a
href="6d12b44116"><code>6d12b44</code></a>
Revert &quot;Pin nightly toolchain used for miri job&quot;</li>
<li><a
href="dd9e4bad1b"><code>dd9e4ba</code></a>
Hide unused_variables warning in consider-restricting.rs ui test</li>
<li><a
href="b454fc869a"><code>b454fc8</code></a>
Update ui test suite to nightly-2025-08-03</li>
<li><a
href="9c880e85d8"><code>9c880e8</code></a>
Update ui test suite to nightly-2025-07-30</li>
<li><a
href="7ca751d0b3"><code>7ca751d</code></a>
Ignore unused_parens warning in test</li>
<li><a
href="2bccfeb461"><code>2bccfeb</code></a>
Update ui test suite to nightly-2025-05-28</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/async-trait/compare/0.1.88...0.1.89">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-trait&package-manager=cargo&previous-version=0.1.88&new-version=0.1.89)](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-08-15 17:25:36 +00:00
dependabot[bot]
3f2bb0eda3
build(deps): bump the egui-related group with 7 updates (#38701)
Bumps the egui-related group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [egui](https://github.com/emilk/egui) | `0.32.0` | `0.32.1` |
| [egui-winit](https://github.com/emilk/egui) | `0.32.0` | `0.32.1` |
| [egui_glow](https://github.com/emilk/egui) | `0.32.0` | `0.32.1` |
| [ecolor](https://github.com/emilk/egui) | `0.32.0` | `0.32.1` |
| [emath](https://github.com/emilk/egui) | `0.32.0` | `0.32.1` |
| [epaint](https://github.com/emilk/egui) | `0.32.0` | `0.32.1` |
| [epaint_default_fonts](https://github.com/emilk/egui) | `0.32.0` |
`0.32.1` |

Updates `egui` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">egui's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">egui's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="707a339047"><code>707a339</code></a>
Bump version numbers to 0.32.1</li>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="4fcd1d13e3"><code>4fcd1d1</code></a>
Update to winit 0.30.12 (<a
href="https://redirect.github.com/emilk/egui/issues/7420">#7420</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `egui-winit` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">egui-winit's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">egui-winit's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li><a
href="85c4b1dce7"><code>85c4b1d</code></a>
Fix glyph rendering: clamp coverage to [0, 1] (<a
href="https://redirect.github.com/emilk/egui/issues/7415">#7415</a>)</li>
<li><a
href="2f7bcf26f2"><code>2f7bcf2</code></a>
Fix multi-line <code>TextShape</code> rotation (<a
href="https://redirect.github.com/emilk/egui/issues/7404">#7404</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `egui_glow` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">egui_glow's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">egui_glow's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li><a
href="85c4b1dce7"><code>85c4b1d</code></a>
Fix glyph rendering: clamp coverage to [0, 1] (<a
href="https://redirect.github.com/emilk/egui/issues/7415">#7415</a>)</li>
<li><a
href="2f7bcf26f2"><code>2f7bcf2</code></a>
Fix multi-line <code>TextShape</code> rotation (<a
href="https://redirect.github.com/emilk/egui/issues/7404">#7404</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `ecolor` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">ecolor's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">ecolor's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="707a339047"><code>707a339</code></a>
Bump version numbers to 0.32.1</li>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="4fcd1d13e3"><code>4fcd1d1</code></a>
Update to winit 0.30.12 (<a
href="https://redirect.github.com/emilk/egui/issues/7420">#7420</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `emath` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">emath's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">emath's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li><a
href="85c4b1dce7"><code>85c4b1d</code></a>
Fix glyph rendering: clamp coverage to [0, 1] (<a
href="https://redirect.github.com/emilk/egui/issues/7415">#7415</a>)</li>
<li><a
href="2f7bcf26f2"><code>2f7bcf2</code></a>
Fix multi-line <code>TextShape</code> rotation (<a
href="https://redirect.github.com/emilk/egui/issues/7404">#7404</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `epaint` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">epaint's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">epaint's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li><a
href="85c4b1dce7"><code>85c4b1d</code></a>
Fix glyph rendering: clamp coverage to [0, 1] (<a
href="https://redirect.github.com/emilk/egui/issues/7415">#7415</a>)</li>
<li><a
href="2f7bcf26f2"><code>2f7bcf2</code></a>
Fix multi-line <code>TextShape</code> rotation (<a
href="https://redirect.github.com/emilk/egui/issues/7404">#7404</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `epaint_default_fonts` from 0.32.0 to 0.32.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/releases">epaint_default_fonts's
releases</a>.</em></p>
<blockquote>
<h2>0.32.1 - Misc bug fixes</h2>
<p>egui is an easy-to-use immediate mode GUI for Rust that runs on both
web and native.</p>
<p>Try it now: <a
href="https://www.egui.rs/">https://www.egui.rs/</a></p>
<p>egui development is sponsored by <a
href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for
visualizing streams of multimodal data.</p>
<h1>egui changelog</h1>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
<h1>eframe changelog</h1>
<ul>
<li>Enable wgpu default features in eframe / egui_wgpu default features
<a href="https://redirect.github.com/emilk/egui/pull/7344">#7344</a> by
<a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Request a redraw when the url change through the
<code>popstate</code> event listener <a
href="https://redirect.github.com/emilk/egui/pull/7403">#7403</a> by <a
href="https://github.com/irevoire"><code>@​irevoire</code></a></li>
</ul>
<h1>egui_kittest changelog</h1>
<ul>
<li>Fix <code>UPDATE_SNAPSHOTS</code>: only update if we didn't pass the
test <a
href="https://redirect.github.com/emilk/egui/pull/7455">#7455</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/emilk/egui/blob/main/CHANGELOG.md">epaint_default_fonts's
changelog</a>.</em></p>
<blockquote>
<h2>0.32.1 - 2025-08-15 - Misc bug fixes</h2>
<h3> Added</h3>
<ul>
<li>Add <code>ComboBox::popup_style</code> <a
href="https://redirect.github.com/emilk/egui/pull/7360">#7360</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
</ul>
<h3>🐛 Fixed</h3>
<ul>
<li>Fix glyph rendering: clamp coverage to [0, 1] <a
href="https://redirect.github.com/emilk/egui/pull/7415">#7415</a> by <a
href="https://github.com/emilk"><code>@​emilk</code></a></li>
<li>Fix manual <code>Popup</code> not closing <a
href="https://redirect.github.com/emilk/egui/pull/7383">#7383</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>WidgetText::Text</code> ignoring fallback font and
overrides <a
href="https://redirect.github.com/emilk/egui/pull/7361">#7361</a> by <a
href="https://github.com/lucasmerlin"><code>@​lucasmerlin</code></a></li>
<li>Fix <code>override_text_color</code> priority <a
href="https://redirect.github.com/emilk/egui/pull/7439">#7439</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
<li>Fix debug-panic in ScrollArea if contents fit without scrolling <a
href="https://redirect.github.com/emilk/egui/pull/7440">#7440</a> by <a
href="https://github.com/YgorSouza"><code>@​YgorSouza</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ead6926895"><code>ead6926</code></a>
Update changelogs</li>
<li><a
href="03fb443669"><code>03fb443</code></a>
Only update snapshot if we didn't pass (<a
href="https://redirect.github.com/emilk/egui/issues/7455">#7455</a>)</li>
<li><a
href="d739a4b880"><code>d739a4b</code></a>
Request a redraw when the url change through the <code>popstate</code>
event listener (#...</li>
<li><a
href="b732992f69"><code>b732992</code></a>
Fix debug-panic in ScrollArea if contents fit without scrolling (<a
href="https://redirect.github.com/emilk/egui/issues/7440">#7440</a>)</li>
<li><a
href="7036d6a982"><code>7036d6a</code></a>
Fix <code>override_text_color</code> priority (<a
href="https://redirect.github.com/emilk/egui/issues/7439">#7439</a>)</li>
<li><a
href="97fe124443"><code>97fe124</code></a>
Fix <code>WidgetText::Text</code> ignoring fallback font and overrides
(<a
href="https://redirect.github.com/emilk/egui/issues/7361">#7361</a>)</li>
<li><a
href="1ad374f255"><code>1ad374f</code></a>
Fix manual <code>Popup</code> not closing (<a
href="https://redirect.github.com/emilk/egui/issues/7383">#7383</a>)</li>
<li><a
href="1afbb9791a"><code>1afbb97</code></a>
Add <code>ComboBox::popup_style</code> (<a
href="https://redirect.github.com/emilk/egui/issues/7360">#7360</a>)</li>
<li><a
href="85c4b1dce7"><code>85c4b1d</code></a>
Fix glyph rendering: clamp coverage to [0, 1] (<a
href="https://redirect.github.com/emilk/egui/issues/7415">#7415</a>)</li>
<li><a
href="2f7bcf26f2"><code>2f7bcf2</code></a>
Fix multi-line <code>TextShape</code> rotation (<a
href="https://redirect.github.com/emilk/egui/issues/7404">#7404</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/emilk/egui/compare/0.32.0...0.32.1">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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-15 17:13:58 +00:00
Martin Robinson
8d60353d14
script: Add presentation attributes as part of a single PropertyDeclarationBlock (#38684)
Instead of making a block for each attribute, use a single block as
described in a `FIXME` comment by @emilio. This also switch to using
`map` and `and_then` in more places to make the code a bit more concise.

Testing: This should not change behavior other than to incraese
efficiency a
bit and is thus covered by existing tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-08-15 16:26:00 +00:00
Nico Burns
046dbd86a1
fonts: Use skrifa to get raw font table data on Linux (#38690)
Use skrifa instead of freetype for extracting raw table data. Allows us
to replace unsafe Freetype code with safe Skrifa code. Also allows us to
avoid copying the table data. Instead we return Arc'd data.

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-08-15 11:30:29 +00:00
Jerens Lensun
a4fdbe8be3
mach: add type annotation in function for 'python/servo' folder (#38592)
This part of function strictly typed in python by adding ANN rule in
ruff, similiar to #38531.

Testing: `./mach test-tidy`
Fixes: Not related to any issues

---------

Signed-off-by: Jerens Lensun <jerensslensun@gmail.com>
2025-08-15 10:37:24 +00:00
Euclid Ye
494493ceb7
Rename InputEvent::MouseLeave to InputEvent::MouseLeftViewport (#38695)
1. `InputEvent::MouseLeave` indicates that mouse has left the viewport
(fired by embedder) or iframe (synthesized in Constellation
f24f225db8/components/constellation/constellation_webview.rs (L119-L122)).
Its handler in script is named as `handle_mouse_leave_event`, which is
very misleading as we have DOM event
[mouseleave](https://w3c.github.io/uievents/#event-type-mouseleave). I
rename it to `MouseLeftViewport` to be consistent with
`WindowEvent::CursorLeft`:
f24f225db8/ports/servoshell/desktop/headed_window.rs (L632-L638)
2. Add doc and rename function, such as `handle_mouse_move_event` to
`handle_native_mouse_move_event` to be closer to
[spec](https://w3c.github.io/uievents/#handle-native-mouse-move).

Testing: Just renaming + skipping unnecessary hit-test in simple case.
Fixes: Nothing but preparing for #38670 and #38435.

---------

Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
2025-08-15 09:54:54 +00:00
JoeDow
8b574539d1
script: Ensure notify_invalidations() is always called when modifying stylesheets (#38530)
This change supplements the missing stylesheet invalidation
notifications to fix some bugs that the modification of stylesheet does
not take effect. Additionally, this PR add a RAII thing to mark the
modification scope of stylesheet rules, which will facilitate to add
extra logic before the modification happens.

Fixes: there is relevant issue #38211 , but it can't be fixed by this
PR.
Testing: This fixes some subtests in
`/css/cssom/CSSStyleSheet-constructable.html`.

Signed-off-by: sharpshooter_pt <ibluegalaxy_taoj@163.com>
2025-08-15 09:14:34 +00:00
Euclid Ye
aca4bde93d
servoshell: Do not send mouse button events to Servo that happen outside the WebView (#38696)
`webview_relative_mouse_point` can have negative y-coordinate when at
toolbar, but we still would notify compositor the native mousebutton
event to do hit-test.

Testing: This fixes the way that mouse events are passed from servoshell
to Servo,
but there is currently no way to test those kind of interactions.

Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
2025-08-15 08:55:25 +00:00
Usman Yahaya Baba
02dca0fb21
net: Send ResponseContentObj to Devtools (#38625)
Currently, the response tab for a request's detail in devtools does not
show the available data, this was due to how the content is being
structured (not the way firefox's devtools client expects it) and also
the body being discarded and not stored in the actor.
This PR stores the body in the actor , which is then retrieved in
`getResponseContent` and then use it to instantiate the new struct
`ResponseContentObj` which matches the format firefox's expects

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

---------

Signed-off-by: uthmaniv <uthmanyahayababa@gmail.com>
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-08-15 08:26:24 +00:00
minghuaw
d409137e4c
Script: Implement TextEncoderStream (#38466)
This implements the `TextEncoderStream` WebIDL interface. 

Testing: Existing WPT tests should be sufficient
Fixes: #37724

---------

Signed-off-by: minghuaw <wuminghua7@huawei.com>
2025-08-15 07:57:00 +00:00
batu_hoang
f24f225db8
webdriver: Implement the "Get Window Handles" command (#38622)
Implment get window handles according to
[spec](https://w3c.github.io/webdriver/#dfn-window-handles).
- Window handles are supposed to identify `browsing context`. However,
based on `get window handle command` and `get window handles command`,
we only need to care about top level browsing context.
- Back then, we use a random generated uuid for eacch webview id, it is
not correct but still work because all commands depend on `webview id`
and `browsing context id`. The only case we need window handle is is
when webdriver gets window object with js script. Since the object is
converted to the id of window's document node, `get window handle`
should return the same thing.

Action run (with updated expectation):
https://github.com/longvatrong111/servo/actions/runs/16957610535
https://github.com/longvatrong111/servo/actions/runs/16957612027

Some tests may sporadically timeout due to unstable hit test.

cc: @xiaochengh

---------

Signed-off-by: batu_hoang <hoang.binh.trong@huawei.com>
2025-08-15 03:30:56 +00:00
Euclid Ye
dafb0abf31
script: Stop handling native mousedown and mouseup for disabled elements (#38671)
According to spec of
[hit-test](https://w3c.github.io/uievents/#hit-test) for native mouse
event, mousedown/mouseup should also be excluded when interacting with
disabled element, even tho it may be the frontmost of
[elementFromPoint](https://drafts.csswg.org/cssom-view/#dom-document-elementfrompoint).

Testing: Now it matches the behaviour of other browsers in #38670 for
disabled element. Also testdriver test:
`tests\wpt\tests\html\semantics\disabled-elements\disabled-event-dispatch.tentative.html`
has 4 more passing tests.
Fixes: Part of #38670.

Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
2025-08-15 01:24:47 +00:00
dependabot[bot]
89bd01a3b4
build(deps): bump rayon from 1.10.0 to 1.11.0 (#38686)
Bumps [rayon](https://github.com/rayon-rs/rayon) from 1.10.0 to 1.11.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rayon-rs/rayon/blob/main/RELEASES.md">rayon's
changelog</a>.</em></p>
<blockquote>
<h1>Release rayon 1.11.0 / rayon-core 1.13.0 (2025-08-12)</h1>
<ul>
<li>The minimum supported <code>rustc</code> is now 1.80.</li>
<li><code>iter::repeatn</code> has been renamed to
<code>iter::repeat_n</code> to match the name
stabilized in the standard library. The old name still exists as a
deprecated
function for compatibility.</li>
<li>Fixed a bug in <code>in_place_scope</code> when the default global
registry uses the
current thread, like on WebAssembly without threading support.</li>
<li><code>binary_heap::Iter</code> no longer requires a temporary
allocation.</li>
<li>Relaxed trait bounds on many of the public structs.</li>
<li>Implemented <code>IntoParallelIterator for Box&lt;[T]&gt;</code> and
its references.</li>
<li>Implemented <code>FromParallelIterator&lt;_&gt; for
Box&lt;str&gt;</code> via <code>String</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6236214d71"><code>6236214</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/1031">#1031</a></li>
<li><a
href="652f11176a"><code>652f111</code></a>
Release rayon 1.7.0 and rayon-core 1.11.0</li>
<li><a
href="7df001da1b"><code>7df001d</code></a>
Tweak plumbing consumer description</li>
<li><a
href="322dfe87e4"><code>322dfe8</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/1026">#1026</a></li>
<li><a
href="099241d410"><code>099241d</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/1030">#1030</a></li>
<li><a
href="a17bcb90aa"><code>a17bcb9</code></a>
Fix inappropriate use of slice::as_mut_ptr</li>
<li><a
href="98077fe07c"><code>98077fe</code></a>
Be more cautious about drain drops</li>
<li><a
href="706969515c"><code>7069695</code></a>
Merge <a
href="https://redirect.github.com/rayon-rs/rayon/issues/1028">#1028</a></li>
<li><a
href="874ff73125"><code>874ff73</code></a>
Fix docs for the yield <code>None</code> case on
<code>ThreadPool</code></li>
<li><a
href="58f7b7ec9d"><code>58f7b7e</code></a>
Be careful comparing <code>job_ref.execute_fn</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rayon-rs/rayon/compare/rayon-core-v1.10.0...rayon-core-v1.11.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-14 23:11:20 +00:00
Sebastian C
027da6580e
tests: Reintroduce CookieStore WPT test expectations (#38689)
CookieStore spec graduated from WICG and the test suite in WPT got
renamed to `cookiestore` from `cookie-store`. This readds the baseline
CookieStore expectations in preparation for landing an implementation.

Testing: Reenables tests and readds expectations that were removed.

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-08-14 20:57:11 +00:00
Jonathan Schwender
40e57e95b2
base: Remove last usage of static_assertions crate (#38687)
Replace static_assertions in the `size_of_test` macro with `const
assert`s. The error message is still informative.
Additionally also remove the `cfg` guard, which caused the assertion to
only be enabled on 64 bit platforms, which is something one would not
expect given the name `size_of_test` of the macro.
`cargo tree -i static_assertions` now points to only `stylo` using
`static_assertions`, so we should be able to remove this dependency
fairly easy, since the macro doesn't seem to be used there either at
first glance.

Testing: Covered by existing tests.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-14 19:02:37 +00:00
Jonathan Schwender
f492cbf8c1
base: Allow sending GenericReceiver (#38636)
Implement Serialize and Deserialize for GenericReceiver to also allow
the Receiver to be sent across
ipc channels.
This is necessary to allow using the GenericChannel in more places.

Testing: Manually tested on follow-up feature branch. Does not require
new tests.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-08-14 18:28:58 +00:00
Rahul Menon
b5932e5abf
script: Implement QuotaExceededError WebIDL interface (#38507)
Implements the new WebIDL interface for QuotaExceededError and uses it
in appropriate places.

Testing: WPT tests. Now passing many more in
`tests/wpt/tests/WebCryptoAPI/getRandomValues.any.js` and
`tests/wpt/tests/webstorage/storage_session_setitem_quotaexceedederr.window.js`.
Fixes: #38489

---------

Signed-off-by: Rahul Menon <menonrahul02@gmail.com>
2025-08-14 17:58:50 +00:00
Jonathan Schwender
fad247c802
mozjs: Remove unneeded icu_capi features (#38666)
Reduces the binary size by around 16 MiB (ohos-production-stripped, 74M
vs 100M).

Testing: try run:
https://github.com/jschwe/servo/actions/runs/16968926330/job/48103382790

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-14 16:55:32 +00:00
Simon Wülker
6e7226961b
layout: Set color and text decoration on <select> elements by default (#38570)
This makes the default style for `<select>` elements match that of gecko
(https://searchfox.org/mozilla-central/rev/a1f4cb9fc03d81be41ca2ba81294592df784364d/layout/style/res/forms.css#217-243),
with some small modifications because servo does not have fancy things
like `color: -moz-ComboboxText;`.

Testing: Includes a new web platform test
Fixes: https://github.com/servo/servo/issues/37895

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-08-14 14:17:48 +00:00
Martin Robinson
99ce81cf64
layout: Support storing layout data for two-level nested pseudo-elements (#38678)
Add basic support for storing layout data for pseudo-elements nested to
up to two levels. This removes the last unstored layout result and fixes
a double-borrow issue. This change does not add properly parsing nor
styling of these element types, but does prepare for those changes which
must come from stylo.

Testing: This fixes a intermittent panic in
`tests/wpt/tests/css/css-lists/nested-marker-styling.html`
Fixes: #38177. 
Closes: #38183.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-08-14 13:41:34 +00:00
Simon Wülker
43da933247
script: Implement CSS.registerProperty (#38682)
The implementation is mostly equivalent to
https://searchfox.org/mozilla-central/source/servo/ports/geckolib/glue.rs#9480.

Testing: New web platform tests start to pass

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-08-14 13:34:02 +00:00
Simon Wülker
3a0e8fefde
script: Always throw when trying to setProperty on a readonly style CSSStyleDeclaration (#38677)
Previously,
[`SetProperty`](https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty)
implemented step 3 before calling into the inner `set_property` method,
which implements step 1. Therefore if step 3 returned then step 1 never
runs, and can't throw an exception.


Testing: A new web platform test starts to pass

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-08-14 13:27:39 +00:00
lumiscosity
b747589286
script: Strip javascript URL scheme using Position::AfterScheme rather than Position::BeforePath (#38599)
This makes the initial split match step 2 of
https://html.spec.whatwg.org/multipage/browsing-the-web.html#evaluate-a-javascript%3A-url.

Testing: Covered by WPT tests.
Fixes: #38547

---------

Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2025-08-14 12:49:07 +00:00
Gregory Terzian
be5e7a982b
script: check if the canvas is paintable before measuring text (#38664)
The `Canvas2dMsg::MeasureText` is dropped inside `send_canvas_2d_msg` if
the canvas is not paintable,
leading to a panic on the receiving end. Checking the paint-ability
before sending the message prevents this panic, and if the canvas is not
pain-table, a default text metrics is used.

Testing: Manual testing of the minimal test case in the associated
issue, and crash test added.
Fixes: https://github.com/servo/servo/issues/36845

---------

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-08-14 12:48:56 +00:00
sagudev
cf866d12b4
chore: Pin cargo-deny to 0.18.3 (#38681)
cargo-deny@0.18.4 requires Rust 1.88

Testing: Fixes CI.

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-08-14 12:15:15 +00:00