mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Fix flakiness in hit testing
We need to make sure that hit testing from script reflects the latest display list we have sent from the compositor.
This commit is contained in:
parent
7114b31cf7
commit
7a778b2c29
26 changed files with 21 additions and 89 deletions
|
@ -669,6 +669,18 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
flags,
|
||||
sender,
|
||||
)) => {
|
||||
// When a display list is sent to WebRender, it starts scene building in a
|
||||
// separate thread and then that display list is available for hit testing.
|
||||
// Without flushing scene building, any hit test we do might be done against
|
||||
// a previous scene, if the last one we sent hasn't finished building.
|
||||
//
|
||||
// TODO(mrobinson): Flushing all scene building is a big hammer here, because
|
||||
// we might only be interested in a single pipeline. The only other option
|
||||
// would be to listen to the TransactionNotifier for previous per-pipeline
|
||||
// transactions, but that isn't easily compatible with the event loop wakeup
|
||||
// mechanism from libserver.
|
||||
self.webrender_api.flush_scene_builder();
|
||||
|
||||
let result = self.hit_test_at_point_with_flags_and_pipeline(point, flags, pipeline);
|
||||
let _ = sender.send(result);
|
||||
},
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[block-in-inline-hittest-001.html]
|
||||
[block-in-inline-hittest-001]
|
||||
expected: FAIL
|
|
@ -1,6 +1,3 @@
|
|||
[block-in-inline-hittest-002.html]
|
||||
[elementsFromPoint]
|
||||
expected: FAIL
|
||||
|
||||
[elementFromPoint]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[block-in-inline-hittest-relpos-zindex.html]
|
||||
[position: relative; z-index: -1;]
|
||||
expected: FAIL
|
||||
|
||||
[block-in-inline-hittest-relpos-zindex]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[hit-test-anonymous-block.html]
|
||||
[Hit test beside line of text inside anonymous block]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-002.html]
|
||||
[Checking whether dynamic changes to visibility interact correctly with\n table anonymous boxes]
|
||||
expected: FAIL
|
|
@ -1,4 +0,0 @@
|
|||
[elementFromPoint-003.html]
|
||||
[Checking whether dynamic changes to visibility interact correctly with\n table anonymous boxes]
|
||||
expected: FAIL
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-dynamic-anon-box.html]
|
||||
[Link should be clickable after hiding a scrollbox with an anonymous table inside]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-visibility-hidden-resizer.html]
|
||||
[elementFromPoint on resizer area of an element with visibility:hidden]
|
||||
expected: FAIL
|
|
@ -13,9 +13,3 @@
|
|||
|
||||
[test some point of the element: bottom right corner]
|
||||
expected: FAIL
|
||||
|
||||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-inline-htb-ltr.html]
|
||||
[elementsFromPoint should return all elements under a point]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
[scroll-behavior-smooth-navigation.html]
|
||||
[Instant scrolling while doing history navigation.]
|
||||
expected: FAIL
|
|
@ -5,9 +5,6 @@
|
|||
[clientWidth/clientHeight on the HTML body element in quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scrollBy() on the root element in non-quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scrollLeft/scrollRight of the content in quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -26,12 +23,6 @@
|
|||
[scrollLeft/scrollRight of the content in non-quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scroll() on the root element in non-quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scrollLeft/scrollTop on the root element in non-quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scrollWidth/scrollHeight on the HTML body element in quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -43,12 +34,3 @@
|
|||
|
||||
[scrollLeft/scrollTop on the HTML body element in non-quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scroll() on the HTML body element in quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scrollBy() on the HTML body element in quirks mode]
|
||||
expected: FAIL
|
||||
|
||||
[scrollLeft/scrollTop on the HTML body element in quirks mode]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[hit-test-floats-001.html]
|
||||
[hit-test-floats-001]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[block-in-inline-hittest-float-001.html]
|
||||
[block-in-inline-hittest-float-001]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-dynamic-anon-box.html]
|
||||
[Link should be clickable after hiding a scrollbox with an anonymous table inside]
|
||||
expected: FAIL
|
|
@ -1,3 +0,0 @@
|
|||
[elementFromPoint-ellipsis-in-inline-box.html]
|
||||
[elementFromPoint-ellipsis-in-inline-box]
|
||||
expected: FAIL
|
|
@ -22,3 +22,9 @@
|
|||
|
||||
[<li>Image Inside 1</li>]
|
||||
expected: FAIL
|
||||
|
||||
[<li>Inside 3</li>]
|
||||
expected: FAIL
|
||||
|
||||
[<li>Image Inside 2</li>]
|
||||
expected: FAIL
|
||||
|
|
|
@ -17,6 +17,3 @@
|
|||
|
||||
[test some point of the element: bottom right corner]
|
||||
expected: FAIL
|
||||
|
||||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[elementsFromPoint-iframes.html]
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
Loading…
Add table
Add a link
Reference in a new issue