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>
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> ->
<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 -> 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 />
[](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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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 "vxworks" and "nto" 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 "vxworks" and "nto" 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 "vxworks" and "nto" 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 />
[](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>
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>
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>
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>
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>
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 />
[](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>
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}>`.

<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>
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>
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>
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>
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>
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 />
[](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>
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>
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>
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>
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<AsRef<str>> 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<AsRef<str>> 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<AsRef<str>> 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;[OsString]</code> parameter for
SubprocessLauncher::set_environ</p>
<p>Sebastian Dröge:
</tr></table>
</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<AsRef<str>> 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<AsRef<str>> 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>
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>
- 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>
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>
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>
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 />
[](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>
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 />
[](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>
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>
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>
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>
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>
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>