servo/tests/wpt/meta/intersection-observer
Jo Steven Novaryo 900dd8d191
layout: Consider transform for bounding box queries (#37871)
The recent changes that cached the Scroll Tree present an opportunity to
calculate the queries that consider transform and scroll (dubbed as post
composite queries) accurately.

This PR propose a solution for this calculation by noting the lowest
scroll tree nodes that would affect a fragment. To do this, each
fragment would store a new attribute `spatial_tree_node` -- scroll tree
node id that we could use for the query. This referencing is considered
because the scroll tree node construction is managed by the fragment
itself. Therefore it would ease the managing the possibly stale
reference and future query cache invalidation considering the
development of incremental layout.

The bounding box query then could transform the bounding content rect of
a fragment using the computed current transformation matrix.

Fixes: https://github.com/servo/servo/issues/35768
Testing: Existing and new WPT

---------

Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
Signed-off-by: Jo Steven Novaryo <jo.steven.novaryo@huawei.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-07-30 08:13:54 +00:00
..
v2 dom: Implement minimal IntersectionObserver workflow (#35551) 2025-03-18 11:09:44 +00:00
bounding-box.html.ini layout: Consider transform for bounding box queries (#37871) 2025-07-30 08:13:54 +00:00
clip-path-animation.html.ini Update web-platform-tests to revision b'18fda923cafeb4e3e0546ffcfb2302c3b1b11f98' (#36019) 2025-03-18 05:51:39 +00:00
clip-path.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
containing-block.html.ini dom: Implement minimal IntersectionObserver workflow (#35551) 2025-03-18 11:09:44 +00:00
cross-origin-iframe.sub.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
document-scrolling-element-root.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
iframe-no-root-with-wrapping-scroller.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
iframe-no-root.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
initial-observation-with-threshold.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
inline-client-rect.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
intersection-ratio-ib-split.html.ini dom: Implement minimal IntersectionObserver workflow (#35551) 2025-03-18 11:09:44 +00:00
isIntersecting-change-events.html.ini dom: Implement minimal IntersectionObserver workflow (#35551) 2025-03-18 11:09:44 +00:00
isIntersecting-threshold.html.ini layout: Consider transform for bounding box queries (#37871) 2025-07-30 08:13:54 +00:00
nested-cross-origin-iframe.sub.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
remove-element.html.ini layout: Consider transform for bounding box queries (#37871) 2025-07-30 08:13:54 +00:00
root-margin-root-element.html.ini layout: Consider transform for bounding box queries (#37871) 2025-07-30 08:13:54 +00:00
root-vertical-rl.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
same-document-root.html.ini layout: Consider transform for bounding box queries (#37871) 2025-07-30 08:13:54 +00:00
same-origin-grand-child-iframe.sub.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-and-root-margin.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-4-val.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-clip-path.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-dynamic.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-horizontal.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-iframe.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-nested-2.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-nested-3.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-nested.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-no-intersect.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-not-contained.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-percent.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-with-border-outline.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin-zero.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
scroll-margin.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
shadow-content.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
svg-clipped-rect-target.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
svg-container-element.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
svg-group-target.html.ini Enable dom_svg_enabled on all tests (#36475) 2025-04-11 18:46:00 +00:00
svg-image.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
svg-intersection-with-fractional-bounds-2.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
svg-intersection-with-fractional-bounds.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
svg-rect-target.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
svg-stroke-change.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
svg-target-changes-position.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
svg-transformed-rect-target.html.ini Enable dom_svg_enabled on all tests (#36475) 2025-04-11 18:46:00 +00:00
svg-viewbox.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
target-is-root.html.ini dom: Implement minimal IntersectionObserver workflow (#35551) 2025-03-18 11:09:44 +00:00
timestamp.html.ini Implement document.scrollingElement (#35994) 2025-05-05 12:50:42 +00:00
transform-animation.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00
zoom-scaled-target.html.ini Enable more test directories and preferences (#34952) 2025-01-17 02:41:09 +00:00