Add unit tests skeleton for the time profiler
This commit adds a test crate for the time profiler to `tests/unit/profile`. The
only unit test contained in this crate is a smoke test that the time profiler
thread can be created and destroyed. It serves as a place for adding new tests
in the future.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10729)
<!-- Reviewable:end -->
This commit adds a test crate for the time profiler to `tests/unit/profile`. The
only unit test contained in this crate is a smoke test that the time profiler
thread can be created and destroyed. It serves as a place for adding new tests
in the future.
Since the display list is already sorted before it is passed to
WebRender, we don't need to pass the stacking level information any
longer. Update webrender, webrender_traits, and gleam.
Updated euclid to version 0.6.5
And updated existing usages of Matrix4 to use Matrix4D<T>
This version is necessary to complete DOMMatrix implementation.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10667)
<!-- Reviewable:end -->
In rust-url 1.0 the `Url` struct is going to have private fields, and there
is no way to to create an aribitrary one without going through the parser.
The plugin never had a clear demonstrated performance benefit,
it was made mostly because it was possible and relatively easy at the time.
Share prefs to content processes
Without this `./mach run -b -- -M` would start fine but navigating to a site would fail with:
`thread 'ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(0) }' panicked at 'assertion failed: mozbrowser_enabled()', /Users/ulf/Documents/Code/servo/components/script/dom/htmliframeelement.rs:163`
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10497)
<!-- Reviewable:end -->
Removed the T prefix for the style traits
More work as described in #10185.
I am getting _extremely_ weird compile-time errors with this one, when it's trying to expand the `lazy_static!` macro. I think I'll need help getting that part sorted out. The rest should be pretty OK.
Anyone has ideas on how to resolve it?
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10488)
<!-- Reviewable:end -->
More work as described in #10185.
The reason I upgraded lazy_static to 0.1.16 is because it fixes an issue with the Box name (std::boxed::Box was used in an unqualified name, which can cause name clashes when there is another type that exists with the same name).
Without this `./mach run -b -- -M` would start fine but navigating to a site would fail with:
`thread 'ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(0) }' panicked at 'assertion failed: mozbrowser_enabled()', /Users/ulf/Documents/Code/servo/components/script/dom/htmliframeelement.rs:163`
The main issue was resources_dir_path. Every time it was called it would start from the executable's path and walk up the hierarchy to find a directory named "resources". The sandbox was granted permission to read from the found resources dir, but after the sandbox had been activated resources_dir_path would again start from the executable's path and try to find the resources dir. It would then fail with "Operation not permitted" when trying to canonicalize the path because it didn't have permissions to read metadata under ./target.
To fix this the resources dir path is now cached between resources_dir_path calls.
This fixes https://github.com/servo/servo/issues/10260 by pulling in
https://github.com/servo/ipc-channel/pull/61 (fix receive for messages
close to packet size) and https://github.com/servo/ipc-channel/pull/62
(properly handle ENOBUFS); where the latter is not critical per se, as
there was a workaround already -- but that workaround aggrevated the
first bug, resulting in the urgent issue...
This bump requires a tidy override for `uuid`: `ipc-channel` was updated
to `uuid 0.2` in https://github.com/servo/ipc-channel/pull/63 (don't
know why...), while other crates are still with `0.1`. That was blocking
this urgent bug fix; and according to a discussion with @mbrubeck on
IRC, the override should be OK in this case.