Fix streaming request bodies
<!-- Please describe your changes on the following line: -->
FIX#26904
At this point I'm not sure if the hyper `Body::wrap_stream` integration by way of the IPC route is broken, or if perhaps there is a problem with the WPT server not handling the requests properly, as I am getting a bunch of:
```
0:04.54 INFO STDERR: 127.0.0.1 - - [13/Jun/2020 18:22:08] code 400, message Bad request syntax ('4')
0:04.54 INFO STDERR: 127.0.0.1 - - [13/Jun/2020 18:22:08] "4" 400 -
```
In any case, the `start_reading` call in `body.rs` had to be put into the other function, since it should not be called for each chunk(this was actually failing before).
I've also added the chunked header in case the source is a stream.
Last thing to figure out, why is the request data not actually reaching the server, or not being handled properly by it.
---
<!-- 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. -->
Add animation and transition support for pseudo-elements
This change extends the DocumentAnimationSet to hold animations for
pseudo-elements. Since pseudo-elements in Servo are not in the DOM like
in Gecko, they need to be handled a bit carefully in stylo. When a
pseudo-element has an animation, recascade the style. Finally, this
change passes the pseudo-element string properly to animation events.
---
<!-- 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#10316
- [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 extends the DocumentAnimationSet to hold animations for
pseudo-elements. Since pseudo-elements in Servo are not in the DOM like
in Gecko, they need to be handled a bit carefully in stylo. When a
pseudo-element has an animation, recascade the style. Finally, this
change passes the pseudo-element string properly to animation events.
Fixes: #10316
build(deps): bump aho-corasick from 0.7.9 to 0.7.10
Bumps [aho-corasick](https://github.com/BurntSushi/aho-corasick) from 0.7.9 to 0.7.10.
<details>
<summary>Commits</summary>
<ul>
<li><a href="36de9d383a"><code>36de9d3</code></a> 0.7.10</li>
<li><a href="8b479a6090"><code>8b479a6</code></a> style: fix rust-analyzer warnings</li>
<li><a href="e9110e994b"><code>e9110e9</code></a> prefilter: fix another case insensitive prefilter bug</li>
<li>See full diff in <a href="https://github.com/BurntSushi/aho-corasick/compare/0.7.9...0.7.10">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=aho-corasick&package-manager=cargo&previous-version=0.7.9&new-version=0.7.10)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
build(deps): bump gstreamer-sdp from 0.15.0 to 0.15.6
Bumps gstreamer-sdp from 0.15.0 to 0.15.6.
[](https://dependabot.com/compatibility-score/?dependency-name=gstreamer-sdp&package-manager=cargo&previous-version=0.15.0&new-version=0.15.6)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot 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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Add DocumentAnimationSet and AnimationSetKey
This will be used in order to hold animations for pseudo elements in the
DocumentAnimationSet. Also no longer store the OpaqueNode in the
animation and transition data structures. This is already part of the
DocumentAnimationSet key.
---
<!-- 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 should not change behavior.
<!-- 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. -->
build(deps): bump futures-util from 0.3.4 to 0.3.5
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.4 to 0.3.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/releases">futures-util's releases</a>.</em></p>
<blockquote>
<h2>0.3.5</h2>
<ul>
<li>Added <code>StreamExt::flat_map</code>.</li>
<li>Added <code>StreamExt::ready_chunks</code>.</li>
<li>Added <code>*_unpin</code> methods to <code>SinkExt</code>.</li>
<li>Added a <code>cancellation()</code> future to <code>oneshot::Sender</code>.</li>
<li>Added <code>reunite</code> method to <code>ReadHalf</code> and <code>WriteHalf</code>.</li>
<li>Added <code>Extend</code> implementations for <code>Futures(Un)Ordered</code> and <code>SelectAll</code>.</li>
<li>Added support for reexporting the <code>join!</code> and <code>select!</code> macros.</li>
<li>Added <code>no_std</code> support for the <code>pending!</code> and <code>poll!</code> macros.</li>
<li>Added <code>Send</code> and <code>Sync</code> support for <code>AssertUnmoved</code>.</li>
<li>Fixed a bug where <code>Shared</code> wasn't relinquishing control to the executor.</li>
<li>Removed the <code>Send</code> bound on the output of <code>RemoteHandle</code>.</li>
<li>Relaxed bounds on <code>FuturesUnordered</code>.</li>
<li>Reorganized internal tests to work under different <code>--feature</code>s.</li>
<li>Reorganized the bounds on <code>StreamExt::forward</code>.</li>
<li>Removed and replaced a large amount of internal <code>unsafe</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md">futures-util's changelog</a>.</em></p>
<blockquote>
<h1>0.3.5 - 2020-05-08</h1>
<ul>
<li>Added <code>StreamExt::flat_map</code>.</li>
<li>Added <code>StreamExt::ready_chunks</code>.</li>
<li>Added <code>*_unpin</code> methods to <code>SinkExt</code>.</li>
<li>Added a <code>cancellation()</code> future to <code>oneshot::Sender</code>.</li>
<li>Added <code>reunite</code> method to <code>ReadHalf</code> and <code>WriteHalf</code>.</li>
<li>Added <code>Extend</code> implementations for <code>Futures(Un)Ordered</code> and <code>SelectAll</code>.</li>
<li>Added support for reexporting the <code>join!</code> and <code>select!</code> macros.</li>
<li>Added <code>no_std</code> support for the <code>pending!</code> and <code>poll!</code> macros.</li>
<li>Added <code>Send</code> and <code>Sync</code> support for <code>AssertUnmoved</code>.</li>
<li>Fixed a bug where <code>Shared</code> wasn't relinquishing control to the executor.</li>
<li>Removed the <code>Send</code> bound on the output of <code>RemoteHandle</code>.</li>
<li>Relaxed bounds on <code>FuturesUnordered</code>.</li>
<li>Reorganized internal tests to work under different <code>--feature</code>s.</li>
<li>Reorganized the bounds on <code>StreamExt::forward</code>.</li>
<li>Removed and replaced a large amount of internal <code>unsafe</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4ceafb384c"><code>4ceafb3</code></a> Stage 0.3.5</li>
<li><a href="5b91728e10"><code>5b91728</code></a> Drop unneeded Send/Sync bound from AssertUnmoved</li>
<li><a href="4b930bb470"><code>4b930bb</code></a> Implement Send + Sync for AssertUnmoved</li>
<li><a href="3bf5ac99e9"><code>3bf5ac9</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2128">#2128</a> from Diggsey/snip</li>
<li><a href="1b44548be7"><code>1b44548</code></a> Merge branch 'master' into snip</li>
<li><a href="32005e3f74"><code>32005e3</code></a> fix: Shared must relinquish control to the executor if repolled</li>
<li><a href="dc06edaf54"><code>dc06eda</code></a> Update pin-utils to 0.1</li>
<li><a href="dc00793b38"><code>dc00793</code></a> Make ready and lazy's panic messages easy to understand</li>
<li><a href="127b244ecd"><code>127b244</code></a> Allow pending! and poll! in no_std</li>
<li><a href="dfc6673946"><code>dfc6673</code></a> Update futures-util/src/future/future/flatten.rs</li>
<li>Additional commits viewable in <a href="https://github.com/rust-lang/futures-rs/compare/0.3.4...0.3.5">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=futures-util&package-manager=cargo&previous-version=0.3.4&new-version=0.3.5)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
build(deps): bump chrono from 0.4.9 to 0.4.11
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.9 to 0.4.11.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/master/CHANGELOG.md">chrono's changelog</a>.</em></p>
<blockquote>
<h2>0.4.11</h2>
<h3>Improvements</h3>
<ul>
<li>Support a space or <code>T</code> in <code>FromStr</code> for <code>DateTime<Tz></code>, meaning that e.g.
<code>dt.to_string().parse::<DateTime<Utc>>()</code> now correctly works on round-trip.
(<a href="https://github.com/quodlibetor">@quodlibetor</a> in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/378">#378</a>)</li>
<li>Support "negative UTC" in <code>parse_from_rfc2822</code> (<a href="https://github.com/quodlibetor">@quodlibetor</a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/368">#368</a> reported in
<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/102">#102</a>)</li>
<li>Support comparisons of DateTimes with different timezones (<a href="https://github.com/dlalic">@dlalic</a> in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/375">#375</a>)</li>
<li>Many documentation improvements</li>
</ul>
<h3>Bitrot and external integration fixes</h3>
<ul>
<li>Don't use wasmbind on wasi (<a href="https://github.com/coolreader18">@coolreader18</a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/365">#365</a>)</li>
<li>Avoid deprecation warnings for <code>Error::description</code> (<a href="https://github.com/AnderEnder">@AnderEnder</a> and
<a href="https://github.com/quodlibetor">@quodlibetor</a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/376">#376</a>)</li>
</ul>
<h3>Internal improvements</h3>
<ul>
<li>Use Criterion for benchmarks (<a href="https://github.com/quodlibetor">@quodlibetor</a>)</li>
</ul>
<h2>0.4.10</h2>
<h3>Compatibility notes</h3>
<ul>
<li>Putting some functionality behind an <code>alloc</code> feature to improve no-std
support (in <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/341">#341</a>) means that if you were relying on chrono with
<code>no-default-features</code> <em>and</em> using any of the functions that require alloc
support (i.e. any of the string-generating functions like <code>to_rfc3339</code>) you
will need to add the <code>alloc</code> feature in your Cargo.toml.</li>
</ul>
<h3>Improvements</h3>
<ul>
<li><code>DateTime::parse_from_str</code> is more than 2x faster in some cases. (<a href="https://github.com/michalsrb">@michalsrb</a>
<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/358">#358</a>)</li>
<li>Significant improvements to no-std and alloc support (This should also make
many format/serialization operations induce zero unnecessary allocations)
(<a href="https://github.com/CryZe">@CryZe</a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/341">#341</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Functions that were accepting <code>Iterator</code> of <code>Item</code>s (for example
<code>format_with_items</code>) now accept <code>Iterator</code> of <code>Borrow<Item></code>, so one can
use values or references. (<a href="https://github.com/michalsrb">@michalsrb</a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/358">#358</a>)</li>
<li>Add built-in support for structs with nested <code>Option<Datetime></code> etc fields
(<a href="https://github.com/manifest">@manifest</a> <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/302">#302</a>)</li>
</ul>
<h3>Internal/doc improvements</h3>
</tr></table> ... (truncated)
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="e493218d68"><code>e493218</code></a> Update changelog for 0.4.11 (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/399">#399</a>)</li>
<li><a href="725d88e0dc"><code>725d88e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/395">#395</a> from vallentin/master</li>
<li><a href="9041ce5b05"><code>9041ce5</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/396">#396</a> from ignatenkobrain/fix-cargo-test</li>
<li><a href="7d37413665"><code>7d37413</code></a> Fix cargo test with latest serde_json</li>
<li><a href="89da02ebd5"><code>89da02e</code></a> Fixed typos</li>
<li><a href="4837b568c2"><code>4837b56</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/381">#381</a> from waldyrious/same-to_same-as</li>
<li><a href="9397ab2b47"><code>9397ab2</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/375">#375</a> from dlalic/354</li>
<li><a href="4ad95ee602"><code>4ad95ee</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/378">#378</a> from quodlibetor/round-trip-display</li>
<li><a href="176dfeff87"><code>176dfef</code></a> Reword 'same to' --> 'same as'</li>
<li><a href="b9c967b2ac"><code>b9c967b</code></a> support round tripping display <-> datetime</li>
<li>Additional commits viewable in <a href="https://github.com/chronotope/chrono/compare/v0.4.9...v0.4.11">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=chrono&package-manager=cargo&previous-version=0.4.9&new-version=0.4.11)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
build(deps): bump siphasher from 0.3.1 to 0.3.3
Bumps [siphasher](https://github.com/jedisct1/rust-siphash) from 0.3.1 to 0.3.3.
<details>
<summary>Commits</summary>
<ul>
<li><a href="003a603a77"><code>003a603</code></a> bump</li>
<li><a href="3015c54e04"><code>3015c54</code></a> Port from Rust 1.44.0, faster short writes</li>
<li><a href="146ba215aa"><code>146ba21</code></a> Bump</li>
<li><a href="aa28777006"><code>aa28777</code></a> Add a serde test for siphash128</li>
<li><a href="7acaef1bba"><code>7acaef1</code></a> Optional serde support and PartialEq deriving (<a href="https://github-redirect.dependabot.com/jedisct1/rust-siphash/issues/12">#12</a>)</li>
<li>See full diff in <a href="https://github.com/jedisct1/rust-siphash/compare/0.3.1...0.3.3">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=siphasher&package-manager=cargo&previous-version=0.3.1&new-version=0.3.3)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
build(deps): bump num_cpus from 1.10.1 to 1.13.0
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus) from 1.10.1 to 1.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/seanmonstar/num_cpus/releases">num_cpus's releases</a>.</em></p>
<blockquote>
<h2>v1.13.0</h2>
<h3>Features</h3>
<ul>
<li>add Linux cgroups support when calling <code>get()</code>.</li>
</ul>
<hr />
<p>Linux cgroups are a way to restrict the amount of resources a container can use. With this change, most libraries and applications deciding the number of threads to use via <code>num_cpus::get()</code> will spawn less threads, resulting in better usage of the CPU, and typically perform better.</p>
<p><img src="https://user-images.githubusercontent.com/145366/78310804-48a72080-754f-11ea-8ae5-61f97a979d8f.png" alt="image" /></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md">num_cpus's changelog</a>.</em></p>
<blockquote>
<h2>v1.13.0</h2>
<h3>Features</h3>
<ul>
<li>add Linux cgroups support when calling <code>get()</code>.</li>
</ul>
<h2>v1.12.0</h2>
<h4>Fixes</h4>
<ul>
<li>fix <code>get</code> on OpenBSD to ignore offline CPUs</li>
<li>implement <code>get_physical</code> on OpenBSD</li>
</ul>
<h2>v1.11.1</h2>
<h4>Fixes</h4>
<ul>
<li>Use <code>mem::zeroed</code> instead of <code>mem::uninitialized</code>.</li>
</ul>
<h2>v1.11.0</h2>
<h4>Features</h4>
<ul>
<li>add <code>hermit</code> target OS support</li>
<li>removes <code>bitrig</code> support</li>
</ul>
<h4>Fixes</h4>
<ul>
<li>fix <code>get_physical</code> count with AMD hyperthreading.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b347731fc0"><code>b347731</code></a> v1.13.0</li>
<li><a href="b676af138f"><code>b676af1</code></a> Add docker CI</li>
<li><a href="3a56d16215"><code>3a56d16</code></a> Add cgroups support for Linux targets</li>
<li><a href="bfce9402ba"><code>bfce940</code></a> Add MSRV to CI (<a href="https://github-redirect.dependabot.com/seanmonstar/num_cpus/issues/98">#98</a>)</li>
<li><a href="3eadfaa1e0"><code>3eadfaa</code></a> Remove un-supported macOS/iOS targets from CI (<a href="https://github-redirect.dependabot.com/seanmonstar/num_cpus/issues/97">#97</a>)</li>
<li><a href="ae4492e91b"><code>ae4492e</code></a> v1.12.0</li>
<li><a href="b94df797a1"><code>b94df79</code></a> Tweak OpenBSD cpu detection (<a href="https://github-redirect.dependabot.com/seanmonstar/num_cpus/issues/92">#92</a>)</li>
<li><a href="428811d2a0"><code>428811d</code></a> v1.11.1</li>
<li><a href="a24f544dc6"><code>a24f544</code></a> Replace <code>mem::uninitialized()</code> with <code>mem::zeroed()</code> (<a href="https://github-redirect.dependabot.com/seanmonstar/num_cpus/issues/83">#83</a>)</li>
<li><a href="1904840fa1"><code>1904840</code></a> v1.11.0</li>
<li>Additional commits viewable in <a href="https://github.com/seanmonstar/num_cpus/compare/v1.10.1...v1.13.0">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=num_cpus&package-manager=cargo&previous-version=1.10.1&new-version=1.13.0)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Implement GPUSwapChain and GPUCanvasContext and interface with Webrender
<!-- Please describe your changes on the following line: -->
r?@kvark
---
<!-- 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
- [ ] 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. -->
Focus correctness improvements
These changes improve the behaviour of focus in Hubs rooms, and are expected to improve web compat around other dynamic pages that receive keyboard events as well.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26901 and fix#26900.
- [x] There are tests for these changes
This will be used in order to hold animations for pseudo elements in the
DocumentAnimationSet. Also no longer store the OpaqueNode in the
animation and transition data structures. This is already part of the
DocumentAnimationSet key.
Implement visibility for layout_2020
<!-- Please describe your changes on the following line: -->
Implement the 'visibility: hidden' (and 'visibility: collapse') css properties.
---
<!-- 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#26841 (GitHub issue number if applicable)
<!-- 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. -->
build(deps): bump num-traits from 0.2.11 to 0.2.12
Bumps [num-traits](https://github.com/rust-num/num-traits) from 0.2.11 to 0.2.12.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-num/num-traits/blob/master/RELEASES.md">num-traits's changelog</a>.</em></p>
<blockquote>
<h1>Release 0.2.12 (2020-06-11)</h1>
<ul>
<li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/153">The new <code>WrappingNeg</code> trait</a> will wrap the result if it exceeds the
boundary of the type, e.g. <code>i32::MIN.wrapping_neg() == i32::MIN</code>.</li>
<li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/165">The new <code>SaturatingAdd</code>, <code>SaturatingSub</code>, and <code>SaturatingMul</code> traits</a>
will saturate at the numeric bounds if the operation would overflow. These
soft-deprecate the existing <code>Saturating</code> trait that only has addition and
subtraction methods.</li>
<li><a href="https://github-redirect.dependabot.com/rust-num/num-traits/pull/171">Added new constants for logarithms, <code>FloatConst::{LOG10_2, LOG2_10}</code></a>.</li>
</ul>
<p><strong>Contributors</strong>: <a href="https://github.com/cuviper">@cuviper</a>, <a href="https://github.com/ocstl">@ocstl</a>, <a href="https://github.com/trepetti">@trepetti</a>, <a href="https://github.com/vallentin">@vallentin</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="f6852e047c"><code>f6852e0</code></a> Merge <a href="https://github-redirect.dependabot.com/rust-num/num-traits/issues/172">#172</a></li>
<li><a href="fb10fe9bf4"><code>fb10fe9</code></a> Release 0.2.12</li>
<li><a href="9d54f39df9"><code>9d54f39</code></a> Merge <a href="https://github-redirect.dependabot.com/rust-num/num-traits/issues/165">#165</a> <a href="https://github-redirect.dependabot.com/rust-num/num-traits/issues/171">#171</a></li>
<li><a href="5f00e22314"><code>5f00e22</code></a> remove an unused pattern from saturating_impl</li>
<li><a href="e9fcdb0730"><code>e9fcdb0</code></a> Add FloatConst::{LOG10_2, LOG2_10}</li>
<li><a href="cf1633836c"><code>cf16338</code></a> Merge <a href="https://github-redirect.dependabot.com/rust-num/num-traits/issues/162">#162</a></li>
<li><a href="86c31265f5"><code>86c3126</code></a> Restore and deprecate Saturating trait. Fix up doc strings for Saturating* tr...</li>
<li><a href="964752f019"><code>964752f</code></a> Fix formatting for SaturatingAdd, SaturatingMul and SaturatingSub traits in l...</li>
<li><a href="052e765df0"><code>052e765</code></a> Add saturating_mul() and refactor Saturating into subtraits. Fixes <a href="https://github-redirect.dependabot.com/rust-num/num-traits/issues/40">#40</a>.</li>
<li><a href="a91bb7b085"><code>a91bb7b</code></a> Use {float}::to_int_unchecked() in Rust 1.44+</li>
<li>Additional commits viewable in <a href="https://github.com/rust-num/num-traits/compare/num-traits-0.2.11...num-traits-0.2.12">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=num-traits&package-manager=cargo&previous-version=0.2.11&new-version=0.2.12)
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)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Fix infinite stream and its missing incumbent script environment when newing a new stream
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26807
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
Move away from Promise.all way and check if we need to finish manually
In the previous Promise.all way, we registered a promise for every
module script which means we will need to do many complex checkings like
"is this top level?" and it will make us much more difficult to understand
how the module script algorithm works.
In the new manual checking way, we will only register promises for top
level modules to notify its owner (e.g. the script element) to finish
the load. So, we can understand it much more easily and would be more
spec-aligned.
Also, I think the `Ready` and `FetchFailed` status are quite confusing
and we actually don't need them so they're removed in this patch. Then,
we will always go to `Finished` instead.
It would basically be following steps:
```
+-----------------+
| Failed to fetch | ----------+
+--------------+ +----------+ / +-----------------+ |
| Fetch module | ----> | Fetching | ---+ v
+--------------+ +----------+ \ +---------+ +---------------------+
| Fetched | | Advance to Finished |
+---------+ +---------------------+
| ^
v |
+-------------------+ |
| Fetch descendants | ----- if no descendants
+-------------------+
|
V
+----------------------+
| Fetching Descendants |
+----------------------+
```
In `Advance to Finished`, it means that module script is about to finished so it will
1. Notify all of its `ready` and `not finished` parents to finish
2. Link (instantiate) the module
3. Resolve its promise to notify owner(s) to finish
<!-- 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#25442
- [x] These changes do not require tests because it basically refactors the script module and should not break anything.
<!-- 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. -->
As discussed in https://github.com/servo/servo/issues/26807#issuecomment-640151804, we'd like to
add a new flag, `in_memory_done`, to `TransmitBodyConnectHandler` so
that we can correctly finish and drop the sender correctly.
When we send the bytes, we will mark the body as done and we can
recognize it's already done in next tick so that we can send a Done
request to finish the sender.
Also, when there comes a redirect request, it will go to `re-extract`
route, we can set the `done` flag to `false` which means we won't
stop the IPC routers yet. Then, if the re-extract sent its bytes, we
will be marked as done again so that we can finish with stopping the IPC
routes when Chunk request comes.
Generate keyup events for printable keys
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26880
- [x] These changes do not require tests because we have no automated way to test user input
In the previous Promise.all way, we registered a promise for every
module script which means we will need to do many complex checkings like
"is this top level?" and it will make us much more difficult to understand
how the module script algorithm works.
In the new manual checking way, we will only register promises for top
level modules to notify its owner (e.g. the script element) to finish
the load. So, we can understand it much more easily and would be more
spec-aligned.
Also, I think the `Ready` and `FetchFailed` status are quite confusing
and we actually don't need them so they're removed in this patch. Then,
we will always go to `Finished` instead.
It would basically be following steps:
+-----------------+
| Failed to fetch | ----------+
+--------------+ +----------+ / +-----------------+ |
| Fetch module | ----> | Fetching | ---+ v
+--------------+ +----------+ \ +---------+ +---------------------+
| Fetched | | Advance to Finished |
+---------+ +---------------------+
| ^
v |
+-------------------+ |
| Fetch descendants | ----- if no descendants
+-------------------+
|
V
+----------------------+
| Fetching Descendants |
+----------------------+
In `Advance to Finished`, it means that module script is about to finished so it will
1. Notify all of its `ready` and `not finished` parents to finish
2. Link (instantiate) the module
3. Resolve its promise to notify owner(s) to finish