Issue 40280239 - implement plus-darker blend mode

Canvas globalCompositeOperationBlocks view-transition dark-mode blending issue 40281895Skia CL 1273117Chromium CL 7966179

What this checks

This sampler checks whether ctx.globalCompositeOperation = "plus-darker" is accepted and whether a few pixels match the CSSWG/WebKit-aligned formula.

Fix CLs: Skia 1273117 adds SkBlendMode::kPlusDarker; Chromium 7966179 wires it into Blink canvas compositing and adds an upstreamable WPT, css/compositing/canvas-plus-darker.html.

alpha = min(1, sourceAlpha + destinationAlpha)
color = max(0, alpha - min(1,
    sourceAlpha * (1 - sourceColor) + destinationAlpha * (1 - destinationColor)))

On unpatched Chromium, assignment falls back to source-over. On a patched build, the reported operation remains plus-darker and the pixel checks pass.

Live result

Rendered

Expected pattern

left to right: transparent red over blue, half red over half blue, opaque gray over black.

Pixel checks

caseactual rgbaexpected rgbaresult

Links followed