Not only does this simplify the code, it fixes a problem where we were
attempting to use an OpenGL 3.0 API on an incompatible GL context.
Testing: There are already tests for `getSupportedExtensions()` in the
WebGL
suite, but effectively testing this requires drivers that do not support
a particular version of OpenGL, so it is a bit hard to actually test.
Fixes: #36852.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
The Zed editor (https://zed.dev/) leaves files in a `.zed` directory in
the top-level.
Testing: No tests necessary as this just updates `.gitignore`.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Multiply operations applied in `generic_transform_inplace` were
calculating the new pixel values, but not actually writing them.
This changes fixes that issue.
Testing: /webgl/tests/conformance/context/premultiplyalpha-test.html
Fixes: #35759
Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
`rust-analyzer` shows a `zombie_process` warning, but only on macOS as
far
as I can tell. This change ignores the warning here. We aren't currently
in a position where we can reliably `wait()` on spawned processes, which
needs to happen as part of a larger multiprocess / cleanup effort.
Testing: No testing as this just ignores an LSP warning.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Bumps [web_atoms](https://github.com/servo/html5ever) from 0.1.1 to
0.1.2.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0c645e1336"><code>0c645e1</code></a>
Add missing event handler names (<a
href="https://redirect.github.com/servo/html5ever/issues/610">#610</a>)</li>
<li><a
href="559f96ae6a"><code>559f96a</code></a>
Publish web_atoms 0.1.1. (<a
href="https://redirect.github.com/servo/html5ever/issues/609">#609</a>)</li>
<li><a
href="c24853eeb8"><code>c24853e</code></a>
Add <code>innerText</code> and <code>textContent</code> as localname (<a
href="https://redirect.github.com/servo/html5ever/issues/608">#608</a>)</li>
<li><a
href="0eace84090"><code>0eace84</code></a>
Remove unsupported category. (<a
href="https://redirect.github.com/servo/html5ever/issues/607">#607</a>)</li>
<li><a
href="018ecdb941"><code>018ecdb</code></a>
Bump markup5ever to 0.16.1 (<a
href="https://redirect.github.com/servo/html5ever/issues/606">#606</a>)</li>
<li><a
href="0292f3fddf"><code>0292f3f</code></a>
Split atoms out into a separate crate (<a
href="https://redirect.github.com/servo/html5ever/issues/599">#599</a>)</li>
<li><a
href="a02b136d71"><code>a02b136</code></a>
Remove the <code>emit</code> and <code>emit_temp</code> shorthands from
the html tokenizer (<a
href="https://redirect.github.com/servo/html5ever/issues/604">#604</a>)</li>
<li><a
href="a1486b09c1"><code>a1486b0</code></a>
Trigger errors without macros, remove <code>unwrap_or_else!</code> and
<code>go_match!</code> (<a
href="https://redirect.github.com/servo/html5ever/issues/600">#600</a>)</li>
<li><a
href="809eec756c"><code>809eec7</code></a>
Remove all direct uses of unwrap_or_return! (<a
href="https://redirect.github.com/servo/html5ever/issues/598">#598</a>)</li>
<li><a
href="cb63d4f871"><code>cb63d4f</code></a>
Don't import xml5ever enums into the global namespace (<a
href="https://redirect.github.com/servo/html5ever/issues/597">#597</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/servo/html5ever/compare/v0.1.1...web_atoms-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 [libm](https://github.com/rust-lang/compiler-builtins) from 0.2.14
to 0.2.15.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/compiler-builtins/releases">libm's
releases</a>.</em></p>
<blockquote>
<h2>libm-v0.2.15</h2>
<h3>Other</h3>
<ul>
<li>Require <code>target_has_atomic = "ptr"</code> for runtime
feature detection</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a4c748f72a"><code>a4c748f</code></a>
release-plz: Include the libm changelog in compiler-builtins</li>
<li><a
href="cf00941064"><code>cf00941</code></a>
chore: release</li>
<li><a
href="da8b5829f4"><code>da8b582</code></a>
Require <code>target_has_atomic = "ptr"</code> for runtime
feature detection</li>
<li><a
href="1b1b2ed16e"><code>1b1b2ed</code></a>
ci: Mention <code>ci: skip-extensive</code> in the error message</li>
<li><a
href="6d78c1acc9"><code>6d78c1a</code></a>
Replace <code>super::super</code> with <code>crate::support</code> where
possible</li>
<li><a
href="8e78411a4f"><code>8e78411</code></a>
docs: fix typo in Cargo.toml</li>
<li>See full diff in <a
href="https://github.com/rust-lang/compiler-builtins/compare/libm-v0.2.14...libm-v0.2.15">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.9 to
0.7.10.
<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.10] - 2025-05-06</h2>
<h3>Compatibility</h3>
<ul>
<li>Deprecated <code>Stream::raw</code></li>
</ul>
<h3>Features</h3>
<ul>
<li>Added <code>Stream::trace</code> for better customization of
<code>trace</code> parsers</li>
</ul>
<h3>Fixes</h3>
<ul>
<li>Remove <code>initial</code> from <code>TokenSlice</code> /
<code>LocatingSlice</code>s Debug impl</li>
<li><code>Stream::trace</code> prints non-pretty output for
<code>&[T]</code> and <code>TokenSlice<T></code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a2eed308b3"><code>a2eed30</code></a>
chore: Release</li>
<li><a
href="af1225adb4"><code>af1225a</code></a>
docs: Update changelog</li>
<li><a
href="ec852b5246"><code>ec852b5</code></a>
Merge pull request <a
href="https://redirect.github.com/winnow-rs/winnow/issues/661">#661</a>
from epage/trace</li>
<li><a
href="5acc4e7ec3"><code>5acc4e7</code></a>
docs: Provide example of custom Debug for lexing</li>
<li><a
href="bc06ccbdb6"><code>bc06ccb</code></a>
fix(stream): Don't use 'pretty' dump for Slice/TokenSlice</li>
<li><a
href="ad874536eb"><code>ad87453</code></a>
fix(stream): Decouple BStr's trace from debug</li>
<li><a
href="0184e67291"><code>0184e67</code></a>
fix(stream): Deprecated Stream::raw</li>
<li><a
href="34480fd561"><code>34480fd</code></a>
feat(stream): Give streams direct control over 'trace' output</li>
<li><a
href="d607525bea"><code>d607525</code></a>
fix(stream): Remove initial input from debug reprs</li>
<li><a
href="07f43d332d"><code>07f43d3</code></a>
test(stream): Use snapbox</li>
<li>See full diff in <a
href="https://github.com/winnow-rs/winnow/compare/v0.7.9...v0.7.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 [backtrace](https://github.com/rust-lang/backtrace-rs) from 0.3.74
to 0.3.75.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/backtrace-rs/releases">backtrace's
releases</a>.</em></p>
<blockquote>
<h2>0.3.75</h2>
<h2>What's Changed</h2>
<ul>
<li>Add support for symbolicating APK/ZIP-embedded libraries on Android
in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/662">rust-lang/backtrace-rs#662</a></li>
<li>Support zstd-compressed ELF sections in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/626">rust-lang/backtrace-rs#626</a></li>
<li>Recognize windows-sys signatures as "C" or
"system" depending on cfg in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/677">rust-lang/backtrace-rs#677</a></li>
<li>Enable libunwind for rtems in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/682">rust-lang/backtrace-rs#682</a></li>
<li>MSRV is now 1.79</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/thesummer"><code>@thesummer</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/682">rust-lang/backtrace-rs#682</a></li>
<li><a
href="https://github.com/sudoBash418"><code>@sudoBash418</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/662">rust-lang/backtrace-rs#662</a></li>
<li><a href="https://github.com/MarcoIeni"><code>@MarcoIeni</code></a>
made their first contribution in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/684">rust-lang/backtrace-rs#684</a></li>
<li><a href="https://github.com/madsmtm"><code>@madsmtm</code></a> made
their first contribution in <a
href="https://redirect.github.com/rust-lang/backtrace-rs/pull/681">rust-lang/backtrace-rs#681</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/rust-lang/backtrace-rs/compare/0.3.74...0.3.75">https://github.com/rust-lang/backtrace-rs/compare/0.3.74...0.3.75</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="f8cc6ac9ac"><code>f8cc6ac</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/680">#680</a>
from ChrisDenton/0.3.75</li>
<li><a
href="612c01817b"><code>612c018</code></a>
Cut backtrace 0.3.75</li>
<li><a
href="d7c5a4522d"><code>d7c5a45</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-lang/backtrace-rs/issues/689">#689</a>
from workingjubilee/formalize-lru</li>
<li><a
href="c88b038c34"><code>c88b038</code></a>
Revert "mem::swap, not mem::replace, in LRU backshifts"</li>
<li><a
href="b7fbd04694"><code>b7fbd04</code></a>
mem::swap, not mem::replace, in LRU backshifts</li>
<li><a
href="3afccb194e"><code>3afccb1</code></a>
raise backtrace MSRV to allow <code>inline_const</code></li>
<li><a
href="63b7d260a9"><code>63b7d26</code></a>
Use a custom container for Cache's cache</li>
<li><a
href="154a0eafb9"><code>154a0ea</code></a>
Update libloading dep, run <code>cargo
update</code><code>rust-lang/backtrace-rs#650</code></li>
<li><a
href="4d7906bb24"><code>4d7906b</code></a><code>rust-lang/backtrace-rs#682</code></li>
<li><a
href="a9c4658d49"><code>a9c4658</code></a>
Test Mac Catalyst in CI, and clean up unnecessary iOS env flags
(rust-lang/ba...</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/backtrace-rs/compare/0.3.74...0.3.75">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 [rustls-pki-types](https://github.com/rustls/pki-types) from
1.11.0 to 1.12.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/pki-types/releases">rustls-pki-types's
releases</a>.</em></p>
<blockquote>
<h2>1.12.0</h2>
<ul>
<li>Implement <code>Zeroize</code> for private key types</li>
<li>Add algorithm identifiers for ML-DSA signing algorithms</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Add support for the zeroize crate by <a
href="https://github.com/jarhodes314"><code>@jarhodes314</code></a> in
<a
href="https://redirect.github.com/rustls/pki-types/pull/71">rustls/pki-types#71</a></li>
<li>rustfmt: style_edition 2024 by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/pki-types/pull/74">rustls/pki-types#74</a></li>
<li>Add cargo deny check in CI by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/pki-types/pull/76">rustls/pki-types#76</a></li>
<li>Add AlgorithmIdentifiers for ML-DSA variants by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/pki-types/pull/78">rustls/pki-types#78</a></li>
<li>Check external types in public API by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/pki-types/pull/80">rustls/pki-types#80</a></li>
<li>Prepare 1.12.0 release by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/pki-types/pull/79">rustls/pki-types#79</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4b52db8f39"><code>4b52db8</code></a>
Bump version to 1.12.0</li>
<li><a
href="812eb3a067"><code>812eb3a</code></a>
ci: sync nightly for cargo-check-external-types</li>
<li><a
href="a15fc87315"><code>a15fc87</code></a>
Enable running CI workflow manually</li>
<li><a
href="df76779e64"><code>df76779</code></a>
Skip push CI for most branches</li>
<li><a
href="939c2c6b9c"><code>939c2c6</code></a>
ci: check external types</li>
<li><a
href="fae72b94cb"><code>fae72b9</code></a>
Allow zeroize::Zeroize to appear in public API</li>
<li><a
href="c5fffabe70"><code>c5fffab</code></a>
Add AlgorithmIdentifiers for ML-DSA variants</li>
<li><a
href="b59e08d499"><code>b59e08d</code></a>
Version Cargo.lock</li>
<li><a
href="bbad87b6c2"><code>bbad87b</code></a>
Add cargo deny check in CI</li>
<li><a
href="864471f5db"><code>864471f</code></a>
rustfmt: style_edition 2024</li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/pki-types/compare/v/1.11.0...v/1.12.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>
Table cells share background styles with their track and track group
boxes. When a track and track group style is repaired, this new data
structure will allow reparing the style of the cell `Fragment`s without
having to lay the table out again or walk through `Fragment`s and
individually repair their background styles.
Testing: This doesn't change behavior and is thus tested by existing
WPT tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This patch adds our first automated test for devtools, covering the
changes in #36164. These tests are not run in CI yet, but you can run
them as follows:
```sh
$ ./mach build --release
$ ./mach test-devtools
```
Testing: this patch adds automated tests!
Start of: #36325
---------
Signed-off-by: Delan Azabani <dazabani@igalia.com>
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: Aria Edmonds <aria@ar1as.space>
Fix ElementClick: `ElementClick` should use `MouseButton::Left` to
create `action`.
Testing: No pass test now. Tests still fail because of other issues.
For: https://github.com/servo/servo/issues/36658
cc: @xiaochengh , @yezhizhen , @PotatoCP
Signed-off-by: batu_hoang <longvatrong111@gmail.com>
These changes allow test_dom_token_list from
/execute_script/collections.py to pass, and various tests in
/execute_script/arguments.py to expose new failures.
Testing: Not run in CI yet, but verified results from
tests/wpt/tests/webdriver/tests/classic/{execute_script,execute_async_script}
locally.
Fixes: #35738
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
`ensure_rare_data` returns a RefMut that extends the borrow of
Node.rare_data. This can lead to a panic in any method that triggers a
GC while this borrow is outstanding, such as Node.childNodes.
Testing: Manual testing on the testcase from the issue. It is impossible
to create a deterministic WPT crash test that is fast enough and can be
counted upon to continue working in the future.
Fixes: #36868
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
The two significant changes here are 1) a commit that frees memory used
to perform memory reporting once the reporting is complete, 2) memory
reporting for the system font service. There are various other commits
that remove `#[ignore_malloc_size_of]` attributes for data that we are
now able to measure, but they do not significantly change our
measurements when testing servo.org.
Testing: Comparing the output of about:memory on servo.org.
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Bumps [jiff](https://github.com/BurntSushi/jiff) from 0.2.12 to 0.2.13.
<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.13 (2025-05-05)</h1>
<p>This release fixes a bug in a corner case where
<code>TimeZone::following</code> could
sometimes omit the last time zone transition. This could only happen in
time
zones that once had daylight saving time, but ended it. This did not
have an
impact on other Jiff APIs that handle daylight saving time.</p>
<p>Bug fixes:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/362">#362</a>:
Fix a bug where <code>TimeZone::following</code> could omit the last
historical time zone
transition.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5d60f33c58"><code>5d60f33</code></a>
0.2.13</li>
<li><a
href="677072eb0f"><code>677072e</code></a>
tz: fix case analysis in <code>TimeZone::following</code></li>
<li><a
href="5336ffb811"><code>5336ffb</code></a>
doc: fix outdated reference to <code>Eq</code> implementation on
<code>Span</code></li>
<li><a
href="b3f9c1effe"><code>b3f9c1e</code></a>
doc: some minor clean-ups</li>
<li>See full diff in <a
href="https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.12...jiff-static-0.2.13">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 [rustls-webpki](https://github.com/rustls/webpki) from 0.103.1 to
0.103.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rustls/webpki/releases">rustls-webpki's
releases</a>.</em></p>
<blockquote>
<h2>0.103.2</h2>
<ul>
<li>Maintain context for key usage mismatch errors in order to make them
easier to interpret.</li>
<li>Accept certificates with an empty extension sequence.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Fix CI build failures, tidy cargo-deny config by <a
href="https://github.com/cpu"><code>@cpu</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/339">rustls/webpki#339</a></li>
<li>Update semver-compatible dependencies by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/341">rustls/webpki#341</a></li>
<li>Remove tests from package that is published by <a
href="https://github.com/SwishSwushPow"><code>@SwishSwushPow</code></a>
in <a
href="https://redirect.github.com/rustls/webpki/pull/340">rustls/webpki#340</a></li>
<li>Allow x509v3 empty extensions (redux) by <a
href="https://github.com/ctz"><code>@ctz</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/342">rustls/webpki#342</a></li>
<li>tests: use rcgen for client_auth tests by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/343">rustls/webpki#343</a></li>
<li>tests: remove test certs for client_auth tests by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/344">rustls/webpki#344</a></li>
<li>Maintain context for key usage mismatch errors by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/337">rustls/webpki#337</a></li>
<li>Refine CI workflow triggers by <a
href="https://github.com/djc"><code>@djc</code></a> in <a
href="https://redirect.github.com/rustls/webpki/pull/345">rustls/webpki#345</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1e923bf9cd"><code>1e923bf</code></a>
ci: enable triggering CI workflow manually</li>
<li><a
href="f4a8783238"><code>f4a8783</code></a>
ci: skip push triggers for most branches</li>
<li><a
href="9cf30f67d6"><code>9cf30f6</code></a>
Bump version to 0.103.2</li>
<li><a
href="baac0b0792"><code>baac0b0</code></a>
Maintain context for key usage mismatch errors</li>
<li><a
href="85d885dae4"><code>85d885d</code></a>
tests: remove test certs for client_auth tests</li>
<li><a
href="7badc0ed34"><code>7badc0e</code></a>
tests: move check_cert() down</li>
<li><a
href="5b3dae134a"><code>5b3dae1</code></a>
tests: use rcgen for client_auth tests</li>
<li><a
href="2efb15ec6e"><code>2efb15e</code></a>
Add test for empty extensions</li>
<li><a
href="e82008ad3b"><code>e82008a</code></a>
Accept empty X509v3 extensions</li>
<li><a
href="ce0385c8f9"><code>ce0385c</code></a>
Remove tests from package that is published</li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/webpki/compare/v/0.103.1...v/0.103.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>
Most sites that feature detect Service Workers in Servo immediately
break when this pref is enabled, since our implementation is very
incomplete. This provides a poor user experience when recommending the
`--enable-experimental-web-platform-features` flag.
Testing: Existing test coverage should be unchanged.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Bumps [rustls](https://github.com/rustls/rustls) from 0.23.26 to
0.23.27.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="260190933b"><code>2601909</code></a>
Bump version to 0.23.27</li>
<li><a
href="a70b0e6a2c"><code>a70b0e6</code></a>
Handle webpki RequiredEkuNotFoundContext errors</li>
<li><a
href="06a704e3c8"><code>06a704e</code></a>
Update to webpki 0.103.2</li>
<li><a
href="9509626f13"><code>9509626</code></a>
Deprecate dangerous_extract_secrets on unbuffered connections</li>
<li><a
href="bf9e874384"><code>bf9e874</code></a>
Add test cases for KernelConnection key updates</li>
<li><a
href="5a12171558"><code>5a12171</code></a>
Add kernel connection API</li>
<li><a
href="35c44d2688"><code>35c44d2</code></a>
Extract tls13 expand_secret function out of extract_secrets</li>
<li><a
href="47ed0c66e4"><code>47ed0c6</code></a>
ci: enable triggering CI workflow manually</li>
<li><a
href="26b8ee3f65"><code>26b8ee3</code></a>
ci: skip push triggers for most branches</li>
<li><a
href="70ed532b33"><code>70ed532</code></a>
Update Rust crate nix to 0.30</li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/rustls/compare/v/0.23.26...v/0.23.27">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 makes it so that layout is no longer generic on the node type,
depending directly on `script`'s `ServoLayoutNode`. In addition to
greatly simplifying layout, this is necessary because incremental layout
needs to be able to create pseudo-element styles without having a handle
on the original `impl LayoutNode`. We feel this is a reasonable
tradeoff.
Testing: No functional changes, so covered by existing WPT tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
The existing code asserts that attribute nodes are never serialized.
This is wrong, because you can pass an attribute node to
`XMLSerializer::serializeToString`. Instead, the spec mandates that
these are serialized as empty strings
(https://w3c.github.io/DOM-Parsing/#dfn-xml-serialization-algorithm).
Testing: Includes a new web platform test
Fixes: https://github.com/servo/servo/issues/36872
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
When slicing a blob that is already sliced we should reference it's
parent's data instead of creating a subview into the sliced blob. This
keeps the blob ancestry chain small and reduces the number of blobs that
we have to resolve.
Testing: Includes a new crashtest
Fixes: https://github.com/servo/servo/issues/36843
[try
run](1484487366)
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
While the vast majority of DOM proxy objects created have a non-null
pointer in the handler's extra data field, there is one place we create
a proxy object that has a null pointer:
8b05b7449d/components/script/window_named_properties.rs (L76)
. Before #36818, dereferencing this null pointer was undefined behaviour
that was silently being ignored; now that Rust 1.86 adds debug pointer
validity checks, we get a panic when trying to dereference it.
Testing: Tested about:memory with rustc 1.86.
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Bumps [jiff](https://github.com/BurntSushi/jiff) from 0.2.11 to 0.2.12.
<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.12 (2025-05-03)</h1>
<p>This release fixes a couple bugs in Jiff's parser. In particular, a
regression
was introduced in <code>jiff 0.2.11</code> where its RFC 2822 parser
could panic on some
inputs. Previous releases of Jiff are unaffected.</p>
<p>Bug fixes:</p>
<ul>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/357">#357</a>:
Fix a bug where parsing
<code>1970-06-01T00-00:45:00[Africa/Monrovia]</code> succeeded
but it should fail.</li>
<li><a
href="https://redirect.github.com/BurntSushi/jiff/issues/359">#359</a>:
Fix a bug where the RFC 2822 parser could panic on some inputs.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d6bae333b0"><code>d6bae33</code></a>
0.2.12</li>
<li><a
href="016d0b1254"><code>016d0b1</code></a>
fmt/rfc2822: fix panic in handling of whitespace</li>
<li><a
href="3efed44871"><code>3efed44</code></a>
fmt/temporal: ensure that
<code>1970-06-01T00-00:45:00[Africa/Monrovia]</code> does not ...</li>
<li><a
href="b0512f4ef4"><code>b0512f4</code></a>
jiff-icu: compatibility fixes</li>
<li><a
href="11b286deed"><code>11b286d</code></a>
jiff-icu-0.2.0-beta.2</li>
<li>See full diff in <a
href="https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.11...jiff-static-0.2.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>
Bumps [libm](https://github.com/rust-lang/compiler-builtins) from 0.2.13
to 0.2.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/compiler-builtins/releases">libm's
releases</a>.</em></p>
<blockquote>
<h2>libm-v0.2.14</h2>
<h3>Other</h3>
<ul>
<li>Use runtime feature detection for fma routines on x86</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="257dd48089"><code>257dd48</code></a>
chore: release</li>
<li><a
href="a2f6440761"><code>a2f6440</code></a>
Use runtime feature detection for fma routines on x86</li>
<li><a
href="6e4255a712"><code>6e4255a</code></a>
Rename the i686 module to x86</li>
<li><a
href="f83962ed9a"><code>f83962e</code></a>
update-api-list: Match subdirectories within arch</li>
<li><a
href="725484ee67"><code>725484e</code></a>
fmaf: Add a test case from a MinGW failure</li>
<li><a
href="7ccb126f88"><code>7ccb126</code></a>
builtins-test: Remove <code>no_mangle</code> from
<code>eh_personality</code></li>
<li><a
href="f456aa8baf"><code>f456aa8</code></a>
Refactor the fma modules</li>
<li><a
href="91963f59b3"><code>91963f5</code></a>
Move <code>fma</code> implementations to <code>mod generic</code></li>
<li><a
href="99b4c19591"><code>99b4c19</code></a>
Resolve <code>unnecessary_transmutes</code> lints</li>
<li><a
href="fdbefb39d5"><code>fdbefb3</code></a>
Warn on <code>unsafe_op_in_unsafe_fn</code> by default</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/compiler-builtins/compare/libm-v0.2.13...libm-v0.2.14">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 [brotli](https://github.com/dropbox/rust-brotli) from 8.0.0 to
8.0.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/dropbox/rust-brotli/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>
Properly passes user-agent from servoshell args to the preferences.
Testing:
```bash
RUST_LOG=warn WAYLAND_DISPLAY='' ./mach run -r --screen-size=375x812 --window-size=375x812 --pref=dom_svg_enabled --pref=dom_intersection_observer_enabled --user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1"
RUST_LOG=warn WAYLAND_DISPLAY='' ./mach run -r --screen-size=375x812 --window-size=375x812 --pref=dom_svg_enabled --pref=dom_intersection_observer_enabled
```
Fixes: N/A
---------
Signed-off-by: Astraea Quinn Skoutelli <astraea.quinn.skoutelli@huawei.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
<!-- Please describe your changes on the following line: -->
This implements `document.scrollingElement`
(https://drafts.csswg.org/cssom-view/#dom-document-scrollingelement).
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#35700
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox
is checked, so that we can help you if you get stuck somewhere along the
way.-->
<!-- Pull requests that do not address these steps are welcome, but they
will require additional verification as part of the review process. -->
---------
Signed-off-by: JimmyDdotEXE <50691404+JimmyDdotEXE@users.noreply.github.com>
Spec has updated so that all responses that aren't 200 shall fail the
event source connection.
Testing: Covered by
`tests/wpt/tests/eventsource/request-status-error.window.js`
---------
Signed-off-by: Keith Yeung <kungfukeith11@gmail.com>
Spec has updated so that any null characters in the `id` field name
would result in the value being ignored.
Testing: Covered by
`tests/wpt/tests/eventsource/format-field-id-null.window.js`
Signed-off-by: Keith Yeung <kungfukeith11@gmail.com>
This change connects the `HighlighterActor` from the devtools with the
document, which will draw a blue rectangle over any highlighted dom
node.
https://github.com/user-attachments/assets/571b2dab-497f-4102-9e55-517cdcc040ba
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by
`[X]` when the step is complete, and replace `___` with appropriate
data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because we don't have devtools
tests
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
If a `WebView` is dropped immediately after creating it, the exit
pipeline message can arrive to the `ScriptThread` before the `Document`
is created for the pipeline. If this happens, we should still send a
message to the `Constellation` informing it that the pipeline is closed,
otherwise it will never know that this has happened properly.
Testing: This change includes a new unit test.
Fixes: #36807.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This change removes the early return in `MessagePort::Close` that
occurred when the message port was detached. The
[spec](https://html.spec.whatwg.org/multipage/web-messaging.html#dom-messageport-close)
doesn't prescribe this behaviour for detached ports for this operation,
so the early return was unnecessary.
Testing: Runs ./mach test-wpt /webmessaging/ and ./mach test-wpt
/streams/
Fixes: [servo-36765](https://github.com/servo/servo/issues/36765)
Signed-off-by: Graham Lowe <graham.lowe@gmail.com>
Co-authored-by: Graham Lowe <graham.lowe@gmail.com>
When all unit tests are run, the existing feature flag use from
net_traits was enough to ensure the default resources are baked into the
test binary. When only the unit tests for the `net` crate are run, that
feature flag was not enabled in the build so the tests that require the
resources fail.
Testing: Ran `./mach test-unit -p net`
Fixes: #36837
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Rather than sharing the full image cache in a script_thread, the image
cache is now unique per document. This ensures that CSP factors no
longer affect whether the image is retrieved from the cache incorrectly.
To do so, the thread_pool is shared across all caches, but the store is
fresh. Except for the place_holder{image,url}, which are cloned. That's
because the `rippy_data` is only available in the constellation and no
longer accessible at the point that we need to create the document in
the script_thread.
Contrary to the description in #36505, the script_thread still has an
image_cache for this reason: so it has access to the store and
thread_pool to clone it.
With these changes, the two CSP tests no longer flake. Confirmed with
running the following commmand:
```
./mach test-wpt tests/wpt/tests/content-security-policy/generic/ --rerun=10
```
Fixes#36505
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Part of #36258
Built on top of #36668
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Implements the Document.write algorithm covering
Trusted HTML.
Part of #36258
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
This follows the rules as defined in
https://w3c.github.io/webappsec-csp/#security-inherit-csp
where local iframes (about:blank and about:srcdoc) should
initially start with the CSP rules of the parent. After
that, all new CSP headers should only be set on the
policy container of the iframe.
Part of #36437
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>