Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 96de099fd31ae54542d37f9f320a2125caa075c7
https://github.com/WebKit/WebKit/commit/96de099fd31ae54542d37f9f320a2125caa075c7
Author: Fujii Hironori <[email protected]>
Date: 2026-05-04 (Mon, 04 May 2026)
Changed paths:
M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp
Log Message:
-----------
SkiaCompositingLayer: Use SkBlendMode::kSrcOver for blendMode of PaintContext
for the normal mix-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=313721
Reviewed by Carlos Garcia Campos.
compositing/update-compositing-rects-with-sharing-descendants.html failed if
SkiaCompositingLayer was enabled.
<div style="isolation:isolate">
<div style="mix-blend-mode:screen">
</div>
</div>
In the test content, the parent layer has normal and the child layer has screen
mix-blend-mode, and they don't overlap. So, the intermediate layer isn't
created. In this case, both the parent layer and child layer have to be painted
with the normal blend mode.
SkiaCompositingLayer treats the normal blend mode as std::nullopt. As the
result, non-overlap child layer was painted with own blend mode, the screen
blend mode in the case.
Use SkBlendMode::kSrcOver for context.blendMode.
Tests: compositing/update-compositing-rects-with-sharing-descendants.html
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp:
(WebCore::SkiaCompositingLayer::recursivePaint):
Canonical link: https://commits.webkit.org/312511@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications