Firefox and Chrome disagree about the implementation of the destination-atop, source-in, destination-in, and source-out compositing operators. Test code is attached.

Chrome doesn't touch any destination pixels that are not underneath the source pixels. Firefox, on the other hand, treats the entire canvas (inside the clipping region) as the destination and if you use the destination-in operator, for example, will erase any pixels outside of whatever you are drawing.

I suspect, based on the reference to an "infinite transparent black bitmap" in 4.8.11.1.13 Drawing model that Firefox gets this right and Chrome gets it wrong, but it would be nice to have that confirmed.

I suggest clarifying 4.8.11.1.3 Compositing to mention that the compositing operation takes place on all pixels within the clipping region, and that some compositing operators clear large portions of the canvas.

        David


Reply via email to