[webkit-changes] [WebKit/WebKit] 3894c7: Fix for pixel-moving CSS filters with clipping

Ahmad Saleem noreply at github.com
Fri Nov 18 01:19:58 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3894c75f5f9ffe16ec91de57edc2d93b2e2051c2
      https://github.com/WebKit/WebKit/commit/3894c75f5f9ffe16ec91de57edc2d93b2e2051c2
  Author: Ahmad Saleem <ahmad.saleem792+github at gmail.com>
  Date:   2022-11-18 (Fri, 18 Nov 2022)

  Changed paths:
    A LayoutTests/css3/filters/effect-drop-shadow-clip-abspos-expected.html
    A LayoutTests/css3/filters/effect-drop-shadow-clip-abspos.html
    M Source/WebCore/rendering/RenderLayer.cpp

  Log Message:
  -----------
  Fix for pixel-moving CSS filters with clipping

Fix for pixel-moving CSS filters with clipping
https://bugs.webkit.org/show_bug.cgi?id=247961

Reviewed by Simon Fraser.

Merge - https://src.chromium.org/viewvc/blink?view=revision&revision=180361

When using a "pixel-moving" filter (ie., drop-shadow or blur), we
disable the normal clip operation, since we want to want to render
the full results of the element pre-clip for filtering. Clipping is
then applied just before drawing the filtered result.

However, we shouldn't disable *all* clipping recursively, since we
want children which clip themselves to still continue to be clipped.
The fix is to pass the original (unmodified) paintingInfo to
paintChildren().

NOTE - The test case has been slightly modified to apply blur to reflect the issue.

* Source/WebCore/rendering/RenderLayer.cpp:
(RenderLayer::paintLayerContents): Update to take "original" paintingInfo
* LayoutTests/css3/filters/effect-drop-shadow-clip-abpos.html: Added Test Case
* LayoutTests/css3/filters/effect-drop-shadow-clip-abpos-expected.html: Added Test Case Expectations

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




More information about the webkit-changes mailing list