script: Get scroll offsets from layout (#37509)

No longer store scroll offsets for elements in the DOM. Instead
consistently get and set these in layout's `ScrollTree`. This more
consistently requires layout to run when querying scroll offsets, which
ensures that they are up-to-date and properly bounded by scrollable
overflow area.

Testing: This causes several WPT tests to start passing, and one to
start
failing. In the case of
`/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html`, I believe the
issue
is that we don't properly handle scrolling and shadow DOM elements.
Before, the
faulty scrolling was hiding this issue.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-06-20 11:39:12 +02:00 committed by GitHub
parent 518729a4f5
commit 3774ef00d4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 116 additions and 117 deletions

View file

@ -1,3 +0,0 @@
[relpos-percentage-top-in-scrollable.html]
[Top percentage resolved correctly for overflow contribution]
expected: FAIL

View file

@ -1,2 +0,0 @@
[incremental-scroll-002.html]
expected: TIMEOUT

View file

@ -1,3 +0,0 @@
[elementScroll.html]
[Element scroll maximum test]
expected: FAIL

View file

@ -1,7 +1,4 @@
[scrollLeftTop.html]
[writing-mode:vertical-lr; direction:ltr]
expected: FAIL
[writing-mode:vertical-rl; direction:rtl]
expected: FAIL
@ -11,9 +8,5 @@
[writing-mode:vertical-rl; direction:ltr]
expected: FAIL
[writing-mode:horizontal-tb; direction:ltr]
expected: FAIL
[writing-mode:horizontal-tb; direction:rtl]
expected: FAIL

View file

@ -8,15 +8,6 @@
[scrollWidth/scrollHeight on the HTML body element in quirks mode]
expected: FAIL
[scroll() on the HTML body element in non-quirks mode]
expected: FAIL
[scrollBy() on the HTML body element in non-quirks mode]
expected: FAIL
[scrollLeft/scrollTop on the HTML body element in non-quirks mode]
expected: FAIL
[scroll() on the root element in non-quirks mode]
expected: FAIL

View file

@ -0,0 +1,27 @@
[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