RESOLVED FIXED 142522
Overflow regions with scroll snap points are not reliably rubber banding
https://bugs.webkit.org/show_bug.cgi?id=142522
Summary Overflow regions with scroll snap points are not reliably rubber banding
Brent Fulgham
Reported 2015-03-09 19:22:28 PDT
The rubber band animation is not reliably triggering when scrolling regions with scroll snap points. This seems to be due to the scroll snap point animation. Probably, the rubber band animation is getting tossed aside in favor of the scroll snap point animation. We probably need to be checking if our scroll takes us past the snap point bounds, so that we can ignore snap point animation and make sure we trigger the rubber band operation.
Attachments
Patch (10.11 KB, patch)
2015-06-17 13:39 PDT, Brent Fulgham
darin: review+
Radar WebKit Bug Importer
Comment 1 2015-03-09 19:23:15 PDT
Brent Fulgham
Comment 2 2015-06-17 13:28:22 PDT
This is happening because we clamp our scroll targets to scroll-snap-points, which means we are guaranteed to never reach the rubber-band phase of scrolling. Instead, we need to recognize when our gesture will take us past either extreme of the scrolling container, and skip scroll-snap for that case.
Brent Fulgham
Comment 3 2015-06-17 13:39:47 PDT
WebKit Commit Bot
Comment 4 2015-06-17 13:41:30 PDT
Attachment 255033 [details] did not pass style-queue: ERROR: Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:87: The parameter name ">" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:89: The parameter name ">" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 2 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Darin Adler
Comment 5 2015-06-17 16:02:05 PDT
Comment on attachment 255033 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=255033&action=review > Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:593 > + return LayoutSize(totalContentsSize()); I don’t think the explicit conversion to LayoutSize is needed here. > Source/WebCore/platform/ScrollAnimator.cpp:220 > + return LayoutSize(m_scrollableArea.contentsSize()); I don’t think the explicit conversion to LayoutSize is needed here. > Source/WebCore/platform/cocoa/ScrollController.h:33 > +#include "LayoutSize.h" To compile something with the return value LayoutSize, we only need a forward declaration of LayoutSize, not the entire LayoutSize.h header. > Source/WebCore/platform/cocoa/ScrollController.h:107 > + virtual LayoutSize scrollExtents() const = 0; I think the right name for this is scrollExtent, not scrollExtents.
Brent Fulgham
Comment 6 2015-06-17 17:07:41 PDT
Comment on attachment 255033 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=255033&action=review >> Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:593 >> + return LayoutSize(totalContentsSize()); > > I don’t think the explicit conversion to LayoutSize is needed here. OK. >> Source/WebCore/platform/ScrollAnimator.cpp:220 >> + return LayoutSize(m_scrollableArea.contentsSize()); > > I don’t think the explicit conversion to LayoutSize is needed here. OK. >> Source/WebCore/platform/cocoa/ScrollController.h:33 >> +#include "LayoutSize.h" > > To compile something with the return value LayoutSize, we only need a forward declaration of LayoutSize, not the entire LayoutSize.h header. OK. >> Source/WebCore/platform/cocoa/ScrollController.h:107 >> + virtual LayoutSize scrollExtents() const = 0; > > I think the right name for this is scrollExtent, not scrollExtents. OK.
Brent Fulgham
Comment 7 2015-06-17 17:33:12 PDT
Note You need to log in before you can comment on or make changes to this bug.