servo/components/compositing
bors-servo bc62b5aadb Auto merge of #8785 - mbrubeck:fixed-hit-test, r=pcwalton
Add slow path for hit testing of iframe behind positioned content layer

Fixes browser.html blocker #8759. r? @pcwalton

This adds a slow path for cases where the compositor's layer-based hit testing is incorrect.  If the script task discovers that a mouse event should have been dispatched to an iframe, it bounces the event back to the constellation to be forwarded to the correct pipeline.

This isn't terribly slow (on the slow path, it adds one extra round-trip message between script and constellation), but if we want to optimize this better we could instead replace the compositor's layer hit testing with display list hit testing in the paint task.  This would be a more complicated change that I think we should save for a follow-up.

This only fixes mouse input for now.  A basically-identical change will be needed for touch-screen input, whether we stick with this approach or switch to the paint task.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8785)
<!-- Reviewable:end -->
2015-12-04 02:54:22 +05:30
..
Cargo.toml Use skia and deps from crates.io. 2015-12-02 19:07:59 +01:00
compositor.rs Minor refactoring of mouse event types 2015-12-03 08:19:40 -08:00
compositor_layer.rs Minor refactoring of mouse event types 2015-12-03 08:19:40 -08:00
compositor_task.rs compositing: Split Servo up into multiple sandboxed processes. 2015-11-19 16:38:04 -05:00
constellation.rs If a mouse event is targeting an iframe, forward it to the iframe's inner window 2015-12-03 08:19:41 -08:00
headless.rs compositing: Split Servo up into multiple sandboxed processes. 2015-11-19 16:38:04 -05:00
lib.rs Add check up on extern crate order and sort extern crates alphabetically 2015-11-28 03:11:08 +01:00
pipeline.rs Consume self in PrivilegedPipelineContent methods. 2015-11-26 10:23:11 +01:00
sandboxing.rs Remove unused import. 2015-11-20 08:55:41 +01:00
scrolling.md Add documentation about the scrolling model 2014-10-10 09:26:43 -07:00
scrolling.rs Use thread::sleep instead of deprecated sleep_ms 2015-11-29 13:41:04 -07:00
surface_map.rs Use more iterators in compositing component 2015-11-06 18:35:33 -05:00
timer_scheduler.rs Use thread::sleep instead of deprecated sleep_ms 2015-11-29 13:41:04 -07:00
windowing.rs Minor refactoring of mouse event types 2015-12-03 08:19:40 -08:00