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>
Also implements a conversion for `TrustedHTMLOrNullIsEmptyString`
to `TrustedHTMLOrString` to avoid introducing a separate
`get_trusted_script_compliant_string` for the new type.
Part of #36258
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
`TextRun`s use their parent style to render. Previously, these styles
were cloned and stored directly in the box tree `TextRun` and resulting
`TextFragment`s. This presents a problem for incremental layout.
Wrapping the style in another layer of shared ownership and mutability
will allow updating all `TextFragment`s during repaint-only incremental
layout by simply updating the box tree styles of the original text
parents.
This adds a new set of borrows when accessing text styles, but also
makes it so that during box tree block construction
`InlineFormattingContext`s are created lazily and now
`InlineFormattingContextBuilder::finish` consumes the builder, making
the API make a bit more sense. This should also improve performance of
box tree block construction slightly.
Testing: This should not change observable behavior and thus is covered
by existing WPT tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Add `build-args` input in CI and try_parser job definition so we can
pass own build args to `./mach build`
Testing: There are tests for try parser and I tested CI in my fork.
Fixes: partial fix#36823
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Bumps the objc2-related group with 2 updates:
[objc2-app-kit](https://github.com/madsmtm/objc2) and
[objc2-foundation](https://github.com/madsmtm/objc2).
Updates `objc2-app-kit` from 0.2.2 to 0.3.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="97c2ebaac1"><code>97c2eba</code></a>
Merge pull request <a
href="https://redirect.github.com/madsmtm/objc2/issues/464">#464</a>
from madsmtm/new-versions</li>
<li><a
href="b329dd049f"><code>b329dd0</code></a>
Update Cargo.lock</li>
<li><a
href="8428734b3b"><code>8428734</code></a>
Bump icrate version 0.0.2 -> 0.0.3</li>
<li><a
href="6a7cc09dc3"><code>6a7cc09</code></a>
Bump block2 version 0.2.0-alpha.8 -> 0.2.0</li>
<li><a
href="87d598ebd2"><code>87d598e</code></a>
Bump objc2 version 0.3.0-beta.5 -> 0.4.0</li>
<li><a
href="153d189636"><code>153d189</code></a>
Bump objc2-encode version 2.0.0-pre.4 -> 2.0.0</li>
<li><a
href="699fca319e"><code>699fca3</code></a>
Bump objc-sys version 0.3.0 -> 0.3.1</li>
<li><a
href="0f4a937d58"><code>0f4a937</code></a>
Merge pull request <a
href="https://redirect.github.com/madsmtm/objc2/issues/465">#465</a>
from madsmtm/fix-before-release</li>
<li><a
href="0139798efb"><code>0139798</code></a>
Disable mutation tests on GNUStep (for now)</li>
<li><a
href="72561dd510"><code>72561dd</code></a>
Fix GNUStep CI not running on Foundation</li>
<li>Additional commits viewable in <a
href="https://github.com/madsmtm/objc2/compare/objc2-0.2.2...objc-sys-0.3.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `objc2-foundation` from 0.2.2 to 0.3.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="97c2ebaac1"><code>97c2eba</code></a>
Merge pull request <a
href="https://redirect.github.com/madsmtm/objc2/issues/464">#464</a>
from madsmtm/new-versions</li>
<li><a
href="b329dd049f"><code>b329dd0</code></a>
Update Cargo.lock</li>
<li><a
href="8428734b3b"><code>8428734</code></a>
Bump icrate version 0.0.2 -> 0.0.3</li>
<li><a
href="6a7cc09dc3"><code>6a7cc09</code></a>
Bump block2 version 0.2.0-alpha.8 -> 0.2.0</li>
<li><a
href="87d598ebd2"><code>87d598e</code></a>
Bump objc2 version 0.3.0-beta.5 -> 0.4.0</li>
<li><a
href="153d189636"><code>153d189</code></a>
Bump objc2-encode version 2.0.0-pre.4 -> 2.0.0</li>
<li><a
href="699fca319e"><code>699fca3</code></a>
Bump objc-sys version 0.3.0 -> 0.3.1</li>
<li><a
href="0f4a937d58"><code>0f4a937</code></a>
Merge pull request <a
href="https://redirect.github.com/madsmtm/objc2/issues/465">#465</a>
from madsmtm/fix-before-release</li>
<li><a
href="0139798efb"><code>0139798</code></a>
Disable mutation tests on GNUStep (for now)</li>
<li><a
href="72561dd510"><code>72561dd</code></a>
Fix GNUStep CI not running on Foundation</li>
<li>Additional commits viewable in <a
href="https://github.com/madsmtm/objc2/compare/objc2-0.2.2...objc-sys-0.3.1">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 <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>
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
It was missing the ShA case in content-security-policy.
Part of #36437
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
The label that is displayed inside a `<select>` element is that of the
selected option, or it's text contents if the option does not have a
label. Therefore, we need to update the `<select>` shadow tree when the
contents of the selected option change.
Testing: Covered by existing web platform tests
Fixes https://github.com/servo/servo/issues/36926
Fixes https://github.com/servo/servo/issues/36925
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Unfortunately while it now passes almost all cases in
`tests/wpt/tests/content-security-policy/script-src/nonce-enforce-blocked.html`,
the test in question doesn't pass yet as it requires all cases to be
correct. Here, we still miss the "check for duplicate attributes during
parsing". Since we don't have this information available yet from the
parser, skip this for now.
Part of #36437
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
When the canvas context mode is a placeholder then we shouldn't resize
the context.
Testing: Includes a new test
Fixes: https://github.com/servo/servo/issues/36846
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
`--with-asan` now also will instrument C/C++ code. This also increases
the requirements on the user environment, since a clang compiler with
the same major version as the LLVM version rustc is using must be in
PATH.
ASAN without C/C++ code is IMHO not so interesting, so I'm not sure if
it would be worth adding a separate flag.
Testing: Manual testing with `--with-asan`. I believe we don't run ASAN
in CI yet, although perhaps we should.
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This deletes images from WR when dropping the ImageCacheStore for a
WebView.
Testing: Run `./mach run --enable-experimental-web-platform-features
unsplash.com` and then open `about:memory` in a new tab. On Linux we end
up with ~30MB of WR images. Then close the unsplash.com tab and measure
memory again, it will down to ~1.25MB
Fixes: https://github.com/servo/servo/issues/25927
Signed-off-by: webbeef <me@webbeef.org>