Fixed elements should not rubber-band in WK2, nor remain at negative offsets
Created attachment 299899 [details] Patch for EWS
rdar://problem/29453068
Created attachment 299993 [details] Patch
Created attachment 299995 [details] Patch
Comment on attachment 299995 [details] Patch Attachment 299995 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/2961799 New failing tests: compositing/geometry/fixed-in-composited.html css3/filters/backdrop/dynamic-with-clip-path.html
Created attachment 299997 [details] Archive of layout-test-results from ews121 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews121 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Comment on attachment 299995 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=299995&action=review Would be cool to have a test that combines this with scroll snapping. > Source/WebCore/ChangeLog:18 > + Also add a way to do unconstrained scrollTo(), so that a test can call window.scrollTo(-10, -10) to > + simulate rubberbanding. 👍 > Source/WebCore/page/FrameView.cpp:1812 > + bool allowRubberbanding = fixedBehavior == StickToViewportBounds; Isn't rubber-banding two words? allowRubberBanding. > Source/WebCore/page/FrameView.cpp:1818 > + bool rubberbandingAtRight = allowRubberbanding && (visualViewport.maxX() - layoutViewport.width()) > stableLayoutViewportOriginMax.x(); Why do you -layoutViewport.width() here? Don't you want to rubberband at the right-most edge? I obviously misunderstand. > Source/WebCore/page/FrameView.cpp:1830 > + if (!rubberbandingAtRight && layoutViewportOrigin.x() > stableLayoutViewportOriginMax.x()) > + layoutViewportOrigin.setX(stableLayoutViewportOriginMax.x()); Just writing this to see if it reads better: if (!rubberbandingAtRight) layoutViewportOrigin.setX(std::min(layoutViewportOrigin.x(), stableLayoutViewportOriginMax.x()); Hmmm... whatever.
https://trac.webkit.org/r211379