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

Reply via email to