| Summary: | REGRESSION (251454@main): Setting scrollTop on fixed element with overflow breaks scrolling on a 'overscroll-behavior:none' page | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Jack Doyle <jack> | ||||
| Component: | Scrolling | Assignee: | Nikos Mouchtaris <nmouchtaris> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Major | CC: | nmouchtaris, simon.fraser, supermoos, webkit-bug-importer, zimmermann | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | Other | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=238497 | ||||||
| Attachments: |
|
||||||
|
Description
Jack Doyle
2022-09-16 14:04:00 PDT
Created attachment 462405 [details]
Reduced testcase
The overflow:hidden position:fixed intercepts scrolling (you can still scroll the page when the cursor is outside it).
Are you saying you think this is the correct behavior? It definitely seems way wrong to me, and no other browser behaves this way. Also, once it's "stuck" and then you drag the scrollbar a bit, it becomes "unstuck" so your explanation about intercepting the scroll seems inconsistent at best. Or am I missing something? No, it's a bug, but your testcase was a little misleading because your fixed element covers the entire viewport. The page is scrollable if your cursor isn't over the position:fixed. The position:fixed is "trapping" the wheel events incorrectly. I see. Yeah, I need the full-screen position: fixed element in my use case. Thanks for looking into this. This happens as a result of adding the overflow's ScrollableArea to the FrameView's scrollable area set, which means we add it to the non-fast scrollable region in ScrollingCoordinator::absoluteEventTrackingRegionsForFrame(). This is fallout from 251454@main. Pull request: https://github.com/WebKit/WebKit/pull/4810 Committed 257665@main (b08436732d9d): <https://commits.webkit.org/257665@main> Reviewed commits have been landed. Closing PR #4810 and removing active labels. |