Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e4d2a7474950a53bd369b91a6d7210a182c07a79 https://github.com/WebKit/WebKit/commit/e4d2a7474950a53bd369b91a6d7210a182c07a79 Author: Simon Fraser <simon.fra...@apple.com> Date: 2023-04-18 (Tue, 18 Apr 2023)
Changed paths: A LayoutTests/svg/masking/masking-with-event-region-expected.html A LayoutTests/svg/masking/masking-with-event-region.html M Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp M Source/WebCore/rendering/svg/RenderSVGResourceClipper.h Log Message: ----------- SVG clip-path is sometimes broken on stevejobsarchive.com https://bugs.webkit.org/show_bug.cgi?id=255577 rdar://107885344 Reviewed by Said Abou-Hallawa. http://book.stevejobsarchive.com/ uses CSS clip-path with a reference to an SVG <clipPath> element which contains text. In this configuration, RenderSVGResourceClipper::applyClippingToContext() falls back to a code path that uses an ImageBuffer as a mask, and it caches the ImageBuffer between calls. This caused a problem when DOM Rendering in the GPU Process was enabled; this code is first hit for a "fake" paint with a NullGraphicsContext which is updating EventRegions, called out of `RenderLayerBacking::updateEventRegion()`. The NullGraphicsContext will make a local ImageBuffer. If we then hit this same code for actual painting with a painting GraphicsContext, we'll use that cached ImageBuffer, rather than creating a new one with appropriate GPU Process backing. Fix this by adding `isPaintingDisabled` to the criteria used to decide if the cached buffer can be re-used. * LayoutTests/svg/masking/masking-with-event-region-expected.html: Added. * LayoutTests/svg/masking/masking-with-event-region.html: Added. * Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp: (WebCore::RenderSVGResourceClipper::computeInputs): (WebCore::RenderSVGResourceClipper::applyClippingToContext): * Source/WebCore/rendering/svg/RenderSVGResourceClipper.h: (WebCore::ClipperData::Inputs::operator== const): Canonical link: https://commits.webkit.org/263087@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes