Bug 146000 - [iOS WK2] position:fixed elements sometimes truncated on scroll view bouncing
Summary: [iOS WK2] position:fixed elements sometimes truncated on scroll view bouncing
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2015-06-15 18:36 PDT by Simon Fraser (smfr)
Modified: 2015-06-15 19:12 PDT (History)
2 users (show)

See Also:


Attachments
Patch (4.31 KB, patch)
2015-06-15 18:41 PDT, Simon Fraser (smfr)
no flags Details | Formatted Diff | Diff
Patch (4.34 KB, patch)
2015-06-15 18:41 PDT, Simon Fraser (smfr)
benjamin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2015-06-15 18:36:45 PDT
[iOS WK2] position:fixed elements sometimes truncated on scroll view bouncing
Comment 1 Simon Fraser (smfr) 2015-06-15 18:41:15 PDT
Created attachment 254917 [details]
Patch
Comment 2 Simon Fraser (smfr) 2015-06-15 18:41:59 PDT
Created attachment 254918 [details]
Patch
Comment 3 Simon Fraser (smfr) 2015-06-15 18:42:23 PDT
rdar://problem/19448439
Comment 4 Benjamin Poulain 2015-06-15 18:48:35 PDT
Comment on attachment 254918 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=254918&action=review

> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1522
> +- (BOOL)_scrollViewIsRubberBanding

Can we do ?

CGPoint contentOffset = [_scrollView contentOffset];
CGPoint validContentOffset = contentOffsetBoundedInValidRange(_scrollView.get(), contentOffset)
if (notEqualThingy(contentOffset, validContentOffset)
    return true;

> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1563
> +    BOOL isStableState = !(_isChangingObscuredInsetsInteractively || [_scrollView isDragging] || [_scrollView isDecelerating] || [_scrollView isZooming] || [_scrollView isZoomBouncing] || [_scrollView _isAnimatingZoom] || [_scrollView _isScrollingToTop] || [self _scrollViewIsRubberBanding]);

Of course, [isDragging] and [isDecelerating] is not enough, that totally make sense :(
Comment 5 Simon Fraser (smfr) 2015-06-15 19:12:01 PDT
https://trac.webkit.org/r185576