Created attachment 367951 [details]
When I begin performing the Back gesture, then cancel it (by stopping dragging) and, before the slide animation (returning to the "normal status") is over, i start scrolling vertically, scrolling is sometimes disabled until i perform and cancel another "back/forward" gesture.
Not very visible in the attached screencast, but hope it helps
Interesting. I can reproduce it, though it's tricky.
It "fixes itself" after cursor movement, not necessarily until you start a new gesture. Still weird, because the snapshot is not shown during that time, so the gesture is not running...
So, what happens is that it's trying to animate the page, but the remaining distance is so small it looks like nothing is happening. And during that time you cannot scroll because you would restart the gesture if you do.
Seems we just need to be better at calculating animation duration when velocity is 0, i.e. when you just release the gesture. Currently in that case, the duration is always 400ms without considering the distance. We need something that is proportional to distance.
Created attachment 368021 [details]
This is a bit preliminary patch, I want to check with Tobias wrt the duration, though it feels good to me.
Note this doesn't 100% prevent this, but makes it a lot harder to reproduce (you need to scroll 4 times as fast). I can make it so that the minimum duration is 0 (as it was in the first iteration of the change), but it feels a bit weird when the page immediately snaps back when it's close to end point.
Created attachment 368022 [details]
Tobias liked the duration, and I forgot a few obsolete lines in the patch, so reuploading.
firstname.lastname@example.org: can you still reproduce it with the patch? I can do a Epiphany build if you need to.
If you could make an Epiphany build with it, it would be great.
I realized I should have built technology preview instead of stable already after having started building this one. However, since there's no "official" stable flatpak atm, should be fine.
Also, note this is very latest webkit, and there are some other breakages (for instance, snapshot always takes a long time to disappear after you complete the gesture, I already know the reason, but it's a different problem), so I'm only asking about this bug. :)
This seems to solve the particular test case I mentioned initially. However, it also seems to cause a regression, blocking a "forward" gesture immediately after a "back" one or vice versa.
This, by the way, happens only if I wait for the gesture animation to be completed before going the opposite direction. If I "cancel" it or start performing the opposite gesture before the animation is over, it seems to work propelry.
This isn't caused by the patch, and that breakage is the very reason I mentioned:
> Also, note this is very latest webkit, and there are some other breakages (for instance, snapshot always takes a long time to disappear after you complete the gesture, I already know the reason, but it's a different problem), so I'm only asking about this bug. :)
More specifically, I think it's caused by https://trac.webkit.org/changeset/243094/webkit. I tried to bisect it, but that commit also introduced a crash in webkitgtk, so I cannot know for sure. And I've almost fixed it locally.
The only thing the patch does is make the page snap back faster when you're cancelling it and it's close to edge. If you cannot reproduce the bug anymore, then it works :p
Sure, this particular bug isn't verified here (or not that often) and the speed is still absolutely acceptable.
email@example.com: see https://bugs.webkit.org/show_bug.cgi?id=197233 for the timeout issue.
Comment on attachment 368022 [details]
Clearing flags on attachment: 368022
Committed r244649: <https://trac.webkit.org/changeset/244649>
All reviewed patches have been landed. Closing bug.