Created attachment 171842 [details]
1. Set your display to a Retina resolution
2. Load the attached test case in WebKit1
3. Scroll up and down a bit
The fixed div jiggles up and down slightly while scrolling. This does not happen in WebKit2.
This even happens waaaaaay back in the r37376 nightly build.
The bug gets worse if the fixed-position element has -webkit-transform:translate3d(0,0,0) applied to it. Then it jiggles by two device pixels instead of one.
I could have sworn we fixed this. Simon, did we fix this?
Turning off Settings::setFixedPositionCreatesStackingContext does not fix this.
Simon helped us realize that WebKit2 only scrolls by full pixels, even in Retina mode, while AppKit will scroll by half-pixels in Retina mode. WebCore can only represent full pixels at the moment, so this is probably the source of the bug.
Ah yes, this is in Radar as <rdar://problem/11244706>
Created attachment 171899 [details]
Comment on attachment 171899 [details]
It seems unfortunate to impact the scrolling behavior of every app using WK1, whether or not they have fixed position elements. Maybe this should be opt-in somehow?
Created attachment 171904 [details]
OK, added a new patch that only affects pages with position:fixed or position:sticky elements. It is not currently opt-in.
Simon, were you imagining a new preference key? Or some other opt-in mechanism?
Comment on attachment 171904 [details]
Clearing flags on attachment: 171904
Committed r133225: <http://trac.webkit.org/changeset/133225>
All reviewed patches have been landed. Closing bug.