[Webkit-unassigned] [Bug 170280] Dynamically added position:fixed element is in the wrong place

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon May 1 22:03:30 PDT 2017


--- Comment #5 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
This only happens with UI-side compositing, and reproduces on Mac too in that configuration.

What's happening is this:

The <header> initially is the only fixed element. Its GraphicsLayer gets a position of 0,10. When you scroll, the scrolling tree calls GraphicsLayerCA::syncPosition() which sets various new positions to make fixed position work. However, these positions don't get into PlatformCALayerRemote (they don't need to).

When the body becomes fixed, <header> is now parented in another fixed element, so we stop tracking it in the scrolling tree. When we do layout for this change, <header>'s GraphicsLayer gets a setPosition({0, 10}) which is pushed to PlatformCALayerRemote during the flush, but PlatformCALayerRemote doesn't see this as a change (it still has {0,10}) so this change doesn't make it to the UI process, and the UI layer remains with its old scroll-influenced offset.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170502/9ea14fb9/attachment.html>

More information about the webkit-unassigned mailing list