Pass events loop to glwindow test webvr implementation
<!-- Please describe your changes on the following line: -->
Pass the event loop to the glwindow webvr test device, so it can implement keyboard controls. The matching rust-webvr PR is https://github.com/servo/rust-webvr/pull/84
---
<!-- 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 enables testing webvr pose
<!-- 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23575)
<!-- Reviewable:end -->
Don't process events while borrowing the event loop
<!-- Please describe your changes on the following line: -->
At the moment, the glutin embedder holds onto a borrow of the events loop while processing events, which is dangerous if any of the event handlers end up using the events loop reentrantly. (This caused a panic while integrating https://github.com/servo/rust-webvr/pull/84.)
---
<!-- 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 is low-level embedding code
<!-- 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23574)
<!-- Reviewable:end -->
Remove passing test
<!-- Please describe your changes on the following line: -->
This was added in #23310. Was that a mistake?
---
<!-- 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23662)
<!-- Reviewable:end -->
Support VS Build Tools 2019
<!-- Please describe your changes on the following line: -->
This detects VS Build Tools 2019 installation, which optionally provides VC2017 to be compatible with Servo.
---
<!-- 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#23666
<!-- 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23667)
<!-- Reviewable:end -->
Add domain_lookup_start functionality
<!-- Please describe your changes on the following line: -->
Added the domain_lookup_start functionality in http_loader.rs (http_redirect_fetch function)
---
<!-- 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#21259 (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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23310)
<!-- Reviewable:end -->
Remove wpt tests for domainLookupStart
Set ResourceAttribute::DomainLookupTime
Move DomainLookupStart timing before HTTP request initialization
Change label of domainLookupStart TAO zero test to PASS
Adjust the from_resource_timing method to initialize domain_lookup_start value
Restore domainLookupsStart test
Enter dom compartment wrapper
I'm still not sure if the changes are entirely correct.
Replaced occurrences:
`JSAutoCompartment::new(global.get_cx(), global.reflector().get_jsobject().get());` with `fn enter_compartment(object: &DomObject) -> JSAutoCompartment`
There are still occurrences of `JSAutoCompartment` that i was unable to replace. Could anyone give me a hint if it is possible?
```
→ rg -Fi --type rust "JSAutoCompartment::"
components/script/compartments.rs
38: JSAutoCompartment::new(
components/script/dom/create.rs
159: let _ac = JSAutoCompartment::new(
components/script/dom/eventtarget.rs
527: let _ac = JSAutoCompartment::new(cx, self.reflector().get_jsobject().get());
components/script/dom/windowproxy.rs
223: let _ac = JSAutoCompartment::new(cx, window_jsobject.get());
components/script/dom/customelementregistry.rs
337: let _ac = JSAutoCompartment::new(cx, proto_object.get());
349: let _ac = JSAutoCompartment::new(cx, constructor.get());
538: let _ac = JSAutoCompartment::new(cx, self.constructor.callback());
668: let _ac = JSAutoCompartment::new(cx, constructor.callback());
components/script/dom/window.rs
2216: let _ac = JSAutoCompartment::new(cx, obj.get());
components/script/dom/paintworkletglobalscope.rs
254: let _ac = JSAutoCompartment::new(cx, self.worklet_global.reflector().get_jsobject().get());
components/script/dom/globalscope.rs
544: let _ac = JSAutoCompartment::new(cx, globalhandle.get());
components/script/dom/websocket.rs
573: let _ac = JSAutoCompartment::new(cx, ws.reflector().get_jsobject().get());
components/script/dom/workerglobalscope.rs
397: let _ac = JSAutoCompartment::new(
components/script/dom/promise.rs
144: let _ac = JSAutoCompartment::new(cx, global.reflector().get_jsobject().get());
156: let _ac = JSAutoCompartment::new(cx, global.reflector().get_jsobject().get());
components/script/dom/bindings/htmlconstructor.rs
118: let _ac = JSAutoCompartment::new(window.get_cx(), callee.get());
components/script/dom/bindings/utils.rs
411: let _ac = JSAutoCompartment::new(cx, obj.get());
components/script/dom/bindings/callback.rs
276: let _ac = JSAutoCompartment::new(
components/script/dom/bindings/interface.rs
163: let _ac = JSAutoCompartment::new(cx, rval.get());
```
---
<!-- 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 #23266
<!-- Either: -->
- [X] These changes do not require tests because no logic was changed only some code extracted to wrapper function
<!-- 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23344)
<!-- Reviewable:end -->
Improve support for nested dictionaries
Fixes https://github.com/servo/servo/issues/23640
Some IDLs need `= null`, that's something that needs to be updated upstream too.
After talking with @bzbarsky I realized that it was our IDLs which were incorrect, causing Options to appear where we don't want them to. In the media code we _do_ want Options. `= null` is the correct fix for that (and should be upstreamed).
r? @jdm
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23653)
<!-- Reviewable:end -->
Add support for market:// urls
Rebased from #23648.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#21992.
- [x] These changes do not require tests because can't test embedders.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23649)
<!-- Reviewable:end -->
build: Cleanup some path-munging code.
I was looking at this today, and this seems better than the pre-existing code,
generally pre-pending to these paths isn't great...
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23628)
<!-- Reviewable:end -->
Update Gentoo instructions to work with 17.1 and add missing dependency
* libunwind was required when building.
* Since Gentoo 17.1 the symlink between lib and lib64 has been removed.
- Update export so it works with both older and newer profiles.
---
- [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)
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it's installation instructions / documentation
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23650)
<!-- Reviewable:end -->
* libunwind was required when building.
* Since Gentoo 17.1 the symlink between lib and lib64 has been removed.
- Update export so it works with both older and newer profiles.
Script: removed a few opts::get()
<!-- Please describe your changes on the following line: -->
I removed only a few opts::get() from the components/script because all other code with "opts::get()" is reused by many other parts within the same component.
---
<!-- 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 *partially* #22854 (GitHub issue number if applicable)
<!-- Either: -->
- [x] These changes do not require tests because these are cleanup 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23539)
<!-- Reviewable:end -->
Update to rust-webvr 0.11.5
<!-- Please describe your changes on the following line: -->
Update to rust-webvr 0.11.5, which includes magicleap 6DoF pose.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because we don't have magicleap test infra
<!-- 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. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23636)
<!-- Reviewable:end -->