Commit graph

51000 commits

Author SHA1 Message Date
Usman Yahaya Baba
fab5e02972
Process colorSchemeSimulation in TargetConfigurationActor (#36297)
Implements Steps 1,4&6 of https://github.com/servo/servo/issues/35867:
- Adds `pub simulate_color_scheme` to `BrowsingContextActor` using
`script_chan`.
- Processes `colorSchemeSimulation` flag in `TargetConfigurationActor`’s
`updateConfiguration`.
- Routes `colorSchemeSimulation` from `RootActor` via
`TabDescriptorActor` to `BrowsingContextActor`.

Testing: Compiles and lints clean.
Fixes: https://github.com/servo/servo/issues/35867

---------

Signed-off-by: Uthman Yahaya Baba <uthmanyahayababa@gmail.com>
2025-04-06 14:19:42 +00:00
Usman Yahaya Baba
9d07416163
Remove unsafe from maybe_cross_origin_get_prototype (#36366)
Remove unsafe from maybe_cross_origin_get_prototype

-Refactors `maybe_cross_origin_get_prototype` to remove the `unsafe`
annotation from the function signature and `get_proto_object` argument
-Adds `unsafe` blocks around calls `D::GlobalScope::from_context` and
`MutableHandleObject::from_raw`

Testing: Changes does not require test
Fixes: https://github.com/servo/servo/issues/36357

Signed-off-by: Uthman Yahaya Baba <uthmanyahayababa@gmail.com>
2025-04-06 06:29:16 +00:00
Yerkebulan Tulibergenov
6898eae61e
Add CanGc as arguments in methods in Attr and Node (#36371)
Add CanGc as argument to methods in `Attr` and `Node`.

Addressed part of https://github.com/servo/servo/issues/34573.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are a refactor.

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-04-06 06:27:59 +00:00
Servo WPT Sync
bd43b78735
Sync WPT with upstream (06-04-2025) (#36369)
Automated downstream sync of changes from upstream as of 06-04-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-04-06 04:11:16 +00:00
saku
b4fd9ebb0e
Fix: Add support for stylesheet MIME type quirk in quirks mode (#36338)
This PR implements the HTML spec quirk for stylesheets:
https://html.spec.whatwg.org/multipage/#link-type-stylesheet

The implementation adds a check in `stylesheet_loader.rs` to handle this
quirk condition correctly, and adds a new WPT test to verify that
same-origin non-CSS MIME type resources are properly treated as CSS in
quirks mode.

Testing: Added a new WPT test (`quirk-origin-check-positive.html`) that
verifies the positive case for this quirk.
Fixes: https://github.com/servo/servo/issues/36324

---------

Signed-off-by: saku-1101 <sakupi1101@outlook.jp>
2025-04-06 00:28:35 +00:00
Martin Robinson
6031a12fd1
Move ScriptToConstellationMsg to constellation_traits (#36364)
This is the last big change necessary to create the
`constellation_traits` crate. This moves the data structure for messages
that originate from the `ScriptThread` and are sent to the
`Contellation` to `constellation_traits`, effectively splitting
`script_traits` in half. Before, `script_traits` was responsible for
exposing the API of both the `ScriptThread` and the `Constellation` to
the rest of Servo.

- Data structures that are used by `ScriptToConstellationMsg` are moved
  to `constellation_traits`. The dependency graph looks a bit like this:
  `script_layout_interface` depends on `script_traits` depends on
  `constellation_traits` depends on `embedder_traits`.
- Data structures that are used in the embedding layer
  (`UntrustedNodeAddress`, `CompositorHitTestResult`, `TouchEventResult`
  and `AnimationState`) are moved to embedder_traits, to avoid a
  dependency cycle between `webrender_traits` and
  `constellation_traits`.
- Types dealing with MessagePorts and serialization are moved to
  `constellation_traits::message_port`.

Testing: This is covered by existing tests as it just moves types
around.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-05 22:13:29 +00:00
kaushikashok45
a67409fb25
Refactor:Refactors report_cross_origin_denial method to use unsafe block (#36365)
The method report_cross_origin_denial was marked as unsafe, have instead
moved the unsafe code within the method into an unsafe block within the
method and removed the unsafe marking for the method.

Testing: No testing needed
Fixes: This PR resolves #36356.
Signed-off-by : Ashok Kaushik kaushikashok45@gmail.com

---------

Signed-off-by: ashok.kaushik <ashok.kaushik@zohocorp.com>
Co-authored-by: ashok.kaushik <ashok.kaushik@zohocorp.com>
2025-04-05 19:06:48 +00:00
Tim van der Lippe
b87bf0b806
Stub out Trusted Types interfaces (#36355)
Some methods are implemented fully, while others are implemented
partly. With these implementations, there are no observed crashes
when running the trusted-types web-platform-tests.

Most notably, the tests/wpt/tests/trusted-types/idlharness.window.js
is now fully passing.

Part of #36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-04-05 13:08:56 +00:00
Kingsley Yung
3f24b44e15
structuredclone::read throws a DataClone error on failure (#36361)
In the structured clone writing API, the read function should throw a
DataClone error on failure, just like the write function.

Testing: It doesn't require tests.
Fixes: #36217

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-04-05 08:38:02 +00:00
webbeef
aef8537d75
Make the memory reporting multi-process aware (#35863)
So far the memory reporter aggregates reports from all processes, and
runs the system reporter only in the main process. Instead it is
desirable to have per-process reports. We do so by:
- creating a ProcessReports struct that holds includes the pid in
addition to the reports themselves.
- running the system memory reporter also in content processes.
- updating the about:memory page to create one report per process, and
add useful information like the pid and the urls loaded in a given
process.

<!-- Please describe your changes on the following line: -->


---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors


![image](https://github.com/user-attachments/assets/0bafe140-539d-4d6a-8316-639309a22d4a)

Signed-off-by: webbeef <me@webbeef.org>
2025-04-05 05:42:12 +00:00
Sebastian C
76edcff202
Check all ancestor navigable trustworthiness for mixed content (#36157)
Propagate through documents a flag that represents if any of the
ancestor navigables has a potentially trustworthy origin.

The "potentially trustworthy origin" concept appears to have gotten
confused in a couple of places and we were instead testing if a URL had
"potentially trustworthy" properties.

The main test for the ancestor navigables is
[mixed-content/nested-iframes](https://github.com/web-platform-tests/wpt/blob/master/mixed-content/nested-iframes.window.js)

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #36108 

<!-- Either: -->
- [X] There are tests for these changes

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-04-05 05:38:24 +00:00
Simon Wülker
478e876f6d
script: Implement input preprocessing for URLPatterns (#36225)
Implements https://urlpattern.spec.whatwg.org/#process-a-urlpatterninit
and the component canonicalization functions. These handle
percent-encoding and such for the components of a `URLPattern`.

No new tests pass, because the tokenizer and parser are still missing.

This is part 2 of upstreaming the changes in
https://github.com/simonwuelker/servo/tree/urlpattern

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-04-04 23:42:28 +00:00
Josh Matthews
944e795606
constellation: Only return focused browsing contexts that exist. (#36330)
The webdriver server relies on the constellation to report which
browsing context is focused, and assumes that a focused context is ready
for interaction. However, new browsing contexts exist in a weird state
where they are not tracked by the constellation until the initial load
is complete, which leads to the constellation rejecting attempts to
navigate a browsing context right after it's created. These changes
ensure the constellation does not report a browsing context as focused
until it's actually created and ready for interaction.

Testing: Run `./mach test-wpt --product servodriver
tests/wpt/mozilla/tests/mozilla/DOMParser.html`, which now runs to
completion.
Fixes: #34551
Fixes: #36328

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-04-04 21:41:14 +00:00
Tim van der Lippe
ad95a602f8
Run Trusted Types tests (#36354)
To set a baseline of test expectations prior to implementation.

Part of #36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-04-04 21:02:16 +00:00
Sebastian C
d93dad7f49
Implement TestUtils (#36301)
Implement the TestUtils namespace from
https://testutils.spec.whatwg.org/.
This should make the `js/builtins/weakrefs` tests run faster and more
consistently.

This change will enable other WPT tests but no tests exist currently for
TestUtils itself.
Fixes: #36290

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-04-04 19:42:28 +00:00
Martin Robinson
5a35e1faec
constellation: Rename messages sent to the Constellation (#36341)
Messages that are sent to the `Constellation` have pretty ambiguous
names.
This change does two renames:

- `ConstellationMsg` → `EmbedderToConstellationMessage`
- `ScriptMsg` → `ScriptToConstellationMessage`

This naming reflects that the `Constellation` stands in between the
embedding layer and the script layer and can receive messages from both.
Soon both of these message types will live in `constellation_traits`,
reflecting the idea that the `_traits` variant for a crate is
responsible for exposing the API for that crate.

Testing: No new tests are necessary here as this just renames two enums.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-04 19:39:38 +00:00
webbeef
c7a7862574
Prevent zombie processes in multi-process mode. (#36329)
This introduces a process manager that holds for each process a
"lifeline": this is the receiving end of a ipc channel that is not used
to send anything, but only to monitor the process presence. We turn that
ipc receiver into a crossbeam one to integrate the monitoring into the
constellation run loop. The sender side is made part of the initial
"UnprivilegedContent" data structure sent to the new process, both for
content and for service worker processes.
When a process dies we currently wait() on it to let the OS do a clean
shutdown.

Signed-off-by: webbeef <me@webbeef.org>
2025-04-04 19:39:13 +00:00
Martin Robinson
c09c31ef85
script: Remove code dealing with CompositorUntrustedNode (#36343)
There used to be two kinds of untrusted nodes, but these have been
unified, so the duplicate methods dealing with them in `script` can be
removed.

Testing: This is covered by existing tests as it shouldn't change
any behavior.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-04 18:55:05 +00:00
dependabot[bot]
54bf13de43
build(deps): bump cc from 1.2.17 to 1.2.18 (#36345)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.17 to 1.2.18.
<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.18</h2>
<h3>Other</h3>
<ul>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1450">#1450</a>)</li>
<li>Use <code>std:🧵:available_parallelism</code> for determining
the default number of jobs (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1447">#1447</a>)</li>
<li>Fix mips64-openwrt-linux-musl parsing (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1449">#1449</a>)</li>
<li>Use compiler prefix <code>x86_64-linux-musl</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1443">#1443</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.17...cc-v1.2.18">1.2.18</a>
- 2025-04-04</h2>
<h3>Other</h3>
<ul>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1450">#1450</a>)</li>
<li>Use <code>std:🧵:available_parallelism</code> for determining
the default number of jobs (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1447">#1447</a>)</li>
<li>Fix mips64-openwrt-linux-musl parsing (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1449">#1449</a>)</li>
<li>Use compiler prefix <code>x86_64-linux-musl</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1443">#1443</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5f55b012f5"><code>5f55b01</code></a>
chore: release v1.2.18 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1451">#1451</a>)</li>
<li><a
href="e3aa653d5f"><code>e3aa653</code></a>
Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1450">#1450</a>)</li>
<li><a
href="41f7c2eb2f"><code>41f7c2e</code></a>
Use <code>std:🧵:available_parallelism</code> for determining the
default number o...</li>
<li><a
href="654a6c67c5"><code>654a6c6</code></a>
Fix mips64-openwrt-linux-musl parsing (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1449">#1449</a>)</li>
<li><a
href="59578addda"><code>59578ad</code></a>
Use compiler prefix <code>x86_64-linux-musl</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1443">#1443</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.17...cc-v1.2.18">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.17&new-version=1.2.18)](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-04-04 17:24:49 +00:00
dependabot[bot]
217dadfa09
build(deps): bump errno from 0.3.10 to 0.3.11 (#36344)
Bumps [errno](https://github.com/lambda-fairy/rust-errno) from 0.3.10 to
0.3.11.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lambda-fairy/rust-errno/blob/main/CHANGELOG.md">errno's
changelog</a>.</em></p>
<blockquote>
<h1>[0.3.11] - 2025-04-04</h1>
<ul>
<li>
<p>Add VxWorks support
<a
href="https://redirect.github.com/lambda-fairy/rust-errno/pull/105">#105</a></p>
</li>
<li>
<p>Add cygwin support
<a
href="https://redirect.github.com/lambda-fairy/rust-errno/pull/106">#106</a></p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="afcb78b592"><code>afcb78b</code></a>
Release 0.3.11. (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/109">#109</a>)</li>
<li><a
href="11eb48516a"><code>11eb485</code></a>
Add <a
href="https://github.com/sunfishcode"><code>@​sunfishcode</code></a> as
author (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/107">#107</a>)</li>
<li><a
href="9fd1bbc2e4"><code>9fd1bbc</code></a>
Add cygwin support (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/106">#106</a>)</li>
<li><a
href="b1ff60fe35"><code>b1ff60f</code></a>
Add VxWorks support (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/105">#105</a>)</li>
<li><a
href="57d0c0d594"><code>57d0c0d</code></a>
Switch to target wasm-wasip2 (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/104">#104</a>)</li>
<li>See full diff in <a
href="https://github.com/lambda-fairy/rust-errno/compare/v0.3.10...v0.3.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=errno&package-manager=cargo&previous-version=0.3.10&new-version=0.3.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-04-04 17:20:57 +00:00
dependabot[bot]
7555ed0eb1
build(deps): bump miniz_oxide from 0.8.5 to 0.8.7 (#36342)
Bumps [miniz_oxide](https://github.com/Frommi/miniz_oxide) from 0.8.5 to
0.8.7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Frommi/miniz_oxide/blob/master/CHANGELOG.md">miniz_oxide's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/Frommi/miniz_oxide/compare/0.8.6..0.8.7">0.8.7</a>
- 2025-04-03</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>(inflate)</strong> make block boundary function a feature
since it breaks semver and add to test - (<a
href="862fb2c2b8">862fb2c</a>)
- oyvindln</li>
</ul>
<hr />
<h2><a
href="https://github.com/Frommi/miniz_oxide/compare/0.8.5..0.8.6">0.8.6</a>
- 2025-04-03</h2>
<p>Yanked as it broke semver due to adding an enum variant - fixed in
0.8.7 by adding the new functionality as an optional feature for
now.</p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>(deflate)</strong> help the compiler evade two bounds checks
to improve compression performance a little - (<a
href="633e59fd7e">633e59f</a>)
- oyvindln</li>
<li><strong>(deflate)</strong> further deflate performance improvements
especially on fast mode - (<a
href="5a651048f3">5a65104</a>)
- oyvindln</li>
<li><strong>(docs)</strong> update miniz_oxide readme a bit - (<a
href="743ae50656">743ae50</a>)
- oyvindln</li>
<li><strong>(inflate)</strong> don't use bit reverse lookup table when
not using alloc and make it smaller - (<a
href="8e331bbcca">8e331bb</a>)
- oyvindln</li>
<li><strong>(inflate)</strong> correctly return MZError::buf from
inflate on incomplete stream - (<a
href="061069eed8">061069e</a>)
- oyvindln</li>
<li><strong>(inflate)</strong> improve inflate perf in some cases when
using wrapping buffer - (<a
href="44a3e1b682">44a3e1b</a>)
- oyvindln</li>
<li><strong>(inflate)</strong> evade more bounds checks in inflate and
disable stop on block boundary code when compiled as dep of rustc - (<a
href="953a54d692">953a54d</a>)
- oyvindln</li>
<li><strong>(inflate)</strong> skip stream module when compiling as part
of rustc std as it's not used there - (<a
href="073160c5f9">073160c</a>)
- oyvindln</li>
<li>rename serde feature, separate serde test - (<a
href="eee6524fbb">eee6524</a>)
- oyvindln</li>
<li>remoe unused serde BigArray implementation sizes and update Readme -
(<a
href="f73670a193">f73670a</a>)
- oyvindln</li>
<li>Block boundary test and cleanup (<a
href="https://redirect.github.com/Frommi/miniz_oxide/issues/171">#171</a>)
- (<a
href="82ada74738">82ada74</a>)
- Philip Taylor</li>
</ul>
<h3>Features</h3>
<ul>
<li>add derive(Serialize, Deserialize) to DecompressorOxide (<a
href="https://redirect.github.com/Frommi/miniz_oxide/issues/166">#166</a>)
- (<a
href="c9e5996da3">c9e5996</a>)
- dishmaker</li>
<li>Add API to support random access at block boundaries (<a
href="https://redirect.github.com/Frommi/miniz_oxide/issues/170">#170</a>)
- (<a
href="240bcdde45">240bcdd</a>)
- Philip Taylor</li>
</ul>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="81526b9416"><code>81526b9</code></a>
bump version and changelog</li>
<li><a
href="d78d8a9f78"><code>d78d8a9</code></a>
fix CI</li>
<li><a
href="c5c0cc66a3"><code>c5c0cc6</code></a>
remove block boundary enum option in c api so it compiles</li>
<li><a
href="862fb2c2b8"><code>862fb2c</code></a>
fix(inflate): make block boundary function a feature since it breaks
semver a...</li>
<li><a
href="a2b8edb336"><code>a2b8edb</code></a>
fix: add missing test data</li>
<li><a
href="ace80a138c"><code>ace80a1</code></a>
fix(inflate): fix overflow crash introduced due to accidentally using |
inste...</li>
<li><a
href="4afbb3d771"><code>4afbb3d</code></a>
bump version and changelog</li>
<li><a
href="4982644516"><code>4982644</code></a>
update readme</li>
<li><a
href="073160c5f9"><code>073160c</code></a>
fix(inflate): skip stream module when compiling as part of rustc std as
it's ...</li>
<li><a
href="953a54d692"><code>953a54d</code></a>
fix(inflate): evade more bounds checks in inflate and disable stop on
block b...</li>
<li>Additional commits viewable in <a
href="https://github.com/Frommi/miniz_oxide/compare/0.8.5...0.8.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=miniz_oxide&package-manager=cargo&previous-version=0.8.5&new-version=0.8.7)](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-04-04 17:18:58 +00:00
Martin Robinson
fb344ba4e9
constellation: Stop assuming that the viewport is shared by all WebViews (#36312)
The `Constellation` previously held a `window_size` member, but this
assumes that all `WebView`s have the same size. This change removes that
assumption as well as making sure that all `WebView`s pass their size
and HiDIP scaling to the `Constellation` when they are created.

In addition

- `WindowSizeData` is renamed to `ViewportDetails`, as it was
holding more than just the size and it didn't necessarily correspond to
  a "window." It's used for tracking viewport data, whether for an
  `<iframe>` or the main `WebView` viewport.
- `ViewportDetails` is stored more consistently so that conceptually an
  `<iframe>` can also have its own HiDPI scaling. This isn't something
  we necessarily want, but it makes everything conceptually simpler.

The goal with this change is to work toward allowing per-`WebView` HiDPI
scaling and sizing. There are still some corresponding changes in the
compositor to make that happen, but they will in a subsequent change.

Testing: This is covered by existing tests. There should be no behavior
changes.
Fixes: This is part of #36232.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-04 17:06:34 +00:00
Oriol Brufau
7c89e24f34
Remove layout_writing_mode_enabled from experimental features (#36339)
Running tests with --enable-experimental-web-platform-features would
make so many of them fail asserts because of this feature.

Testing: No need to test since
`--enable-experimental-web-platform-features` isn't used by default
This is part of #36315

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-04-04 15:33:58 +00:00
Manuel Rego
b4c1cdd3e7
wpt: Unskip webaudio tests as most are passing (#36334)
Signed-off-by: Manuel Rego Casasnovas <rego@igalia.com>
2025-04-04 14:12:40 +00:00
Martin Robinson
49d48b897a
script: Remove dependency on webgpu (#36332)
After #36320, `script` only depends on `webgpu` for its type aliases to
`wgpu_core` and `wgpu_types`. This change removes the dependency on
`webgpu` in favor of depending directly on the upstream crates. This
makes it so that you can change `webgpu` without recompiling `script`.

Testing: This change is covered by existing WebGPU tests and is mainly
just changing the way dependencies are accessed.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-04 11:52:58 +00:00
Manuel Rego
1f928252e3
wpt: Unskip old-tests/ folder as most tests are passing (#36333)
Signed-off-by: Manuel Rego Casasnovas <rego@igalia.com>
2025-04-04 11:05:24 +00:00
Oriol Brufau
202cac900d
layout: Restrict stretch alignment to flex items with computed auto size (#36288)
We were allowing `align-self: stretch` to stretch flex items whose cross
size behaves as `auto`, including cyclic percentages.

However, https://github.com/w3c/csswg-drafts/issues/4525 resolved that
stretching should only happen when the cross size computes to `auto`.

So this patch exposes this information in `ContentBoxSizesAndPBM`, and
refactors the flexbox stretching logic.

Fixes: #36285

Testing:
 - `/css/css-flexbox/quirks-auto-block-size-with-percentage-item.html`
 - `/css/css-flexbox/stretch-requires-computed-auto-size.html`

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-04-04 10:15:40 +00:00
Manuel Rego
c19c7b2ed8
wpt: Unskip css/css-text/i18n as many tests are passing there (#36314)
This patch unskips `css/css-text/i18n` WPT tests as many tests on that
folder are already passing in Servo.

Signed-off-by: Manuel Rego Casasnovas <rego@igalia.com>
2025-04-04 08:37:46 +00:00
Jonathan Schwender
d6d610ef6d
mach: Fix cross-compiling from windows to non windows (#36070)
Since we switched to using `aws-lc-rs` instead of `ring`,
cross-compiling on windows (to non-windows) had been broken. Using the
default MSVC Generator results in CMake erroneously being configured for
the host platform, with failing compiler checks. Switching to Ninja
fixes that issue.

The CMake build rules of aws-lc-rs also make use of `tr` and assume it
is installed, hence we provide a helpful error message suggesting to try
using mach from `git bash` which does provide the `tr` command.

<!-- Please describe your changes on the following line: -->


---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix cross-compiling servo on windows hosts to
non-windows targets
- [x] These changes do not require tests because: We don't test
cross-compiling from windows hosts in CI. These changes were manually
tested by compiling for OpenHarmony on windows.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-04-04 08:07:32 +00:00
Martin Robinson
0d693114ad
webgpu: Add a webgpu_traits crate (#36320)
This breaks the `script_traits` dependency  on `webgpu`. In general, the
`traits` crates shouldn't depend on Servo non-`traits` crates. This is
necessary to move "script to constellation" messages to the
`constellation_traits` crate, making it the entire API for talking to
the
constellation. This will break a circular dependency when that happens.

Testing: Successfully building is enough of a test for this one as
it is mainly moving types around.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-04 08:06:07 +00:00
Shubham Gupta
df9efde1c3
Separate WebviewManager from Webview in compositor and constellation (#36302)
Create a separate file for `WebviewManager` to improve clarity.

Testing: This change is just a refactor, so no new tests are needed.

Signed-off-by: Shubham Gupta <shubham13297@gmail.com>
2025-04-04 07:34:19 +00:00
Josh Matthews
b4079b3ff3
Move generated bindings to script_bindings (#36323)
This is the final step of #1799, where the majority of the generated
code for the JS bindings is now compiled as part of the script_bindings
build step. The remaining pieces in script must live there because they
refer to concrete DOM types; all code in script_bindings is generic over
the
[DomTypes](https://doc.servo.org/script/dom/bindings/codegen/DomTypes/trait.DomTypes.html)
trait.

My testing with incremental builds shows me a 12 second reduction in
build times on my 2024 M4 Macbook Pro when modifying code in the script
crate after these changes. Before this PR those changes took 20 seconds
to rebuild Servo, and now they take 8 seconds.

Testing: Existing WPT tests ensure no regressions.
Fixes: #1799

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-04-04 06:45:08 +00:00
Josh Matthews
277c0b82dd
Ignore cert errors when running wdspec tests. (#36327)
This change makes the wdspec configuration match our other browser
configurations to account for #30080.

Testing: Tested locally, since we don't run webdriver conformance tests
in CI yet. The STR from the issue do not reproduce the same problem any
longer.
Fixes: #36326.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-04-04 06:24:10 +00:00
Euclid Ye
4bad7c0a5d
Webdriver delete cookie (#36306)
1. Implement `WebDriverCommand::DeleteCookie`
2. Remove unnecessary clone for `WebDriverCommand::GetNamedCookie`

Fixes: #36287

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-04-04 05:24:47 +00:00
Barigbue Nbira
e1de46c691
Fix: display: inline-grid considered an atomic inline (#36298)
This change ensures that `display: inline-grid` is considered an atomic
inline

- Add `is_atomic_inline_level()` logic to `box_fragment.rs` to improve
accuracy.
- Update `stacking_context.rs` to use the new `is_atomic_inline_level()`
method instead of the one from stylo.
- Update `repeat-auto-fill-005.html` test expectation.
- Remove .ini expectations for tests that are no longer failing.

Testing: covered by WPT
Fixes:  #35310

---------

Signed-off-by: Barigbue <barigbuenbira@gmail.com>
2025-04-03 19:48:19 +00:00
Oriol Brufau
e1213f9dbc
Enable layout_grid_enabled pref for all tests (#36316)
This is part of #36315
Testing: This improves several tests that rely on this feature

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-04-03 18:48:05 +00:00
Michael Rees
dfcd9de138
fix: root element not establishing stacking context (#35390) (#36174)
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #35390 
- [X] There are tests for these changes

[Successful WPT
run](https://github.com/reesmichael1/servo/actions/runs/14097679625)
(which includes the new test files)

(I didn't make the formatting changes intentionally--those came from
`mach format` following `mach test-tidy`.)

---------

Signed-off-by: Michael Rees <mrees@noeontheend.com>
2025-04-03 17:30:42 +00:00
Oriol Brufau
f29c182929
script: Implement deprecated CSSStyleSheet members (#36313)
Implements `rules`, `addRule()` and `removeRule()` for `CSSStyleSheet`.
https://drafts.csswg.org/cssom/#legacy-css-style-sheet-members

This is part of #36162

Testing:
- `/css/css-cascade/at-scope-parsing.html`
- `/css/css-conditional/at-supports-whitespace.html`
- `/css/css-nesting/invalidation-004.html`
- `/css/css-nesting/parsing.html`
- `/css/css-nesting/serialize-group-rules-with-decls.html`
- `/css/css-syntax/custom-property-rule-ambiguity.html`
- `/css/css-syntax/invalid-nested-rules.html`
- `/css/css-syntax/trailing-braces.html`
- `/css/css-syntax/var-with-blocks.html`
- `/css/css-transitions/parsing/starting-style-parsing.html`
- `/css/cssom/CSSStyleSheet.html`
- `/css/cssom/idlharness.html`
- `/css/cssom/insertRule-across-context.html`

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-04-03 15:56:47 +00:00
Oriol Brufau
9d6e1f67fb
layout: Improve style conversion for Taffy (#36311)
This imports the following changes from Blitz:
- Map position:sticky to relative rather than absolute position
16a7c16544
- Map left and right alignment from Stylo
c71cc681d8
- Improve mapping of align-items/self
7bf2a25e75

Fixes: #35998

Testing:
-
`/css/css-grid/alignment/grid-align-justify-margin-border-padding.html`
- `/css/css-grid/alignment/grid-align.html`
-
`/css/css-grid/alignment/grid-column-axis-alignment-sticky-positioned-items-001.html`
- `/css/css-grid/alignment/grid-gutters-and-alignment.html`
-
`/css/css-grid/alignment/grid-item-alignment-with-orthogonal-flows.html`
-
`/css/css-grid/alignment/grid-row-axis-alignment-sticky-positioned-items-001.html`
- `/css/css-grid/alignment/grid-self-alignment.html`

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-04-03 15:47:56 +00:00
Simon Wülker
0e99539dab
Support single-value <select> elements (#35684)
https://github.com/user-attachments/assets/9aba75ff-4190-4a85-89ed-d3f3aa53d3b0



Among other things this adds a new `EmbedderMsg::ShowSelectElementMenu`
to tell the embedder to display a select popup at the given location.

This is a draft because some small style adjustments need to be made:
* the select element should always have the width of the largest option
* the border should be part of the shadow tree

Apart from that, it's mostly ready for review.

<details><summary>HTML for demo video</summary>

```html
<html>

<body>
<select id="c" name="choice">
  <option value="first">First Value</option>
  <option value="second">Second Value</option>
  <option value="third">Third Value</option>
</select>
</body>
</html>
```
</details>

---

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] Part of https://github.com/servo/servo/issues/3551
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox
is checked, so that we can help you if you get stuck somewhere along the
way.-->

<!-- Pull requests that do not address these steps are welcome, but they
will require additional verification as part of the review process. -->

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-04-03 12:11:55 +00:00
Gregory Terzian
6e9d01b908
Add license for WHATWG specifications in code (#36282)
Add license for WHATWG specs incorporated into source code, as per the
[TSC
discussion](db2f4074d4/governance/tsc/tsc-2025-03-31.md (add-license-for-whatwg-specs-incorporated-into-source-code)).

As per for example https://html.spec.whatwg.org/#ipr

Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
2025-04-03 04:33:06 +00:00
dependabot[bot]
f53652e61b
build(deps): bump clap from 4.5.34 to 4.5.35 (#36296)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.34 to 4.5.35.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.35</h2>
<h2>[4.5.35] - 2025-04-01</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Align positionals and flags when put in the same
<code>help_heading</code></li>
<li><em>(help)</em> Don't leave space for shorts if there are none</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.35] - 2025-04-01</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> Align positionals and flags when put in the same
<code>help_heading</code></li>
<li><em>(help)</em> Don't leave space for shorts if there are none</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="55a18f518b"><code>55a18f5</code></a>
chore: Release</li>
<li><a
href="3b0563580d"><code>3b05635</code></a>
fix(complete): Ensure new enough clap is used</li>
<li>See full diff in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.34...clap_complete-v4.5.35">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.34&new-version=4.5.35)](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-04-02 17:36:20 +00:00
dependabot[bot]
03e43c5a23
build(deps): bump env_logger from 0.11.7 to 0.11.8 (#36294)
Bumps [env_logger](https://github.com/rust-cli/env_logger) from 0.11.7
to 0.11.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-cli/env_logger/releases">env_logger's
releases</a>.</em></p>
<blockquote>
<h2>v0.11.8</h2>
<h2>[0.11.8] - 2025-04-01</h2>
<h3>Compatibility</h3>
<ul>
<li><em>(kv)</em> Deprecate the <code>unstable-kv</code> feature which
may be removed in a future patch release</li>
</ul>
<h3>Features</h3>
<ul>
<li><em>(kv)</em> Stabilize key-value support behind the <code>kv</code>
feature</li>
<li>Expose <code>ConfigurableFormat</code> to build custom
[<code>Builder::format</code>]s that leverage this</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md">env_logger's
changelog</a>.</em></p>
<blockquote>
<h2>[0.11.8] - 2025-04-01</h2>
<h3>Compatibility</h3>
<ul>
<li><em>(kv)</em> Deprecate the <code>unstable-kv</code> feature which
may be removed in a future patch release</li>
</ul>
<h3>Features</h3>
<ul>
<li><em>(kv)</em> Stabilize key-value support behind the <code>kv</code>
feature</li>
<li>Expose <code>ConfigurableFormat</code> to build custom
[<code>Builder::format</code>]s that leverage this</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f0443b26fe"><code>f0443b2</code></a>
chore: Release</li>
<li><a
href="d8b5e1e884"><code>d8b5e1e</code></a>
docs: Update changelog</li>
<li><a
href="3ca671fe6d"><code>3ca671f</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/env_logger/issues/360">#360</a>
from epage/format</li>
<li><a
href="bc02d61e0a"><code>bc02d61</code></a>
feat(fmt): Expose ConfigurableFormat</li>
<li><a
href="c567fdee73"><code>c567fde</code></a>
refactor(fmt): Pull out format logic</li>
<li><a
href="ce25c73961"><code>ce25c73</code></a>
refactor(fmt): Make DefaultFormats name more specific</li>
<li><a
href="739ebb1d37"><code>739ebb1</code></a>
refactor(fmt): Pull out logger's builder methods</li>
<li><a
href="3acb571daa"><code>3acb571</code></a>
refactor(fmt): Delegate formatting to DefaultFormat</li>
<li><a
href="e351bcb92d"><code>e351bcb</code></a>
refactor(fmt): Reduce duplication in DefaultFormatWriter</li>
<li><a
href="3c9e6ff528"><code>3c9e6ff</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/env_logger/issues/359">#359</a>
from epage/kv</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-cli/env_logger/compare/v0.11.7...v0.11.8">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-02 17:19:36 +00:00
dependabot[bot]
26069ad5be
build(deps): bump aws-lc-rs from 1.12.6 to 1.13.0 (#36293)
Bumps [aws-lc-rs](https://github.com/aws/aws-lc-rs) from 1.12.6 to
1.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aws/aws-lc-rs/releases">aws-lc-rs's
releases</a>.</em></p>
<blockquote>
<h2>aws-lc-rs v1.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Support serializing <code>RsaSubjectPublicKey</code> to/from X509 by
<a href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/742">aws/aws-lc-rs#742</a></li>
<li>ML-DSA support in <code>unstable</code> module by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/690">aws/aws-lc-rs#690</a></li>
<li>Remove Kyber, KDF from <code>unstable</code> module by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/747">aws/aws-lc-rs#747</a></li>
</ul>
<h3>Build improvements</h3>
<ul>
<li>Fix CMake submodule warning by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/730">aws/aws-lc-rs#730</a></li>
<li>Prefixing applied to all external symbols in
<code>aws-lc-sys</code>:
<ul>
<li>Align aws-lc-sys v0.27.2 w/ AWS-LC v1.48.5 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/740">aws/aws-lc-rs#740</a></li>
</ul>
</li>
<li>Improve cross-build support to <code>x86_64-pc-windows-gnu</code>:
<ul>
<li>Include Go source in <code>aws-lc-sys</code> crate by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/754">aws/aws-lc-rs#754</a></li>
</ul>
</li>
<li>Support build using CMake 4.0:
<ul>
<li>Bump aws-lc-fips-sys to v0.13.5 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/760">aws/aws-lc-rs#760</a></li>
<li>Regenerate aws-lc-sys @ v1.48.3 by <a
href="https://github.com/skmcgrail"><code>@​skmcgrail</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/734">aws/aws-lc-rs#734</a></li>
</ul>
</li>
<li>CI for <code>x86_64-unknown-illumos</code> build target:
<ul>
<li>Try to support illumos by <a
href="https://github.com/LecrisUT"><code>@​LecrisUT</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/709">aws/aws-lc-rs#709</a></li>
</ul>
</li>
</ul>
<h3>Issues Being Resolved</h3>
<ul>
<li>implement
<code>encoding::AsDer&lt;PublicKeyX509Der&lt;'a&gt;&gt;</code> for
<code>rsa::PublicKey</code> -- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/741">aws/aws-lc-rs#741</a></li>
<li>-sys: include aws-lc/crypto/err/err_data_generate.go in published
crates -- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/752">aws/aws-lc-rs#752</a></li>
<li>Failing to cross build for <code>x86_64-pc-windows-gnu</code> -- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/753">aws/aws-lc-rs#753</a></li>
<li>Failure to build with CMake 4 -- <a
href="https://redirect.github.com/aws/aws-lc-rs/issues/755">aws/aws-lc-rs#755</a></li>
</ul>
<h2>Other Merged PRs</h2>
<ul>
<li>Update rustls integ test by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/717">aws/aws-lc-rs#717</a></li>
<li>Bump aws-lc-fips-sys to v0.13.4 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/731">aws/aws-lc-rs#731</a></li>
<li>Test script for bindings pregeneration by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/732">aws/aws-lc-rs#732</a></li>
<li>No libssl cross test for arm-linux-androideabi by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/739">aws/aws-lc-rs#739</a></li>
<li>aws-lc-sys: output only one library by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/749">aws/aws-lc-rs#749</a></li>
<li>Align aws-lc-sys v0.28.0 w/ AWS-LC 1.49.0 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/757">aws/aws-lc-rs#757</a></li>
<li>Bump to aws-lc-rs v1.13.0 by <a
href="https://github.com/justsmth"><code>@​justsmth</code></a> in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/758">aws/aws-lc-rs#758</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/LecrisUT"><code>@​LecrisUT</code></a>
made their first contribution in <a
href="https://redirect.github.com/aws/aws-lc-rs/pull/709">aws/aws-lc-rs#709</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/aws/aws-lc-rs/compare/v1.12.6...v1.13.0">https://github.com/aws/aws-lc-rs/compare/v1.12.6...v1.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8ed1be8f6c"><code>8ed1be8</code></a>
Bump to aws-lc-rs v1.13.0 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/758">#758</a>)</li>
<li><a
href="1e96391d40"><code>1e96391</code></a>
Bump aws-lc-fips-sys to v0.13.5 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/760">#760</a>)</li>
<li><a
href="706565c162"><code>706565c</code></a>
Include Go source in <code>aws-lc-sys</code> crate (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/754">#754</a>)</li>
<li><a
href="344a56fc86"><code>344a56f</code></a>
Align aws-lc-sys v0.28.0 w/ AWS-LC 1.49.0 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/757">#757</a>)</li>
<li><a
href="b6d070b12a"><code>b6d070b</code></a>
Remove Kyber, KDF from unstable (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/747">#747</a>)</li>
<li><a
href="2e8b15872e"><code>2e8b158</code></a>
Unstable API for ML-DSA (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/690">#690</a>)</li>
<li><a
href="d998c017ad"><code>d998c01</code></a>
Try to support illumos (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/709">#709</a>)</li>
<li><a
href="44de3d2110"><code>44de3d2</code></a>
aws-lc-sys: output only one library (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/749">#749</a>)</li>
<li><a
href="bfe34e8636"><code>bfe34e8</code></a>
Support RsaSubjectPublicKey to/from X509; Bump version (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/742">#742</a>)</li>
<li><a
href="4fe81985d8"><code>4fe8198</code></a>
Align aws-lc-sys v0.27.2 w/ AWS-LC v1.48.5 (<a
href="https://redirect.github.com/aws/aws-lc-rs/issues/740">#740</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-lc-rs/compare/v1.12.6...v1.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-lc-rs&package-manager=cargo&previous-version=1.12.6&new-version=1.13.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-04-02 17:18:05 +00:00
dependabot[bot]
fa1d55b440
build(deps): bump flate2 from 1.1.0 to 1.1.1 (#36292)
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.1.0 to
1.1.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/flate2-rs/releases">flate2's
releases</a>.</em></p>
<blockquote>
<h2>1.1.1</h2>
<p>This release should be smaller and thus faster to download.
Additionally, when using the <code>zlib-rs</code> backend, duplicate
symbol issues shouldn't occur anymore.</p>
<h2>What's Changed</h2>
<ul>
<li>docs: Update README to promote zlib-rs by <a
href="https://github.com/Xuanwo"><code>@​Xuanwo</code></a> in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/470">rust-lang/flate2-rs#470</a></li>
<li>Update miniz_oxide to 0.8.5 by <a
href="https://github.com/oyvindln"><code>@​oyvindln</code></a> in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/475">rust-lang/flate2-rs#475</a></li>
<li>Remove stale CHANGELOG.md by <a
href="https://github.com/jayvdb"><code>@​jayvdb</code></a> in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/476">rust-lang/flate2-rs#476</a></li>
<li>More informative README on backends by <a
href="https://github.com/Shnatsel"><code>@​Shnatsel</code></a> in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/480">rust-lang/flate2-rs#480</a></li>
<li>Rewrite outdated backend notes in lib.rs by <a
href="https://github.com/Shnatsel"><code>@​Shnatsel</code></a> in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/481">rust-lang/flate2-rs#481</a></li>
<li>upgrade zlib-rs to version <code>0.5.0</code> by <a
href="https://github.com/folkertdev"><code>@​folkertdev</code></a> in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/482">rust-lang/flate2-rs#482</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Xuanwo"><code>@​Xuanwo</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/470">rust-lang/flate2-rs#470</a></li>
<li><a href="https://github.com/jayvdb"><code>@​jayvdb</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/flate2-rs/pull/476">rust-lang/flate2-rs#476</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/flate2-rs/compare/1.1.0...1.1.1">https://github.com/rust-lang/flate2-rs/compare/1.1.0...1.1.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="98c98c8a57"><code>98c98c8</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/flate2-rs/issues/482">#482</a>
from folkertdev/update-zlib-rs-0.5.0</li>
<li><a
href="94b36b01e6"><code>94b36b0</code></a>
upgrade zlib-rs to version <code>0.5.0</code></li>
<li><a
href="a79bfe495a"><code>a79bfe4</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/flate2-rs/issues/481">#481</a>
from Shnatsel/backend-docs</li>
<li><a
href="694e822cd1"><code>694e822</code></a>
less editorializing</li>
<li><a
href="6debe9512b"><code>6debe95</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/flate2-rs/issues/480">#480</a>
from Shnatsel/zlib-rs-readme</li>
<li><a
href="a24e276931"><code>a24e276</code></a>
Rewrite outdated backend notes in lib.rs</li>
<li><a
href="78ca1741a6"><code>78ca174</code></a>
More informative README on backends</li>
<li><a
href="c9a3efaf1f"><code>c9a3efa</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/flate2-rs/issues/476">#476</a>
from jayvdb/rm-changelog</li>
<li><a
href="0b2137d8d8"><code>0b2137d</code></a>
Remove stale CHANGELOG.md</li>
<li><a
href="0abbd1c0e6"><code>0abbd1c</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/flate2-rs/issues/475">#475</a>
from oyvindln/patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/flate2-rs/compare/1.1.0...1.1.1">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-02 17:13:18 +00:00
Richard Dushime
60baa8ce11
Use Window in new methods instead of GlobalScope for interfaces with … (#36133)
…Window-only constructors

<!-- Please describe your changes on the following line: -->


---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #36118 (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox
is checked, so that we can help you if you get stuck somewhere along the
way.-->

<!-- Pull requests that do not address these steps are welcome, but they
will require additional verification as part of the review process. -->

---------

Signed-off-by: richarddushime <mudaherarich@gmail.com>
Signed-off-by: Richard Dushime <45734838+richarddushime@users.noreply.github.com>
2025-04-02 14:50:56 +00:00
Martin Robinson
2ce306f450
script: Create CSSStyleOwner::Null for getComputedStyle (#36272)
This new `CSSStyleOwner` variant is used when the pseudo-element
argument fails to parse properly or is for some unknown or unsupported
pseudo-element.

Testing: There are tests for this change. Various tests start to pass
and some start to
fail. New failures are due to partial or fully missing support for
pseudo-elements such
as:
 - `::selection`
 - `::first-letter` and `::first-line`
 - `::marker`

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-04-02 13:54:42 +00:00
Oriol Brufau
1f13e8b596
layout: Allow collapsing bottom margins with any indefinite block size (#36278)
According to CSS2, the bottom margin of a block container can collapse
with the bottom margin of its last in-flow child if `height` computes to
`auto`.

However, according to CSS Sizing, that was "legacy spec prose" and
should be interpreted as "behaves as `auto`".

Therefore, cyclic percentages and intrinsic keywords like `min-content`
shouldn't prevent margin collapse, because they behave as `auto`.

This change aligns Servo with Gecko and Blink, but diverges from WebKit.

https://www.w3.org/TR/CSS22/box.html#collapsing-margins
https://www.w3.org/TR/css-sizing/#behave-auto

Testing:
-
`tests/wpt/tests/css/css-sizing/margin-collapse-with-indefinite-block-size-001.html`
-
`tests/wpt/tests/css/css-sizing/margin-collapse-with-indefinite-block-size-002.html`
-
`tests/wpt/tests/css/css-sizing/margin-collapse-with-indefinite-block-size-003.html`
-
`tests/wpt/tests/css/css-sizing/margin-collapse-with-indefinite-block-size-004.html`
-
`tests/wpt/tests/css/css-sizing/margin-collapse-with-indefinite-block-size-005.html`

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-04-02 12:10:04 +00:00
Andrei Volykhin
3bc0eeab8f
dom: Firing "click" event as synthetic pointer event (#36274)
According to specification

https://html.spec.whatwg.org/multipage/webappapis.html#fire-a-click-event
"Firing a click event at target means firing a synthetic pointer event
named click at target"

So need to replace synthetic mouse event with "click" type to pointer
event.

https://w3c.github.io/pointerevents/#the-click-auxclick-and-contextmenu-events
https://www.w3.org/TR/uievents/#event-type-click

Firing "click" event could be triggered from script or by UA:
- element.click()
(https://html.spec.whatwg.org/multipage/interaction.html#dom-click)
- form implicit submission
(https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#implicit-submission)
- keyboard activation (space)

---
- [x] ./mach build -d does not report any errors
- [x] ./mach test-tidy does not report any errors
- [x] There are tests for these changes
tests/wpt/tests/shadow-dom/event-composed.html
tests/wpt/tests/uievents/interface/click-event.htm

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-04-02 11:20:25 +00:00
Martin Robinson
b925c31424
libservo: Start moving WindowMethods to WebViewDelegate (#36223)
`WindowMethods` is used by the embedding layer to get information from
the embedder. This change moves the functionality for getting screen
size and `WebView` offsets to `WebViewDelegate`.

This is important because `WebView`s might be on different screens or
have different offsets on the screen itself, so it makes sense for this
to be per-`WebView` and not global to the embedder. HiDPI and animation
state functionality will move to the embedder in subsequent changes.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

<!-- Please describe your changes on the following line: -->


---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they just modify the
`WebView` API surface a bit.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox
is checked, so that we can help you if you get stuck somewhere along the
way.-->

<!-- Pull requests that do not address these steps are welcome, but they
will require additional verification as part of the review process. -->

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-04-02 11:17:24 +00:00