When updating HTML content and sticky status at the same time in a macrotask/microtask (e.g. setTimeout or Promise.then), the value shown on the screen seems to be stale value. (still 0) Code sandbox: https://codesandbox.io/s/focused-solomon-z3i79 To replicate the issue, open this link in Safari: https://z3i79.csb.app/ (a popped out version of the sandbox above) Observation: - In other browsers, the text content of that sticky footer should be 1. - In safari, it's 0, until user scroll to bottom.
<rdar://problem/60733061>
We're failing to repaint the sticky layer.
Oddly this doesn't happen if https://codesandbox.io/public/sse-hooks/sse-hooks.js is not included, yet this JS isn't necessary for the test.
Actually I can reproduce without the included JS file. It's a bit timing dependent.
Created attachment 394275 [details] Testcase
The repaint we issue in the sticky layer is offset incorrectly. This testcase shows that sometimes the text half-paints.
And the repaint rect is getting offset by layoutDelta().
I have confirmed that r281185 fixed this in the repository. This fix should be available for Safari in the future. *** This bug has been marked as a duplicate of bug 224415 ***