Created attachment 245550 [details] Example of horizontal and vertical scroll snap points Scroll snap points work properly in the horizontal direction, but not in the vertical. See the attached example page. The top example works properly, but the bottom fails.
The problem seems to be in EventHandler::defaultWheelEventHandler: When scrolling in the horizontal direction, we do not mark the wheelEvent as 'default handled', which allows the event to bubble up and get handled by the snap logic. When scrolling in the vertical direction, we do mark the event as 'default handled', which prevents us from bubbling the event up to the snap logic.
<rdar://problem/19632089>
Actually, it looks like the difference might be in ScrollAnimatorMac::handleWheelEvent. We ask the ScrollAnimator to handle the wheel event directly in the vertical case, rather than passing it along to the scroll elasticity controller.
Created attachment 245580 [details] Patch
Comment on attachment 245580 [details] Patch R=me assuming this does not break rubber-banding in overflow areas and iframes.
Committed r179324: <http://trac.webkit.org/changeset/179324>