diff --git a/src/display/api.js b/src/display/api.js index 46ceef1ac..1b1c572cc 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -1524,7 +1524,7 @@ class PDFPageProxy { optionalContentConfigPromise, ]) .then(([transparency, optionalContentConfig]) => { - if (this.#pendingCleanup) { + if (this.destroyed) { complete(); return; } @@ -1727,7 +1727,7 @@ class PDFPageProxy { #tryCleanup(delayed = false) { this.#abortDelayedCleanup(); - if (!this.#pendingCleanup) { + if (!this.#pendingCleanup || this.destroyed) { return false; } if (delayed) { diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index f3e7453bf..6fefe8798 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -3204,6 +3204,7 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`) const renderTask = pdfPage.render({ canvasContext: canvasAndCtx.context, viewport, + background: "#FF0000", // See comment below. }); expect(renderTask instanceof RenderTask).toEqual(true); @@ -3226,6 +3227,11 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`) await renderTask.promise; expect(renderTask.separateAnnots).toEqual(false); + // Use the red background-color to, more easily, tell that the page was + // actually rendered successfully. + const { data } = canvasAndCtx.context.getImageData(0, 0, 1, 1); + expect(data).toEqual(new Uint8ClampedArray([255, 0, 0, 255])); + CanvasFactory.destroy(canvasAndCtx); await loadingTask.destroy(); });