| Summary: | Scroll-chaining not triggering before complete end of overscroll | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Bruno Stasse <augus.dupin> | ||||||
| Component: | Scrolling | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | augus.dupin, cmarcelo, ews-watchlist, fred.wang, jamesr, luiz, simon.fraser, smoley, thorton, 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=219923 | ||||||||
| Attachments: |
|
||||||||
|
Description
Bruno Stasse
2020-12-16 13:50:00 PST
There's a 100ms timeout to clear latching which I think is a bit too long. When is that timeout added exactly? It feels like there is a timeout preventing scroll chaining *after* the end of the overscroll. This doesn't seem useful, as it should be possible to scroll out of the inner scroll way before that, *during* the overscroll. If the user is overscrolling and scrolls again in the same direction, scroll chaining should take place right away. This is how it behaved before STP 117, and how it behaves in similar situations accross macOS and iOS native interfaces. Now maybe there can be a short timeout between the start of the overscroll and the possibility to trigger scroll chaining with a new scroll gesture, but I don't think this is when the timeout is used at the moment? Part of this is about ScrollController's behavior of ignoring momentum scrolls (m_ignoreMomentumScrolls) when we're done rubberbanding, but we continue to claim to handle the wheel events, which postpones releasing the latch. Created attachment 418095 [details]
Patch
I filed bug 236348 to followup on https://twitter.com/mtomweb/status/1491162786369777665 |