Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4b1ca4f3add8483f04957886f45626e1e9b28a80 https://github.com/WebKit/WebKit/commit/4b1ca4f3add8483f04957886f45626e1e9b28a80 Author: Simon Fraser <simon.fra...@apple.com> Date: 2024-02-02 (Fri, 02 Feb 2024)
Changed paths: A LayoutTests/compositing/shared-backing/overflow-scroll/composite-via-negative-z-descendants-interrupts-sequence-expected.html A LayoutTests/compositing/shared-backing/overflow-scroll/composite-via-negative-z-descendants-interrupts-sequence.html A LayoutTests/compositing/shared-backing/overflow-scroll/zero-sized-fixed-interrupts-sharing-sequence-expected.txt A LayoutTests/compositing/shared-backing/overflow-scroll/zero-sized-fixed-interrupts-sharing-sequence.html A LayoutTests/platform/ios-wk2/compositing/shared-backing/overflow-scroll/zero-sized-fixed-interrupts-sharing-sequence-expected.txt M Source/WebCore/rendering/RenderLayerCompositor.cpp Log Message: ----------- REGRESSION(268028@main): Graphics artifacts when scrolling Heroku app https://bugs.webkit.org/show_bug.cgi?id=266926 rdar://120373474 Reviewed by Alan Baradlay. Backing sharing is used to reduce memory use by allowing multiple RenderLayers (normally siblings), which share the same stacking context ancestor, to render into the same compositing layer. This has to be done in a way that preserves back-to-front paint order. The common case where this kicks in is a non-stacking context overflow:scroll with position:relative descendants. A backing sharing sequence (a set of layers painting into the same shared backing) has to be interrupted when a layer becomes composited in order to preserve paint order. 268028@main inadvertently changed the condition used to end a backing sharing sequence, breaking rendering with various content configurations. Restore the condition to the previous state, which is to end the sequence if the the provider layer is the same one we had before traversing into descendant layers. Add two tests which detect the behavior change. * LayoutTests/compositing/shared-backing/overflow-scroll/composite-via-negative-z-descendants-interrupts-sequence-expected.html: Added. * LayoutTests/compositing/shared-backing/overflow-scroll/composite-via-negative-z-descendants-interrupts-sequence.html: Added. * LayoutTests/compositing/shared-backing/overflow-scroll/zero-sized-fixed-interrupts-sharing-sequence-expected.txt: Added. * LayoutTests/compositing/shared-backing/overflow-scroll/zero-sized-fixed-interrupts-sharing-sequence.html: Added. * LayoutTests/platform/ios-wk2/compositing/shared-backing/overflow-scroll/zero-sized-fixed-interrupts-sharing-sequence-expected.txt: Added. * Source/WebCore/rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::updateBackingSharingAfterDescendantTraversal): Canonical link: https://commits.webkit.org/273999@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes