Commit graph

51540 commits

Author SHA1 Message Date
gterzian
2f2e962ae0
fix setting and propagating of abort reason
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-06 21:10:31 +07:00
gterzian
99bbef833a
fix lack of sharing of fulfilled count
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-06 18:25:55 +07:00
gterzian
2909ef4a5f
fix abort controller constructor with rooting of signal
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-06 17:42:02 +07:00
gterzian
9dc8fa36bb
pass in realm to controller signal abort
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-06 17:32:50 +07:00
gterzian
002a7f4572
fix clippy
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 22:00:29 +07:00
gterzian
b251c12bfc
fix rooting of algorithms
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 21:45:05 +07:00
gterzian
933e978b5e
add spec comment
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 20:32:48 +07:00
gterzian
7e125a8a0b
turn abort controller pref on for stream piping abort tests
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 20:29:02 +07:00
gterzian
d110462725
implement abort algorithm and integrate with piping shutdown
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 20:26:19 +07:00
gterzian
5a4c6907c7
implement abort algorithm for stream piping
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 18:58:21 +07:00
gterzian
fe5882013e
basic integration with stream piping
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 18:31:46 +07:00
gterzian
f8e67019a9
remove must_root from rejection handler
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 17:35:44 +07:00
gterzian
3448d3fb20
re-add prefs
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 17:30:35 +07:00
gterzian
cd1b196de4
fix clippy
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 17:10:20 +07:00
gterzian
7a8e8bd0ea
add must root
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 16:44:03 +07:00
gterzian
6b7cf15c48
implement wait for all promise
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-05 16:33:10 +07:00
gterzian
8c064e0aa6
implement promise wait for all
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-04 20:30:19 +07:00
batu_hoang
e0d96163c7
Fix events filter in wait_for_user_agent_handling_complete (#37241)
Fix a mistake from https://github.com/servo/servo/pull/37095
cc: @xiaochengh

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
2025-06-04 06:39:31 +00:00
batu_hoang
b422a65a00
Add retry for hit tests with expired epoch in result (#37085)
Follow up to [hit_test failed occasionally when the touch event is
sent](https://github.com/servo/servo/issues/35788#top) and
https://github.com/servo/servo/issues/36676#issuecomment-2882917136,
this PR adds a retry for hit tests with expired epoch in result.

Hit tests with outdated epoch mean it is too early to perform the hit
test.

Solution: retry hit test for the event on the next webrender frame.
The retry should guarantee that:

- Keep the correct order of events
- Retry time is not too long

Test cases: `./mach test-wpt --product servodriver -r
tests\wpt\tests\webdriver\tests\classic\element_click\events.py`

cc: @xiaochengh , @yezhizhen

---------

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
2025-06-04 05:56:20 +00:00
Simon Wülker
7439fa18d3
Keep winit::Window alive until all rendering contexts are destroyed (#37239)
Dropping the window while the rendering contexts are still around causes
a segmentation fault during shutdown. This is a very fragile change. I
added comments to hopes of making regressions less likely.

Testing: I don't think we have a way to write tests for this change
since it requires a wayland system ):
Fixes: https://github.com/servo/servo/issues/36711

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-03 19:29:16 +00:00
Martin Robinson
c94605b13e
servoshell: Fallback to light theme when initializing egui (#37228)
Not all winit platforms support getting the system theme properly. In
some places we fall back to the light theme, but it seems that the
default for `egui` is dark. This change makes it so that we fall back to
the light theme more consistently, meaning that servoshell on Wayland
will properly use the light theme.

Testing: This is difficult to test because we have no servoshell display
tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-06-03 13:47:10 +00:00
batu_hoang
5ef66ce386
Fix webdriver wait for response from constellation (#37095)
Webdriver actions only wait for response from constellation if
`dispatch_tick_actions` sends at least 1 event.

Testing: 
`./mach test-wpt -r --product servodriver
./tests/wpt/tests/webdriver/tests/classic/perform_actions/perform.py `

cc: @xiaochengh, @yezhizhen

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
2025-06-03 11:51:12 +00:00
Simon Wülker
8937542fe3
Implement the size presentational hint for <hr> elements (#37211)
This presentational hint either sets the width values of all borders,
removes the bottom border or sets the height of the element, depending
on the context.

This change also implements the corresponding idl attribute (and the
`noshade` attribute, which does nothing in html5)

Testing: Adds new web platform tests

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-06-03 11:22:44 +00:00
Gregory Terzian
b4035cc88e
dom: implement abort signal reason method (#37227)
Implement the `reason` method of `AbortSignal`; part of
https://github.com/servo/servo/issues/36935.

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-03 09:35:51 +00:00
batu_hoang
ad95a74389
Implement actions_by_tick for webdriver (#37153)
Implement `actions by tick` according to the spec. 
The major change is `dispatch_actions` should receive a `actions by
ticks` as param.

https://w3c.github.io/webdriver/#dispatching-actions
> The algorithm to [dispatch
actions](https://w3c.github.io/webdriver/#dfn-dispatch-actions) takes a
list of actions grouped by
[tick](https://w3c.github.io/webdriver/#dfn-ticks), and then causes each
action to be run at the appropriate point in the sequence.

Reference for types in webdriver:
https://hackmd.io/b59NiPcLR_Gagh7r6r7BEw?view

cc: @xiaochengh

---------

Signed-off-by: batu_hoang <longvatrong111@gmail.com>
2025-06-03 08:20:00 +00:00
Euclid Ye
56c0ad8420
Consistently use Dom in native promise handlers (#37226)
Use `Dom` instead of `DomRoot` for fields of
`TransmitBodyPromiseRejectionHandler` to reduce redundant work by GC,
according to discussion in
https://github.com/servo/servo/issues/33604#issuecomment-2931524400

Fixes: #33604

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-03 07:41:34 +00:00
Andrei Volykhin
8d086b9fe5
htmlmediaelement: Fix fetch request race on "seek-data" event (#37002)
On execution media element load algorithm

https://html.spec.whatwg.org/multipage/media.html#media-element-load-algorithm
we can observe race condition between parallel running fetch requests:
R1: (media element) initial request (see "resource_fetch_algorithm"
function)
R2: (gstreamer) duration "seek-data" request (see PlayerEvent::SeekData)
 R3: (gstreamer) continue on last interrupted time "seek-data" request

At time there are only one current fetch context for media element but
because resource fetch and cancellation are async operations need
to identify (by request id) and skip processing outdated fetch request
(fetch listener callbacks).

Async load in background sequence (stream content length = 2757913):
```
R1 (seek-offset=0):          [------------------------------X]
R2 (seek-offset=2757866):          [---------Y]
                               AS-****-+++-AE
R3 (seek-offset=98304):                         [----------------Z]
                                             BS-****-+++BE

R1 (seek-offset=0):          [------X]
R2 (seek-offset=2757866):                [--------Y] (discarded data)
                                     AS-****---------+++-AE

- A*/B* performed seeks (*** seek lock, +++ flush buffer queue + reset EOS)
  (on Gstreamer streaming thread)
- X/Y/Z "end-of-stream" events from fetch requests
  (on Servo script thread)
```

All incoming input data from different requests are mixed and
pushed to active media player, plus abnormal behaviour due to
intermixed X/Y/Z "end-of-stream" events.

To handle it properly we will unblock seek lock on "seek-data" event
(on script thread) as soon as possible (GStreamer will be able
to flush buffer queue and reset EOS state) and introduce buffered data
source
to delay pushing input data/EOS event until media player will be
actually ready.

Testing: Improvements to the following tests:
-
/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub.html
-
/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html

Fixes: https://github.com/servo/servo/issues/31931
Fixes: https://github.com/servo/servo/issues/36989

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-06-02 19:39:38 +00:00
Ville Lindholm
8cfb6e33fe
XPath: implement lang() and id() core functions (#34594)
XPath's `lang()` and `id()` functions were still unimplemented.

Also:
* Add WPT tests for `id()`.
* Fix uniqueness check in `NodesetHelpers::document_order_unique`.
* Tweak the AST a bit to make it clearer to express "no predicates".
* Fix a parsing bug where "/" was attempted before "//", leaving the
"//" branch as always unused.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #34593 
- [x] There are tests for these changes

---------

Signed-off-by: Ville Lindholm <ville@lindholm.dev>
2025-06-02 19:00:13 +00:00
Gregory Terzian
1dfc14d2fb
dom: implement aborted method of abort signal (#37218)
Implement the `aborted` member of `AbortSignal`. Part of
https://github.com/servo/servo/issues/36935

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-02 18:57:57 +00:00
dependabot[bot]
dfa8dde1ca
build(deps): bump prettyplease from 0.2.32 to 0.2.33 (#37221)
Bumps [prettyplease](https://github.com/dtolnay/prettyplease) from
0.2.32 to 0.2.33.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/prettyplease/releases">prettyplease's
releases</a>.</em></p>
<blockquote>
<h2>0.2.33</h2>
<ul>
<li>Improve macro token spacing after <code>$crate</code> (<a
href="https://redirect.github.com/dtolnay/prettyplease/issues/116">#116</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d5239de6e2"><code>d5239de</code></a>
Release 0.2.33</li>
<li><a
href="395827d3e7"><code>395827d</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/prettyplease/issues/116">#116</a>
from dtolnay/dollarcrate</li>
<li><a
href="6e21c9104b"><code>6e21c91</code></a>
Improve macro token spacing after $crate</li>
<li><a
href="e05fac9219"><code>e05fac9</code></a>
Regenerate output.rustc.rs using nightly-2025-04-28</li>
<li><a
href="8eb8c14649"><code>8eb8c14</code></a>
Update to nightly-2025-04-12</li>
<li>See full diff in <a
href="https://github.com/dtolnay/prettyplease/compare/0.2.32...0.2.33">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 18:13:18 +00:00
dependabot[bot]
18989e1fdd
build(deps): bump headers from 0.4.0 to 0.4.1 (#37220)
Bumps [headers](https://github.com/hyperium/headers) from 0.4.0 to
0.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/headers/releases">headers's
releases</a>.</em></p>
<blockquote>
<h2>headers-v0.4.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Implement Display for Referer by <a
href="https://github.com/AsamK"><code>@​AsamK</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/122">hyperium/headers#122</a></li>
<li>Add <code>ContentEncoding::brotli</code> by <a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
in <a
href="https://redirect.github.com/hyperium/headers/pull/158">hyperium/headers#158</a></li>
<li>chore(ci): update to actions/checkout@v4 by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/160">hyperium/headers#160</a></li>
<li>feat: add method to check if AcceptRanges is bytes by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/159">hyperium/headers#159</a></li>
<li>doc(core): Header encode method convert header to HeaderValue by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/161">hyperium/headers#161</a></li>
<li>refactor: apply small refactoring by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/168">hyperium/headers#168</a></li>
<li>chore: update to base64 0.22 by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/169">hyperium/headers#169</a></li>
<li>chore(core): set msrv to 1.49 by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/171">hyperium/headers#171</a></li>
<li>refactor(ci): apply small refactoring by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/172">hyperium/headers#172</a></li>
<li>chore: update to 2018 edition by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/173">hyperium/headers#173</a></li>
<li>chore(core): update to 2018 edition by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/174">hyperium/headers#174</a></li>
<li>refactor: remove unnecessary extern crate sentence by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/175">hyperium/headers#175</a></li>
<li>refactor: remove redundant workspace config by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/176">hyperium/headers#176</a></li>
<li>refactor: refactor AcceptRanges test by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/177">hyperium/headers#177</a></li>
<li>feat: add AcceptRanges none util by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/178">hyperium/headers#178</a></li>
<li>feat: re-export mime::Mime by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/180">hyperium/headers#180</a></li>
<li>feat: implement From bytes for SecWebsocketKey by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/179">hyperium/headers#179</a></li>
<li>update IETF rfc links in docs by <a
href="https://github.com/GlenDC"><code>@​GlenDC</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/182">hyperium/headers#182</a></li>
<li>Add <code>ContentEncoding::zstd</code> by <a
href="https://github.com/paolobarbolini"><code>@​paolobarbolini</code></a>
in <a
href="https://redirect.github.com/hyperium/headers/pull/183">hyperium/headers#183</a></li>
<li>docs(readme): add badge to readme by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/185">hyperium/headers#185</a></li>
<li>Add methods for <code>must-revalidate</code> flag to
<code>CacheControl</code> by <a
href="https://github.com/allenap"><code>@​allenap</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/186">hyperium/headers#186</a></li>
<li>refactor: Remove needless lifetime by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/193">hyperium/headers#193</a></li>
<li>fix(tests): Fix test compile error with nightly feature by <a
href="https://github.com/gretchenfrage"><code>@​gretchenfrage</code></a>
in <a
href="https://redirect.github.com/hyperium/headers/pull/196">hyperium/headers#196</a></li>
<li>doc: Remove empty line in document by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/200">hyperium/headers#200</a></li>
<li>update copyright year to 2025 in LICENSE by <a
href="https://github.com/jasmyhigh"><code>@​jasmyhigh</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/205">hyperium/headers#205</a></li>
<li>feat: const <code>::from_static()</code> constructors by <a
href="https://github.com/CosmicHorrorDev"><code>@​CosmicHorrorDev</code></a>
in <a
href="https://redirect.github.com/hyperium/headers/pull/209">hyperium/headers#209</a></li>
<li>feat: Add <code>impl From&lt;http::HeaderName&gt; for Vary</code> by
<a
href="https://github.com/CosmicHorrorDev"><code>@​CosmicHorrorDev</code></a>
in <a
href="https://redirect.github.com/hyperium/headers/pull/210">hyperium/headers#210</a></li>
<li>chore: prepare for releasing 0.4.1 by <a
href="https://github.com/tisonkun"><code>@​tisonkun</code></a> in <a
href="https://redirect.github.com/hyperium/headers/pull/213">hyperium/headers#213</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/AsamK"><code>@​AsamK</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/122">hyperium/headers#122</a></li>
<li><a href="https://github.com/GlenDC"><code>@​GlenDC</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/182">hyperium/headers#182</a></li>
<li><a href="https://github.com/allenap"><code>@​allenap</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/186">hyperium/headers#186</a></li>
<li><a
href="https://github.com/gretchenfrage"><code>@​gretchenfrage</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/196">hyperium/headers#196</a></li>
<li><a href="https://github.com/jasmyhigh"><code>@​jasmyhigh</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/205">hyperium/headers#205</a></li>
<li><a
href="https://github.com/CosmicHorrorDev"><code>@​CosmicHorrorDev</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/209">hyperium/headers#209</a></li>
<li><a href="https://github.com/tisonkun"><code>@​tisonkun</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/headers/pull/213">hyperium/headers#213</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hyperium/headers/compare/headers-v0.4.0...headers-v0.4.1">https://github.com/hyperium/headers/compare/headers-v0.4.0...headers-v0.4.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8db1b786d4"><code>8db1b78</code></a>
headers:0.4.1</li>
<li><a
href="12fb1d76d3"><code>12fb1d7</code></a>
feat: Add a <code>impl From\&lt;http::HeaderName&gt; for Vary</code> (<a
href="https://redirect.github.com/hyperium/headers/issues/210">#210</a>)</li>
<li><a
href="66371a0ac6"><code>66371a0</code></a>
feat: const <code>::from_static()</code> constructors (<a
href="https://redirect.github.com/hyperium/headers/issues/209">#209</a>)</li>
<li><a
href="d425d3ca90"><code>d425d3c</code></a>
update copyright year</li>
<li><a
href="1a8eac311c"><code>1a8eac3</code></a>
doc: Remove empty line in document</li>
<li><a
href="743d3b91ef"><code>743d3b9</code></a>
fix(tests): Fix test compile error with nightly feature</li>
<li><a
href="682d0a6f80"><code>682d0a6</code></a>
refactor: Remove needless lifetime</li>
<li><a
href="879d2d40e3"><code>879d2d4</code></a>
Add methods for <code>must-revalidate</code> flag to
<code>CacheControl</code></li>
<li><a
href="0fbde12f11"><code>0fbde12</code></a>
docs(readme): add badge to readme</li>
<li><a
href="2298faa4c2"><code>2298faa</code></a>
Add <code>ContentEncoding::zstd</code></li>
<li>Additional commits viewable in <a
href="https://github.com/hyperium/headers/compare/headers-v0.4.0...headers-v0.4.1">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 18:04:33 +00:00
dependabot[bot]
779d70d927
build(deps): bump num_cpus from 1.16.0 to 1.17.0 (#37219)
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus) from 1.16.0 to
1.17.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md">num_cpus's
changelog</a>.</em></p>
<blockquote>
<h2>v1.17.0</h2>
<h3>Fixes</h3>
<ul>
<li>update hermit-abi to 0.5.0</li>
<li>remove special support for nacl</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="342af76b48"><code>342af76</code></a>
v1.17.0</li>
<li><a
href="e970a829ad"><code>e970a82</code></a>
Bump hermit-abi version (<a
href="https://redirect.github.com/seanmonstar/num_cpus/issues/144">#144</a>)</li>
<li><a
href="797f827689"><code>797f827</code></a>
Update LICENSE-MIT (<a
href="https://redirect.github.com/seanmonstar/num_cpus/issues/143">#143</a>)</li>
<li><a
href="b6ca8a475f"><code>b6ca8a4</code></a>
ci: worker cpus has been increased</li>
<li><a
href="f06cd508ae"><code>f06cd50</code></a>
ci: remove asmjs job</li>
<li><a
href="41e39dd357"><code>41e39dd</code></a>
ci: mips is not tier 3, remove CI jobs</li>
<li><a
href="13af26cff7"><code>13af26c</code></a>
remove special support for nacl</li>
<li><a
href="815551cfc7"><code>815551c</code></a>
ci: pin libc for msrv job</li>
<li>See full diff in <a
href="https://github.com/seanmonstar/num_cpus/compare/v1.16.0...v1.17.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 17:58:25 +00:00
Narfinger
d42fe20403
Hitrace-bench will now report simple memory results to bencher.dev. (#37215)
Hitrace-bench will now report simple memory information. This includes
LayoutThread memory, JS memory, image-cache. The CI needs update to
hitrace-bench 0.5.0 which will have happened when t his PR is marked
ready.


- Action Run:
https://github.com/Narfinger/servo/actions/runs/15387749215
- Bencher output:
https://bencher.dev/perf/servo-ci?branches=e50d3058-235a-4437-9bd1-84b850cf7bcc&heads=e3e709a5-0309-416d-a5f1-283f3e401d0a&testbeds=62fa0d12-4dc9-4063-b445-aad7c4ed08b3&benchmarks=6bc5e3f4-8610-4fb4-bac6-652a110d7125&measures=80b345a8-20ec-4866-b12a-20fbf690adf8&start_time=1746261995000&end_time=1748853995000&report=ec3e632c-9c00-4b69-908a-457894cc7d40&key=true&reports_per_page=4&branches_per_page=8&testbeds_per_page=8&benchmarks_per_page=8&plots_per_page=8&reports_page=1&branches_page=1&testbeds_page=1&benchmarks_page=1&plots_page=1


Testing: CI does not have test but tested on own ci.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-06-02 15:56:15 +00:00
Gregory Terzian
99add66f8e
dom: implement signal method on abort controller (#37217)
Part of https://github.com/servo/servo/issues/34866

The "Finish current stub for AbortController" item.

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-06-02 13:20:57 +00:00
Euclid Ye
c28394f476
script: Upgrade node_ids to pipeline_to_node_ids to track the owner pipeline of the node (#37213)
Upgrade `ScriptThread::node_ids` to `pipeline_to_node_ids` to track the
owner pipeline of the node
This will enable webdriver to know if it is requesting element from
other origins and properly distinguish "stale element reference" from
"no such element".

Testing: [Action
run](https://github.com/yezhizhen/servo/actions/runs/15385994907), no
regression. We can now pass WebDriver "cross origin" tests.

Fixes: #35749

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-06-02 12:26:45 +00:00
Servo WPT Sync
2a07ef01f5
Sync WPT with upstream (02-06-2025) (#37212)
Automated downstream sync of changes from upstream as of 02-06-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-06-02 06:06:09 +00:00
Tim van der Lippe
f710e2cab4
net: Perform CSP checks on fetch responses. (#37154)
Also add clarifying comments to the SRI WPT tests with
regards to the `www.` domain and how that interacts with
the integrity checks.

Lastly, adjust the casing for `Strict-Dynamic`, as in
the post-request check that should also be case-insensitive.

Closes servo/servo#37200
Closes servo/servo#36760
Fixes servo/servo#36499
Part of w3c/webappsec-csp#727
Fixes w3c/webappsec-csp#728
Part of servo/servo#4577

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-06-01 17:25:13 +00:00
Tunahan Karlibas
ed888e284b
script: Set HTTP status code when aborting an XMLHttpRequest (#37190)
Correctly set status when aborting a XMLHttpRequest.

Testing: WPT test xhr/abort-during-done.window.html

---------

Signed-off-by: Tunahan Karlibas <dvt.tnhn.krlbs@icloud.com>
2025-06-01 15:37:46 +00:00
Michael Rees
280b34bbd8
Split handle_player_event into smaller functions (#37113)
Split HTMLMediaElement::handle_player_event into smaller functions
(#37109)

As requested, I also did a quick pass over the entire file looking for
if/else blocks that could be converted into early returns, but only
found two. Both of those have been changed here.

Testing: This doesn't require (new) tests because it is a reorganization
of existing code.
Fixes: #37109: HTMLMediaElement::handle_player_event is too big

---------

Signed-off-by: Michael Rees <mrees@noeontheend.com>
2025-06-01 12:49:09 +00:00
atbrakhi
568d24d4e3
DevTools: Fix empty debugger > source panel (#37197)
This patch fixes the source panel in the DevTools that was broken due to
missing breakpoint actor implementation. The client was sending messages
to the breakpoint actor that didn't exist in Servo, resulting in
"unknown actor"
warnings in the logs(See logs in issue description)

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

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



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

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

Implement signal abort, and part of running abort steps.

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


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

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

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

---

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

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


</details>

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

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

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

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


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

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

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

---

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

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


</details>

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


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-30 17:40:00 +00:00
dependabot[bot]
329d25b3a2
build(deps): bump cc from 1.2.24 to 1.2.25 (#37198)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.24 to 1.2.25.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/releases">cc's
releases</a>.</em></p>
<blockquote>
<h2>cc-v1.2.25</h2>
<h3>Other</h3>
<ul>
<li>make <code>powerp64</code> use <code>powerpc64-linux-gnu</code>
prefix (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1474">#1474</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.24...cc-v1.2.25">1.2.25</a>
- 2025-05-30</h2>
<h3>Other</h3>
<ul>
<li>make <code>powerp64</code> use <code>powerpc64-linux-gnu</code>
prefix (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1474">#1474</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0012da571e"><code>0012da5</code></a>
chore: release v1.2.25 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1478">#1478</a>)</li>
<li><a
href="7666d4f4f3"><code>7666d4f</code></a>
make <code>powerp64</code> use <code>powerpc64-linux-gnu</code> prefix
(<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1474">#1474</a>)</li>
<li><a
href="4a2a4486d8"><code>4a2a448</code></a>
Update rusqlite requirement from 0.35.0 to 0.36.0 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1476">#1476</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.24...cc-v1.2.25">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-30 17:18:43 +00:00
Narfinger
13a980ff22
Constellation can now optionally report memory usage when the page is loaded. (#37151)
The constellation can now tell the memory reporter to report the memory
to a trace file when a page is loaded.
Additionally, we amend the memory reporter to allow a simple message
where it will report the memory to a tracing provider (at the moment
only OHOS/hitrace is supported but easy extension is possible).

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

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

---------

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

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



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

---------

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

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

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

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

---------

Signed-off-by: kongbai1996 <1782765876@qq.com>
Signed-off-by: Fuguo <1782765876@qq.com>
Co-authored-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-30 08:13:07 +00:00