As a follow-up to the recent introduction of `script.src`
as trusted sink, this PR refactors machinery to also
support `TrustedScript`. In doing so, all trusted sinks
in `HTMLScriptElement` are now covered.
Instead of calling the callbacks in `policy.createX`,
we now have a `TrustedType` enum that specifies which callback
to invoke. Unfortunately we still have the `USVString` vs
`DOMString` problem, which is why we need to `.map` twice
to retrieve the backing `String` and avoid two different
types.
Additionally, I saw that `script.text` should have called
the "String replace all" algorithm rather than setting the
child contents. So that's also now fixed.
Part of #36258
Requires servo/html5ever#608
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Also update a WPT test to fail-fast if the iframe incorrectly
evaluates the `eval`. Before, it would run into a timeout if
the implementation is correct. Now we reject the promise
when an exception is thrown.
Requires servo/rust-content-security-policy#6
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
The only code that calls these methods is in the script thread, and the
code is simpler when we can assume a Window global. Pulling this thread
led to cleaning up a lot of constructors for Window-only WebXR code,
too.
Testing: Existing WPT coverage.
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.20 to 1.2.21.
<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.21</h2>
<h3>Other</h3>
<ul>
<li>Fix wasm32-unknown-unknown by passing -c (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1424">#1424</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.20...cc-v1.2.21">1.2.21</a>
- 2025-05-02</h2>
<h3>Other</h3>
<ul>
<li>Fix wasm32-unknown-unknown by passing -c (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1424">#1424</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0342d854e1"><code>0342d85</code></a>
chore: release v1.2.21 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1464">#1464</a>)</li>
<li><a
href="e93b705945"><code>e93b705</code></a>
Fix wasm32-unknown-unknown by passing -c (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1424">#1424</a>)</li>
<li>See full diff in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.20...cc-v1.2.21">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 [jiff](https://github.com/BurntSushi/jiff) from 0.2.10 to 0.2.11.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md">jiff's
changelog</a>.</em></p>
<blockquote>
<h1>0.2.11 (2025-05-01)</h1>
<p>This release includes new APIs for customizing Jiff's
<code>strtime</code> behavior along
with a few minor bug fixes. Jiff's <code>strtime</code> formatting API
has also been
optimized. It's about twice as fast as it was.</p>
<p>This release also coincides with the publication of <code>jiff-icu
0.2.0-beta.2</code>,
which has support for <code>icu 2.0.0-beta.2</code>.</p>
<p>Enhancements:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/pull/338">#338</a>:
Add support for the <code>%c</code>, <code>%r</code>, <code>%X</code>
and <code>%x</code> conversion specifiers.</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/341">#341</a>:
Add support for <code>%q</code> in <code>jiff::fmt::strtime</code>
(prints quarter of year).</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/342">#342</a>:
Add support for <code>%::z</code> and <code>%:::z</code> in
<code>jiff::fmt::strtime</code>.</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/344">#344</a>:
Add support for <code>%N</code> in <code>jiff::fmt::strtime</code>
(alias for <code>%9f</code>).</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/350">#350</a>:
Add a "lenient" mode for <code>strtime</code> formatting APIs
that ignores most errors.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/328">#328</a>:
Document default precision behavior of <code>Display</code> impls for
datetime types.</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/340">#340</a>:
Allow whitespace in more places in RFC 2822 parser (improves spec
compliance).</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/346">#346</a>:
<code>TimeZone::get("UTC")</code> should now always return
<code>TimeZone::UTC</code>.</li>
</ul>
<p>Performance:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/pull/338">#338</a>:
Jiff's <code>strftime</code> APIs are now approximately twice as fast as
they were.
Performance should be comparable to <code>chrono</code> and
<code>time</code>'s prebuilt APIs.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0d1cf196a0"><code>0d1cf19</code></a>
0.2.11</li>
<li><a
href="407180a402"><code>407180a</code></a>
changelog: 0.2.11</li>
<li><a
href="2dc5b00d2e"><code>2dc5b00</code></a>
doc: fix typo in "formatting"</li>
<li><a
href="3acc4f9b60"><code>3acc4f9</code></a>
display: clarify default precision in <code>Display</code> impls</li>
<li><a
href="c9701c3c94"><code>c9701c3</code></a>
fmt/rfc2822: fix handling whitespace at comma and time separators</li>
<li><a
href="d395262c24"><code>d395262</code></a>
fmt/strtime: remove breadcrumbs comment</li>
<li><a
href="2f6602eedb"><code>2f6602e</code></a>
fmt/strtime: add "lenient" mode for <code>strtime</code>
formatting APIs</li>
<li><a
href="9f3d5ebd2f"><code>9f3d5eb</code></a>
fmt/strtime: add support for <code>%::z</code> and
<code>%:::z</code></li>
<li><a
href="8860d97b0b"><code>8860d97</code></a>
fmt/strtime: use Temporal offset parser in <code>strptime</code></li>
<li><a
href="0957978bae"><code>0957978</code></a>
fmt/strtime: add more <code>%z</code> and <code>%:z</code> tests</li>
<li>Additional commits viewable in <a
href="https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.10...jiff-static-0.2.11">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 [dpi](https://github.com/rust-windowing/winit) from 0.1.1 to
0.1.2.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="587ade844d"><code>587ade8</code></a>
DPI version 0.1.2</li>
<li><a
href="6756549ac9"><code>6756549</code></a>
clippy: fix casing in windows backend</li>
<li><a
href="17666e3171"><code>17666e3</code></a>
Bump version on master</li>
<li><a
href="f6ca06cd58"><code>f6ca06c</code></a>
wayland: bump wayland-rs to avoid yanked release</li>
<li><a
href="e634cc609f"><code>e634cc6</code></a>
windows: fix incorrect cursor_range calculation in Ime::Preedit</li>
<li><a
href="aa83726c72"><code>aa83726</code></a>
macOS: Fix monitors connected via certain Thunderbolt hubs (<a
href="https://redirect.github.com/rust-windowing/winit/issues/4207">#4207</a>)</li>
<li><a
href="1800fa1670"><code>1800fa1</code></a>
macOS: Store UUID in MonitorHandle instead of CGDirectDisplayID (<a
href="https://redirect.github.com/rust-windowing/winit/issues/4167">#4167</a>)</li>
<li><a
href="a5e6d0aaaf"><code>a5e6d0a</code></a>
fix: Support fractional refresh rates in video modes on macOS (<a
href="https://redirect.github.com/rust-windowing/winit/issues/4191">#4191</a>)</li>
<li><a
href="4fe4ce3d77"><code>4fe4ce3</code></a>
wayland: support fractional scale for custom cursor</li>
<li><a
href="078c4c0c4f"><code>078c4c0</code></a>
wayland: add WindowExtWayland::xdg_toplevel</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-windowing/winit/compare/dpi_v0.1.1...dpi_v0.1.2">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 [winnow](https://github.com/winnow-rs/winnow) from 0.7.8 to 0.7.9.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md">winnow's
changelog</a>.</em></p>
<blockquote>
<h2>[0.7.9] - 2025-05-02</h2>
<h3>Features</h3>
<ul>
<li>Add <code>ContextError::extend</code></li>
<li>Add <code>Parser::context_with</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3c63944160"><code>3c63944</code></a>
chore: Release</li>
<li><a
href="6624b1eb80"><code>6624b1e</code></a>
docs: Update changelog</li>
<li><a
href="9142fd7870"><code>9142fd7</code></a>
Merge pull request <a
href="https://redirect.github.com/winnow-rs/winnow/issues/781">#781</a>
from epage/context_with</li>
<li><a
href="e850d3d1b0"><code>e850d3d</code></a>
feat(parser): Add Parser::context_with</li>
<li><a
href="98a5a24065"><code>98a5a24</code></a>
feat(error): Allow extending on ContextError</li>
<li><a
href="6741c2ba88"><code>6741c2b</code></a>
Merge pull request <a
href="https://redirect.github.com/winnow-rs/winnow/issues/783">#783</a>
from epage/template</li>
<li><a
href="14303e3b96"><code>14303e3</code></a>
style: Make clippy happy</li>
<li><a
href="3fa02d3520"><code>3fa02d3</code></a>
chore: Update from _rust/main template</li>
<li><a
href="97755b3c01"><code>97755b3</code></a>
chore(ci): Improve perf at the cost of coverage</li>
<li>See full diff in <a
href="https://github.com/winnow-rs/winnow/compare/v0.7.8...v0.7.9">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>
`PositioningContext` held two vectors, one inside an `Option`, to
differentiate between the version used for a containing block for all
descendants (including `position: absolute` and `position: fixed`) or
only for `position: absolute` descendants. This distinction was really
hard to reason about and required a lot of bookkeeping about what kind
of `PositioningContext` a layout box's parent expected. In addition, it
led to a lot of mistakes.
This change simplifies things so that `PositioningContext` only holds a
single vector. When it comes time to lay out hoisted absolutely
positioned
fragments, the code then:
- lays out all of them (in the case of a `PositioningContext` for all
descendants), or
- only lays out the `position: absolute` descendants and preserves the
`position: fixed` descendants (in the case the `PositioningContext`
is only for `position: absolute`.), or
- lays out none of them if the `PositioningContext` was created for
box that did not establish a containing block for absolutes.
It's possible that this way of dealing with hoisted absolutes is a bit
less efficient, but, the number of these descendants is typically quite
small, so it should not be significant. In addition, this decreases the
size in memory of all `PositioningContexts` which are created in more
situations as time goes on.
Testing: There is a new WPT test with this change.
Fixes: #36696.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Non-initial values for the `scale`, `rotate` and `translate` properties
should establish a stacking context, just like `transform`.
Testing: adding new WPT tests.
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
https://github.com/web-platform-tests/wpt/pull/50041 allows us to start
running the webdriver conformance tests in Servo, which will make it
easier for us to track regressions/improvements in our webdriver server
implementation.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes are part of #15274
- [x] There are tests for these changes
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Bumps [wayland-protocols-wlr](https://github.com/smithay/wayland-rs)
from 0.3.6 to 0.3.8.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/smithay/wayland-rs/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>
Bumps [wayland-cursor](https://github.com/smithay/wayland-rs) from
0.31.8 to 0.31.10.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/smithay/wayland-rs/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>
Bumps [winnow](https://github.com/winnow-rs/winnow) from 0.7.7 to 0.7.8.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md">winnow's
changelog</a>.</em></p>
<blockquote>
<h2>[0.7.8] - 2025-05-01</h2>
<h3>Features</h3>
<ul>
<li>Add <code>ContextError::push</code></li>
<li>Add <code>Parser::map_err</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="37a4d87fa8"><code>37a4d87</code></a>
chore: Release</li>
<li><a
href="4118ce205f"><code>4118ce2</code></a>
docs: Update changelog</li>
<li><a
href="ffdedc9661"><code>ffdedc9</code></a>
Merge pull request <a
href="https://redirect.github.com/winnow-rs/winnow/issues/780">#780</a>
from epage/map_err</li>
<li><a
href="3874036f81"><code>3874036</code></a>
feat(parser): Add Parser::map_err</li>
<li><a
href="c410dcf7d5"><code>c410dcf</code></a>
feat(error): Add ErrorContext::push</li>
<li><a
href="54841c5cff"><code>54841c5</code></a>
docs: Link Parser::context to tutorial</li>
<li><a
href="34f5bea3e3"><code>34f5bea</code></a>
docs: Provide example for Parser::context</li>
<li><a
href="e2b8d4d1de"><code>e2b8d4d</code></a>
Merge pull request <a
href="https://redirect.github.com/winnow-rs/winnow/issues/776">#776</a>
from epage/docs</li>
<li><a
href="e7bbb38777"><code>e7bbb38</code></a>
docs: Link to lexing topic when its discussed</li>
<li><a
href="eff8b93812"><code>eff8b93</code></a>
docs(tutorial): Be explicit in what we mean by tokens</li>
<li>Additional commits viewable in <a
href="https://github.com/winnow-rs/winnow/compare/v0.7.7...v0.7.8">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>
All canvases return `Option<ImageKey>`.
Testing: Just refactor without behavior changes
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
`surface()` returns `SourceSurface` which is/was meant as optimization
when passing from canvas to canvas (in vello that would be wgpu texture;
but raquote does not really have this) while bytes returns something
that must impl AsRef<[u8]> (this is more generic then `&[u8]` as it
allows us to have type with drop impl - wgpu's BufferView).
Testing: This is just refactoring (protected by rust), but there are WPT
tests.
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Previously, spans were partially clamped during layout, but this means
that accessing and setting these properties via script wouldn't behave
according to the HTML specification. In addition, the value wasn't
floored in layout, so could lead to panics. This change improves
clamping and moves it to script.
Testing: This change includes a new WPT test.
Fixes#36699.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Fixes: #36717.
Testing: This is covered by existing tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Small fixes of abstraction.
We do not need to generalize `CompositionOrBlending`, because it's from
canvas_traits.
Ellipse impl that uses arc is not backend specific, so it serves as good
trait default.
Reviewable per commit.
Testing: Only refactoring, but there are WPT tests
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Current abstraction was leaky and very hard to understand/impl because
it was so intervened with actual implementation.
Now we generalize both `CanvasState` and `CanvasData` over `B: Beckend`,
meaning that every type/method must be part of trait interface (that
lives in `beckend.rs`). Using associated trait types instead of `Box<dyn
>` allows us too remove the need for wrapper types (and `to_raquote()`
methods) as we can implement helper traits on (foreign) raquote types.
The only time we actually do dispatch (by enum) is at `Canvas` methods.
Implementation now only need to implement all backend traits and
helpers. I tried to restrain myself from actually cleaning abstraction
(where possible), to keep this change as much mechanical as possible,
but we should absolutely do that as a follow up.
Testing: Rust as we only do refactor, but there are also WPT tests
try run: 1476065852
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Bumps [synstructure](https://github.com/mystor/synstructure) from 0.13.1
to 0.13.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/mystor/synstructure/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>
this allows us to simplify canvas element/offscreen impl to only call
CanvasContext implementations (no more match statements).
This will help with impl more offscreen canvas contextl.
Testing: WPT and rustc
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Bumps [wayland-backend](https://github.com/smithay/wayland-rs) from
0.3.9 to 0.3.10.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/smithay/wayland-rs/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>
Bumps [webpki-roots](https://github.com/rustls/webpki-roots) from 0.26.9
to 0.26.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki-roots/releases">webpki-roots's
releases</a>.</em></p>
<blockquote>
<h2>0.26.10</h2>
<p>Incorporates CCADB April updates.</p>
<p>Roots removed due to <a
href="https://wiki.mozilla.org/CA/Root_CA_Lifecycles">https://wiki.mozilla.org/CA/Root_CA_Lifecycles</a>
/ <a
href="https://bugzilla.mozilla.org/show_bug.cgi?id=1957685">https://bugzilla.mozilla.org/show_bug.cgi?id=1957685</a>:</p>
<ul>
<li>"AAA Certificate Services"</li>
<li>"Baltimore CyberTrust Root"</li>
<li>"Entrust.net Certification Authority (2048)"</li>
<li>"GlobalSign Root CA"</li>
<li>"Go Daddy Class 2 Certification Authority"</li>
<li>"Starfield Class 2 Certification Authority"</li>
<li>"XRamp Global Certification Authority"</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>0.26.10: April CCADB updates by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/96">rustls/webpki-roots#96</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustls/webpki-roots/compare/v/0.26.9...v/0.26.10">https://github.com/rustls/webpki-roots/compare/v/0.26.9...v/0.26.10</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e37165d995"><code>e37165d</code></a>
webpki-(roots|root-certs): v0.26.9 -> v0.26.10</li>
<li><a
href="4a4e2aa5d6"><code>4a4e2aa</code></a>
April CCADB updates:</li>
<li><a
href="82c433e58c"><code>82c433e</code></a>
webpki-ccadb: support placeholder absent trust bits</li>
<li><a
href="5b76d00f04"><code>5b76d00</code></a>
Address new nightly clippy lints</li>
<li><a
href="7c4a88225c"><code>7c4a882</code></a>
Move to 2021 edition</li>
<li>See full diff in <a
href="https://github.com/rustls/webpki-roots/compare/v/0.26.9...v/0.26.10">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 [winit](https://github.com/rust-windowing/winit) from 0.30.9 to
0.30.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-windowing/winit/releases">winit's
releases</a>.</em></p>
<blockquote>
<h2>Winit version 0.30.10</h2>
<h3>Added</h3>
<ul>
<li>On Windows, add
<code>IconExtWindows::from_resource_name</code>.</li>
<li>On Windows, add <code>CursorGrabMode::Locked</code>.</li>
<li>On Wayland, add <code>WindowExtWayland::xdg_toplevel</code>.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>On macOS, no longer need control of the main
<code>NSApplication</code> class (which means you can now override it
yourself).</li>
<li>On iOS, remove custom application delegates. You are now allowed to
override the
application delegate yourself.</li>
<li>On iOS, no longer act as-if the application successfully open all
URLs. Override
<code>application:didFinishLaunchingWithOptions:</code> and provide the
desired behaviour yourself.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>On Windows, fixed ~500 ms pause when clicking the title bar during
continuous redraw.</li>
<li>On macOS, <code>WindowExtMacOS::set_simple_fullscreen</code> now
honors <code>WindowExtMacOS::set_borderless_game</code></li>
<li>On X11 and Wayland, fixed pump_events with
<code>Some(Duration::Zero)</code> blocking with <code>Wait</code>
polling mode</li>
<li>On Wayland, fixed a crash when consequently calling
<code>set_cursor_grab</code> without pointer focus.</li>
<li>On Wayland, ensure that external event loop is woken-up when using
pump_events and integrating via <code>FD</code>.</li>
<li>On Wayland, apply fractional scaling to custom cursors.</li>
<li>On macOS, fixed <code>run_app_on_demand</code> returning without
closing open windows.</li>
<li>On macOS, fixed <code>VideoMode::refresh_rate_millihertz</code> for
fractional refresh rates.</li>
<li>On macOS, store monitor handle to avoid panics after going in/out of
sleep.</li>
<li>On macOS, allow certain invalid monitor handles and return
<code>None</code> instead of panicking.</li>
<li>On Windows, fixed <code>Ime::Preedit</code> cursor offset
calculation.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2385410366"><code>2385410</code></a>
Winit version 0.30.10</li>
<li><a
href="6db1343c0b"><code>6db1343</code></a>
wayland: bump wayland-rs to avoid yanked release</li>
<li><a
href="a26899a75d"><code>a26899a</code></a>
windows: fix incorrect cursor_range calculation in Ime::Preedit</li>
<li><a
href="80bddda641"><code>80bddda</code></a>
macOS: Fix monitors connected via certain Thunderbolt hubs</li>
<li><a
href="5f1e9f6cc1"><code>5f1e9f6</code></a>
macOS: Store UUID in MonitorHandle instead of CGDirectDisplayID</li>
<li><a
href="57baf72741"><code>57baf72</code></a>
Allow the user to register the application delegate on iOS</li>
<li><a
href="da7a09658a"><code>da7a096</code></a>
fix: Support fractional refresh rates in video modes on macOS (<a
href="https://redirect.github.com/rust-windowing/winit/issues/4191">#4191</a>)</li>
<li><a
href="53321dc6f5"><code>53321dc</code></a>
Swizzle sendEvent: instead of subclassing NSApplication</li>
<li><a
href="6556cde246"><code>6556cde</code></a>
macOS: Close windows automatically when exiting</li>
<li><a
href="7672fd5657"><code>7672fd5</code></a>
wayland: support fractional scale for custom cursor</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-windowing/winit/compare/v0.30.9...v0.30.10">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>
`MutNullableDom<Node>` is not in fact defined in `mozjs`.
Testing: This change compiles, so it works
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This macro does not hide any complex or unsafe implementation details,
and, it's only used in two files (node.rs and element.rs). This patch
removes the macro, and move the implementation in place.
Moreover, the Element::rare_data_mut function in element.rs is called by
other functions, so the #[allow(dead_code)] annotation is removed. The
Node::rare_data_mut function in node.rs is not called anywhere, so it is
removed.
Testing: No test is needed for this cleaning up.
Fixes: #36767
---------
Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
I'm not sure why I added these calls in the first place, but they don't
seem to be necessary and seem to be the cause of crashes.
This PR also adds some spec comments that I added while investigating
the crash.
Testing: Covered by existing WPT tests
Fixes https://github.com/servo/servo/issues/36757
Fixes https://github.com/servo/servo/issues/36273
[try
run](4141588918)
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Implement
[disentangle](https://html.spec.whatwg.org/multipage/#disentangle)
Remove bespoke gc logic which now becomes unnecessary.
Adds a wpt test that hits the "disentangle while in transfer" logic.
Updates streams code, fixing an error where disentanglement is
conditional on an error.
Test coverage: there are existing tests in
`/webmessaging/message-channels/close-event/explicitly-closed.tentative.window.js`
for the no transfer case, and the simple completed transfer case, and
this PR adds a test for the more complicated transfer in progress case.
Fix https://github.com/servo/servo/issues/36465
---------
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
It seems sub-optimal to to sequentialise execution by grabbing a lock,
each time we want to spawn a task onto the tokio runtime. We don't need
the lock either, so it makes sense to just remove it, which also
simplifies a bunch of the using code.
Testing: Covered by existing tests
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
canvas crate was home for both webgl and 2dcanvas impl, but it makes
more sense to separate these two, by splitting webgl into standalone
crate (like we already have for webgpu).
Testing: Rust for fearless refactoring (but there are WPT tests just in
case)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
update doc for `ScriptThread::relative_mouse_down_point` which was
missing in #36619
Testing: No need as just updating docs
Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
As per
[w3.org/TR/filter-effects-1#FilterProperty](https://www.w3.org/TR/filter-effects-1/#FilterProperty),
`filter` shouldn't make the root element establish a containing block
for absolute and fixed positioned descendants. `will-change: filter` has
matching behavior.
This PR adds a check for if we are the root element before establishing
such a block.
To know if we are the root element, we look at the `FragmentFlags`
passed in. Previously for our function, these were dummy flags, always
constructed as empty. Thus, this PR also makes sure the correct
FragmentFlags are passed down the chain to the function
`establishes_containing_block_for_all_descendants`.
Testing:
- `/css/filter-effects/filtered-html-is-not-container.html` now passes
- `/css/css-will-change/will-change-fixedpos-cb-003.html` now passes
- Manual tests are working
Fixes: #35391
---------
Signed-off-by: haval0 <56519858+haval0@users.noreply.github.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
fix crash occurs when the focus element is adopted.
Testing: wpt dom/nodes/insertion-removing-steps/blur-event.window.html
not crash
Fixes: #36607#32972
---------
Signed-off-by: kongbai1996 <1782765876@qq.com>
Bumps [bytemuck](https://github.com/Lokathor/bytemuck) from 1.22.0 to
1.23.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Lokathor/bytemuck/blob/main/changelog.md">bytemuck's
changelog</a>.</em></p>
<blockquote>
<h1><code>bytemuck</code> changelog</h1>
<h2>1.23</h2>
<ul>
<li><code>impl_core_error</code> crate feature adds
<code>core::error::Error</code> impl.</li>
<li>More <code>ZeroableInOption</code> impls.</li>
</ul>
<h2>1.22</h2>
<ul>
<li>Add the <code>pod_saturating</code> feature, which adds
<code>Pod</code> impls for <code>Saturating<T></code>
when <code>T</code> is already <code>Pod</code>.</li>
<li>A bump in the minimum <code>bytemuck_derive</code> dependency from
1.4.0 to 1.4.1 to
avoid a bug if you have a truly ancient <code>cargo.lock</code> file
sitting around.</li>
<li>Adds <code>Send</code> and <code>Sync</code> impls to
<code>BoxBytes</code>.</li>
</ul>
<h2>1.21</h2>
<ul>
<li>Implement <code>Pod</code> and <code>Zeroable</code> for
<code>core::arch::{x86, x86_64}::__m512</code>, <code>__m512d</code> and
<code>__m512i</code> without nightly.
Requires Rust 1.72, and is gated through the <code>avx512_simd</code>
cargo feature.</li>
<li>Allow the use of <code>must_cast_mut</code> and
<code>must_cast_slice_mut</code> in const contexts.
Requires Rust 1.83, and is gated through the
<code>must_cast_extra</code> cargo feature.</li>
<li>internal: introduced the <code>maybe_const_fn</code> macro that
allows defining some function
to be const depending upon some <code>cfg</code> predicate.</li>
</ul>
<h2>1.20</h2>
<ul>
<li>New functions to allocate zeroed <code>Arc</code> and
<code>Rc</code>. Requires Rust 1.82</li>
<li><code>TransparentWrapper</code> impls for
<code>core::cmp::Reverse</code> and
<code>core::num::Saturating</code>.</li>
<li>internal: Simplified the library's <code>fill_zeroes</code> calls to
<code>write_bytes</code></li>
</ul>
<h2>1.19</h2>
<ul>
<li>Adds the <code>#[track_caller]</code> attribute to functions which
may panic.</li>
</ul>
<h2>1.18</h2>
<ul>
<li>Adds the <code>latest_stable_rust</code> cargo feature, which is a
blanket feature that turns all other features on that are both sound and
compatible with Stable rust.</li>
</ul>
<h2>1.17.1</h2>
<ul>
<li>Adds <code>#[repr(C)]</code> to the <code>union Transmute<A,
B></code> type that's used internally
for most of the transmutations.</li>
</ul>
<h2>1.17.0</h2>
<ul>
<li>Makes the <code>must_cast</code> versions of the by-value and by-ref
casts be <code>const</code>.
The mut ref cast is unaffected for now (mut references aren't yet stable
in <code>const fn</code>).
This increases the MSRV of using that particular feature from 1.57 to
1.64.</li>
</ul>
<h2>1.16.3</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="028ff3bec6"><code>028ff3b</code></a>
chore: Release bytemuck version 1.23.0</li>
<li><a
href="343f34ff9e"><code>343f34f</code></a>
changelog</li>
<li><a
href="90db36000f"><code>90db360</code></a>
Impl core's Error trait on Rust 1.81+ (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/311">#311</a>)</li>
<li><a
href="ede91413f7"><code>ede9141</code></a>
Set rust version for <code>bytemuck_derive</code> to 1.61 (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/310">#310</a>)</li>
<li><a
href="46d0910f3a"><code>46d0910</code></a>
Extend <a
href="https://redirect.github.com/Lokathor/bytemuck/issues/308">#308</a>
with <code>-unwind</code> support (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/309">#309</a>)</li>
<li><a
href="6751adc3e4"><code>6751adc</code></a>
Impl ZeroablInOption for several function types. (<a
href="https://redirect.github.com/Lokathor/bytemuck/issues/308">#308</a>)</li>
<li><a
href="66569e6cc7"><code>66569e6</code></a>
chore: Release bytemuck_derive version 1.9.2</li>
<li><a
href="5c301b1ddd"><code>5c301b1</code></a>
remove resolver from the Cargo.toml</li>
<li><a
href="3053413e55"><code>3053413</code></a>
update the .cargo/config.toml to use the "stable rust"
feature.</li>
<li><a
href="9b087bb7e5"><code>9b087bb</code></a>
chore: Release bytemuck_derive version 1.9.1</li>
<li>Additional commits viewable in <a
href="https://github.com/Lokathor/bytemuck/compare/v1.22.0...v1.23.0">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 [toml_edit](https://github.com/toml-rs/toml) from 0.22.25 to
0.22.26.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6922da374c"><code>6922da3</code></a>
chore: Release</li>
<li><a
href="fbf0a9298c"><code>fbf0a92</code></a>
docs: Update changelog</li>
<li><a
href="83588b3610"><code>83588b3</code></a>
Merge pull request <a
href="https://redirect.github.com/toml-rs/toml/issues/878">#878</a> from
epage/w1</li>
<li><a
href="eeb885ceb5"><code>eeb885c</code></a>
fix(serde): Skip fields with newtypes wrapping None</li>
<li><a
href="3c305c72fa"><code>3c305c7</code></a>
test(serde): Show NewType(None) behavior</li>
<li><a
href="7bd5eafbd7"><code>7bd5eaf</code></a>
test(serde): Group None tests</li>
<li><a
href="388cfa3856"><code>388cfa3</code></a>
chore(deps): Update toml-test (<a
href="https://redirect.github.com/toml-rs/toml/issues/877">#877</a>)</li>
<li><a
href="a025b84797"><code>a025b84</code></a>
refactor(edit): Change ser none tracking to mut field</li>
<li><a
href="54666ad0b2"><code>54666ad</code></a>
docs(write): Add guidance</li>
<li><a
href="13cf5185f9"><code>13cf518</code></a>
refactor(edit): Bypass a layer of abstraction in ser</li>
<li>Additional commits viewable in <a
href="https://github.com/toml-rs/toml/compare/v0.22.25...v0.22.26">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 [wayland-backend](https://github.com/smithay/wayland-rs) from
0.3.8 to 0.3.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/smithay/wayland-rs/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>
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.40 to
0.4.41.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chronotope/chrono/releases">chrono's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.41</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>subsec_micros</code> and <code>subsec_millis</code>
methods to <code>TimeDelta</code> by <a
href="https://github.com/ggoetz"><code>@ggoetz</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1668">chronotope/chrono#1668</a></li>
<li>Deprecate <code>NaiveDateTime::UNIX_EPOCH</code> by <a
href="https://github.com/robertbastian"><code>@robertbastian</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1670">chronotope/chrono#1670</a></li>
<li>Implement <code>as_seconds_f32</code> and
<code>as_seconds_f64</code> for <code>TimeDelta</code> by <a
href="https://github.com/ggoetz"><code>@ggoetz</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1671">chronotope/chrono#1671</a></li>
<li>chore: fix some comments by <a
href="https://github.com/jimmycathy"><code>@jimmycathy</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1677">chronotope/chrono#1677</a></li>
<li>Add <code>num_days_in_month</code> method to <code>Datelike</code>
trait by <a href="https://github.com/aslilac"><code>@aslilac</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1673">chronotope/chrono#1673</a></li>
<li>add <code>WeekdaySet</code>, a collection of <code>Weekday</code>
that is <code>Copy</code> by <a
href="https://github.com/Kinrany"><code>@Kinrany</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1676">chronotope/chrono#1676</a></li>
<li>WeekdaySet tweaks by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1680">chronotope/chrono#1680</a></li>
<li>Upgrade to windows-bindgen 0.61 by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1682">chronotope/chrono#1682</a></li>
<li>Implemented a consistent Eq trait for NaiveWeek by <a
href="https://github.com/Splashling1789"><code>@Splashling1789</code></a>
in <a
href="https://redirect.github.com/chronotope/chrono/pull/1687">chronotope/chrono#1687</a></li>
<li>TimeZone::from_posix_tz: Treat empty TZ variable as UTC by <a
href="https://github.com/drinkcat"><code>@drinkcat</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1691">chronotope/chrono#1691</a></li>
<li>Add support for lossy format strings by <a
href="https://github.com/Qelxiros"><code>@Qelxiros</code></a> in <a
href="https://redirect.github.com/chronotope/chrono/pull/1693">chronotope/chrono#1693</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d1de1d95ea"><code>d1de1d9</code></a>
Bump version to 0.4.41</li>
<li><a
href="e2bd1d1d67"><code>e2bd1d1</code></a>
Add support for lenient format strings (<a
href="https://redirect.github.com/chronotope/chrono/issues/1693">#1693</a>)</li>
<li><a
href="2c95b0aca8"><code>2c95b0a</code></a>
Tweak expression to avoid repetition</li>
<li><a
href="ebeef99426"><code>ebeef99</code></a>
TimeZone::from_posix_tz: Treat empty TZ variable as UTC</li>
<li><a
href="dc068f0373"><code>dc068f0</code></a>
Tweak style on NaiveWeek fixes</li>
<li><a
href="b267a4fe90"><code>b267a4f</code></a>
Implemented consistent Hash and Eq trait for NaiveWeek</li>
<li><a
href="7c0bd136d6"><code>7c0bd13</code></a>
Apply suggestions from clippy 1.86</li>
<li><a
href="104cdc73cb"><code>104cdc7</code></a>
Bump MSRV to 1.62</li>
<li><a
href="6a853015b7"><code>6a85301</code></a>
Upgrade to windows-bindgen 0.61</li>
<li><a
href="265c79b2a5"><code>265c79b</code></a>
Tweak WeekdaySet method order</li>
<li>Additional commits viewable in <a
href="https://github.com/chronotope/chrono/compare/v0.4.40...v0.4.41">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 [webpki-roots](https://github.com/rustls/webpki-roots) from 0.26.8
to 0.26.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki-roots/releases">webpki-roots's
releases</a>.</em></p>
<blockquote>
<h2>0.26.9</h2>
<p>The license of the <code>webpki-roots</code> and
<code>webpki-root-certs</code> crates changed from MPL-2.0 to
CDLA-Permissive-2.0. Thank you to the <a
href="https://redirect.github.com/mozilla/www.ccadb.org/issues/188">CCADB
maintainers for enabling us to make this change</a>.</p>
<h2>Upstream changes</h2>
<p><em>None</em></p>
<h2>What's Changed</h2>
<ul>
<li>Adjust license of mechnically-reformed crates by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/88">rustls/webpki-roots#88</a></li>
<li>Run CI on ubuntu-latest by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/91">rustls/webpki-roots#91</a></li>
<li>Support code-signing trust bit by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/93">rustls/webpki-roots#93</a></li>
<li><code>manual_ok_err</code> clippy fix by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/94">rustls/webpki-roots#94</a></li>
<li>webpki-(roots|root-certs): v0.26.8 -> v0.26.9 by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki-roots/pull/95">rustls/webpki-roots#95</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rustls/webpki-roots/compare/v/0.26.8...v/0.26.9">https://github.com/rustls/webpki-roots/compare/v/0.26.8...v/0.26.9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="575994bb51"><code>575994b</code></a>
webpki-(roots|root-certs): v0.26.8 -> v0.26.9</li>
<li><a
href="f9f5789f47"><code>f9f5789</code></a>
<code>manual_ok_err</code> clippy fix</li>
<li><a
href="fce41f761a"><code>fce41f7</code></a>
Support code-signing trust bit</li>
<li><a
href="f19c83f0f6"><code>f19c83f</code></a>
Run CI on ubuntu-latest</li>
<li><a
href="90c48f3867"><code>90c48f3</code></a>
Adjust license of mechanically-reformed crates</li>
<li>See full diff in <a
href="https://github.com/rustls/webpki-roots/compare/v/0.26.8...v/0.26.9">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>