[whatwg] Canvas patterns, and miscellaneous other things

Krzysztof Żelechowski giecrilj at stegny.2a.pl
Thu Jan 31 07:54:43 PST 2008

Dnia 31-01-2008, Cz o godzinie 02:02 +0000, Ian Hickson pisze:
> On Sat, 23 Jun 2007, Philip Taylor wrote:
> > Similarly, what should toDataURL do when the canvas is really large and 
> > the browser doesn't want to give you a data URI? (Opera returns 
> > 'undefined' if it's >= 30001 pixels in any dimension, and crashes if 
> > it's 30000 in each dimension. Firefox (2 and trunk) crashes or hangs on 
> > Linux if it's >= 32768 pixels in any dimension, and crashes on Windows 
> > if it's >= 65536 pixels).
> User agents may impose implementation-specific limits on otherwise 
> unconstrained inputs, e.g. to prevent denial of service attacks, to guard 
> against running out of memory, or to work around platform-specific 
> limitations. (See ...#hardwareLimitations.)

Although the right way of returning in this case 
is throwing an exception, as noted below.

> > More generally, the spec says "If the user agent does not support the 
> > requested type, it must return the image using the PNG format" - what if 
> > it does support the requested type, but still doesn't want to give you a 
> > data URI, e.g. because it's the wrong size (too large, too small, not a 
> > multiple of 4, etc) or because of other environmental factors (e.g. it 
> > wants you to do getContext('vendor-2d').enableVectorCapture() before 
> > toDataURL('image/svg+xml'))? (Presumably it would be some combination of 
> > falling back to PNG (if you asked for something else), returning 
> > undefined, and throwing exceptions.)
> The spec doesn't define "support the requested type". I could definitely 
> see arguing that support of the requested type is dependent upon other 
> factors, so that returning a PNG is ok. Throwing exceptions in the face of 
> hardware limitations (data too big) is always allowed, as noted above. 
> Also, browsers could crop or extend or stretch the image if the image 
> format requires a particular multiple in its output dimensions. That's 
> just part of outputting the image.

More information about the whatwg mailing list