[Webkit-unassigned] [Bug 135769] Implement snapping behavior for iOS

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Aug 14 13:33:11 PDT 2014


https://bugs.webkit.org/show_bug.cgi?id=135769





--- Comment #9 from Wenson Hsieh <wenson_hsieh at apple.com>  2014-08-14 13:33:18 PST ---
(From update of attachment 236591)
View in context: https://bugs.webkit.org/attachment.cgi?id=236591&action=review

>> Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:106
>> +        // FIXME: Make sure we snap these pixel values.
> 
> Why not do this now? I'm sure Zalan can tell you how, and I think it's not too hard.

Fixed.

>> Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:108
>> +            snapOffsetsAsFloat.append(frameView->horizontalSnapOffsets()->at(i).round());
> 
> you're .at()ing again

Good catch. Fixed.

>> Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:112
>> +    if (frameView->verticalSnapOffsets()) {
> 
> perhaps a reusable static snapOffsetsAsFloats or something? this code is here four times

So much cleaner :)

>> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:86
>> +#if ENABLE(CSS_SCROLL_SNAP)
> 
> This doesn't belong in the middle of the big block if it has #if, but I don't think it needs the #if, either.

Got it. Removed #if.

>> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1306
>> +    if (_page->mainFrame() && _page->mainFrame()->page() && _page->mainFrame()->page()->scrollingCoordinatorProxy()) {
> 
> I wonder if this code can go somewhere more scrollingy (RemoteScrollingCoordinatorProxy?) and we can just call something->adjustTargetContentOffsetForSnapping(targetContentOffset) or something.

Added adjustTargetContentOffsetForSnapping to RemoteScrollingCoordinatorProxy.

>> Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:33
>> +#if ENABLE(CSS_SCROLL_SNAP)
> 
> no #if blocks inside the big block of #imports!

Got it -- fixed.

>> Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:206
>> +        // FIXME: In only one axis snaps in 2D scrolling, the other axis will decelerate fast as well. Is this what we want?
> 
> there's some mixup at the beginning of this sentence

Oops, good catch! (it's supposed to be "if")

>>> Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:112
>>> +bool RemoteScrollingCoordinatorProxy::shouldHorizontalSnapForMainframeScrolling() const
>> 
>> To prevent requiring ScrollTypes, I split these methods into horizontal and vertical versions. Otherwise, I could pass in a WebCore::ScrollEventAxis
> 
> Deduplicate!

Re-merged into 1 method.

>> Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:143
>> +float RemoteScrollingCoordinatorProxy::closestVerticalSnapOffsetForMainframeScrolling(float scrollDestination, float velocity) const
> 
> deduplicate!

Fixed.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list