servo/components/script
bors-servo ad53e95080 Auto merge of #6083 - ecoal95:layerize-canvas, r=pcwalton
I've done a bit of job to get this done. Right now readback is still used, but we have a `LayerId` -> `CanvasRenderer` map on the paint task, that we can use to get rid of that.

I'd want review, to see if this is a good approach (I know it's not the initial `CanvasId` -> renderer approach, but it's pretty similar, since a canvas involves a `PaintLayer`).

I had to do a bit of refactoring to avoid cyclic dependencies between canvas and gfx. I'd want you to review them too.

It's mergeable and doesn't break any tests :P

Some of my main concerns:
* Does the canvas render really need to be behind an `Arc<Mutex<T>>`?
* I can't clone a `NativeSurface` right now (that's why the `SendNativeSurface()` msg is unimplemented in the WebGL task). It should be easy to add that to rust-layers, supposing the caller is responsible to mark it as non-leaking, any reason to not do it?

cc @jdm @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6083)
<!-- Reviewable:end -->
2015-05-20 15:42:06 -05:00
..
dom Auto merge of #6083 - ecoal95:layerize-canvas, r=pcwalton 2015-05-20 15:42:06 -05:00
parse Implement a DocumentLoader type that tracks pending loads and notifies the script task when the queue is empty. Dispatch the document load event based on the DocumentLoader's notification. 2015-05-11 13:41:51 -04:00
build.rs Fix build scripts warnings. 2015-03-18 21:53:48 +01:00
Cargo.toml Layerize canvas 2015-05-20 19:10:50 +02:00
clipboard_provider.rs Made the clipboard-related functionality in TextInput more testable. Added test_clipboard_paste to the "test-unit" suite. 2015-05-06 11:46:18 -04:00
cors.rs Upgrade to Hyper 0.4.0 2015-05-12 16:48:21 +02:00
devtools.rs Start using on_refresh_driver_tick #5681 2015-05-06 02:08:39 +07:00
document_loader.rs Delay stylesheet load in test to increase confidence. 2015-05-11 15:35:10 -04:00
horribly_inefficient_timers.rs Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8. 2015-05-05 10:07:34 -04:00
layout_interface.rs compositing: Implement display ports and avoid creating display lists 2015-05-19 16:53:51 -07:00
lib.rs Layerize canvas 2015-05-20 19:10:50 +02:00
makefile.cargo
network_listener.rs Create easy common interface for off-thread network listeners, and remove the CORS-specific reimplementation of async networking. 2015-04-16 11:46:41 -04:00
page.rs Implement a DocumentLoader type that tracks pending loads and notifies the script task when the queue is empty. Dispatch the document load event based on the DocumentLoader's notification. 2015-05-11 13:41:51 -04:00
script_task.rs Add closed pipelines record as a debugging aid 2015-05-20 09:22:08 +10:00
textinput.rs Change the dispatch in TextInput::handle_keydown_aux match on enum values instead of strings. 2015-05-06 11:46:21 -04:00
timers.rs Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8. 2015-05-05 10:07:34 -04:00
webdriver_handlers.rs Add support for timing out scripts 2015-05-14 10:59:20 +01:00