[whatwg] Canvas patterns, and miscellaneous other things

Ian Hickson ian at hixie.ch
Sun Feb 10 01:05:59 PST 2008

On Sat, 2 Feb 2008, Philip Taylor wrote:
> On 31/01/2008, Ian Hickson <ian at hixie.ch> wrote:
> > I've made toDataURL() return "data:," if it's faced with a 0-pixel image.
> > It's arbitrary, but I guess it represents the image, at least!
> That makes the "Note: When trying to use types other than image/png, 
> authors can check if the image was really returned in the requested 
> format by checking to see if the returned string starts with one the 
> exact strings "data:image/png," or "data:image/png;"." now incorrect. 
> The non-image/png format might be unsupported, but someone might be 
> drawing a 0-pixel image and they'll get back something that doesn't 
> start with data:image/png[,;].
> It does seem pretty weird to return text/plain content when asked for an 
> image. But I guess it's safer than e.g. returning an empty string, since 
> it won't get misinterpreted as a relative address when people do 
> img.src=canvas.toDataURL(), and I can't think of a better idea.

I agree that it's not ideal. I'm not sure what would be better. I've made 
the note you quote above mention this edge case, just in case.

> > 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.)
> Does anything say that those limitations should be imposed by throwing 
> an exception, and not by e.g. returning null or aborting the entire 
> script?

No. It's hard to legislate what should happen here. For instance, raising 
an exception might require allocating memory, which can't happen if the 
hardware limitation in question is running out of memory.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list