layout: When setting post-layout / renderer scroll offsets limit by scroll area (#37829)

Previously when scroll offsets were restored to a new scroll tree
post-layout or when receiving scroll offsets from the compositor, they
were not clamped to the available scroll area. This change fixes that.

Testing: This change fixes some WPT subtests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-07-08 21:27:42 +02:00 committed by GitHub
parent ec6ac0fced
commit 0db02702e7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 1 additions and 28 deletions

View file

@ -397,7 +397,7 @@ impl ScrollTree {
for node in self.nodes.iter_mut() {
if let SpatialTreeNodeInfo::Scroll(ref mut scroll_info) = node.info {
if let Some(offset) = offsets.get(&scroll_info.external_id) {
scroll_info.offset = *offset;
scroll_info.scroll_to_offset(*offset, ScrollType::Script);
}
}
}

View file

@ -1,27 +0,0 @@
[scroll-to-the-fragment-in-shadow-tree.html]
[The user agent scroll to the fragment when there is an anchor element with a name attribute exactly equal to the decoded fragid]
expected: FAIL
[The user agent should not scroll to an element with an ID exactly equal to the decoded fragid in an open shadow tree]
expected: FAIL
[The user agent should not scroll to an element with an ID exactly equal to the decoded fragid in a closed shadow tree]
expected: FAIL
[The user agent should not scroll to an anchor element with a name attribute exactly equal to the decoded fragid in an open shadow tree]
expected: FAIL
[The user agent should not scroll to an anchor element with a name attribute exactly equal to the decoded fragid in a closed shadow tree]
expected: FAIL
[The user agent should scroll to an element with an ID exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside an open shadow tree earlier in tree order]
expected: FAIL
[The user agent should scroll to an element with an ID exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside a closed shadow tree earlier in tree order]
expected: FAIL
[The user agent should scroll to an anchor element with a name attribute exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside an open shadow tree earlier in tree order]
expected: FAIL
[The user agent should scroll to an anchor element with a name attribute exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside a closed shadow tree earlier in tree order]
expected: FAIL