Commit graph

52478 commits

Author SHA1 Message Date
dependabot[bot]
a597cd5ed4
build(deps): bump cfg-if from 1.0.1 to 1.0.3 (#38794)
Bumps [cfg-if](https://github.com/rust-lang/cfg-if) from 1.0.1 to 1.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cfg-if/releases">cfg-if's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.3</h2>
<ul>
<li>Revert &quot;Remove <code>@__identity</code> rule.&quot;</li>
</ul>
<h2>v1.0.2</h2>
<ul>
<li>Remove <code>@__identity</code> rule.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cfg-if/blob/main/CHANGELOG.md">cfg-if's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/cfg-if/compare/v1.0.2...v1.0.3">1.0.3</a>
- 2025-08-19</h2>
<ul>
<li>Revert &quot;Remove <code>@__identity</code> rule.&quot;</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cfg-if/compare/v1.0.1...v1.0.2">1.0.2</a>
- 2025-08-19</h2>
<ul>
<li>Remove <code>@__identity</code> rule.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9c7bb0bf71"><code>9c7bb0b</code></a>
chore: release v1.0.3 (<a
href="https://redirect.github.com/rust-lang/cfg-if/issues/93">#93</a>)</li>
<li><a
href="145894c77e"><code>145894c</code></a>
Revert &quot;Remove <code>@__identity</code> rule.&quot;</li>
<li><a
href="9f747fecdd"><code>9f747fe</code></a>
chore: release v1.0.2 (<a
href="https://redirect.github.com/rust-lang/cfg-if/issues/88">#88</a>)</li>
<li><a
href="97739b8388"><code>97739b8</code></a>
Fix some ugly and inconsistent formatting.</li>
<li><a
href="4d7a585e4d"><code>4d7a585</code></a>
Remove <code>@__identity</code> rule.</li>
<li><a
href="527acbdbd4"><code>527acbd</code></a>
Bump actions/checkout from 4 to 5</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cfg-if/compare/v1.0.1...v1.0.3">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 09:51:01 +00:00
Josh Matthews
636e7211e0
script: Measure heap usage of various ignored fields (#38791)
These changes allow using MallocSizeOf/`#[conditional_malloc_size_of]`
on WebIDL callback values, and then fix a grab bag of places in the
script crate that previously ignored those values. There are also some
commits removing ignored fields that involved Arc/Rc that are not WebIDL
callbacks, since they are now easier to support with the
`#[conditional_malloc_size_of]` attribute.

Testing: Manual testing on about:memory for servo.org.

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-20 08:43:58 +00:00
Josh Matthews
604b6ea26d
Upgrade to SpiderMonkey 140. (#38563)
Upgrade to use the latest mozjs upgrade.

Testing: Covered by existing WPT.

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-20 07:35:35 +00:00
Martin Robinson
b6cb57287f
dependabot: Exclude two testing directories to depndabot scanning (#38790)
According to dependabot/dependabot-core#4364, dependabot now supports
excluding certain directories from upgrade scanning. This change adds
two problematic directories to the exclusion list.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-08-20 07:17:13 +00:00
Josh Matthews
ed6bf196c9
constellation: Broadcast preference changes to all content processes (#38716)
Building on the preference observer work from #38649, we now
automatically install an observer when multiprocess mode is enabled.
This observer notifies the constellation of updated preferences, which
in turn notifies each content process so the changes will be reflected
into script/layout as expected. There's a unit test that verifies this
works correctly by checking a preference-gated WebIDL property before
and after the preference is toggled.

Testing: New unit test added.
Fixes: #35966

Depends on #38649.

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-20 06:43:16 +00:00
sagudev
61692b26c2
dependabot: Add egui-file-dialog and accesskit_winit to egui group (#38121)
https://github.com/servo/servo/pull/38119#issuecomment-3079653012

Testing: None, just dependabot config.

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-08-20 06:36:42 +00:00
dependabot[bot]
a28c394495
build(deps): bump tinyvec from 1.9.0 to 1.10.0 (#38785)
Bumps [tinyvec](https://github.com/Lokathor/tinyvec) from 1.9.0 to
1.10.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Lokathor/tinyvec/blob/main/CHANGELOG.md">tinyvec's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>1.10</h2>
<ul>
<li>Minimum rust version is now 1.55, and the non-const-generic impls
are removed.
This reduces build times by over a second on average, which is
significant enough for a library crate.</li>
</ul>
<h2>1.9</h2>
<ul>
<li>Adds a <code>latest_stable_rust</code> cargo feature, which will
automatically pull in
other cargo features related to the latest Stable version of rust.</li>
<li>Adds <code>ArrayVec::try_from_array_len</code></li>
<li>Adds <code>TinyVec::into_vec</code> and
<code>TinyVec::into_boxed_slice</code></li>
<li>Adds support for <code>generic-array</code> crate</li>
<li>Adds support for the <code>borsh</code> crate</li>
</ul>
<h2>1.8.1</h2>
<ul>
<li><a href="https://github.com/e00E">e00E</a> updated the rustc
features so that they all
correctly depend on the lower version feature.
<a href="https://redirect.github.com/Lokathor/tinyvec/pull/199">pr
199</a></li>
</ul>
<h2>1.8</h2>
<ul>
<li><a href="https://github.com/Fuuzetsu">Fuuzetsu</a> added the
<code>ArrayVec::as_inner</code> method.
<a href="https://redirect.github.com/Lokathor/tinyvec/pull/197">pr
197</a></li>
</ul>
<h2>1.7</h2>
<ul>
<li><a href="https://github.com/Fuuzetsu">Fuuzetsu</a> added the
<code>rustc_1_61</code> cargo feature, which adds the
<code>retain_mut</code> method.
<a href="https://redirect.github.com/Lokathor/tinyvec/pull/198">pr
198</a></li>
</ul>
<h2>1.6.1</h2>
<ul>
<li><a href="https://github.com/e00E">e00E</a> fixed the Arbitrary impl
to work on Stable
without using a feature gate.
<a href="https://redirect.github.com/Lokathor/tinyvec/pull/180">pr
180</a></li>
</ul>
<h2>1.6.0</h2>
<ul>
<li><a href="https://github.com/i509VCB">i509VCB</a> added the
<code>try_</code> functions for fallable reallocation.
<a href="https://redirect.github.com/Lokathor/tinyvec/pull/158">pr
158</a></li>
<li><a href="https://github.com/ajtribick">ajtribick</a> added more
error impls to <code>TryFromSliceError</code>.
<a href="https://redirect.github.com/Lokathor/tinyvec/pull/160">pr
160</a></li>
<li>The <code>std</code> feature now automatically enables the
<code>alloc</code> feature as well.</li>
</ul>
<h2>1.5.1</h2>
<ul>
<li><a href="https://github.com/madsmtm">madsmtm</a> fixed an error with
the <code>alloc</code> feature on very old rustc versions.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3c613ad020"><code>3c613ad</code></a>
chore: Release</li>
<li><a
href="2c5f2f6bb6"><code>2c5f2f6</code></a>
changelog</li>
<li><a
href="a44fb04088"><code>a44fb04</code></a>
bump MSRV to 1.55, drop generated Array impls (<a
href="https://redirect.github.com/Lokathor/tinyvec/issues/209">#209</a>)</li>
<li>See full diff in <a
href="https://github.com/Lokathor/tinyvec/compare/v1.9.0...v1.10.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 06:36:26 +00:00
dependabot[bot]
25c289e915
build(deps): bump serde_json from 1.0.142 to 1.0.143 (#38787)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.142 to
1.0.143.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.143</h2>
<ul>
<li>Implement Clone and Debug for serde_json::Map iterators (<a
href="https://redirect.github.com/serde-rs/json/issues/1264">#1264</a>,
thanks <a
href="https://github.com/xlambein"><code>@​xlambein</code></a>)</li>
<li>Implement Default for CompactFormatter (<a
href="https://redirect.github.com/serde-rs/json/issues/1268">#1268</a>,
thanks <a href="https://github.com/SOF3"><code>@​SOF3</code></a>)</li>
<li>Implement FromStr for serde_json::Map (<a
href="https://redirect.github.com/serde-rs/json/issues/1271">#1271</a>,
thanks <a
href="https://github.com/mickvangelderen"><code>@​mickvangelderen</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="10102c49bf"><code>10102c4</code></a>
Release 1.0.143</li>
<li><a
href="2a5b85312c"><code>2a5b853</code></a>
Replace super::super with absolute path within crate</li>
<li><a
href="447170bd38"><code>447170b</code></a>
Merge pull request 1271 from
mickvangelderen/mick/impl-from-str-for-map</li>
<li><a
href="ec190d6dfd"><code>ec190d6</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1264">#1264</a>
from xlambein/master</li>
<li><a
href="8be664752f"><code>8be6647</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1268">#1268</a>
from SOF3/compact-default</li>
<li><a
href="ba5b3cccea"><code>ba5b3cc</code></a>
Revert &quot;Pin nightly toolchain used for miri job&quot;</li>
<li><a
href="fd35a02901"><code>fd35a02</code></a>
Implement FromStr for Map&lt;String, Value&gt;</li>
<li><a
href="bea0fe6b3e"><code>bea0fe6</code></a>
Implement Default for CompactFormatter</li>
<li><a
href="0c0e9f6bfa"><code>0c0e9f6</code></a>
Add Clone and Debug impls to map iterators</li>
<li>See full diff in <a
href="https://github.com/serde-rs/json/compare/v1.0.142...v1.0.143">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 01:15:30 +00:00
dependabot[bot]
79de227448
build(deps): bump prettyplease from 0.2.36 to 0.2.37 (#38786)
Bumps [prettyplease](https://github.com/dtolnay/prettyplease) from
0.2.36 to 0.2.37.
<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.37</h2>
<ul>
<li>Replace <code>~const</code> syntax with <code>[const]</code>
conditionally const syntax (<a
href="https://redirect.github.com/dtolnay/prettyplease/issues/123">#123</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c971184fa8"><code>c971184</code></a>
Release 0.2.37</li>
<li><a
href="484e06077c"><code>484e060</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/prettyplease/issues/123">#123</a>
from dtolnay/conditionallyconst</li>
<li><a
href="38d93c76ae"><code>38d93c7</code></a>
Replace ~const syntax with [const] conditionally const syntax</li>
<li><a
href="e1c92b1bef"><code>e1c92b1</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/prettyplease/issues/122">#122</a>
from dtolnay/negativeinherent</li>
<li><a
href="1f74d4724d"><code>1f74d47</code></a>
Reject negative inherent impls</li>
<li>See full diff in <a
href="https://github.com/dtolnay/prettyplease/compare/0.2.36...0.2.37">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.36&new-version=0.2.37)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 23:34:58 +00:00
Ashwin Naren
d0a8f27241
net: fix indexeddb backend bugs (#38744)
Fix a large number of backend issues that were masking everything else.
There probably is still more, but it'll take more integration/unit
testing to find it.

Testing: WPT
Fixes: #38743

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2025-08-19 20:44:49 +00:00
Usman Yahaya Baba
f2294db95b
Split devtools network event logic for creating/retrieving network event actors (#38409)
`DevtoolsInstance::find_network_event_actor` silently creates a new
actor if there is not one already known for a given ID. This is
confusing; this PR separates logic for handling network requests (create
a new actor) and network responses (retrieve an existing actor).

Fixes: (https://github.com/servo/servo/issues/37841)

---------

Signed-off-by: uthmaniv <uthmanyahayababa@gmail.com>
2025-08-19 19:13:54 +00:00
Josh Matthews
f1a9ceed4f
allocator: Add optional heap allocation measurement tracking. (#38727)
Add an off-by-default allocator mode that tracks all live allocations
with sizes and associated stack traces. We also track if each allocation
is visited as part of a measuring heap usage in `about:memory`, allowing
us to report on allocations that are not tracked yet. Right now the list
of untracked allocations is dumped to stdout; I have a python script
coming in a separate PR which makes it easier to perform analysis on the
massive output.

Testing: Manually tested with `./mach build -d --features
servo_allocator/allocation-tracking` and visiting about:memory.
Part of: #11559

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-08-19 18:49:27 +00:00
Martin Robinson
2022831e4f
fonts: Add font variation support for macOS (#38760)
This change adds font variation support for macOS. The main bulk of the
change is reading the default, min, and max values for each variation
axis from the font and instantiating a new CoreText font with the
appropriate values. 

In addition, fonts with variations are now properly cached in the
CoreText font cache.

Testing: There are no tests for this change as we do not run WPT tests
for
macOS and font variations are currently turned off by default.
Eventually,
when the feature is turned on there will be test for it. These changes
are just laying the groundwork for the full implementation.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-08-19 15:12:48 +00:00
Euclid Ye
ad3018a921
webxr: Fix compile warning for Windows after upgrade to rustc 1.89 (#38780)
This is a follow up to
https://github.com/servo/servo/pull/36818#issuecomment-3135078567. Since
openxr is a feature only available on Windows, it was omitted.

Testing: Fixes
```
warning: hiding a lifetime that's elided elsewhere is confusing
   --> components\webxr\openxr\input.rs:366:9
    |
366 |         &self,
    |         ^^^^^ the lifetime is elided here
...
371 |     ) -> Vec<Binding> {
    |              ------- the same lifetime is hidden here
    |
    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: use `'_` for type paths
    |
371 |     ) -> Vec<Binding<'_>> {
```

Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
2025-08-19 14:23:39 +00:00
Oriol Brufau
b4589134c9
layout: Fix mix-ups between physical and logical aspect ratios (#38778)
`ComputedValuesExt::preferred_aspect_ratio()` was getting the natural
aspect ratio expressed logically as inline over block, but then it was
mixing it with the value of the `aspect-ratio` CSS property, which is
expressed physically as width over height.

Therefore, this changes `ComputedValuesExt::preferred_aspect_ratio()` to
expect the physical natural ratio, and then it takes care to convert the
resulting ratio logically.

Testing: Unneeded. This has no effect in practice because we don't
support `writing-mode` yet.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-08-19 14:09:17 +00:00
Oriol Brufau
f31edc5d6a
layout: Stop making <video> fall back to a preferred aspect ratio of 2 (#38705)
This is simpler, and has been successfully shipped in Blink.
See https://github.com/w3c/csswg-drafts/issues/12053 for more
information.

Testing: Improves WPT tests.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-08-19 12:09:36 +00:00
Nico Burns
39629560c8
Fix loading raw data from .ttc files on macos (#38753)
# Objective

Ensure that functionality which uses the raw font data (such as
rendering text to canvas) works correctly on macOS when the specified
font is a system font that lives in an OpenType Collection (`.ttc`)
file.

## Changes made

- The `read_data_from_file` in each backend now returns a `index: u32`
in addition to `data: Vec<u8>`
- The `data` field on the `Font` type has been renamed to `raw` and the
`data` method on the `Font` type has been renamed to `raw_font`. This
allows the index to be cached as computing is moderately expensive on
macOS (on the order of 100 microseconds).
- Both of the above now store/return a `struct RawFont` instead of a
`FontData` where `RawFont` is defined as `struct RawFont { data:
FontData, index: u32 }`.
- The users of the `data` method have been updated to use the cached
index from `data` rather than calling `.index()` each time.

---------

Signed-off-by: Nico Burns <nico@nicoburns.com>
2025-08-19 11:57:48 +00:00
webbeef
3225d19907
cargo: Bump rustc to 1.89 (#36818)
Update Rustc to 1.89.

Reviewable by commit.

Leftover work:
- #37330 
- #38777

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-08-19 11:07:53 +00:00
Jonathan Schwender
8587536755
Use GenericChannel for script_chan (#38645)
Motivation: 
Using our GenericChannel abstraction allows us to optimize IPC in
single-process mode to just use cross-beam channel.
To keep the diff low, and get early feedback, this PR only tackles a
single channel, but the intention is to port all ipc channels to the
generic channel, which allows us to skip serializing and deserializing
messages in single process mode.

Based on: 
- https://github.com/servo/servo/pull/38638
- https://github.com/servo/servo/pull/38636

Testing: Covered by existing tests

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-19 09:59:20 +00:00
Jonathan Schwender
73e0f2f7e6
uv: Fix warning by adding project table to pyproject.toml (#38774)
`uv` logs a warning if the pyproject.toml does not contain a project
table.
There is not really much point in adding the table, but no downsides
either,
so lets just add the table to make `uv` happy.

Testing: Manual run of `RUST_LOG=warn ./mach run`
Fixes: #38761

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-19 06:38:00 +00:00
Kenzie Raditya Tirtarahardja
60e6fe8cb5
webdriver: Change TickActions to vector rather than hashmap (#38747)
Based on
[spec](https://w3c.github.io/webdriver/#dfn-extract-an-action-sequence),
`TickActions` should be a list. Previously we used Hashmap, which when
iterated has arbitrary order. This causes some tests to be unstable
previously (see the linked issue).

Testing:
`./webdriver/tests/classic/perform_actions/{pointer_contextmenu,
pointer_modifier_click}.py` consistently pass now.
Fixes: https://github.com/servo/servo/issues/38387

---------

Signed-off-by: PotatoCP <Kenzie.Raditya.Tirtarahardja@huawei.com>
2025-08-19 06:25:56 +00:00
dependabot[bot]
ea506140c8
build(deps): bump bitflags from 2.9.1 to 2.9.2 (#38767)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.1 to
2.9.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/releases">bitflags's
releases</a>.</em></p>
<blockquote>
<h2>2.9.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix difference in the spec by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/446">bitflags/bitflags#446</a></li>
<li>Fix up inaccurate docs on bitflags_match by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/453">bitflags/bitflags#453</a></li>
<li>Remove rustc internal crate feature by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/454">bitflags/bitflags#454</a></li>
<li>Prepare for 2.9.2 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/456">bitflags/bitflags#456</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.1...2.9.2">https://github.com/bitflags/bitflags/compare/2.9.1...2.9.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md">bitflags's
changelog</a>.</em></p>
<blockquote>
<h1>2.9.2</h1>
<h2>What's Changed</h2>
<ul>
<li>Fix difference in the spec by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/446">bitflags/bitflags#446</a></li>
<li>Fix up inaccurate docs on bitflags_match by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/453">bitflags/bitflags#453</a></li>
<li>Remove rustc internal crate feature by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/bitflags/bitflags/pull/454">bitflags/bitflags#454</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/bitflags/bitflags/compare/2.9.1...2.9.2">https://github.com/bitflags/bitflags/compare/2.9.1...2.9.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="85b5e603ea"><code>85b5e60</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/456">#456</a>
from KodrAus/cargo/2.9.2</li>
<li><a
href="d185ca57b0"><code>d185ca5</code></a>
remove reference to std internal features</li>
<li><a
href="82a365fc54"><code>82a365f</code></a>
prepare for 2.9.2 release</li>
<li><a
href="f1beb28eb3"><code>f1beb28</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/454">#454</a>
from KodrAus/fix/rustc-dep-of-std</li>
<li><a
href="ef247c5046"><code>ef247c5</code></a>
update more error messages</li>
<li><a
href="c8e235463c"><code>c8e2354</code></a>
update compiler errors</li>
<li><a
href="fe4c49da68"><code>fe4c49d</code></a>
remove rustc internal crate feature</li>
<li><a
href="2b786c963b"><code>2b786c9</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/453">#453</a>
from bitflags/fix/match-docs</li>
<li><a
href="15519b01b8"><code>15519b0</code></a>
fix up inaccurate docs on bitflags_match</li>
<li><a
href="80684fdce6"><code>80684fd</code></a>
Merge pull request <a
href="https://redirect.github.com/bitflags/bitflags/issues/446">#446</a>
from bitflags/KodrAus-patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/bitflags/bitflags/compare/2.9.1...2.9.2">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 05:14:57 +00:00
dependabot[bot]
40ac1dad8a
build(deps): bump brotli from 8.0.1 to 8.0.2 (#38770)
Bumps [brotli](https://github.com/dropbox/rust-brotli) from 8.0.1 to
8.0.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/dropbox/rust-brotli/commits/8.0.2">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 05:14:47 +00:00
dependabot[bot]
97c762ec7c
build(deps): bump syn from 2.0.105 to 2.0.106 (#38768)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.105 to 2.0.106.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/syn/releases">syn's
releases</a>.</em></p>
<blockquote>
<h2>2.0.106</h2>
<ul>
<li>Replace <code>~const</code> syntax with <code>[const]</code>
conditionally const syntax in trait bounds (<a
href="https://redirect.github.com/dtolnay/syn/issues/1896">#1896</a>, <a
href="https://redirect.github.com/rust-lang/rust/pull/139858">rust-lang/rust#139858</a>)</li>
<li>Support conditionally const impl Trait types (<a
href="https://redirect.github.com/dtolnay/syn/issues/1897">#1897</a>)</li>
<li>Reject polarity modifier and lifetime binder used in the same trait
bound (<a
href="https://redirect.github.com/dtolnay/syn/issues/1899">#1899</a>, <a
href="https://redirect.github.com/rust-lang/rust/pull/127054">rust-lang/rust#127054</a>)</li>
<li>Parse const trait bounds with bound lifetimes (<a
href="https://redirect.github.com/dtolnay/syn/issues/1902">#1902</a>)</li>
<li>Parse bound lifetimes with lifetime bounds (<a
href="https://redirect.github.com/dtolnay/syn/issues/1903">#1903</a>)</li>
<li>Allow type parameters and const parameters in trait bounds and
generic closures (<a
href="https://redirect.github.com/dtolnay/syn/issues/1904">#1904</a>, <a
href="https://redirect.github.com/dtolnay/syn/issues/1907">#1907</a>, <a
href="https://redirect.github.com/dtolnay/syn/issues/1908">#1908</a>, <a
href="https://redirect.github.com/dtolnay/syn/issues/1909">#1909</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0e4bc64fe1"><code>0e4bc64</code></a>
Release 2.0.106</li>
<li><a
href="4fb776a12e"><code>4fb776a</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1910">#1910</a>
from dtolnay/traitboundissue</li>
<li><a
href="41b24a588b"><code>41b24a5</code></a>
Fix duplicated async trait bound issue</li>
<li><a
href="a64f024cf8"><code>a64f024</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1909">#1909</a>
from dtolnay/fortype</li>
<li><a
href="176099e868"><code>176099e</code></a>
Parse type parameter introducer on closures</li>
<li><a
href="b790b39351"><code>b790b39</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1908">#1908</a>
from dtolnay/genericvsqpath</li>
<li><a
href="96496390a3"><code>9649639</code></a>
Synchronize generics-vs-qpath heuristic with rust parser</li>
<li><a
href="60de3318e0"><code>60de331</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1907">#1907</a>
from dtolnay/forconst</li>
<li><a
href="2aac6d7607"><code>2aac6d7</code></a>
Allow const parameters in for&lt;&gt;</li>
<li><a
href="11934e5365"><code>11934e5</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/syn/issues/1905">#1905</a>
from dtolnay/unsafestatic</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/syn/compare/2.0.105...2.0.106">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 00:28:53 +00:00
dependabot[bot]
d321d8a13d
build(deps): bump proc-macro2 from 1.0.97 to 1.0.101 (#38766)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.97
to 1.0.101.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's
releases</a>.</em></p>
<blockquote>
<h2>1.0.101</h2>
<ul>
<li>Optimize Span location accessors (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/519">#519</a>)</li>
</ul>
<h2>1.0.100</h2>
<ul>
<li>Stabilize <code>Span</code> methods on Rust 1.88+:
<code>start</code>, <code>end</code>, <code>line</code>,
<code>column</code>, <code>file</code>, <code>local_file</code> (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/517">#517</a>,
<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/518">#518</a>)</li>
</ul>
<h2>1.0.99</h2>
<ul>
<li>Prevent Span's unstable API becoming unavailable from a future new
compiler lint (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/515">#515</a>)</li>
</ul>
<h2>1.0.98</h2>
<ul>
<li>Disallow prefixed identifier as name of lifetime:
<code>'prefix#lifetime</code> (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/514">#514</a>,
<a
href="https://redirect.github.com/rust-lang/rust/pull/126452">rust-lang/rust#126452</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d3188ea889"><code>d3188ea</code></a>
Release 1.0.101</li>
<li><a
href="cbd1286d36"><code>cbd1286</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/519">#519</a>
from dtolnay/binarysearch</li>
<li><a
href="fab4cb6df2"><code>fab4cb6</code></a>
Convert SourceMap scan to binary search</li>
<li><a
href="f4708a855b"><code>f4708a8</code></a>
Factor out SourceMap linear search to method</li>
<li><a
href="fdc853a4af"><code>fdc853a</code></a>
Release 1.0.100</li>
<li><a
href="848ed0b742"><code>848ed0b</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/518">#518</a>
from dtolnay/spanfile</li>
<li><a
href="76ce1a35a3"><code>76ce1a3</code></a>
Stabilize Span::file and Span::local_file</li>
<li><a
href="b5dd3c6baf"><code>b5dd3c6</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/517">#517</a>
from dtolnay/startend</li>
<li><a
href="1d0ffc026c"><code>1d0ffc0</code></a>
Use Span's start, end, line, column methods on stable 1.88+</li>
<li><a
href="4f5845e1ee"><code>4f5845e</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/516">#516</a>
from dtolnay/probe</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/proc-macro2/compare/1.0.97...1.0.101">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 00:17:20 +00:00
dependabot[bot]
efd0926c63
build(deps): bump hyper from 1.6.0 to 1.7.0 (#38765)
Bumps [hyper](https://github.com/hyperium/hyper) from 1.6.0 to 1.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/hyper/releases">hyper's
releases</a>.</em></p>
<blockquote>
<h2>v1.7.0</h2>
<h2>Highlights</h2>
<h3>Features</h3>
<ul>
<li><strong>client:</strong>
<ul>
<li>add a <code>TrySendError::error()</code> method (<a
href="https://redirect.github.com/hyperium/hyper/issues/3885">#3885</a>)
(<a
href="efa0b26958">efa0b269</a>)</li>
<li>add a <code>TrySendError::message()</code> method (<a
href="https://redirect.github.com/hyperium/hyper/issues/3884">#3884</a>)
(<a
href="03fd6aff88">03fd6aff</a>)</li>
</ul>
</li>
<li><strong>error:</strong> add <code>Error::is_shutdown()</code> (<a
href="https://redirect.github.com/hyperium/hyper/issues/3863">#3863</a>)
(<a
href="b8affd8a2e">b8affd8a</a>,
closes <a
href="https://redirect.github.com/hyperium/hyper/issues/2745">#2745</a>)</li>
<li><strong>server:</strong> add
<code>allow_multiple_spaces_in_request_line_delimiters</code> http1
builder method (<a
href="https://redirect.github.com/hyperium/hyper/issues/3929">#3929</a>)
(<a
href="9749184f8a">9749184f</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>server:</strong> improve caching accuracy of Date header (<a
href="https://redirect.github.com/hyperium/hyper/issues/3887">#3887</a>)
(<a
href="436cadd1ac">436cadd1</a>)</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>chore: remove redundant backticks by <a
href="https://github.com/jimmycathy"><code>@​jimmycathy</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3855">hyperium/hyper#3855</a></li>
<li>Gate tests with features they test by <a
href="https://github.com/WhyNotHugo"><code>@​WhyNotHugo</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3864">hyperium/hyper#3864</a></li>
<li>docs(service): add <code>HttpService</code> documentation by <a
href="https://github.com/cratelyn"><code>@​cratelyn</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3869">hyperium/hyper#3869</a></li>
<li>docs(examples): alias Builder for clarity by <a
href="https://github.com/Muffeter"><code>@​Muffeter</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3873">hyperium/hyper#3873</a></li>
<li>docs(MAINTAINERS): add katelyn martin as collaborator by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper/pull/3878">hyperium/hyper#3878</a></li>
<li>chore(proto/h2): fix module-level documentation by <a
href="https://github.com/cratelyn"><code>@​cratelyn</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3881">hyperium/hyper#3881</a></li>
<li>feat(client): add a <code>TrySendError::message()</code> method by
<a href="https://github.com/cratelyn"><code>@​cratelyn</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3884">hyperium/hyper#3884</a></li>
<li>feat(client): add a <code>TrySendError::error()</code> method by <a
href="https://github.com/cratelyn"><code>@​cratelyn</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3885">hyperium/hyper#3885</a></li>
<li>fix(http2): add decriptive error for non-zero connect request by <a
href="https://github.com/samp5"><code>@​samp5</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3886">hyperium/hyper#3886</a></li>
<li>refactor(lib): drop futures-util except in ffi by <a
href="https://github.com/hanna-kruppe"><code>@​hanna-kruppe</code></a>
in <a
href="https://redirect.github.com/hyperium/hyper/pull/3890">hyperium/hyper#3890</a></li>
<li>fix(date): improve caching accuracy by <a
href="https://github.com/Patryk27"><code>@​Patryk27</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3887">hyperium/hyper#3887</a></li>
<li>docs(SECURITY): update policy to use GSA drafts when reporting
vulnerabilities by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper/pull/3894">hyperium/hyper#3894</a></li>
<li>feat: add Error::is_shutdown() by <a
href="https://github.com/joshka"><code>@​joshka</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3863">hyperium/hyper#3863</a></li>
<li>docs: improve ext module overview by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper/pull/3921">hyperium/hyper#3921</a></li>
<li>docs(rt): improve rt module overview by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper/pull/3920">hyperium/hyper#3920</a></li>
<li>chore(ci): update to cargo-check-external-types-0.3.0 by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3928">hyperium/hyper#3928</a></li>
<li>test(common): add missing assertion in full_rewind test by <a
href="https://github.com/1911860538"><code>@​1911860538</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3926">hyperium/hyper#3926</a></li>
<li>fix(lib): avoid implicit cargo feature by <a
href="https://github.com/hanna-kruppe"><code>@​hanna-kruppe</code></a>
in <a
href="https://redirect.github.com/hyperium/hyper/pull/3931">hyperium/hyper#3931</a></li>
<li>feat(http1): add allow_multiple_spaces_in_request_line_delimiters h1
builder config method by <a
href="https://github.com/mccordryan"><code>@​mccordryan</code></a> in <a
href="https://redirect.github.com/hyperium/hyper/pull/3929">hyperium/hyper#3929</a></li>
<li>Prepare v1.7.0 by <a
href="https://github.com/seanmonstar"><code>@​seanmonstar</code></a> in
<a
href="https://redirect.github.com/hyperium/hyper/pull/3933">hyperium/hyper#3933</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jimmycathy"><code>@​jimmycathy</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3855">hyperium/hyper#3855</a></li>
<li><a href="https://github.com/Muffeter"><code>@​Muffeter</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3873">hyperium/hyper#3873</a></li>
<li><a href="https://github.com/samp5"><code>@​samp5</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3886">hyperium/hyper#3886</a></li>
<li><a
href="https://github.com/hanna-kruppe"><code>@​hanna-kruppe</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3890">hyperium/hyper#3890</a></li>
<li><a href="https://github.com/Patryk27"><code>@​Patryk27</code></a>
made their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3887">hyperium/hyper#3887</a></li>
<li><a href="https://github.com/joshka"><code>@​joshka</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3863">hyperium/hyper#3863</a></li>
<li><a
href="https://github.com/1911860538"><code>@​1911860538</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3926">hyperium/hyper#3926</a></li>
<li><a
href="https://github.com/mccordryan"><code>@​mccordryan</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/hyper/pull/3929">hyperium/hyper#3929</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/hyper/blob/master/CHANGELOG.md">hyper's
changelog</a>.</em></p>
<blockquote>
<h2>v1.7.0 (2025-08-18)</h2>
<h4>Bug Fixes</h4>
<ul>
<li><strong>server:</strong> improve caching accuracy of Date header (<a
href="https://redirect.github.com/hyperium/hyper/issues/3887">#3887</a>)
(<a
href="436cadd1ac">436cadd1</a>)</li>
</ul>
<h4>Features</h4>
<ul>
<li><strong>client:</strong>
<ul>
<li>add a <code>TrySendError::error()</code> method (<a
href="https://redirect.github.com/hyperium/hyper/issues/3885">#3885</a>)
(<a
href="efa0b26958">efa0b269</a>)</li>
<li>add a <code>TrySendError::message()</code> method (<a
href="https://redirect.github.com/hyperium/hyper/issues/3884">#3884</a>)
(<a
href="03fd6aff88">03fd6aff</a>)</li>
</ul>
</li>
<li><strong>error:</strong> add <code>Error::is_shutdown()</code> (<a
href="https://redirect.github.com/hyperium/hyper/issues/3863">#3863</a>)
(<a
href="b8affd8a2e">b8affd8a</a>,
closes <a
href="https://redirect.github.com/hyperium/hyper/issues/2745">#2745</a>)</li>
<li><strong>server:</strong> add
<code>allow_multiple_spaces_in_request_line_delimiters</code> http1
builder method (<a
href="https://redirect.github.com/hyperium/hyper/issues/3929">#3929</a>)
(<a
href="9749184f8a">9749184f</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="400bdfdace"><code>400bdfd</code></a>
v1.7.0</li>
<li><a
href="9749184f8a"><code>9749184</code></a>
feat(server): add
<code>allow_multiple_spaces_in_request_line_delimiters</code> http1
bu...</li>
<li><a
href="caa166c756"><code>caa166c</code></a>
chore(dependencies): avoid implicit cargo feature of futures-util (<a
href="https://redirect.github.com/hyperium/hyper/issues/3931">#3931</a>)</li>
<li><a
href="8ad2595c03"><code>8ad2595</code></a>
test(common): add missing assertion in full_rewind test (<a
href="https://redirect.github.com/hyperium/hyper/issues/3926">#3926</a>)</li>
<li><a
href="24f0da8636"><code>24f0da8</code></a>
chore(ci): update to cargo-check-external-types-0.3.0 (<a
href="https://redirect.github.com/hyperium/hyper/issues/3928">#3928</a>)</li>
<li><a
href="974289fb3d"><code>974289f</code></a>
docs(rt): improve <code>rt</code> module overview (<a
href="https://redirect.github.com/hyperium/hyper/issues/3920">#3920</a>)</li>
<li><a
href="283fd2381d"><code>283fd23</code></a>
docs: improve <code>ext</code> module overview and <code>Protocol</code>
docs (<a
href="https://redirect.github.com/hyperium/hyper/issues/3921">#3921</a>)</li>
<li><a
href="b8affd8a2e"><code>b8affd8</code></a>
feat(error): add <code>Error::is_shutdown()</code> (<a
href="https://redirect.github.com/hyperium/hyper/issues/3863">#3863</a>)</li>
<li><a
href="c88df7886c"><code>c88df78</code></a>
docs(SECURITY): update policy to use GSA drafts when reporting
vulnerabilitie...</li>
<li><a
href="436cadd1ac"><code>436cadd</code></a>
fix(server): improve caching accuracy of Date header (<a
href="https://redirect.github.com/hyperium/hyper/issues/3887">#3887</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/hyperium/hyper/compare/v1.6.0...v1.7.0">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 23:53:21 +00:00
dependabot[bot]
688ef9e64a
build(deps): bump cc from 1.2.32 to 1.2.33 (#38764)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.32 to 1.2.33.
<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.32...cc-v1.2.33">1.2.33</a>
- 2025-08-15</h2>
<h3>Other</h3>
<ul>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1521">#1521</a>)</li>
<li>[win][arm64ec] Add testing for Arm64EC Windows (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1512">#1512</a>)</li>
<li>Fix parsing of nigthly targets (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1517">#1517</a>)</li>
<li>[win][arm64ec] Fix finding assembler and setting is_arm for Arm64EC
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1511">#1511</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a92892393c"><code>a928923</code></a>
chore: release v1.2.33 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1522">#1522</a>)</li>
<li><a
href="9c33178e20"><code>9c33178</code></a>
Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1521">#1521</a>)</li>
<li><a
href="220d772624"><code>220d772</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1520">#1520</a>)</li>
<li><a
href="9de267d18b"><code>9de267d</code></a>
[win][arm64ec] Add testing for Arm64EC Windows (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1512">#1512</a>)</li>
<li><a
href="37fc899632"><code>37fc899</code></a>
Fix gen-windows-sys-binding (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1518">#1518</a>)</li>
<li><a
href="de7e8d5f32"><code>de7e8d5</code></a>
Fix parsing of nigthly targets (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1517">#1517</a>)</li>
<li><a
href="ca81dcc1a7"><code>ca81dcc</code></a>
[win][arm64ec] Fix finding assembler and setting is_arm for Arm64EC (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1511">#1511</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.32...cc-v1.2.33">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.32&new-version=1.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-08-18 23:47:12 +00:00
Taym Haddadi
c4d2b63ef1
Implement AbortSignal static abort(reason) (#38746)
Implement AbortSignal static abort(reason)

part of #36936

---------

Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
2025-08-18 21:32:39 +00:00
Jonathan Schwender
25fea1e086
Fix ./mach build --no-default-features (#35922)
Fix build failures when building without default features.

Testing: This was manually tested, but this PR does not add automated
tests of `--no-default-features` to CI.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-08-18 18:40:08 +00:00
Euclid Ye
ec5872992b
webdriver: Reuse JSValue as WebDriverJSValue (#38751)
After #38748, `WebDriverJSValue` is almost same as `JSValue`. Now we
turn "potentially merge into one in the future" into reality. The only
thing we should be cautious is to properly serialize `WebFrame`,
`WebWindow`, `WebElement` for WebDriver.

Testing: No regression. Some error is fixed previously by #38709 which
didn't update test :)
Binary size reduced by 134KB.

---------

Signed-off-by: Euclid Ye <euclid.ye@huawei.com>
2025-08-18 17:38:48 +00:00
Simon Wülker
7471ad7730
fonts: Implement CSS font-variation-settings property for FreeType platforms (#38642)
This change adds support for variable fonts via the
[`font-variation-settings`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-variation-settings)
property.

There are three areas where we need to set the variation values:
* Webrender (`compositor.rs`), for drawing the glyphs
* Harfbuzz (`shaper.rs`), for most shaping tasks
* PlatformFont (`fonts/platform/`), for horizontal advances and kerning

For now, freetype is the only platform shaper that supports variable
fonts. I can't easily test the fonts with non-freetype shapers. Thats
why variable fonts are behind the `layout_variable_fonts_enabled` pref,
which is disabled by default.

<img width="1250" height="710" alt="image"
src="https://github.com/user-attachments/assets/1aee1407-f3a2-42f6-a106-af0443fcd588"
/>

<details><summary>HTML test file</summary>

```html
<style>
@font-face {
  font-family: "Amstelvar VF";
  src: url("https://mdn.github.io/shared-assets/fonts/variable-fonts/AmstelvarAlpha-VF.woff2")
    format("woff2-variations");
  font-weight: 300 900;
  font-stretch: 35% 100%;
  font-style: normal;
  font-display: swap;
}

p {
  font:
    1.2em "Amstelvar VF",
    Georgia,
    serif;
  font-size: 4rem;
  margin: 1rem;
  display: inline-block;
}

.p1 {
  font-variation-settings: "wght" 300;
}

.p2 {
  font-variation-settings: "wght" 625;
}

.p3 {
  font-variation-settings: "wght" 900;
}

</style>
<div>
  <p class="p1">Weight</p>
  <span>(font-variation-settings: "wght" 300)</span>
</div>
<div>
  <p class="p2">Weight</p>
  <span>(font-variation-settings: "wght" 625)</span>
</div>
<div>
  <p class="p3">Weight</p>
  <span>(font-variation-settings: "wght" 900)</span>
</div>
</div>
```
</details>



https://github.com/user-attachments/assets/9e21101a-796a-49fe-b82c-8999d8fa9ee1


Testing: Needs decision on whether we want to enable the pref in CI
Works towards https://github.com/servo/servo/issues/37236

Depends on https://github.com/servo/stylo/pull/230

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-08-18 16:30:14 +00:00
JoeDow
ce16fbce75
script: Mark the entire shadow tree for restyle when its stylesheet is invalidated (#38529)
This change fix this bugs: modify stylesheet of shadow tree does not
take effect if there is no other Dom change within the shadow tree
happens.

Fixes: This change fix some bugs reported by this issue #38211. 
Testing: This fixes some subtests in
`/css/cssom/CSSStyleSheet-constructable.html` and
`/css/cssom/CSSStyleSheet-constructable-disallow-import.tentative.html`,
and make some subtest failed in
`/css/cssom/CSSStyleSheet-constructable-baseURL.html`, because the
`BaseUrl` is not yet supported for `CSSStylesheet`.

Signed-off-by: sharpshooter_pt <ibluegalaxy_taoj@163.com>
2025-08-18 12:48:35 +00:00
Martin Robinson
5c885d61ad
fonts: Have CoreTextFontCache::core_text_font return a PlatformFont (#38758)
This will make it easier in a followup to include the normalized font
variations in the return value. This also make
`PlatformFont::ensure_h_kern_subtable` work on the instance instead of
being a struct method. Finally, all `PlatformFont` methods are combined
into a single impl block.

Testing: This should not change behavior and is thus covered by existing
tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-08-18 12:32:20 +00:00
Martin Robinson
6fdf40dce7
layout: Always build Tag and BaseFragmentInfo with ServoThreadSafeLayoutNode (#38680)
This cleanup makes the interface a bit simpler and prevents problems
where the pseudo-element information is not passed by accident.

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

---------

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

Testing: There are new tidy tests for this change.

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

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

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

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

---------

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

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

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

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

Testing: `./mach test-wpt webidl`

---------

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

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

---------

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

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

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

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

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

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

---------

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

Part of #36258

---------

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

Part of #36258

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

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

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

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

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

---------

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

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

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

---------

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

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
2025-08-17 01:49:38 +00:00