This is easy to reproduce with epiphany, opening the browser with a several of tabs. Then go tab by tab scrolling and some of them don't scroll properly, the smooth animation is wrong. This is happening because sometimes when the scrollbars are added to the scroll view, the contents size hasn't been updated yet, so that values saved by ScrollAnimationSmooth::updateVisibleLengths() are 0x0. After that the updateVisibleLengths() is not called again when the contents size is updated, so scroll happens with the wrong visible lengths. This doesn't happen with async scrolling because updateVisibleLengths() is called every time layers are repositioned. For non-async scrolling it should be enough to update visible lengths when he contents size changes.
Created attachment 428512 [details] Patch
Committed r277482 (237717@main): <https://commits.webkit.org/237717@main>