I initially used this to correctly handle ranges when their respective containers
are mutated, to get weak references of Range objects. I now realise that the weak
references should be handled at a lower-level, closer to the JS-managed object.
Very basic touch events and touch scrolling
This implements just enough of [Touch Events](http://w3c.github.io/touch-events/) to enable scrolling on Android without regressing basic single-touch interaction like clicking on links.
Dragging a page will scroll it, unless the page calls `preventDefault` on the "touchstart" event.
Does **not** yet support pinch zooming or other multi-touch gestures or events.
Includes a `-Z convert-mouse-to-touch` command line flag for testing on non-touch platforms. This is also enabled by default on Android because Glutin currently translates touch input to mouse events on Android.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7204)
<!-- Reviewable:end -->
This is enabled by default on Android, because Glutin currently sends mouse
events instead of touch events on Android. It's also useful for testing on
non-touch platforms.
Code on the script thread can only observe self.layout_join_port being Some()
between the time it is set in force_reflow, and the join_layout call later in
that function, and no significant code is called in that code.
Since these functions do nothing useful if layout_join_port is None, there is
no point in keeping them.
Code on the script thread can only observe self.layout_join_port being Some()
between the time it is set in force_reflow, and the join_layout call later in
that function, and no significant code is called in that code.
This implies that layout_is_idle will always return true, so there is no
reason for the function to exist.
Code on the script thread can only observe self.layout_join_port being Some()
between the time it is set in force_reflow, and the join_layout call later in
that function, and no significant code is called in that code.
As join_layout does nothing when called if self.layout_join_port is None,
these two calls are useless.
Add a few missing assets lost in reftest migration
These are used in:
* tests/wpt/mozilla/tests/css/background_size_ref.html
* tests/wpt/mozilla/tests/css/background_size_a.html
Relevant to #5618
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8143)
<!-- Reviewable:end -->
add (un)premultiply tables for canvas {Get,Put}ImageData operations
Pretty straightforward use of lookup tables to replace a bunch of expensive float operations.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8086)
<!-- Reviewable:end -->