This is based on compiling with `RUSTFLAGS="-W unused_crate_dependencies"` (CC https://github.com/rust-lang/rust/pull/72342) in a recent Nightly (more so than used in the tree as of this writing, CC https://github.com/servo/servo/issues/26661 for work-arounds).
Only one crate is actually removed from the dependency graph, others are still dependended from other places.
Provide feedback when OpenXR can't start
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#26213
- [x] These changes do not require tests because it's testing an edge case in an environment we can't test on CI
Bump smallvec from 1.2.0 to 1.3.0
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.2.0 to 1.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/servo/rust-smallvec/releases">smallvec's releases</a>.</em></p>
<blockquote>
<h2>v1.3.0</h2>
<ul>
<li>Add a new unstable <code>const_generics</code> feature (<a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/204">#204</a>).</li>
<li>Improve inlining of constructor functions (<a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/206">#206</a>).</li>
<li>Add a <code>slice.to_smallvec()</code> convenience method (<a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/203">#203</a>).</li>
<li>Documentation and testing improvements.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="3957cd8b36"><code>3957cd8</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/207">#207</a> - mbrubeck:bump, r=mbrubeck</li>
<li><a href="851d222629"><code>851d222</code></a> Version 1.3.0</li>
<li><a href="6a14df03e5"><code>6a14df0</code></a> Document Cargo features</li>
<li><a href="c48902fb78"><code>c48902f</code></a> Make ToSmallVec trait public</li>
<li><a href="faca460f0c"><code>faca460</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/206">#206</a> - hiddenhare:inline-constructors, r=mbrubeck</li>
<li><a href="f5f6d89e7e"><code>f5f6d89</code></a> Add #[inline] attribute to all fns which return SmallVec</li>
<li><a href="9cdf8fb424"><code>9cdf8fb</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/204">#204</a> - c410-f3r:const__generics, r=mbrubeck</li>
<li><a href="02cdf2492e"><code>02cdf24</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/205">#205</a> - c410-f3r:fix-ci, r=mbrubeck</li>
<li><a href="9f2f610d52"><code>9f2f610</code></a> Fix CI</li>
<li><a href="70e967edaa"><code>70e967e</code></a> Add support for constant generics</li>
<li>Additional commits viewable in <a href="https://github.com/servo/rust-smallvec/compare/v1.2.0...v1.3.0">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=smallvec&package-manager=cargo&previous-version=1.2.0&new-version=1.3.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>
Bump jni from 0.10.2 to 0.16.0
Bumps [jni](https://github.com/jni-rs/jni-rs) from 0.10.2 to 0.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/jni-rs/jni-rs/releases">jni's releases</a>.</em></p>
<blockquote>
<h2>Rust JNI 0.13.0</h2>
<p>0.13 brings major improvements in thread management, allowing to attach the native threads
permanently and safely; <code>Executor</code> for extra convenience and safety; and other
improvements and fixes.</p>
<p>⚠️ If your code attaches native threads — make sure to check the updated documentation
of <a href="https://docs.rs/jni/0.13.0/jni/struct.JavaVM.html">JavaVM</a> to learn about the new features!</p>
<h3>Added</h3>
<ul>
<li><code>JavaVM::attach_current_thread_permanently</code> method, which attaches the current
thread and detaches it when the thread finishes. Daemon threads attached
with <code>JavaVM::attach_current_thread_as_daemon</code> also automatically detach themselves
when finished. The number of currently attached threads may be acquired using
<code>JavaVM::threads_attached</code> method. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/179">#179</a>, <a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/180">#180</a>)</li>
<li><code>Executor</code> — a simple thread attachment manager which helps to safely
execute a closure in attached thread context and to automatically free
created local references at closure exit. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/186">#186</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The default JNI API version in <code>InitArgsBuilder</code> from V1 to V8. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/178">#178</a>)</li>
<li>Extended the lifetimes of <code>AutoLocal</code> to make it more flexible. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/190">#190</a>)</li>
<li>Default exception type from checked <code>java.lang.Exception</code> to unchecked <code>java.lang.RuntimeException</code>.
It is used implicitly when <code>JNIEnv#throw</code> is invoked with exception message:
<code>env.throw("Exception message")</code>; however, for efficiency reasons, it is recommended
to specify the exception type explicitly <em>and</em> use <code>throw_new</code>:
<code>env.throw_new(exception_type, "Exception message")</code>. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/194">#194</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Native threads attached with <code>JavaVM::attach_current_thread_as_daemon</code> now automatically detach
themselves on exit, preventing Java Thread leaks. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/179">#179</a>)</li>
<li>Local reference leaks in <code>JList</code>, <code>JMap</code> and <code>JMapIter</code>. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/190">#190</a>, <a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/191">#191</a>)</li>
</ul>
<h2>Rust JNI 0.12.3</h2>
<h3>Added</h3>
<ul>
<li><code>From<jboolean></code> implementation for <code>JValue</code> (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/173">#173</a>)</li>
<li><code>Debug</code> trait for InitArgsBuilder. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/175">#175</a>)</li>
<li><code>InitArgsBuilder#options</code> returning the collected JVM options. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/177">#177</a>)</li>
</ul>
<h2>Rust JNI 0.12.2</h2>
<h3>Changed</h3>
<ul>
<li>Updated documentation of GetXArrayRegion methods (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/169">#169</a>)</li>
<li>Improved ABI compatibility on various platforms (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/170">#170</a>)</li>
</ul>
<h2>Rust JNI 0.12.1</h2>
<p>This release does not bring code changes.</p>
<h3>Changed</h3>
<ul>
<li>Updated project documentation.</li>
</ul>
</tr></table> ... (truncated)
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/jni-rs/jni-rs/blob/master/CHANGELOG.md">jni's changelog</a>.</em></p>
<blockquote>
<h2>[0.16.0] — 2020-02-28</h2>
<h3>Fixed</h3>
<ul>
<li>Java VM instantiation with some MacOS configurations. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/220">#220</a>, <a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/229">#229</a>, <a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/230">#230</a>).</li>
</ul>
<h2>[0.15.0] — 2020-02-28</h2>
<h3>Added</h3>
<ul>
<li>Ability to pass object wrappers that are convertible to <code>JObject</code> as arguments to the majority
of JNIEnv methods without explicit conversion (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/213">#213</a>)</li>
<li><code>JNIEnv#is_same_object</code> implementation (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/213">#213</a>)</li>
<li><code>JNIEnv#register_native_methods</code> (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/214">#214</a>)</li>
<li>Conversion from <code>Into<JObject></code> to <code>JValue::Object</code></li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Passing <code>null</code> as class loader to <code>define_class</code> method now allowed according
to the JNI specification. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/225">#225</a>)</li>
</ul>
<h2>[0.14.0] — 2019-10-31</h2>
<ul>
<li>Relaxed some lifetime restrictions in JNIEnv to support the case when
method, field ids; and global references to classes
have a different (larger) lifetime than JNIEnv (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/209">#209</a>)</li>
</ul>
<h2>[0.13.1] — 2019-08-22</h2>
<h3>Changed</h3>
<ul>
<li>Various documentation improvements.</li>
</ul>
<h2>[0.13.0] — 2019-07-05</h2>
<p>0.13 brings major improvements in thread management, allowing to attach the native threads
permanently and safely; <code>Executor</code> for extra convenience and safety; and other
improvements and fixes.</p>
<p>⚠️ If your code attaches native threads — make sure to check the updated documentation
of <a href="https://docs.rs/jni/0.13.0/jni/struct.JavaVM.html">JavaVM</a> to learn about the new features!</p>
<h3>Added</h3>
<ul>
<li><code>JavaVM::attach_current_thread_permanently</code> method, which attaches the current
thread and detaches it when the thread finishes. Daemon threads attached
with <code>JavaVM::attach_current_thread_as_daemon</code> also automatically detach themselves
when finished. The number of currently attached threads may be acquired using
<code>JavaVM::threads_attached</code> method. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/179">#179</a>, <a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/180">#180</a>)</li>
<li><code>Executor</code> — a simple thread attachment manager which helps to safely
execute a closure in attached thread context and to automatically free
created local references at closure exit. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/186">#186</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The default JNI API version in <code>InitArgsBuilder</code> from V1 to V8. (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/178">#178</a>)</li>
</ul>
</tr></table> ... (truncated)
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="b2c3211d29"><code>b2c3211</code></a> Release 0.16.0 (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/232">#232</a>)</li>
<li><a href="513c811310"><code>513c811</code></a> Call into libjli.dylib instead of libjvm.dylib for MacOS (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/230">#230</a>)</li>
<li><a href="29ccf1a8a8"><code>29ccf1a</code></a> Fix clippy warning (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/223">#223</a>)</li>
<li><a href="62c8fb0359"><code>62c8fb0</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/227">#227</a> from dmitry-timofeev/release-0.15</li>
<li><a href="2ec0bd7cb8"><code>2ec0bd7</code></a> Extend the changelog.</li>
<li><a href="0ec3ad135f"><code>0ec3ad1</code></a> Bump version to 0.15.0</li>
<li><a href="2df4cc68e2"><code>2df4cc6</code></a> Add a script to setup env for ITs:</li>
<li><a href="a1d70c28b2"><code>a1d70c2</code></a> Convert Into<JObject> to JValue::Object: (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/206">#206</a>)</li>
<li><a href="e75ad942b9"><code>e75ad94</code></a> Enhance passing wrappers of JObject (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/213">#213</a>)</li>
<li><a href="f2e91e1bf1"><code>f2e91e1</code></a> Allow null as loader argument for define_class function (<a href="https://github-redirect.dependabot.com/jni-rs/jni-rs/issues/225">#225</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/jni-rs/jni-rs/compare/v0.10.2...v0.16.0">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=jni&package-manager=cargo&previous-version=0.10.2&new-version=0.16.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>
Bump gleam from 0.9.2 to 0.11.0
Bumps [gleam](https://github.com/servo/gleam) from 0.9.2 to 0.11.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/servo/gleam/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=gleam&package-manager=cargo&previous-version=0.9.2&new-version=0.11.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>
Bump gst-plugin-version-helper from 0.1.0 to 0.2.0
Bumps gst-plugin-version-helper from 0.1.0 to 0.2.0.
[](https://dependabot.com/compatibility-score/?dependency-name=gst-plugin-version-helper&package-manager=cargo&previous-version=0.1.0&new-version=0.2.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)
---
**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).
<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>
Replace glutin by winit + surfman 0.2
<!-- Please describe your changes on the following line: -->
This PR updates surfman to 0.2, and replaces glutin with winit+surfman.
---
<!-- 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 this should all be invisible
<!-- 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. -->
Dump all UWP logging output to a file
These changes ensure that we keep getting debug output in the VS output window, but we also write each message to a file in the app's local data directory. These changes also extend the C API a bit to support more generic logging facilities, removing some of the Windows-specific nature of the VSLogger. Fixes part of #23813.