To explain the problem a different way: * For **scrolled content**, it does not matter whether a y=3000 discrepancy between the last-painted layout scroll offset and the latest visual scroll offset is in **visual** component of the async transform, or the **layout** component: at composition time, we apply both components to scrolled content, so the outcome is all the same (i.e. layout will paint at y=3000, and the compositor will apply a y=-3000 transform to the textures to cancel it out). * For **fixed content**, however, we only apply the **visual** component of the async transform to them at composition time. If the y=3000 is actually part of the layout component, and we paint the fixed content at y=3000, there is no corresponding compositor transform to cancel that out, and the fixed content remains offscreen.
Bug 1664101 Comment 11 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
To explain the problem a different way: * For **scrolled content**, it does not matter whether a discrepancy between the last-painted layout scroll offset and the latest visual scroll offset is in **visual** component of the async transform, or the **layout** component: at composition time, we apply both components to scrolled content, so the outcome is all the same (e.g. layout will paint at y=3000, and the compositor will apply a y=-3000 transform to the layers, and the two cancel out). * For **fixed content**, however, we only apply the **visual** component of the async transform to them at composition time. If a y=3000 discrepancy is actually part of the layout component of the transform, and we paint the fixed content at y=3000, there is no corresponding compositor transform to cancel that out, and the fixed content remains offscreen.