RESOLVED FIXED 141821
[Mac] REGRESSION: Scroll snap points broken after r180018
https://bugs.webkit.org/show_bug.cgi?id=141821
Summary [Mac] REGRESSION: Scroll snap points broken after r180018
Brent Fulgham
Reported 2015-02-19 18:13:36 PST
The existing Scroll Snap code on Mac relied on the DOM event bubbling phase to make sure the Scroll Snap animations to be triggered. Now that we do not pass these "no motion" events through the DOM event handler chain, the snap animations are not being triggered and the whole feature stops working.
Attachments
Patch (5.97 KB, patch)
2015-02-20 08:33 PST, Brent Fulgham
no flags
Patch v2 (fix iOS build) (5.94 KB, patch)
2015-02-20 10:14 PST, Brent Fulgham
simon.fraser: review+
Radar WebKit Bug Importer
Comment 1 2015-02-19 18:14:06 PST
Brent Fulgham
Comment 2 2015-02-20 08:33:14 PST
Brent Fulgham
Comment 3 2015-02-20 10:14:01 PST
Created attachment 246974 [details] Patch v2 (fix iOS build)
Simon Fraser (smfr)
Comment 4 2015-02-20 10:31:30 PST
Comment on attachment 246974 [details] Patch v2 (fix iOS build) View in context: https://bugs.webkit.org/attachment.cgi?id=246974&action=review > Source/WebCore/page/mac/EventHandlerMac.mm:991 > + if (scrollableArea->existingScrollAnimator()) > + scrollableArea->scrollAnimator()->processWheelEventForScrollSnap(wheelEvent); Maybe if (ScrollAnimator* animator = scrollableArea->existingScrollAnimator()) scrollAnimator->processWheelEventForScrollSnap().
Brent Fulgham
Comment 5 2015-02-20 10:51:15 PST
Comment on attachment 246974 [details] Patch v2 (fix iOS build) View in context: https://bugs.webkit.org/attachment.cgi?id=246974&action=review >> Source/WebCore/page/mac/EventHandlerMac.mm:991 >> + scrollableArea->scrollAnimator()->processWheelEventForScrollSnap(wheelEvent); > > Maybe if (ScrollAnimator* animator = scrollableArea->existingScrollAnimator()) scrollAnimator->processWheelEventForScrollSnap(). Sure! I'll do that.
zalan
Comment 6 2015-02-20 11:01:14 PST
Comment on attachment 246974 [details] Patch v2 (fix iOS build) View in context: https://bugs.webkit.org/attachment.cgi?id=246974&action=review >>> Source/WebCore/page/mac/EventHandlerMac.mm:991 >>> + scrollableArea->scrollAnimator()->processWheelEventForScrollSnap(wheelEvent); >> >> Maybe if (ScrollAnimator* animator = scrollableArea->existingScrollAnimator()) scrollAnimator->processWheelEventForScrollSnap(). > > Sure! I'll do that. Couldn't we use reference here instead? -EventHandler::handleWheelEvent() already has checks against scrollableArea != nullptr in some places.
Brent Fulgham
Comment 7 2015-02-20 11:07:09 PST
Comment on attachment 246974 [details] Patch v2 (fix iOS build) View in context: https://bugs.webkit.org/attachment.cgi?id=246974&action=review >>>> Source/WebCore/page/mac/EventHandlerMac.mm:991 >>>> + scrollableArea->scrollAnimator()->processWheelEventForScrollSnap(wheelEvent); >>> >>> Maybe if (ScrollAnimator* animator = scrollableArea->existingScrollAnimator()) scrollAnimator->processWheelEventForScrollSnap(). >> >> Sure! I'll do that. > > Couldn't we use reference here instead? -EventHandler::handleWheelEvent() already has checks against scrollableArea != nullptr in some places. Actually, that's a good point. We should be checking scrollableArea for nullptr (or in the caller) because there are code paths where it may be null. I'll correct that before landing.
Brent Fulgham
Comment 8 2015-02-20 11:15:23 PST
Note You need to log in before you can comment on or make changes to this bug.