Summary: | Latching algorithm in findEnclosingOverflowScroll is broken | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Brent Fulgham <bfulgham> | ||||||||||
Component: | Layout and Rendering | Assignee: | Brent Fulgham <bfulgham> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | bfulgham, commit-queue, esprehn+autocc, glenn, kondapallykalyan, sabouhallawa, simon.fraser, webkit-bug-importer | ||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | All | ||||||||||||
OS: | All | ||||||||||||
Bug Depends on: | 145655 | ||||||||||||
Bug Blocks: | 145649 | ||||||||||||
Attachments: |
|
Description
Brent Fulgham
2015-06-04 09:35:44 PDT
Created attachment 254281 [details]
Patch
Comment on attachment 254281 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=254281&action=review > Source/WebCore/page/mac/EventHandlerMac.mm:795 > + if ((verticalScroll && box->hasScrollableOverflowY()) || (!verticalScroll && box->hasScrollableOverflowX())) > + return candidate; I'm not sure I like the idea of adding "predominantly vertical" logic here. The event could have non-zero X delta, and box->hasScrollableOverflowX() could be true, but we would not return that box as a candidate. (In reply to comment #3) > Comment on attachment 254281 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=254281&action=review > > > Source/WebCore/page/mac/EventHandlerMac.mm:795 > > + if ((verticalScroll && box->hasScrollableOverflowY()) || (!verticalScroll && box->hasScrollableOverflowX())) > > + return candidate; > > I'm not sure I like the idea of adding "predominantly vertical" logic here. > The event could have non-zero X delta, and box->hasScrollableOverflowX() > could be true, but we would not return that box as a candidate. Ah! Good point. Maybe something like "deltaX && box->hasScrollableOverflowX() || deltaY && box->hasScrollableOverflowY()" Created attachment 254282 [details]
Patch
Committed r185208: <http://trac.webkit.org/changeset/185208> This broke platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html @@ -8,7 +8,7 @@ TEST COMPLETE PASS Page did not receive wheel events. -PASS IFrame did not receive wheel events. +FAIL IFrame consumed wheel events. PASS Select consumed wheel events. PASS successfullyParsed is true Rolling out. Re-opened since this is blocked by bug 145655 Rolling out r185211 too (which just added tests that now fail). (In reply to comment #7) > This broke > platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select. > html Ah! Indeed it does. The <select> case doesn't work the same way because it doesn't treat its scrollable area as overflow. So the "scrollsOverflowY()" returns false for <select>, even though it does satisfy "canBeScrolledAndHasScrollableArea". Created attachment 254323 [details]
Patch
Created attachment 254325 [details]
Patch
Comment on attachment 254325 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=254325&action=review > Source/WebCore/page/mac/EventHandlerMac.mm:782 > +static ContainerNode* findEnclosingOverflowScrollForDominantDirection(ContainerNode* node, float deltaX, float deltaY) This isn't really "dominant direction" any more. Committed r185234: <http://trac.webkit.org/changeset/185234> |