Remove unnecessary steps from "text/plain encoding algorithm"
For "text/plain encoding algorithm", the specification [1] has changed [2] and "_charset_" is not now handled here. It's supposed to be handled in "construct the form data set" algorithm, and we've already implemented that [3]. So we now have extra steps for "text/plain encoding" algorithm.
Remove no longer necessary steps from text/plain encoding algorithm so that it meets the specification.
[1]: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#text/plain-encoding-algorithm
[2]: https://github.com/whatwg/html/pull/3645
[3]: https://github.com/servo/servo/pull/25217
<!-- Please describe your changes on the following line: -->
---
<!-- 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#25221 (GitHub issue number if applicable)
<!-- Either: -->
- [x] These changes do not require tests because this patch doesn't expect actual behavior, just removing extra steps.
<!-- 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. -->
Add support for `<iframe>` in Layout 2020
<!-- Please describe your changes on the following line: -->
---
<!-- 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] 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. -->
This change adds support for the <iframe> element to Layout 2020. In
addition, certain aspects of the implementation are made the same
between both layout systems.
Bump openssl from 0.10.48 to 0.10.49
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.48 to 0.10.49.
<details>
<summary>Commits</summary>
<ul>
<li><a href="36c474ada4"><code>36c474a</code></a> Release openssl v0.10.49</li>
<li><a href="545cfa48f8"><code>545cfa4</code></a> Release openssl-sys v0.9.84</li>
<li><a href="29d993ffaa"><code>29d993f</code></a> Release openssl-macros v0.1.1</li>
<li><a href="6af36a70d1"><code>6af36a7</code></a> Merge pull request <a href="https://redirect.github.com/sfackler/rust-openssl/issues/1801">#1801</a> from steffen-eiden/distpoint</li>
<li><a href="34171f4f79"><code>34171f4</code></a> Add basic X509 Distribution Point extension support</li>
<li><a href="b127fb2b41"><code>b127fb2</code></a> Merge pull request <a href="https://redirect.github.com/sfackler/rust-openssl/issues/1867">#1867</a> from tyilo/patch-1</li>
<li><a href="42469df820"><code>42469df</code></a> Fix typo in documentation for set_{min,max}_proto_version</li>
<li><a href="297017da49"><code>297017d</code></a> Merge pull request <a href="https://redirect.github.com/sfackler/rust-openssl/issues/1866">#1866</a> from sfackler/no-ip-sni</li>
<li><a href="d355cb8038"><code>d355cb8</code></a> Don't use IP addresses in SNI</li>
<li><a href="ded3573123"><code>ded3573</code></a> Merge pull request <a href="https://redirect.github.com/sfackler/rust-openssl/issues/1863">#1863</a> from alex/drop-autocfg</li>
<li>Additional commits viewable in <a href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.48...openssl-v0.10.49">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 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>
WPT aggregated results also as github check
Report WPT aggregated results also using GitHub check (so we get those sexy results even when there is no associated PR).
[example](https://github.com/sagudev/servo/runs/12193772513)
Last missing component coming from #29534.
Sccache in actions (linux & mac)
Coming from #29534.
- linux (release, layout-2013): 30min -> 15min
- mac: 1h 30min -> 50min
- windows: not working yet
Windows problems are very weird, when using `RUSTC_WRAPPER: sccache` we get:
```console
sccache: encountered fatal error
sccache: error: Invalid timestamp field in entry header ("-1 ")
sccache: caused by: Invalid timestamp field in entry header ("-1 ")
error: could not compile `openssl-sys`
Caused by:
process didn't exit successfully: `sccache rustc --crate-name openssl_sys --edition=2018 C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\openssl-sys-0.9.81\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=15e5a7651b4bbdb6 -C extra-filename=-15e5a7651b4bbdb6 --out-dir C:\a\servo\servo\target\release\deps -C linker=lld-link.exe -L dependency=C:\a\servo\servo\target\release\deps --extern libc=C:\a\servo\servo\target\release\deps\liblibc-1fe4b5632b2d1333.rmeta --cap-lints allow -W unused-extern-crates -L native=C:\a\servo\servo\.servo\msvc-dependencies\openssl\111.3.0+1.1.1c-vs2017-2019-09-18\x64-windows\lib -l static=libssl -l static=libcrypto -l dylib=gdi32 -l dylib=user32 -l dylib=crypt32 -l dylib=ws2_32 -l dylib=advapi32 --cfg const_fn --cfg openssl --cfg "osslconf=\"OPENSSL_NO_COMP\"" --cfg "osslconf=\"OPENSSL_NO_SSL3_METHOD\"" --cfg ossl101 --cfg ossl102 --cfg ossl102f --cfg ossl102h --cfg ossl110 --cfg ossl110f --cfg ossl110g --cfg ossl110h --cfg ossl111 --cfg ossl111b --cfg ossl111c` (exit code: 0xfffffffe)
warning: build failed, waiting for other jobs to finish...
```
and when using only `CCACHE: sccache` we get [0 cache hits/misses which is weird as at least mozjs is using CCACHE variable and should have same sccache requests](https://github.com/sagudev/servo/actions/runs/4587126100/jobs/8100424378).
Implement URL.canParse
Add an implementation of `URL.canParse` as a static method. See [here][1] for the specification.
[1]: https://url.spec.whatwg.org/#dom-url-canparse
Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com>
---
<!-- 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 #29533(GitHub issue number if applicable)
<!-- Either: -->
- [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. -->
Add an implementation of `URL.canParse` as a static method. See
[here][1] for the specification.
[1]: https://url.spec.whatwg.org/#dom-url-canparse
Signed-off-by: Yutaro Ohno <yutaro.ono.418@gmail.com>
Update user agent strings
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- 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. -->
Abstract platform-specific workflows into separate files
Changes:
- split main workflow into multiple modular files & merged linux and quickcheck
- easily allow testing both `layout-2013` and `layout-2020` (currently layout-2020 is build on both quick-check and main workflows, but no actual tests are run)
- workflow_dispatch on any try run
Future work:
- sccache for caching
- linux (release, layout-2013): 30min -> 15min
- mac: 1h 30min -> 50min
- windows: not working yet:
```console
sccache: encountered fatal error
sccache: error: Invalid timestamp field in entry header ("-1 ")
sccache: caused by: Invalid timestamp field in entry header ("-1 ")
error: could not compile `openssl-sys`
Caused by:
process didn't exit successfully: `sccache rustc --crate-name openssl_sys --edition=2018 C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\openssl-sys-0.9.81\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=15e5a7651b4bbdb6 -C extra-filename=-15e5a7651b4bbdb6 --out-dir C:\a\servo\servo\target\release\deps -C linker=lld-link.exe -L dependency=C:\a\servo\servo\target\release\deps --extern libc=C:\a\servo\servo\target\release\deps\liblibc-1fe4b5632b2d1333.rmeta --cap-lints allow -W unused-extern-crates -L native=C:\a\servo\servo\.servo\msvc-dependencies\openssl\111.3.0+1.1.1c-vs2017-2019-09-18\x64-windows\lib -l static=libssl -l static=libcrypto -l dylib=gdi32 -l dylib=user32 -l dylib=crypt32 -l dylib=ws2_32 -l dylib=advapi32 --cfg const_fn --cfg openssl --cfg "osslconf=\"OPENSSL_NO_COMP\"" --cfg "osslconf=\"OPENSSL_NO_SSL3_METHOD\"" --cfg ossl101 --cfg ossl102 --cfg ossl102f --cfg ossl102h --cfg ossl110 --cfg ossl110f --cfg ossl110g --cfg ossl110h --cfg ossl111 --cfg ossl111b --cfg ossl111c` (exit code: 0xfffffffe)
warning: build failed, waiting for other jobs to finish...
```
- report WPT test results also using GitHub checks (so we get those sexy results even when there is no associated PR) [example](https://github.com/sagudev/servo/runs/12193772513)
- run `WPT export` only when PR changes files in `tests/wpt/**`
Bump zune-inflate from 0.2.52 to 0.2.53
Bumps [zune-inflate](https://github.com/etemesi254/zune-image) from 0.2.52 to 0.2.53.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/etemesi254/zune-image/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 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>
Fix permissions of etc/ci/wpt-nightly-update.sh
The permissions were mistakenly modified in a previous change.
Fixes#29550.
<!-- Please describe your changes on the following line: -->
---
<!-- 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 they fix a script's permissions.
<!-- 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. -->
Remove a print statement mistakenly added in a previous change
This statement is totally unnecessary and interferes with the console commands which erase and rewrite the current tidy status.
<!-- Please describe your changes on the following line: -->
---
<!-- 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 they just remove a print statement.
<!-- 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. -->
Bump image from 0.24.5 to 0.24.6
Bumps [image](https://github.com/image-rs/image) from 0.24.5 to 0.24.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/image-rs/image/blob/master/CHANGES.md">image's changelog</a>.</em></p>
<blockquote>
<h3>Version 0.24.6</h3>
<ul>
<li>Add support for QOI.</li>
<li>ImageDecoders now expose ICC profiles on supported formats.</li>
<li>Add support for BMPs without a file header.</li>
<li>Improved AVIF encoder.</li>
<li>WebP decoding fixes.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/image-rs/image/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 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>
Fix some build warnings
Change a use of `extern crate` to be simply `use`, which is what the compiler suggests. In addition, with the change, one of the uses is redundant. In addition, remove two unused `use` statements.
---
<!-- 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 they fix some warnings.
<!-- 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. -->
Implement Headers.prototype.getSetCookie
<!-- Please describe your changes on the following line: -->
---
<!-- 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#29388
<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- 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. -->
Run the Layout 2020 build in the main workflow
<!-- Please describe your changes on the following line: -->
---
<!-- 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 they are an infrastructure change.
<!-- 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. -->
Add Layout 2020 support to nightly WPT update
<!-- Please describe your changes on the following line: -->
---
<!-- 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 they change infrastructure.
<!-- 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. -->