The problem with saying it is undefined is that it will essentially mean you have to do whatever most desktop versions are doing or the content will not work. My guess is that most desktop versions would in this case do a copy of the buffer to avoid all the issues with doDataURL, readPixels etc. In that case the spec says you can do whatever you want, but in order to be compatible with the content you have to reverse engineer what other implementations are doing and do the exact same thing. For that reason I think leaving it undefined would be a mistake.
I'm with Gregg. I do not understand why toDataURL is an issue as
the browser must already have the pixels for the reasons Gregg has
stated. Just define toDataURL to return the pixels the browser is
using for compositing. If the application calls it during a render
period, it will get the content from the previous frame or the
initial canvas color.
readPixels is defined to read from the current write buffer so is
The sole issue appears to be an application calling readPixels in
its rendering loop before it has drawn anything into the draw
begin:vcard fn:Mark Callow n:Callow;Mark org:HI Corporation;Graphics Lab, Research & Development adr:Higashiyama 1-4-4, Meguro-ku;;Meguro Higashiyama Bldg 5F;Tokyo;;153-0043;Japan email;internet:email@example.com title:Chief Architect tel;work:+81 3 3710 9367 x228 tel;fax:+81 3 5773 8660 x-mozilla-html:TRUE url:http://www.hicorp.co.jp, http://www.mascotcapsule.com version:2.1 end:vcard