Content that changes the scroll offset, and changes the style of an element at the same time should be able to make that element appear in a fixed position. However, for some reason WebKit is unable to always synchronize the two, and the element flickers.
rdar://problem/18833612
Even when programmatic scrolling, AsyncScrollingCoordinator::requestScrollPositionUpdate() sends the scroll off to the scrolling thread, which sometime later tells the UI thread that we scrolled in AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll(), which (on a timer) hits AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll().
Created attachment 242685 [details] Patch
https://trac.webkit.org/r176899