On Dec 22, 2011, at 10:35 AM, David Karger wrote:

> Firefox and chrome inconsistently handle "destination-in" compositing; I 
> suspect this may be due to a missing specification in the standard.  The 
> inconsistency happens when I use the drawImage method to draw one canvas onto 
> another while the globalCompositionOperation is set to "destination-in"  .  
> Under destination in, pixels in the destination canvas should be left alone 
> where the source canvas has a set pixel and cleared where the source canvas 
> has a cleared/transparent pixel.
> 
> Both browsers do this properly inside the range of the source canvas.  But if 
> the source canvas has smaller dimensions than the destination canvas, they 
> inconsistently handle parts of the destination canvas _outside_ the source 
> canvas: firefox clears those pixels while chrome leaves them alone.  I 
> believe the standard isn't clear on what should happen in this case.   I'd 
> say that firefox's behavior is more consistent with the intent of 
> "destination-in", but obviously cross-platform consistency is the most 
> important consideration.

It sounds like the Chrome behavior you are describing is a symptom of this 
WebKit bug, fixed in the WebKit source code on 2011-10-26:

https://bugs.webkit.org/show_bug.cgi?id=66920
Canvas drawImage with SourceIn, DestinationIn, SourceOut, DestinationAtop and 
Copy have errors

-- Darin

Reply via email to