build(deps): bump objc_exception from 0.1.1 to 0.1.2
Bumps [objc_exception](https://github.com/SSheldon/rust-objc-exception) from 0.1.1 to 0.1.2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="c86ad3a529"><code>c86ad3a</code></a> Switch to cc builds</li>
<li>See full diff in <a href="https://github.com/SSheldon/rust-objc-exception/compare/0.1.1...0.1.2">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=objc_exception&package-manager=cargo&previous-version=0.1.1&new-version=0.1.2)
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>
Store abspos boxes in a RefCell too
We want to mutate them when lazily computing their content sizes, but they
are behind an Arc for the hoisting infra, so it also needs its own layer
of inner mutability.
Add UI for bypassing SSL handshake failures
There are several parts to these changes:
1. resurrecting the network error classification code to distinguish between SSL failures and other network errors
1. adding an SSL verification callback to support verifying certs against a list that can change at runtime, rather than just at program initialization
1. exposing a privileged chrome://allowcert URI which accepts the PEM cert contents along with a secret token
1. extracting the PEM cert contents out of the network layer when a handshake failure occurs, and getting them into the HTML that is parsed when an SSL failure occurs
1. adding a button in the handshake failure page that performs an XHR to chrome://allowcert with knowledge of the secret token and the PEM cert contents, before reloading the original URL that failed
The presence of the secret token means that while the chrome://allowcert URL is currently visible to web content, they cannot make use of it to inject arbitrary certs into the verification process.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26683
- [x] These changes do not require tests because the UI requires user activation and can't clearly be automated
build(deps): bump brotli-decompressor from 2.3.0 to 2.3.1
Bumps [brotli-decompressor](https://github.com/dropbox/rust-brotli-decompressor) from 2.3.0 to 2.3.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/dropbox/rust-brotli-decompressor/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=brotli-decompressor&package-manager=cargo&previous-version=2.3.0&new-version=2.3.1)
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>
Update webrender
These changes reflect changes in webrender's API that make RenderApiSender and RenderApi objects more challenging to share. This PR moves us to a model where:
* the compositor owns the main RenderApi object
* other threads that need to create transactions or manipulate fonts proxy those operations to the compositor (script/layout use IPC, while other threads use non-IPC channels)
* the webgl thread owns its own independent RenderApi
Bump new_debug_unreachable from 1.0.1 to 1.0.4
Bumps [new_debug_unreachable](https://github.com/mbrubeck/rust-debug-unreachable) from 1.0.1 to 1.0.4.
<details>
<summary>Commits</summary>
<ul>
<li><a href="d82486c6d9"><code>d82486c</code></a> Version 1.0.4</li>
<li><a href="88691aebfb"><code>88691ae</code></a> Don't run should_panic test in optimized builds</li>
<li><a href="e374f69908"><code>e374f69</code></a> Fix compatibility with Rust 1.29 and older</li>
<li><a href="f6ea6b23cf"><code>f6ea6b2</code></a> Remove dependency on 'unreachable'</li>
<li><a href="628efc1338"><code>628efc1</code></a> Add note about library name to README</li>
<li>See full diff in <a href="https://github.com/mbrubeck/rust-debug-unreachable/compare/new_debug_unreachable-v1.0.1...v1.0.4">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=new_debug_unreachable&package-manager=cargo&previous-version=1.0.1&new-version=1.0.4)
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>
Don't create empty stacking contexts in display lists
A recent change to euclid exposed that our display lists can contain Rects that contain NaN values. These NaNs originate from creating stacking contexts with transforms that scale the horizontal or vertical dimensions to 0. WebRender isn't prepared to handle these, so we need to not produce these empty stacking contexts when building the display list.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26592 and fix#26590
- [x] There are tests for these changes
build(deps): bump futures-task from 0.3.4 to 0.3.5
Bumps [futures-task](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-task'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-task'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-task&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>
Update XHR send to use XMLHttpRequestBodyInit
<!-- Please describe your changes on the following line: -->
FIX#26723
---
<!-- 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. -->
We want to mutate them when lazily computing their content sizes, but they
are behind an Arc for the hoisting infra, so it also needs its own layer
of inner mutability.
Mutably borrow to do layout of independent formatting contexts
We want to compute content sizes on demand rather than eagerly so we will
need to mutate the independent formatting contexts that own the content sizes.
We want to compute content sizes on demand rather than eagerly so we will
need to mutate the independent formatting contexts that own the content sizes.
build(deps): bump core-text from 13.2.0 to 13.3.2
Bumps [core-text](https://github.com/servo/core-foundation-rs) from 13.2.0 to 13.3.2.
<details>
<summary>Commits</summary>
<ul>
<li><a href="b2b92f8bce"><code>b2b92f8</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/core-foundation-rs/issues/348">#348</a> - servo:backport-347, r=SimonSapin</li>
<li><a href="e0ec957e37"><code>e0ec957</code></a> Properly make core_text::font::Font be Send and Sync</li>
<li><a href="70aca43f2f"><code>70aca43</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/core-foundation-rs/issues/341">#341</a> - SSheldon:cocoa_version_0.19.1, r=jdm</li>
<li><a href="e65c9b2939"><code>e65c9b2</code></a> Update cocoa version to 0.19.1</li>
<li><a href="f7c2096ad0"><code>f7c2096</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/core-foundation-rs/issues/340">#340</a> - SSheldon:fix_omitted_ret_types, r=jdm</li>
<li><a href="0a1b0d6f1b"><code>0a1b0d6</code></a> Fixes so the compiler can infer msg_send! return types</li>
<li><a href="c9b0702dc0"><code>c9b0702</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/core-foundation-rs/issues/337">#337</a> - wezm:CFDataGetBytes, r=jdm</li>
<li><a href="b2a4a0e566"><code>b2a4a0e</code></a> Add CFDataGetBytes to CFData bindings</li>
<li><a href="6143ce111e"><code>6143ce1</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/core-foundation-rs/issues/336">#336</a> - wezm:copy-available-tables, r=jdm</li>
<li><a href="bc20614a3b"><code>bc20614</code></a> Add get_available_font_tables to CTFont</li>
<li>Additional commits viewable in <a href="https://github.com/servo/core-foundation-rs/compare/core-text-v13.2.0...core-text-v13.3.2">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=core-text&package-manager=cargo&previous-version=13.2.0&new-version=13.3.2)
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>