1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-24 09:08:07 +02:00

Fix flakiness of CSS-only zoom test

Update the test to wait for the `pagerendered`` event of a specific
page (1), so that the `pagerendered`` event of other pages from a
previously running render doesn't resolve the `waitForPageRendered`
promise.
This commit is contained in:
Nicolò Ribaudo 2025-02-28 15:21:52 +01:00
parent 50c573d16d
commit de9b041b5e
No known key found for this signature in database
GPG key ID: AAFDA9101C58F338
2 changed files with 20 additions and 12 deletions

View file

@ -568,16 +568,24 @@ function waitForAnnotationModeChanged(page) {
});
}
function waitForPageRendered(page) {
return createPromise(page, resolve => {
const { eventBus } = window.PDFViewerApplication;
eventBus.on("pagerendered", function handler(e) {
if (!e.isDetailView) {
resolve();
eventBus.off("pagerendered", handler);
}
});
});
function waitForPageRendered(page, pageNumber) {
return page.evaluateHandle(
number => [
new Promise(resolve => {
const { eventBus } = window.PDFViewerApplication;
eventBus.on("pagerendered", function handler(e) {
if (
!e.isDetailView &&
(number === undefined || e.pageNumber === number)
) {
resolve();
eventBus.off("pagerendered", handler);
}
});
}),
],
pageNumber
);
}
function waitForEditorMovedInDOM(page) {

View file

@ -328,7 +328,7 @@ describe("PDF viewer", () => {
const originalCanvasSize = await getCanvasSize(page);
const factor = 2;
const handle = await waitForPageRendered(page);
const handle = await waitForPageRendered(page, 1);
await page.evaluate(scaleFactor => {
window.PDFViewerApplication.pdfViewer.increaseScale({
drawingDelay: 0,
@ -356,7 +356,7 @@ describe("PDF viewer", () => {
const originalCanvasSize = await getCanvasSize(page);
const factor = 4;
const handle = await waitForPageRendered(page);
const handle = await waitForPageRendered(page, 1);
await page.evaluate(scaleFactor => {
window.PDFViewerApplication.pdfViewer.increaseScale({
drawingDelay: 0,