From 269574ae17df04138bf02d0e01164167535b66b7 Mon Sep 17 00:00:00 2001 From: kkapsner Date: Fri, 7 Apr 2023 17:35:57 +0200 Subject: [PATCH] Respect RFP in offscreenToBlobCallback Fixes #644 --- lib/modifiedCanvasAPI.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/modifiedCanvasAPI.js b/lib/modifiedCanvasAPI.js index 3dac897..6dd6ed1 100644 --- a/lib/modifiedCanvasAPI.js +++ b/lib/modifiedCanvasAPI.js @@ -258,7 +258,6 @@ const {prefs, notify, window, original} = check; if (canvasSizeShouldBeFaked(this, prefs)){ try { - const options = args[0]; const canvas = window.document.createElement("canvas"); canvas.width = this.width; canvas.height = this.height; @@ -268,9 +267,13 @@ if (fakeCanvas !== canvas){ notify("fakedReadout"); } - return new window.Promise(function(resolve){ - fakeCanvas.toBlob(resolve, options && options.type, options && options.quality); - }); + + const fakeContext = getContext(window, fakeCanvas); + const {imageData} = getImageData(window, fakeContext); + const fakeOffscreenCanvas = new window.OffscreenCanvas(this.width, this.height); + const offscreenContext = fakeOffscreenCanvas.getContext("2d"); + offscreenContext.putImageData(imageData, 0, 0); + return original.call(fakeOffscreenCanvas, ...args); } catch (error){ logging.warning("Error while faking:", error);