Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: afd16103076c8029ee4527728da0ff1926fc7483
      
https://github.com/WebKit/WebKit/commit/afd16103076c8029ee4527728da0ff1926fc7483
  Author: Matt Woodrow <mattwood...@apple.com>
  Date:   2024-03-18 (Mon, 18 Mar 2024)

  Changed paths:
    A LayoutTests/fast/clip/offscreen-transparency-clip-expected.html
    A LayoutTests/fast/clip/offscreen-transparency-clip.html
    M Source/WebCore/rendering/RenderLayer.cpp

  Log Message:
  -----------
  REGRESSION(268173@main) Safari rendered bdiusa.com as all white.
https://bugs.webkit.org/show_bug.cgi?id=270926
<rdar://123983879>

Reviewed by Simon Fraser.

We're using transparencyClipBox to determine the size of the transparency layer 
to push,
and it's returning an empty rectangle.

It recurses through descendants, and finds a child layer positioned way off to 
the left
of the screen (at -33553151).

Due to limits of int32, adding the bounds of that child into the original rect
(0,0) width=1686 height=18933.45, results in (-33554430,0) width=33554432 
height=18933.45
which no longer includes the visible area of the screen (except for the very 
left edge).

This fix moves the intersection with the dirty rect down to happen per-layer, 
so that
we clip before unioning the descendants in, and avoid this problem.

As the existing code comment mentions, it would still be preferable to take CSS 
clips
into account when computing these rectangles.

* LayoutTests/fast/clip/offscreen-transparency-clip-expected.html: Added.
* LayoutTests/fast/clip/offscreen-transparency-clip.html: Added.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::transparencyClipBox):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::paintingExtent): Deleted.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to