Re-export crates needed to use the Servo Rust API
This helps out on using the Servo API from a Rust project.
Right now I have to explicitly declare all the crates contained in `components` to use them.
Unsure about re-exporting `euclid`, `url` and `layers`, but they are required to use the API and it helps out avoiding version-collisions if you happen to use the wrong version in your own project.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7448)
<!-- Reviewable:end -->
account.
This necessitated changing overflow to be calculated by the parent flow
if relatively positioned children are present. That is because the
overflow regions cannot be calculated without knowing relative offsets,
which themselves cannot be calculated without knowing the parent size
(because of percentages). To accomplish this without sacrificing
parallelism in the non-relative case, this patch splits overflow into
"early" and "late" computation. Late overflow computation cannot be
parallelized across children, while early overflow computation can.
Makes the "Apple Music" text show up over the full-bleed promotional
background on apple.com.
gfx: Border radius support for asymmetric sized borders
When the border-top/right/bottom/left-widths are not equal, the angle on the border corner arc separating the borders isn't PI/4.
For instance if the top border width is much larger than the left border width then most of the border corner should be drawn using the top border color.
This change adds support for calculating the correct angle in the border
corner arc for switching from one border to another e.g. the left border
to the top border.
It supports elliptical border radii for when elliptical border radii are
added.
A ref test is also included.
r? @Ms2ger
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7370)
<!-- Reviewable:end -->
This change adds support for calculating the correct angle in the border
corner arc when switching from one border to another e.g. the left border
to the top border.
When the border-top/right/bottom/left-widths are not the same, the angle on
the border corner arc separating the borders isn't pi/4.
For example, if the top border width is much larger than the left border
width then most of the border corner should be drawn using the top
border color.
Elliptical border radii are supported for when elliptical border radii are
added.
The common case where borders have the same width sets the angle to
pi/4 directly.
A ref test is also included.
Testable net load...
*The goal of this PR is to get early feedback on this before I go too far down the rabbit hole. This new code path is working, and there's several tests I've written as a proof of concept. There are still some regressions that I'll be fixing in the coming days.*
I've abstracted out the request/response cycle so that it's no longer dependent on the Hyper request/response structs. Since request/response @ hyper are structs, not traits, it made mocking them for tests impossible.
Current issues/concerns:
* This relies on boxing the `HttpResponse` that gets returned from the `HttpRequester` because `HttpResponse` is unsized. I don't know if there's a more idiomatic rust-y way of doing this?
* This relies on boxing the `Read` that is now returned from `load` for the same reason.
* The devtools and resource manager channels are still passed into `load`. It might be easier to inject these as trait dependencies instead of chans as well?
* Needs more tests.
🎩#6727
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7139)
<!-- Reviewable:end -->
This commit adds angle-based validation and translation to WebGL
shaders.
The changes to the tex_image_2d test is neccessary (it was not valid
GLES 2.0 shader language).