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

Reply via email to