Worse yet, the current setup means that a script that tries
createImageData, fill in the pixels, and then paint it to the
canvas, needs to fill different numbers of pixels depending on the
output device. I fully expect script authors to get this very very
wrong, since it's such non-intuitive behavior. It would make more
sense to just have the script work entirely in CSS pixels; if it
wishes to create a higher-resolution image it can create a canvas
with bigger dimensions (and scale its actual display via setting
its width and height CSS properties).
This has been discussed heavily before. It was always intended that
canvas be resolution independent in a given environment. Requiring a
developer to do this is nonsensical as the developer has no way to
know what they should be doing.
eg. why should drawing an arc in a canvas produce aliased output yet
drawing an arc in svg not when they're both being drawn at the same
time on the same device? or why should text drawn to the canvas look
fuzzy compared to the text drawn next to it outside of the canvas?
This is basically what you are asking for.
--Oliver