RESOLVED FIXED 28023
Scrolling with middle mouse button doesn't work in Expanded view on reader.google.com
https://bugs.webkit.org/show_bug.cgi?id=28023
Summary Scrolling with middle mouse button doesn't work in Expanded view on reader.go...
Brian Weinstein
Reported 2009-08-05 11:38:55 PDT
- Click any article under RSS subscriptions - Click Expanded-List in the right top corner - try pan-scrolling Expected: The page pan scrolls. Actual: It shows the icon, but doesn't. <rdar://6622771>
Attachments
Another way to Scroll (2.63 KB, patch)
2009-08-05 11:44 PDT, Brian Weinstein
adele: review-
Scroll Fixes (6.97 KB, patch)
2009-08-06 11:23 PDT, Brian Weinstein
eric: review-
Scroll Fixes + Test (9.70 KB, patch)
2009-08-07 14:17 PDT, Brian Weinstein
no flags
Scroll Fixes + Test + Newline (9.68 KB, patch)
2009-08-07 14:21 PDT, Brian Weinstein
no flags
Scroll Fixes + Attempted Automated Test (11.43 KB, patch)
2009-08-10 11:52 PDT, Brian Weinstein
no flags
Scroll Fixes + Automated Test (12.43 KB, patch)
2009-08-11 10:05 PDT, Brian Weinstein
no flags
Fixed ChangeLogs (12.72 KB, patch)
2009-08-11 10:11 PDT, Brian Weinstein
no flags
Scroll Fixes + Automated Test (12.72 KB, patch)
2009-08-11 10:13 PDT, Brian Weinstein
eric: review+
eric: commit-queue-
Brian Weinstein
Comment 1 2009-08-05 11:44:47 PDT
Created attachment 34157 [details] Another way to Scroll
Adele Peterson
Comment 2 2009-08-05 11:54:46 PDT
Comment on attachment 34157 [details] Another way to Scroll Why are you scrolling the enclosing box here? This makes me think that scrollByRecursively isn't getting on the right renderer.
Adele Peterson
Comment 3 2009-08-05 11:55:18 PDT
meant to say "isn't getting called on the right renderer"
Brian Weinstein
Comment 4 2009-08-05 11:57:22 PDT
I was testing on Google Reader, and this was the case that caused the mouse wheel to scroll, I figured this might be a useful case to add. I got this code from EventHandler::scrollAndAcceptEvent.
Adele Peterson
Comment 5 2009-08-05 12:04:36 PDT
scrollAndAcceptEvent gets called after the first node with a renderer is found. So it makes sense that that renderer might not be scrollable. But scrollByRecursively is called on a RenderLayer and is supposed to scroll that layer and be recursively called on other layers in the chain. Adding this case is not correct. Either we should be calling scrollByRecursively on a different starting layer, or its not being called recursively on the right layers.
Brian Weinstein
Comment 6 2009-08-06 11:23:33 PDT
Created attachment 34214 [details] Scroll Fixes
Adele Peterson
Comment 7 2009-08-06 12:45:12 PDT
Comment on attachment 34214 [details] Scroll Fixes How does the addition of canBeScrolledAndHasScrollableArea work for frames? I mentioned offline to you that the recursion logic in scrollByRecursively should match the recursion logic in scrollRectToVisible. Is that true now?
Brian Weinstein
Comment 8 2009-08-06 13:52:19 PDT
For frames, this won't change the current behavior. It will scroll in frames, but then won't jump out of them (making it do that would be a second patch). I need to clean up the end of the recursion, and will be posting another patch for that, but from what I can tell, the recursion that we have works very similarly to scrollRectToVisible, except that we don't jump out of frames like they do.
Eric Seidel (no email)
Comment 9 2009-08-07 08:47:27 PDT
Comment on attachment 34214 [details] Scroll Fixes LGTM, except this needs tests. Layout tests would be *strongly* preferred (and should be possible with eventSender!). But a WebCore/manual-test would be fine too. Thanks for the change. Please re-post with tests and I (or anyone else) will be happy to r+ this!
Brian Weinstein
Comment 10 2009-08-07 14:17:32 PDT
Created attachment 34328 [details] Scroll Fixes + Test
Brian Weinstein
Comment 11 2009-08-07 14:21:40 PDT
Created attachment 34330 [details] Scroll Fixes + Test + Newline
Eric Seidel (no email)
Comment 12 2009-08-08 08:56:32 PDT
Comment on attachment 34330 [details] Scroll Fixes + Test + Newline Did you investigate making an automated test? I really wouldn't think it would be very hard (but I may just be naive). You just add a little <script> tag to your existing test, which calls eventSender.mouseDown(2) and then eventSender.mouseMoveTo(x, y). But maybe pan scroll events wouldn't work in DRT? Either way it seems we should have an explanation in a bug of why we can't test pan scrolling with the intention of fixing it in DRT some day.
Brian Weinstein
Comment 13 2009-08-08 14:06:58 PDT
I saw there was a pan-scrolling test in manual-tests, so I was following that idea. I see a few autoscroll tests, so I will try to make mine match that, and work as an automated test.
Brian Weinstein
Comment 14 2009-08-10 11:52:12 PDT
Created attachment 34495 [details] Scroll Fixes + Attempted Automated Test
Adam Roben (:aroben)
Comment 15 2009-08-10 12:01:30 PDT
Comment on attachment 34495 [details] Scroll Fixes + Attempted Automated Test I think the test isn't working because Windows DRT doesn't support the button number parameter to eventSender.mouseDown/mouseUp. See <http://trac.webkit.org/browser/trunk/WebKitTools/DumpRenderTree/win/EventSender.cpp?rev=43762#L147>. This would be easy to fix!
Brian Weinstein
Comment 16 2009-08-11 10:05:22 PDT
Created attachment 34571 [details] Scroll Fixes + Automated Test
Brian Weinstein
Comment 17 2009-08-11 10:11:26 PDT
Created attachment 34572 [details] Fixed ChangeLogs
Brian Weinstein
Comment 18 2009-08-11 10:13:53 PDT
Created attachment 34574 [details] Scroll Fixes + Automated Test
Eric Seidel (no email)
Comment 19 2009-08-12 15:54:08 PDT
Comment on attachment 34574 [details] Scroll Fixes + Automated Test Looks fine. We need a bug report for: 1033 // FIXME: If we didn't scroll the whole way, do we want to try looking at the frames ownerElement?
Eric Seidel (no email)
Comment 20 2009-08-12 16:11:16 PDT
Comment on attachment 34574 [details] Scroll Fixes + Automated Test Removing cq+ per request.
Brian Weinstein
Comment 21 2009-08-12 16:57:37 PDT
Note You need to log in before you can comment on or make changes to this bug.