[webkit-changes] [WebKit/WebKit] 5df28f: REGRESSION (288901 at main): animation when finding n...

mattwoodrow noreply at github.com
Thu Jan 30 13:49:06 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5df28f0be2e177821c29aa11102b6f933696d849
      https://github.com/WebKit/WebKit/commit/5df28f0be2e177821c29aa11102b6f933696d849
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2025-01-30 (Thu, 30 Jan 2025)

  Changed paths:
    A LayoutTests/fast/repaint/repaint-on-transform-change-expected.txt
    A LayoutTests/fast/repaint/repaint-on-transform-change.html
    M LayoutTests/fast/repaint/translate-animation-repaint.html
    A LayoutTests/platform/mac-wk1/fast/repaint/translate-animation-repaint-expected.txt
    M Source/WebCore/rendering/RenderLayer.cpp
    M Source/WebCore/rendering/RenderLayerCompositor.cpp

  Log Message:
  -----------
  REGRESSION (288901 at main): animation when finding non-theme word in Strands game shows artifacts.
https://bugs.webkit.org/show_bug.cgi?id=286706
<rdar://143759652>

Reviewed by Simon Fraser.

If RenderLayerCompositor::layerStyleChanged changes the compositing status, it
updates the repaint rects on the layer and issues a repaint for the 'old'
position.  This needs to happen before the new transform is writen to the
RenderLayer, otherwise the repaint happens at the new position (in the old
layer). Move updateTransform down a bit to get the right ordering.

There's also a second issue where queryData.nonCompositedForPositionReason
doesn't get computed if the compositing checks returned early and set
reevaluateAfterLayout=true. This can cause toggling between values (from the
style change check, and the post-layout compositing layer update check), so only
check the values if they've been computed.

Adds a new test that catches both of these issues by checking the repaint rects
emitted.

* LayoutTests/fast/repaint/repaint-on-transform-change-expected.txt: Added.
* LayoutTests/fast/repaint/repaint-on-transform-change.html: Added.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):

Canonical link: https://commits.webkit.org/289581@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list