servo/components/shared/compositing
Martin Robinson ad805e3110
compositor/layout: Rely on layout for fine-grained input event hit testing (#38480)
Before, the compositor was responsible for doing the hit testing during
input events within a page. This change moves that hit testing to
layout.  With this change, epoch mismatches are no longer a bit deal and
we can simply ignore them, as the Constellation and Script will take
care of ignoring hit tests against scroll nodes and browsing contexts
that no longer exist. This means that hit testing retry support can be
removed.

Add the concept of a Script `HitTest` that transforms the coarse-grained
renderer hit test into one that hit tests against the actual layout
items.

Testing: Currently we do not have good tests for verifying the behavior
of
input events, but WebDriver tests should cover this.
Fixes: This is part of #37932.
Fixes: #26608.
Fixes: #25282.
Fixes: #38090.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: kongbai1996 <1782765876@qq.com>
2025-08-07 08:38:43 +00:00
..
tests compositor/layout: Rely on layout for fine-grained input event hit testing (#38480) 2025-08-07 08:38:43 +00:00
Cargo.toml compositor: Request reflow when doing a page zooming (#38166) 2025-07-29 10:04:37 +00:00
display_list.rs compositor/layout: Rely on layout for fine-grained input event hit testing (#38480) 2025-08-07 08:38:43 +00:00
lib.rs compositor/layout: Rely on layout for fine-grained input event hit testing (#38480) 2025-08-07 08:38:43 +00:00
rendering_context.rs compositor: Add more doc for size of different RenderingContext implementation (#38399) 2025-08-01 09:07:32 +00:00
viewport_description.rs compositor: Request reflow when doing a page zooming (#38166) 2025-07-29 10:04:37 +00:00