[webkit-changes] [WebKit/WebKit] afd161: REGRESSION(268173 at main) Safari rendered bdiusa.com...
mattwoodrow
noreply at github.com
Mon Mar 18 14:02:46 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: afd16103076c8029ee4527728da0ff1926fc7483
https://github.com/WebKit/WebKit/commit/afd16103076c8029ee4527728da0ff1926fc7483
Author: Matt Woodrow <mattwoodrow at 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 at 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
More information about the webkit-changes
mailing list