Skip to content

Commit

Permalink
docs: add warning for webgl cloning with preserveDrawingBuffer=false (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
niklasvh authored Aug 14, 2021
1 parent 58ff000 commit 01ed879
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/dom/document-cloner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ export class DocumentCloner {
img.src = canvas.toDataURL();
return img;
} catch (e) {
this.context.logger.info(`Unable to clone canvas contents, canvas is tainted`);
this.context.logger.info(`Unable to inline canvas contents, canvas is tainted`, canvas);
}
}

Expand All @@ -209,12 +209,23 @@ export class DocumentCloner {
if (!this.options.allowTaint && ctx) {
clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
} else {
const gl = canvas.getContext('webgl2') ?? canvas.getContext('webgl');
if (gl) {
const attribs = gl.getContextAttributes();
if (attribs?.preserveDrawingBuffer === false) {
this.context.logger.warn(
'Unable to clone WebGL context as it has preserveDrawingBuffer=false',
canvas
);
}
}

clonedCtx.drawImage(canvas, 0, 0);
}
}
return clonedCanvas;
} catch (e) {
this.context.logger.info(`Unable to clone canvas as it is tainted`);
this.context.logger.info(`Unable to clone canvas as it is tainted`, canvas);
}

return clonedCanvas;
Expand Down

0 comments on commit 01ed879

Please sign in to comment.