Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The HTMLCanvasElement.mozFetchAsStream() internal method used to create a new input stream that, when ready, would provide the contents of the canvas as image data. However, this non-standard and internal method has been removed.


mozFetchAsStream(callback, type)



An nsIInputStreamCallback.

type Optional

A string indicating the image format. The default type is image/png.

Return value

None (undefined).


Save to disk with mozFetchAsStream (Chrome context only)

This technique also converts it to ico, however it will not work in Windows XP as WinXP cannot convert from PNG to ICO. It saves to the desktop it uses FileUtils.jsm. Also uses NetUtil.jsm

const canvas = document.getElementById('canvas');
const d = canvas.width;
const ctx = canvas.getContext('2d');
ctx.moveTo(d / 2, 0);
ctx.lineTo(d, d);
ctx.lineTo(0, d);
ctx.fillStyle = 'yellow';

const netutilCallback = () => {
    return (result) => {
       if (!Components.isSuccessCode(result)) {
          alert('FAILED to create icon');
       } else {
           alert('successfully made');

const mfasCallback = (iconName) => {
    return (inStream) => {
       const file = FileUtils.getFile('Desk', [`${iconName}.ico`]);
       const outStream = FileUtils.openFileOutputStream(file);
       NetUtil.asyncCopy(inStream, outStream, netutilCallback());

canvas.mozFetchAsStream(mfasCallback('myIcon'), 'image/');


Not part of any specification.

Browser compatibility

BCD tables only load in the browser

See also