Merge pull request #20255 from nicolo-ribaudo/low-res

Reduce background canvas resolution
This commit is contained in:
Tim van der Meij 2025-09-11 21:04:27 +02:00 committed by GitHub
commit f049360689
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 6 deletions

View File

@ -363,12 +363,16 @@ describe("PDF viewer", () => {
.toBeLessThan(originalCanvasSize * factor ** 2);
expect(canvasSize)
.withContext(`In ${browserName}, <= MAX_CANVAS_PIXELS`)
.toBeLessThanOrEqual(MAX_CANVAS_PIXELS.get(browserName));
.withContext(`In ${browserName}, <= MAX_CANVAS_PIXELS / 100`)
.toBeLessThanOrEqual(MAX_CANVAS_PIXELS.get(browserName) / 100);
expect(canvasSize)
.withContext(`In ${browserName}, > MAX_CANVAS_PIXELS * 0.99`)
.toBeGreaterThan(MAX_CANVAS_PIXELS.get(browserName) * 0.99);
.withContext(
`In ${browserName}, > MAX_CANVAS_PIXELS / 100 * 0.95`
)
.toBeGreaterThan(
(MAX_CANVAS_PIXELS.get(browserName) / 100) * 0.95
);
})
);
});
@ -565,10 +569,10 @@ describe("PDF viewer", () => {
.toBe(2);
expect(after[0].width)
.withContext(`In ${browserName}`)
.toBe(582 * pixelRatio);
.toBe(Math.floor(58.2 * pixelRatio));
expect(after[0].height)
.withContext(`In ${browserName}`)
.toBe(823 * pixelRatio);
.toBe(Math.floor(82.3 * pixelRatio));
// The dimensions of the detail canvas are capped to 800x600 but
// it depends on the visible area which depends itself of the

View File

@ -798,6 +798,12 @@ class PDFPageView extends BasePDFPageView {
this.maxCanvasDim,
this.capCanvasAreaFactor
);
if (this.#needsRestrictedScaling && this.enableDetailCanvas) {
// If we are going to have a high-res detail view, further reduce
// the canvas resolution to improve rendering performance.
outputScale.sx /= 10;
outputScale.sy /= 10;
}
}
}