haikuwebkit/LayoutTests/compositing/shared-backing
Simon Fraser 184cd67518 REGRESSION (r262237) Safari 14.x shows graphics artifacts when scrolling, using drop-down menus or just moving the mouse
https://bugs.webkit.org/show_bug.cgi?id=220892
<rdar://73538454>

Reviewed by Alan Bujtas.

Source/WebCore:

Fix an issue with backing sharing where a composited layer needs to interrupted a backing
sharing sequence. In some cases, a layer that became composited via an indirect reason
(like overflow positioning) would not interrupt a backing sharing sequence, leaving a dangling
layer that ended up painting into the wrong ancestor.

The fix is to ensure that BackingSharingState::updateBeforeDescendantTraversal() and
BackingSharingState::updateAfterDescendantTraversal() have the same behavior when a layer
becomes composited (thus interrupting the sequence). However, we also have ensure that
updateAfterDescendantTraversal() doesn't erroeously interrupt the sequence when the sequence
was initiated by some descendant, hence the check against the preDescendantProviderCandidate.

Test: compositing/shared-backing/backing-sharing-compositing-change.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::BackingSharingState::endBackingSharingSequence):
(WebCore::RenderLayerCompositor::BackingSharingState::updateBeforeDescendantTraversal):
(WebCore::RenderLayerCompositor::BackingSharingState::updateAfterDescendantTraversal):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):

LayoutTests:

* compositing/shared-backing/backing-sharing-compositing-change-expected.html: Added.
* compositing/shared-backing/backing-sharing-compositing-change.html: Added.


Canonical link: https://commits.webkit.org/239450@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-07-07 03:36:45 +00:00
..
overflow-scroll Scrollbars are not clipped to layer bounds in RenderLayerBacking 2021-06-15 18:12:34 +00:00
backing-sharing-compositing-change-expected.html REGRESSION (r262237) Safari 14.x shows graphics artifacts when scrolling, using drop-down menus or just moving the mouse 2021-07-07 03:36:45 +00:00
backing-sharing-compositing-change.html REGRESSION (r262237) Safari 14.x shows graphics artifacts when scrolling, using drop-down menus or just moving the mouse 2021-07-07 03:36:45 +00:00
backing-sharing-repaint-expected.html
backing-sharing-repaint.html
clipping-and-shared-backing-expected.html Remove experimental: and internal: prefixes from test header commands 2020-11-04 15:56:26 +00:00
clipping-and-shared-backing.html Remove experimental: and internal: prefixes from test header commands 2020-11-04 15:56:26 +00:00
move-sharing-child-expected.txt
move-sharing-child.html
nested-shared-layers-with-opacity-expected.html
nested-shared-layers-with-opacity.html
overlap-after-end-sharing-expected.html
overlap-after-end-sharing.html
overlap-after-shared-to-composited-expected.html
overlap-after-shared-to-composited.html
partial-compositing-update-expected.txt
partial-compositing-update.html
partial-compositing-update2-expected.txt
partial-compositing-update2.html
remove-sharing-layer-expected.txt
remove-sharing-layer.html
repaint-into-shared-backing-expected.html Remove experimental: and internal: prefixes from test header commands 2020-11-04 15:56:26 +00:00
repaint-into-shared-backing.html Remove experimental: and internal: prefixes from test header commands 2020-11-04 15:56:26 +00:00
shared-layer-has-blending-expected.html
shared-layer-has-blending.html
shared-layer-has-filter-expected.html
shared-layer-has-filter.html
shared-layer-has-opacity-expected.html
shared-layer-has-opacity.html
shared-layer-has-reflection-expected.html
shared-layer-has-reflection.html
shared-layer-has-transform-expected.html
shared-layer-has-transform.html
shared-layer-isolates-blending-expected.html
shared-layer-isolates-blending.html
sharing-bounds-clip-expected.txt
sharing-bounds-clip.html
sharing-bounds-expected.txt
sharing-bounds-non-clipping-shared-layer-expected.txt
sharing-bounds-non-clipping-shared-layer.html
sharing-bounds-transformed-sharing-layer-expected.txt
sharing-bounds-transformed-sharing-layer.html
sharing-bounds.html
sharing-cached-clip-rects-expected.txt
sharing-cached-clip-rects.html Remove experimental: and internal: prefixes from test header commands 2020-11-04 15:56:26 +00:00
sharing-child-contributes-to-overlap-expected.html
sharing-child-contributes-to-overlap.html