Commit graph

51406 commits

Author SHA1 Message Date
Sebastian C
27c8a899ea
Replace hsts preload list hashmap with an FST (#37015)
This reduces the memory used by the preload list to just 1.9MB. The
total memory savings in HSTS from
pre-103cbed928
is now 62MB, or 96%. And in terms of total resident memory is a 7.5%
reduction. The DAFSA/DAWG used by Firefox is 1.1MB so there could be
additional gains available but this seems like the best option based on
maintained libraries available (I could not find a good maintained
library for DAFSAs in Rust).

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

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

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

Testing: Updated unit tests
Fixes: #25929

---------

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


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

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

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

---

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

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

</details>

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

Testing: Checked about:memory on servo.org

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

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

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

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

Testing: There are tests for these changes.

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

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

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

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

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

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

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


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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 10:00:33 +00:00
Euclid Ye
7ac302f255
Fix WebDriverSession::input_cancel_list related logic (#37010)
- Remove incorrect addition to `input_cancel_list` in
`dispatch_keyup_action`
- For `KeyDown` and `PointerDown`, delay the addition to
`input_cancel_list` until "Dispatching action algorithm" is done to
match the spec. Previously the addition is done before notifying
constellation. Moreover, this makes sure that `pointerUp` is appended
even if `dispatch_pointerdown_action` returns early, so that [Release
Actions](https://w3c.github.io/webdriver/#release-actions) always have
the correct order.
- Remove incorrect addition to `input_cancel_list` in
`dispatch_pointerup_action`. This wrongly added "pointerdown" in
[Release Actions](https://w3c.github.io/webdriver/#release-actions)
- Reduce code duplication
- Add TODO for PointerInputState::subtype and pointerID

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

cc @xiaochengh @jdm @PotatoCP @longvatrong111

---------

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

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

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

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

---------

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

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

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

---------

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

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

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

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

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

Part of #4577

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

Testing: Existing tests in CI.

---------

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


Testing: Static docs file without dynamic effects.

Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
2025-05-16 21:27:42 +00:00
dependabot[bot]
3cfdf17d22
build(deps): bump cc from 1.2.22 to 1.2.23 (#37030)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.22 to 1.2.23.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/releases">cc's
releases</a>.</em></p>
<blockquote>
<h2>cc-v1.2.23</h2>
<h3>Other</h3>
<ul>
<li>support &quot;vxworks&quot; and &quot;nto&quot; OSes on
<code>get_base_archiver_variant</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1456">#1456</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.22...cc-v1.2.23">1.2.23</a>
- 2025-05-16</h2>
<h3>Other</h3>
<ul>
<li>support &quot;vxworks&quot; and &quot;nto&quot; OSes on
<code>get_base_archiver_variant</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1456">#1456</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2e3a7a5b8b"><code>2e3a7a5</code></a>
chore: release v1.2.23 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1470">#1470</a>)</li>
<li><a
href="8ee6782817"><code>8ee6782</code></a>
support &quot;vxworks&quot; and &quot;nto&quot; OSes on
<code>get_base_archiver_variant</code> (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1456">#1456</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.22...cc-v1.2.23">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-16 19:58:44 +00:00
Oriol Brufau
78f3f455dc
layout: Fix align-content on stretched row flex containers (#37024)
Fixes a regression from #36973, which didn't take into account that
stretching flex items affects their final block size when the cross axis
is the block axis.

Testing: Adding new test
Fixes: #37023

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

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

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

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

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

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

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

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

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


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-15 17:43:53 +00:00
dependabot[bot]
8fa52e17f5
build(deps): bump errno from 0.3.11 to 0.3.12 (#37017)
Bumps [errno](https://github.com/lambda-fairy/rust-errno) from 0.3.11 to
0.3.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lambda-fairy/rust-errno/releases">errno's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.12</h2>
<ul>
<li>Issue a better error message if the target is unsupported.
<a
href="https://redirect.github.com/lambda-fairy/rust-errno/pull/110">#110</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lambda-fairy/rust-errno/blob/main/CHANGELOG.md">errno's
changelog</a>.</em></p>
<blockquote>
<h1>[0.3.12] - 2025-05-12</h1>
<ul>
<li>Issue a better error message if the target is unsupported.
<a
href="https://redirect.github.com/lambda-fairy/rust-errno/pull/110">#110</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eb75f22d05"><code>eb75f22</code></a>
Release 0.3.12. (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/111">#111</a>)</li>
<li><a
href="a9bd71ea31"><code>a9bd71e</code></a>
Issue a better error message if the target is unsupported. (<a
href="https://redirect.github.com/lambda-fairy/rust-errno/issues/110">#110</a>)</li>
<li>See full diff in <a
href="https://github.com/lambda-fairy/rust-errno/compare/v0.3.11...v0.3.12">compare
view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-15 17:31:23 +00:00
Simon Wülker
b100a98e1d
Fully support <input type=color> (#36992)
This change adds a shadow-tree widget for `<input type=color>` elements.
It also involves some changes to the way layout interacts with the DOM,
because currently all `input` and `textarea` elements are rendered as
plain text and their descendants are ignored. This obviously doesn't
work for `<input type={color, date, range, etc}>`.


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

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

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

</details>



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

---------

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

Testing: This change compiles and that's good enough

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

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

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

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

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-15 07:57:07 +00:00
Sebastian C
103cbed928
HSTS list memory reduction and fixes (#37000)
Combines the 2 time values in the HSTS entry with a single timestamp for
expiration. (9MB savings per list)

The previous time representations were based on system boot time which
meant that the `hsts_list.json` round trip across boots resulted in
completely erroneous expiration times.

The preload list is now initialized separately from the public and
private lists and shared by both, cutting memory use in half.

Overall takes memory use from 64MB for HSTS to 24MB.

Expired HSTS entries are now removed from the list when updating an
entry and subdomains can be added to a list if the superdomain does not
already include them.

Testing: New unit tests added
Related to #25929 but the next step would be to attempt to use
https://github.com/BurntSushi/fst Which will be explored in a follow-up.

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-05-15 04:06:57 +00:00
dependabot[bot]
c26877a79d
build(deps): bump truetype from 0.47.8 to 0.47.10 (#37005)
Bumps [truetype](https://github.com/bodoni/truetype) from 0.47.8 to
0.47.10.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/bodoni/truetype/commits">compare view</a></li>
</ul>
</details>
<br />


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

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-15 01:53:33 +00:00
Oriol Brufau
1cceb5f6a0
layout: Inform child layout about final block size (#36980)
Before this patch it wasn't possibly to simultaneously support intrinsic
min/max sizes and content alignment in the block axis. For example,
block containers only support the former, and flex containers only the
latter.

The reason is that the final block size was decided by the parent
formatting context *after* performing layout, while content alignment is
performed *during* layout.

To address the problem, this introduces the struct `LazySize`, which
contains the data to resolve the final size, except for the intrinsic
size. Thus the parent formatting context can first create a `LazySize`,
then pass it to the child layout so that (if necessary) it can compute
the final size once the intrinsic one is known, and after layout the
parent formatting context uses it to actually size the child.

This PR just provides the functionality that will be used by follow-ups,
but at this point no layout is using the `LazySize` provided by the
parent, so there shouldn't be any behavior change yet.

Testing: Unnecessary (no behavior change)
This is part of #36981 and #36982

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-14 20:35:49 +00:00
Oriol Brufau
1499e2a874
Remove some references to layout 2013 vs layout 2020 (#37007)
We no longer have both layout systems.

Testing: not needed (no behavior change)

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-14 19:53:48 +00:00
Tim van der Lippe
a24fce3ae7
Implement inner slot for cryptographic nonce (#36965)
Also update the `html/dom/reflection-metadata.html` test
to handle the case where `nonce` does not reflect back
to the attribute after an IDL change.

Part of https://github.com/servo/servo/issues/4577
Fixes https://github.com/web-platform-tests/wpt/issues/43286

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-05-14 10:21:21 +00:00
webbeef
3aff272e14
chore: update webdriver to 0.53 (#37001)
Updates webdriver to the current version.

Testing: No breakage of CI tests

Signed-off-by: webbeef <me@webbeef.org>
2025-05-14 08:22:40 +00:00
sagudev
fdb9c0af12
canvas: Move generic implementations into GenericPathBuilder trait (#36999)
There is no reason to require this impls, because we already have
written them in generic way.

Testing: Just refactoring, but there are WPT tests

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-05-14 03:51:56 +00:00
Steven Novaryo
a572bf1191
layout: Propagate specified info for flex item (#36993)
We should propagate specified info for flex items. This will prevent the
loss of it for boxes that have this info (e.g. table or grid).

Testing: Adding new WPT tests

---------

Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-05-13 21:10:40 +00:00
Tim van der Lippe
c985c08737
Implement iframe.srcdoc trusted type sink (#36960)
Part of https://github.com/servo/servo/issues/36258

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2025-05-13 21:07:13 +00:00
dependabot[bot]
9f6a40e6aa
build(deps): bump the gstreamer-related group with 17 updates (#36996)
Bumps the gstreamer-related group with 17 updates:

| Package | From | To |
| --- | --- | --- |
| gstreamer | `0.23.5` | `0.23.6` |
| gstreamer-base | `0.23.5` | `0.23.6` |
| gstreamer-gl | `0.23.5` | `0.23.6` |
| gstreamer-gl-sys | `0.23.5` | `0.23.6` |
| gstreamer-sys | `0.23.5` | `0.23.6` |
| gstreamer-video | `0.23.5` | `0.23.6` |
| [gio-sys](https://github.com/gtk-rs/gtk-rs-core) | `0.20.9` |
`0.20.10` |
| [glib](https://github.com/gtk-rs/gtk-rs-core) | `0.20.9` | `0.20.10` |
| [glib-macros](https://github.com/gtk-rs/gtk-rs-core) | `0.20.7` |
`0.20.10` |
| [glib-sys](https://github.com/gtk-rs/gtk-rs-core) | `0.20.9` |
`0.20.10` |
| [gobject-sys](https://github.com/gtk-rs/gtk-rs-core) | `0.20.9` |
`0.20.10` |
| gstreamer-audio | `0.23.5` | `0.23.6` |
| gstreamer-audio-sys | `0.23.5` | `0.23.6` |
| gstreamer-base-sys | `0.23.5` | `0.23.6` |
| gstreamer-gl-egl | `0.23.5` | `0.23.6` |
| gstreamer-gl-egl-sys | `0.23.5` | `0.23.6` |
| gstreamer-video-sys | `0.23.5` | `0.23.6` |

Updates `gstreamer` from 0.23.5 to 0.23.6

Updates `gstreamer-base` from 0.23.5 to 0.23.6

Updates `gstreamer-gl` from 0.23.5 to 0.23.6

Updates `gstreamer-gl-sys` from 0.23.5 to 0.23.6

Updates `gstreamer-sys` from 0.23.5 to 0.23.6

Updates `gstreamer-video` from 0.23.5 to 0.23.6

Updates `gio-sys` from 0.20.9 to 0.20.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gtk-rs/gtk-rs-core/releases">gio-sys's
releases</a>.</em></p>
<blockquote>
<h2>0.20.10</h2>
<pre><code>Bilal Elmoussaoui:
      ignore typ typo
      gobject: Work around wrongly added v2_82 feature
      glib: Implement Deref/DerefMut for ThreadGuard
<p>David Hewitt:<br />
gio: manually implement content_type_guess</p>
<p>Leo Schaefer:<br />
Fix bug in bindings of shape_full and shape_with_flags<br />
Use as_ptr and bring shape_full and shape_with_flags into the same
format</p>
<p>Sebastian Dröge:<br />
Update gir<br />
Update gir-files<br />
gio: Ignore
<code>g_dbus_connection_register_object_with_closures2()</code> for
now<br />
glib: Add bindings for <code>g_intern_string()</code> and
<code>g_intern_static_string()</code> to <code>GStr</code><br />
graphene: Add some <code>// rustdoc-stripper-ignore-next</code><br />
glib: Add From&lt;AsRef&lt;str&gt;&gt; impl for GStringPtr<br />
pango: Implement <code>pango_shape()</code> bindings manually and ignore
<code>pango_shape_item()</code> for now<br />
cairo: Pass a mutable reference when we expect the function to mutate
the value<br />
Fix new clippy 1.86 warnings<br />
ci: Update to Ubuntu 24.04 for building the image<br />
ci: Install some more development packages for the image build<br />
Add 2.86 glib/gio version features<br />
Regenerate with latest gir / gir-files<br />
Update Cargo.lock<br />
Update version to 0.20.10</p>
<p>Sebastian Wiesner:<br />
Wrap IntoFuture around Cancellable::future<br />
Derive Debug and Clone for variant DictEntry</p>
<p>Wesley Moore:<br />
cairo: Fix some typos in Error Display impl<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7a02e4f0e7"><code>7a02e4f</code></a>
Update version to 0.20.10</li>
<li><a
href="cb02e40c6c"><code>cb02e40</code></a>
Merge pull request <a
href="https://redirect.github.com/gtk-rs/gtk-rs-core/issues/1718">#1718</a>
from sdroege/0.20-backports</li>
<li><a
href="b65960a8ef"><code>b65960a</code></a>
Update Cargo.lock</li>
<li><a
href="f1566fe922"><code>f1566fe</code></a>
gio: manually implement content_type_guess</li>
<li><a
href="4fd1980d5f"><code>4fd1980</code></a>
Regenerate with latest gir / gir-files</li>
<li><a
href="e688a10cec"><code>e688a10</code></a>
cairo: Fix some typos in Error Display impl</li>
<li><a
href="be02ba38ff"><code>be02ba3</code></a>
glib: Implement Deref/DerefMut for ThreadGuard</li>
<li><a
href="539fc35aff"><code>539fc35</code></a>
gobject: Work around wrongly added v2_82 feature</li>
<li><a
href="7efee6049e"><code>7efee60</code></a>
Derive Debug and Clone for variant DictEntry</li>
<li><a
href="88471949a7"><code>8847194</code></a>
Wrap IntoFuture around Cancellable::future</li>
<li>Additional commits viewable in <a
href="https://github.com/gtk-rs/gtk-rs-core/compare/0.20.9...0.20.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `glib` from 0.20.9 to 0.20.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gtk-rs/gtk-rs-core/releases">glib's
releases</a>.</em></p>
<blockquote>
<h2>0.20.10</h2>
<pre><code>Bilal Elmoussaoui:
      ignore typ typo
      gobject: Work around wrongly added v2_82 feature
      glib: Implement Deref/DerefMut for ThreadGuard
<p>David Hewitt:<br />
gio: manually implement content_type_guess</p>
<p>Leo Schaefer:<br />
Fix bug in bindings of shape_full and shape_with_flags<br />
Use as_ptr and bring shape_full and shape_with_flags into the same
format</p>
<p>Sebastian Dröge:<br />
Update gir<br />
Update gir-files<br />
gio: Ignore
<code>g_dbus_connection_register_object_with_closures2()</code> for
now<br />
glib: Add bindings for <code>g_intern_string()</code> and
<code>g_intern_static_string()</code> to <code>GStr</code><br />
graphene: Add some <code>// rustdoc-stripper-ignore-next</code><br />
glib: Add From&lt;AsRef&lt;str&gt;&gt; impl for GStringPtr<br />
pango: Implement <code>pango_shape()</code> bindings manually and ignore
<code>pango_shape_item()</code> for now<br />
cairo: Pass a mutable reference when we expect the function to mutate
the value<br />
Fix new clippy 1.86 warnings<br />
ci: Update to Ubuntu 24.04 for building the image<br />
ci: Install some more development packages for the image build<br />
Add 2.86 glib/gio version features<br />
Regenerate with latest gir / gir-files<br />
Update Cargo.lock<br />
Update version to 0.20.10</p>
<p>Sebastian Wiesner:<br />
Wrap IntoFuture around Cancellable::future<br />
Derive Debug and Clone for variant DictEntry</p>
<p>Wesley Moore:<br />
cairo: Fix some typos in Error Display impl<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7a02e4f0e7"><code>7a02e4f</code></a>
Update version to 0.20.10</li>
<li><a
href="cb02e40c6c"><code>cb02e40</code></a>
Merge pull request <a
href="https://redirect.github.com/gtk-rs/gtk-rs-core/issues/1718">#1718</a>
from sdroege/0.20-backports</li>
<li><a
href="b65960a8ef"><code>b65960a</code></a>
Update Cargo.lock</li>
<li><a
href="f1566fe922"><code>f1566fe</code></a>
gio: manually implement content_type_guess</li>
<li><a
href="4fd1980d5f"><code>4fd1980</code></a>
Regenerate with latest gir / gir-files</li>
<li><a
href="e688a10cec"><code>e688a10</code></a>
cairo: Fix some typos in Error Display impl</li>
<li><a
href="be02ba38ff"><code>be02ba3</code></a>
glib: Implement Deref/DerefMut for ThreadGuard</li>
<li><a
href="539fc35aff"><code>539fc35</code></a>
gobject: Work around wrongly added v2_82 feature</li>
<li><a
href="7efee6049e"><code>7efee60</code></a>
Derive Debug and Clone for variant DictEntry</li>
<li><a
href="88471949a7"><code>8847194</code></a>
Wrap IntoFuture around Cancellable::future</li>
<li>Additional commits viewable in <a
href="https://github.com/gtk-rs/gtk-rs-core/compare/0.20.9...0.20.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `glib-macros` from 0.20.7 to 0.20.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gtk-rs/gtk-rs-core/releases">glib-macros's
releases</a>.</em></p>
<blockquote>
<h2>0.20.10</h2>
<pre><code>Bilal Elmoussaoui:
      ignore typ typo
      gobject: Work around wrongly added v2_82 feature
      glib: Implement Deref/DerefMut for ThreadGuard
<p>David Hewitt:
gio: manually implement content_type_guess</p>
<p>Leo Schaefer:
Fix bug in bindings of shape_full and shape_with_flags
Use as_ptr and bring shape_full and shape_with_flags into the same
format</p>
<p>Sebastian Dröge:
Update gir
Update gir-files
gio: Ignore
<code>g_dbus_connection_register_object_with_closures2()</code> for now
glib: Add bindings for <code>g_intern_string()</code> and
<code>g_intern_static_string()</code> to <code>GStr</code>
graphene: Add some <code>// rustdoc-stripper-ignore-next</code>
glib: Add From&lt;AsRef&lt;str&gt;&gt; impl for GStringPtr
pango: Implement <code>pango_shape()</code> bindings manually and ignore
<code>pango_shape_item()</code> for now
cairo: Pass a mutable reference when we expect the function to mutate
the value
Fix new clippy 1.86 warnings
ci: Update to Ubuntu 24.04 for building the image
ci: Install some more development packages for the image build
Add 2.86 glib/gio version features
Regenerate with latest gir / gir-files
Update Cargo.lock
Update version to 0.20.10</p>
<p>Sebastian Wiesner:
Wrap IntoFuture around Cancellable::future
Derive Debug and Clone for variant DictEntry</p>
<p>Wesley Moore:
cairo: Fix some typos in Error Display impl
</code></pre></p>
<h2>0.20.9</h2>
<pre><code>Christopher Head (2):
      Fix incorrect documentation
      Re-export CancelledHandlerId
<p>Philipp Jungkamp:
glib: Implement ToGlibContainerFromSlice for CStr and CString
gio: Use manual <code>env: &amp;amp;[OsString]</code> parameter for
SubprocessLauncher::set_environ</p>
<p>Sebastian Dröge:
&lt;/tr&gt;&lt;/table&gt;
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7a02e4f0e7"><code>7a02e4f</code></a>
Update version to 0.20.10</li>
<li><a
href="cb02e40c6c"><code>cb02e40</code></a>
Merge pull request <a
href="https://redirect.github.com/gtk-rs/gtk-rs-core/issues/1718">#1718</a>
from sdroege/0.20-backports</li>
<li><a
href="b65960a8ef"><code>b65960a</code></a>
Update Cargo.lock</li>
<li><a
href="f1566fe922"><code>f1566fe</code></a>
gio: manually implement content_type_guess</li>
<li><a
href="4fd1980d5f"><code>4fd1980</code></a>
Regenerate with latest gir / gir-files</li>
<li><a
href="e688a10cec"><code>e688a10</code></a>
cairo: Fix some typos in Error Display impl</li>
<li><a
href="be02ba38ff"><code>be02ba3</code></a>
glib: Implement Deref/DerefMut for ThreadGuard</li>
<li><a
href="539fc35aff"><code>539fc35</code></a>
gobject: Work around wrongly added v2_82 feature</li>
<li><a
href="7efee6049e"><code>7efee60</code></a>
Derive Debug and Clone for variant DictEntry</li>
<li><a
href="88471949a7"><code>8847194</code></a>
Wrap IntoFuture around Cancellable::future</li>
<li>Additional commits viewable in <a
href="https://github.com/gtk-rs/gtk-rs-core/compare/0.20.7...0.20.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `glib-sys` from 0.20.9 to 0.20.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gtk-rs/gtk-rs-core/releases">glib-sys's
releases</a>.</em></p>
<blockquote>
<h2>0.20.10</h2>
<pre><code>Bilal Elmoussaoui:
      ignore typ typo
      gobject: Work around wrongly added v2_82 feature
      glib: Implement Deref/DerefMut for ThreadGuard
<p>David Hewitt:<br />
gio: manually implement content_type_guess</p>
<p>Leo Schaefer:<br />
Fix bug in bindings of shape_full and shape_with_flags<br />
Use as_ptr and bring shape_full and shape_with_flags into the same
format</p>
<p>Sebastian Dröge:<br />
Update gir<br />
Update gir-files<br />
gio: Ignore
<code>g_dbus_connection_register_object_with_closures2()</code> for
now<br />
glib: Add bindings for <code>g_intern_string()</code> and
<code>g_intern_static_string()</code> to <code>GStr</code><br />
graphene: Add some <code>// rustdoc-stripper-ignore-next</code><br />
glib: Add From&lt;AsRef&lt;str&gt;&gt; impl for GStringPtr<br />
pango: Implement <code>pango_shape()</code> bindings manually and ignore
<code>pango_shape_item()</code> for now<br />
cairo: Pass a mutable reference when we expect the function to mutate
the value<br />
Fix new clippy 1.86 warnings<br />
ci: Update to Ubuntu 24.04 for building the image<br />
ci: Install some more development packages for the image build<br />
Add 2.86 glib/gio version features<br />
Regenerate with latest gir / gir-files<br />
Update Cargo.lock<br />
Update version to 0.20.10</p>
<p>Sebastian Wiesner:<br />
Wrap IntoFuture around Cancellable::future<br />
Derive Debug and Clone for variant DictEntry</p>
<p>Wesley Moore:<br />
cairo: Fix some typos in Error Display impl<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7a02e4f0e7"><code>7a02e4f</code></a>
Update version to 0.20.10</li>
<li><a
href="cb02e40c6c"><code>cb02e40</code></a>
Merge pull request <a
href="https://redirect.github.com/gtk-rs/gtk-rs-core/issues/1718">#1718</a>
from sdroege/0.20-backports</li>
<li><a
href="b65960a8ef"><code>b65960a</code></a>
Update Cargo.lock</li>
<li><a
href="f1566fe922"><code>f1566fe</code></a>
gio: manually implement content_type_guess</li>
<li><a
href="4fd1980d5f"><code>4fd1980</code></a>
Regenerate with latest gir / gir-files</li>
<li><a
href="e688a10cec"><code>e688a10</code></a>
cairo: Fix some typos in Error Display impl</li>
<li><a
href="be02ba38ff"><code>be02ba3</code></a>
glib: Implement Deref/DerefMut for ThreadGuard</li>
<li><a
href="539fc35aff"><code>539fc35</code></a>
gobject: Work around wrongly added v2_82 feature</li>
<li><a
href="7efee6049e"><code>7efee60</code></a>
Derive Debug and Clone for variant DictEntry</li>
<li><a
href="88471949a7"><code>8847194</code></a>
Wrap IntoFuture around Cancellable::future</li>
<li>Additional commits viewable in <a
href="https://github.com/gtk-rs/gtk-rs-core/compare/0.20.9...0.20.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `gobject-sys` from 0.20.9 to 0.20.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gtk-rs/gtk-rs-core/releases">gobject-sys's
releases</a>.</em></p>
<blockquote>
<h2>0.20.10</h2>
<pre><code>Bilal Elmoussaoui:
      ignore typ typo
      gobject: Work around wrongly added v2_82 feature
      glib: Implement Deref/DerefMut for ThreadGuard
<p>David Hewitt:<br />
gio: manually implement content_type_guess</p>
<p>Leo Schaefer:<br />
Fix bug in bindings of shape_full and shape_with_flags<br />
Use as_ptr and bring shape_full and shape_with_flags into the same
format</p>
<p>Sebastian Dröge:<br />
Update gir<br />
Update gir-files<br />
gio: Ignore
<code>g_dbus_connection_register_object_with_closures2()</code> for
now<br />
glib: Add bindings for <code>g_intern_string()</code> and
<code>g_intern_static_string()</code> to <code>GStr</code><br />
graphene: Add some <code>// rustdoc-stripper-ignore-next</code><br />
glib: Add From&lt;AsRef&lt;str&gt;&gt; impl for GStringPtr<br />
pango: Implement <code>pango_shape()</code> bindings manually and ignore
<code>pango_shape_item()</code> for now<br />
cairo: Pass a mutable reference when we expect the function to mutate
the value<br />
Fix new clippy 1.86 warnings<br />
ci: Update to Ubuntu 24.04 for building the image<br />
ci: Install some more development packages for the image build<br />
Add 2.86 glib/gio version features<br />
Regenerate with latest gir / gir-files<br />
Update Cargo.lock<br />
Update version to 0.20.10</p>
<p>Sebastian Wiesner:<br />
Wrap IntoFuture around Cancellable::future<br />
Derive Debug and Clone for variant DictEntry</p>
<p>Wesley Moore:<br />
cairo: Fix some typos in Error Display impl<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7a02e4f0e7"><code>7a02e4f</code></a>
Update version to 0.20.10</li>
<li><a
href="cb02e40c6c"><code>cb02e40</code></a>
Merge pull request <a
href="https://redirect.github.com/gtk-rs/gtk-rs-core/issues/1718">#1718</a>
from sdroege/0.20-backports</li>
<li><a
href="b65960a8ef"><code>b65960a</code></a>
Update Cargo.lock</li>
<li><a
href="f1566fe922"><code>f1566fe</code></a>
gio: manually implement content_type_guess</li>
<li><a
href="4fd1980d5f"><code>4fd1980</code></a>
Regenerate with latest gir / gir-files</li>
<li><a
href="e688a10cec"><code>e688a10</code></a>
cairo: Fix some typos in Error Display impl</li>
<li><a
href="be02ba38ff"><code>be02ba3</code></a>
glib: Implement Deref/DerefMut for ThreadGuard</li>
<li><a
href="539fc35aff"><code>539fc35</code></a>
gobject: Work around wrongly added v2_82 feature</li>
<li><a
href="7efee6049e"><code>7efee60</code></a>
Derive Debug and Clone for variant DictEntry</li>
<li><a
href="88471949a7"><code>8847194</code></a>
Wrap IntoFuture around Cancellable::future</li>
<li>Additional commits viewable in <a
href="https://github.com/gtk-rs/gtk-rs-core/compare/0.20.9...0.20.10">compare
view</a></li>
</ul>
</details>
<br />

Updates `gstreamer-audio` from 0.23.5 to 0.23.6

Updates `gstreamer-audio-sys` from 0.23.5 to 0.23.6

Updates `gstreamer-base-sys` from 0.23.5 to 0.23.6

Updates `gstreamer-gl-egl` from 0.23.5 to 0.23.6

Updates `gstreamer-gl-egl-sys` from 0.23.5 to 0.23.6

Updates `gstreamer-video-sys` from 0.23.5 to 0.23.6


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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-13 16:58:25 +00:00
Narfinger
991be359a3
libservo: Allow embedders to execute JavaScript scripts via the API (#35720)
This change adds a new `WebView` API `evaluate_javascript()`, which
allows embedders to
execute JavaScript code and wait for a reply asynchronously. Ongoing
script execution is
tracked by a libservo `JavaScriptEvaluator` struct, which maps an id to
the callback passed
to the `evaluate_javascript()` method. The id is used to track the
script and its execution
through the other parts of Servo.

Testing: This changes includes `WebView` unit tests.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-05-13 12:54:18 +00:00
Kenzie Raditya Tirtarahardja
91c4c7b998
Fix origin relative coordinate for wheel scroll and refactoring (#36985)
- Wheel scroll action can get coordinates relative to an element origin
([previously](https://github.com/servo/servo/pull/36744) only
implemented for viewport).
- Extract the element coordinate into a function

Testing: Partially
`tests/wpt/tests/infrastructure/testdriver/actions/wheelScroll.html`,
but we still have synchronization problem. You can try to add sleep in
the test to see OK result.

cc: @xiaochengh @longvatrong111 @yezhizhen

Signed-off-by: PotatoCP <kenzieradityatirtarahardja.18@gmail.com>
Co-authored-by: PotatoCP <kenzieradityatirtarahardja.18@gmail.com>
2025-05-13 10:46:27 +00:00
Andrei Volykhin
6468734aea
svg: Add mock SVGImageElement interface (#36975)
Add mock SVGImageElement interface to fix TIMEOUT WPT tests
which are related to ImageBitmap (html/canvas/*).
https://svgwg.org/svg2-draft/embedded.html#InterfaceSVGImageElement

Rationality of this change to fire event "error" on any attempt to fetch
image resource on href attribute change to not block WPT tests
execution.

Some WPT tests use the legacy namespace attribute "xlink:href", so
support for it was added to source code.
https://svgwg.org/svg2-draft/linking.html#XLinkHrefAttribute
 - setAttributeNS("http://www.w3.org/1999/xlink", 'xlink:href', src);

Testing: Covered by existed WPT tests
 - fetch/metadata/generated/svg-image*
 - html/canvas/element/manual/*
 - html/dom/idlharness.https.html
 - html/semantics/embedded-content/the-canvas-element/*
 - html/webappapis/scripting/events/event-handler-all-global-events.html
 - mozilla/interfaces.https.html

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

Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
2025-05-13 10:43:10 +00:00
Euclid Ye
e4f62d5c16
Remove duplicate click event in simulate_mouse_click (#36957)
After `InputEvent::Touch` processed by Script, it sends
`TouchEventProcessed` back to Constellation, which goes through hit-test
etc. and loops back to Script again. However,
`WebViewRenderer::simulate_mouse_click` should not send
`MouseButtonAction::Click` due to #36413

Testing: Manually tested by converting mouse to touch

cc @jdm @xiaochengh

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-05-13 10:25:09 +00:00
dependabot[bot]
bee491b0ff
build(deps): bump clap from 4.5.37 to 4.5.38 (#36984)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.37 to 4.5.38.
<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.38</h2>
<h2>[4.5.38] - 2025-05-11</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> When showing aliases, include leading
<code>--</code> or <code>-</code></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.38] - 2025-05-11</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> When showing aliases, include leading
<code>--</code> or <code>-</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2920fb082c"><code>2920fb0</code></a>
chore: Release</li>
<li><a
href="8902627c2b"><code>8902627</code></a>
docs: Update changelog</li>
<li><a
href="79d696f925"><code>79d696f</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5813">#5813</a>
from epage/ignore</li>
<li><a
href="479df35abd"><code>479df35</code></a>
fix(parser): Fill in defaults on ignored error</li>
<li><a
href="a1d69ca824"><code>a1d69ca</code></a>
refactor(parser): Split up parsing from post-processing</li>
<li><a
href="6827841930"><code>6827841</code></a>
test(parser): Show bad ignore_errors defaulting case</li>
<li><a
href="76d0049330"><code>76d0049</code></a>
test(parser): Verify defaulting on errors</li>
<li><a
href="3f5c05ce38"><code>3f5c05c</code></a>
test(parser): Ensure we are actually testing ignore_errors</li>
<li><a
href="ba4745dd11"><code>ba4745d</code></a>
chore(ci): Fix use of permissions</li>
<li><a
href="22944b4c35"><code>22944b4</code></a>
chore(ci): Use matrix for tracking the runner</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.37...clap_complete-v4.5.38">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.37&new-version=4.5.38)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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

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

---

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

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 17:48:19 +00:00
dependabot[bot]
2a0867ec25
build(deps): bump libloading from 0.8.6 to 0.8.7 (#36983)
Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.6
to 0.8.7.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2fe04f2bc8"><code>2fe04f2</code></a>
ci: test *-gnullvm instead of *-gnu</li>
<li><a
href="e25379cf5b"><code>e25379c</code></a>
ci: attempt to fix mingw test failures</li>
<li><a
href="5e033828b0"><code>5e03382</code></a>
release 0.8.7</li>
<li><a
href="fe29b71230"><code>fe29b71</code></a>
ci: add msys2 path to make gcc find the right ld</li>
<li><a
href="76a62e0f28"><code>76a62e0</code></a>
ci: remove TARGET env for cygwin</li>
<li><a
href="20139d9c64"><code>20139d9</code></a>
fix: specify cygwin linker by absolute path</li>
<li><a
href="5cf440d661"><code>5cf440d</code></a>
fix: add cygwin as unexpected cfg</li>
<li><a
href="efdd67675b"><code>efdd676</code></a>
ci: fix rust-src and use env vars</li>
<li><a
href="12621da6c5"><code>12621da</code></a>
ci: add cygwin test on MSYS2</li>
<li><a
href="b264a11dc7"><code>b264a11</code></a>
feat: add cygwin support</li>
<li>Additional commits viewable in <a
href="https://github.com/nagisa/rust_libloading/compare/0.8.6...0.8.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libloading&package-manager=cargo&previous-version=0.8.6&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-05-12 17:38:30 +00:00
Martin Robinson
8808f9a468
layout: Add a repaint-only incremental layout mode (#36978)
This change adds the simplest kind of incremental layout. When Servo
detects that all style changes only require a repaint, only run stacking
context tree and WebRender display list generation. This means that
these kind of restyles do not need a re-layout. Instead, the existing
box and fragment trees will be used and the styles of damaged nodes will
be updated in their box and fragment tree nodes.

This requires a new style repair DOM traversal for nodes that have had
their style damaged. In addition, careful accounting of all the places
where we store style must happen in order ot update those styles.

Testing: This is covered by existing WPT tests as it should not change
observable behavior.

We have created a test case which shows a 50% speedup when run
in Servo, even though there still a long way to go to match the speed
of other browsers:
https://gist.github.com/mrobinson/44ec87d028c0198917a7715a06dd98a0

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-05-12 17:03:50 +00:00
Oriol Brufau
51fa6cdcb6
layout: Split AbsoluteAxisSolver::solve() into different methods (#36970)
Abspos layout used to solve sizing and margins simultaneously. This
patch refactors the logic to solve them separately, resulting in simpler
code.

Testing: Unneeded (no change in behavior)

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-05-12 16:30:53 +00:00
Narfinger
bbb2b82aee
Use servoshell custom logging domain for OHOS workfloew (#36979)
Use the introduced logging domain on OHOS to get the log on the
workflow. This improves the reliability of getting the logs if
servoshell crashed.

Testing: This was tested on the CI Runner

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-05-12 16:03:06 +00:00
Taym Haddadi
62569979ff
Make transform stream transferrable (#36905)
Part of https://github.com/servo/servo/issues/34676

#36739 needs to be merged first.

---------

Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
2025-05-12 16:02:06 +00:00
Ngo Iok Ui (Wu Yu Wei)
aa4ad0f2be
fix: ReadableStream::get_in_memory_bytes too large (#36914)
Fix a IPC hang due to `ReadableStream::get_in_memory_bytes` could return
really huge chunk.

Testing: WPT on ReadableStream should pass
Fixes: IPC hang when transferring huge chunk bytes from `ReadableStream`


cc @gterzian @Taym95 since this is also related to ReadableStream.

---------

Signed-off-by: Yu Wei Wu <yuweiwu@YunoMacBook-Air.local>
Co-authored-by: Yu Wei Wu <yuweiwu@YunoMacBook-Air.local>
2025-05-12 16:00:14 +00:00
Gae24
c37d5572fd
codegen: use FromJSValConvertible trait for Promise (#36966)
Before it was only used when converting to a `Record`, using it all the
times allow us to remove two methods.
Plus added a helper method in CodegenRust.py to avoid repeated code.

Testing: a successful build and existing tests should cover the changes.
Fixes: #36410

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-05-12 11:05:46 +00:00