Add DOMMatrix.prototype.scaleNonUniform
<!-- Please describe your changes on the following line: -->
Implements `scaleNonUniform()` [per the spec](https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-scalenonuniform).
---
<!-- 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#23683
<!-- Either: -->
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- 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/23685)
<!-- Reviewable:end -->
WebXR initialization
<!-- Please describe your changes on the following line: -->
Initialize a WebXR device registry in 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 do not require tests because this is hidden plumbing at the moment
<!-- 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/23675)
<!-- Reviewable:end -->
Support DOMMatrix string constructor
<!-- Please describe your changes on the following line: -->
Implemented DOMMatrix string constructor per [the spec](https://drafts.fxtf.org/geometry/#dom-dommatrixreadonly-dommatrixreadonly).
---
<!-- 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#23664, fix#23622
<!-- Either: -->
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- 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/23665)
<!-- Reviewable:end -->
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 -->
Not all cargo subcommands take `--manifest-path`.
Use plain `cargo` instead (rustup reads the `rust-toolchain` file)
or consider adding new mach sub-commands.
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 -->