1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 15:18:08 +02:00

When zooming replace the css-zoomed canvas by the new one only when rendering is finished

It fixes #18622.

It avoids to recreate a canvasWrapper element in order minimize the DOM operations.
This commit is contained in:
Calixte Denizet 2024-12-04 19:34:57 +01:00
parent ef6ecee34c
commit f3038406b1
3 changed files with 90 additions and 96 deletions

View file

@ -276,9 +276,20 @@ describe("PDF viewer", () => {
beforeEach(async () => {
await Promise.all(
pages.map(async ([browserName, page]) => {
await page.evaluate(() => {
window.PDFViewerApplication.pdfViewer.currentScale = 0.5;
});
const handle = await waitForPageRendered(page);
if (
await page.evaluate(() => {
if (
window.PDFViewerApplication.pdfViewer.currentScale !== 0.5
) {
window.PDFViewerApplication.pdfViewer.currentScale = 0.5;
return true;
}
return false;
})
) {
await awaitPromise(handle);
}
})
);
});
@ -317,12 +328,14 @@ describe("PDF viewer", () => {
const originalCanvasSize = await getCanvasSize(page);
const factor = 2;
const handle = await waitForPageRendered(page);
await page.evaluate(scaleFactor => {
window.PDFViewerApplication.pdfViewer.increaseScale({
drawingDelay: 0,
scaleFactor,
});
}, factor);
await awaitPromise(handle);
const canvasSize = await getCanvasSize(page);
@ -343,12 +356,14 @@ describe("PDF viewer", () => {
const originalCanvasSize = await getCanvasSize(page);
const factor = 4;
const handle = await waitForPageRendered(page);
await page.evaluate(scaleFactor => {
window.PDFViewerApplication.pdfViewer.increaseScale({
drawingDelay: 0,
scaleFactor,
});
}, factor);
await awaitPromise(handle);
const canvasSize = await getCanvasSize(page);