UNCONFIRMED 109504
Autoscrolling FPS should be close to monitor refresh rate (~60 FPS, not 20 FPS)
https://bugs.webkit.org/show_bug.cgi?id=109504
Summary Autoscrolling FPS should be close to monitor refresh rate (~60 FPS, not 20 FPS)
nils
Reported 2013-02-11 15:29:14 PST
Autoscroll/panscroll ("middle-click scroll") runs at 20 FPS. This looks bad when autoscrolling slowly. Autoscroll, like other animations, should run at the refresh rate, as suggested by Google's Jank Busters initiative. Other browsers, such as Firefox and Opera, already do this. It is possible to replicate their behavior with client-side javascript. Originally, the autoscroll interval was 0.1s (!). In response to rdar://problem/6080639, revision 35274 cut that in half, where it remains today. Previously reported as https://code.google.com/p/chromium/issues/detail?id=163788
Attachments
Patch (1.05 KB, patch)
2013-02-11 15:34 PST, nils
no flags
Patch (1.08 KB, patch)
2013-02-11 16:27 PST, nils
no flags
Patch (1.00 KB, patch)
2013-02-11 16:41 PST, nils
no flags
patch (1.45 KB, patch)
2013-02-25 23:10 PST, nils
no flags
nils
Comment 1 2013-02-11 15:34:21 PST
Created attachment 187701 [details] Patch I think a patch similar to this would work. I have not tested this patch because I am not able to build webkit. I tried to get the patch style correct, but I've almost certainly flubbed it, so it would be kind of somebody to redo it correctly. Thanks.
nils
Comment 2 2013-02-11 16:27:37 PST
Created attachment 187715 [details] Patch Attempt formatting fix
nils
Comment 3 2013-02-11 16:41:57 PST
Created attachment 187722 [details] Patch Attempt another formatting fix
Simon Fraser (smfr)
Comment 4 2013-02-11 17:17:00 PST
You're going to have to learn how to build WebKit before submitting patches.
nils
Comment 5 2013-02-11 17:33:18 PST
(In reply to comment #4) > You're going to have to learn how to build WebKit before submitting patches. Yeah, sorry. I tried following the instructions for building on Windows, but they've bitrotted. I gave up after about six hours. :-( Should I assume that this won't happen unless I figure out how to do it myself?
Tim Horton
Comment 6 2013-02-11 17:34:58 PST
You'd have much better luck building WebKit on Mac or Linux.
nils
Comment 7 2013-02-11 17:43:40 PST
(In reply to comment #6) > You'd have much better luck building WebKit on Mac or Linux. I suspected that, but I don't have either. I tried linux in a vm, but's it slow as heck. I suppose I could repartition, but it seems like a lot of work for one tiny patch. I guess maybe I'll have to.
nils
Comment 8 2013-02-25 23:10:09 PST
Created attachment 190214 [details] patch Got to the point where I could use webkit-patch. Fingers crossed that it works this time.
Simon Fraser (smfr)
Comment 9 2013-02-26 09:09:21 PST
Comment on attachment 190214 [details] patch Isn't this going to make autoscrolling crazy fast?
nils
Comment 10 2013-02-26 20:17:48 PST
(In reply to comment #9) > Isn't this going to make autoscrolling crazy fast? Maybe. As Tim recommended, I'm building on *nix (OS X in a VM). However, it appears that Windows is the only platform where autoscrolling is enabled, so I'm trying to figure out if there is a way to test this patch. Having spent the past two weeks attempting to set up a build environment, I do not look forward to chucking it out and starting all over again on Windows. Nevertheless, I think that's where I'm headed. :(
Tim Horton
Comment 11 2013-02-26 21:10:29 PST
(In reply to comment #10) > (In reply to comment #9) > > Isn't this going to make autoscrolling crazy fast? > > Maybe. As Tim recommended, I'm building on *nix (OS X in a VM). However, it appears that Windows is the only platform where autoscrolling is enabled, so I'm trying to figure out if there is a way to test this patch. Having spent the past two weeks attempting to set up a build environment, I do not look forward to chucking it out and starting all over again on Windows. Nevertheless, I think that's where I'm headed. :( Isn't this the same code that runs when you drag-select outside of the window on OS X?
Tim Horton
Comment 12 2013-02-26 21:56:01 PST
Also for drag and drop inside the web view. You can totally test this on OS X.
nils
Comment 13 2013-02-26 22:29:11 PST
(In reply to comment #11) > (In reply to comment #10) > > (In reply to comment #9) > > > Isn't this going to make autoscrolling crazy fast? > > > > Maybe. As Tim recommended, I'm building on *nix (OS X in a VM). However, it appears that Windows is the only platform where autoscrolling is enabled, so I'm trying to figure out if there is a way to test this patch. Having spent the past two weeks attempting to set up a build environment, I do not look forward to chucking it out and starting all over again on Windows. Nevertheless, I think that's where I'm headed. :( > > Isn't this the same code that runs when you drag-select outside of the window on OS X? You're correct; it's just the panScrolling that's Windows only. And Simon is correct, this makes scrolling way to fast. I hadn't realized that revision 35274 changed the speed as well as the fluidity. Unfortunately, that means the solution to this bug is above my head. Drat. Thanks for your help.
Tim Horton
Comment 14 2013-02-26 22:35:49 PST
(In reply to comment #13) > (In reply to comment #11) > > (In reply to comment #10) > > > (In reply to comment #9) > > > > Isn't this going to make autoscrolling crazy fast? > > > > > > Maybe. As Tim recommended, I'm building on *nix (OS X in a VM). However, it appears that Windows is the only platform where autoscrolling is enabled, so I'm trying to figure out if there is a way to test this patch. Having spent the past two weeks attempting to set up a build environment, I do not look forward to chucking it out and starting all over again on Windows. Nevertheless, I think that's where I'm headed. :( > > > > Isn't this the same code that runs when you drag-select outside of the window on OS X? > > You're correct; it's just the panScrolling that's Windows only. And Simon is correct, this makes scrolling way to fast. I hadn't realized that revision 35274 changed the speed as well as the fluidity. > > Unfortunately, that means the solution to this bug is above my head. Drat. Thanks for your help. Ahhh, you've come all this way, let's see if we can get all the way there! RenderLayer::autoscroll is where the scrolling happens (at least some of it; RenderListBox has one too, but I don't know what that is). Maybe you can come up with a way to make it scroll less per-scroll-event?
nils
Comment 15 2013-03-02 23:05:39 PST
(In reply to comment #14) > (In reply to comment #13) > > (In reply to comment #11) > > > (In reply to comment #10) > > > > (In reply to comment #9) > > > > > Isn't this going to make autoscrolling crazy fast? > > > > > > > > Maybe. As Tim recommended, I'm building on *nix (OS X in a VM). However, it appears that Windows is the only platform where autoscrolling is enabled, so I'm trying to figure out if there is a way to test this patch. Having spent the past two weeks attempting to set up a build environment, I do not look forward to chucking it out and starting all over again on Windows. Nevertheless, I think that's where I'm headed. :( > > > > > > Isn't this the same code that runs when you drag-select outside of the window on OS X? > > > > You're correct; it's just the panScrolling that's Windows only. And Simon is correct, this makes scrolling way to fast. I hadn't realized that revision 35274 changed the speed as well as the fluidity. > > > > Unfortunately, that means the solution to this bug is above my head. Drat. Thanks for your help. > > Ahhh, you've come all this way, let's see if we can get all the way there! > > RenderLayer::autoscroll is where the scrolling happens (at least some of it; RenderListBox has one too, but I don't know what that is). Maybe you can come up with a way to make it scroll less per-scroll-event? I've been studying RenderLayer::autoscroll for a few hours, but I don't understand how it works, and it takes me far to long (i.e. overnight) to make an experimental change and see what happens. I appreciate your encouragement, but I think I would need to (1) learn C++, (2) learn how this part of Webkit works, and (3) get a new computer before I am likely to be able to fix this. It's not the trivial constant adjustment I thought it was. I think I'll have to sit this one out. Obviously I would be happy if somebody submits a fix, but I understand there are thousands of other deserving issues. Thank you again.
Note You need to log in before you can comment on or make changes to this bug.