| Summary: | REGRESSION (Async overflow scroll): Scroll stutters/blocked with nested scrolling | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Bruno Stasse <augus.dupin> | ||||||||
| Component: | Scrolling | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | augus.dupin, changseok, cmarcelo, esprehn+autocc, ews-watchlist, fred.wang, glenn, jamesr, kondapallykalyan, luiz, pdr, sam, simon.fraser, tonikitoo, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | Safari Technology Preview | ||||||||||
| Hardware: | Mac (Intel) | ||||||||||
| OS: | macOS 10.15 | ||||||||||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=219960 https://bugs.webkit.org/show_bug.cgi?id=220134 |
||||||||||
| Attachments: |
|
||||||||||
|
Description
Bruno Stasse
2020-12-15 15:04:39 PST
I can reproduce. I think this is because we re-compute latching for a "MayBegin" event (fingers down, stationary, on the trackpad) but not a "Begin" event (fingers down with movement). Actually I think this is mainly triggered by:
overflow-x: hidden;
overflow-y: auto;
when there is x-overflow.
I fixed at least some of the issues here in r271090. I can still reproduce some issues though. There are some issues here about what happens when we send a wheel event with x-axis deltas to a latched y-axis scroller, but the underlying cause of stuttering is that a latched scroller receives a stream of events for the cross axis and doesn't handle them, which causes the latch in ScrollingTreeLatchingController to time out, so at point we hit-test again and find a different scroller and start sending events to it. Created attachment 418001 [details]
Patch
Created attachment 418020 [details]
Patch
Committed r271701: <https://trac.webkit.org/changeset/271701> All reviewed patches have been landed. Closing bug and clearing flags on attachment 418020 [details]. |