layout: Use overflow: visible if overflow was propagated to viewport (#38598)

The `overflow-*` values of either the root element or the `<body>` get
propagated to the viewport. However, we were missing this part:
> The element from which the value is propagated must then have a used
`overflow` value of `visible`.

See https://drafts.csswg.org/css-overflow/#overflow-propagation

Testing:
 - `css/cssom-view/scrolling-quirks-vs-nonquirks.html`
 - `css/css-overflow/overflow-body-propagation-007.html`
 - `css/css-overflow/overflow-body-propagation-008.html`
 - `css/css-overflow/overflow-body-propagation-009.html`
 - `css/css-overflow/scrollable-overflow-with-nested-elements-001.html` 
 - `css/css-overflow/scrollable-overflow-with-nested-elements-002.html` 
 - `css/css-overflow/scrollable-overflow-with-nested-elements-003.html`
 - `css/css-overflow/scrollable-overflow-with-nested-elements-004.html`
 - `css/css-overflow/scrollbar-gutter-scroll-into-view.html`

Failures:
 - `css/css-overflow/overflow-body-propagation-010.html`
   Failing because of missing support for `contain: paint`.
- `css/css-overflow/scrollable-overflow-with-nested-elements-005.html`
Failing because of wrong `data-expected-height`, but correct
`data-expected-scroll-height` which is core of this PR.
`data-expected-height` can be dealt separately.


Fixes: #38248

---------

Signed-off-by: Shubham Gupta <shubham13297@gmail.com>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Shubham Gupta 2025-08-20 22:21:51 +08:00 committed by GitHub
parent 37088aa4c3
commit d8ff9c7a08
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 373 additions and 72 deletions

View file

@ -607767,6 +607767,41 @@
{}
]
],
"scrollable-overflow-with-nested-elements-001.html": [
"9bf0d16841996fbe9643b44868bc81ca190fe30b",
[
null,
{}
]
],
"scrollable-overflow-with-nested-elements-002.html": [
"10ec866995ebf5cb55425599dbd11083a29f543f",
[
null,
{}
]
],
"scrollable-overflow-with-nested-elements-003.html": [
"563cadb7faeb66ff0eb8611e61c3681fd576e9b6",
[
null,
{}
]
],
"scrollable-overflow-with-nested-elements-004.html": [
"07866f341b9b2ae74e3566b8883adc735cefe702",
[
null,
{}
]
],
"scrollable-overflow-with-nested-elements-005.html": [
"95e3e53e09fa9aaf8b54435dcb3b9a8236031e0d",
[
null,
{}
]
],
"scrollable-overflow-zero-one-axis.html": [
"1986a8d48b98fde17fda826c5bbf9d75d870f45e",
[

View file

@ -1,2 +0,0 @@
[overflow-body-propagation-007.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[overflow-body-propagation-008.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[overflow-body-propagation-009.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[overflow-body-propagation-010.html]
expected: FAIL

View file

@ -0,0 +1,3 @@
[scrollable-overflow-with-nested-elements-005.html]
[html 1]
expected: FAIL

View file

@ -1,2 +0,0 @@
[scrollbar-gutter-scroll-into-view.html]
expected: FAIL

View file

@ -1,27 +0,0 @@
[scrolling-quirks-vs-nonquirks.html]
[scrollWidth/scrollHeight on the root element in non-quirks mode]
expected: FAIL
[scrollWidth/scrollHeight on the root element in quirks mode]
expected: FAIL
[scrollWidth/scrollHeight on the HTML body element in quirks mode]
expected: FAIL
[scroll() on the root element in non-quirks mode]
expected: FAIL
[scrollBy() on the root element in non-quirks mode]
expected: FAIL
[scrollLeft/scrollTop on the root 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