From 6ac296e48e52a8940f6a869c44f768edb4674a7b Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Sat, 8 Jan 2022 17:57:06 +0100 Subject: [PATCH] [JS] Use beforeinput event to trigger a keystroke event in the sandbox - it aims to fix issue #14307; - this event has been added recently in Firefox and we can now use it; - fix few bugs in aform.js or in annotation_layer.js; - add some integration tests to test keystroke events (see `AFSpecial_Keystroke`); - make dispatchEvent in the quickjs sandbox async. --- out.pdf | Bin 0 -> 119343 bytes src/display/annotation_layer.js | 44 ++---- src/pdf.sandbox.js | 2 +- src/scripting_api/aform.js | 12 +- src/scripting_api/event.js | 8 + test/integration/scripting_spec.js | 230 ++++++++++++++++++++++++++++- test/pdfs/.gitignore | 1 + test/pdfs/issue14307.pdf | Bin 0 -> 10827 bytes web/generic_scripting.js | 2 +- 9 files changed, 254 insertions(+), 45 deletions(-) create mode 100644 out.pdf create mode 100644 test/pdfs/issue14307.pdf diff --git a/out.pdf b/out.pdf new file mode 100644 index 0000000000000000000000000000000000000000..53bfb6596b1f2c57e3325a9331eda4198244960b GIT binary patch literal 119343 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
    IE6p4kNTd*8JN~#L_kAUnJuibf`bFD= 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 Xy50NVO&8o|Fi { - elementData.beforeInputValue = event.target.value; // if the key is one of Escape, Enter or Tab // then the data are committed let commitKey = -1; @@ -1039,9 +1035,9 @@ class TextWidgetAnnotationElement extends WidgetAnnotationElement { const _blurListener = blurListener; blurListener = null; element.addEventListener("blur", event => { + elementData.userValue = event.target.value; if (this._mouseState.isDown) { // Focus out using the mouse: data are committed - elementData.userValue = event.target.value; this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { @@ -1057,42 +1053,22 @@ class TextWidgetAnnotationElement extends WidgetAnnotationElement { } _blurListener(event); }); - element.addEventListener("mousedown", event => { - elementData.beforeInputValue = event.target.value; - elementData.beforeInputSelectionRange = null; - }); - element.addEventListener("keyup", event => { - // keyup is triggered after input - if (event.target.selectionStart === event.target.selectionEnd) { - elementData.beforeInputSelectionRange = null; - } - }); - element.addEventListener("select", event => { - elementData.beforeInputSelectionRange = [ - event.target.selectionStart, - event.target.selectionEnd, - ]; - }); if (this.data.actions?.Keystroke) { - // We should use beforeinput but this - // event isn't available in Firefox - element.addEventListener("input", event => { - let selStart = -1; - let selEnd = -1; - if (elementData.beforeInputSelectionRange) { - [selStart, selEnd] = elementData.beforeInputSelectionRange; - } + element.addEventListener("beforeinput", event => { + elementData.formattedValue = ""; + const { data, target } = event; + const { value, selectionStart, selectionEnd } = target; this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { source: this, detail: { id, name: "Keystroke", - value: elementData.beforeInputValue, - change: event.data, + value, + change: data, willCommit: false, - selStart, - selEnd, + selStart: selectionStart, + selEnd: selectionEnd, }, }); }); diff --git a/src/pdf.sandbox.js b/src/pdf.sandbox.js index 1a1140c39..8aad3fd7f 100644 --- a/src/pdf.sandbox.js +++ b/src/pdf.sandbox.js @@ -103,7 +103,7 @@ class Sandbox { } dispatchEvent(event) { - this.support.callSandboxFunction("dispatchEvent", event); + this.support?.callSandboxFunction("dispatchEvent", event); } dumpMemoryUse() { diff --git a/src/scripting_api/aform.js b/src/scripting_api/aform.js index 664e3807d..1994e28ad 100644 --- a/src/scripting_api/aform.js +++ b/src/scripting_api/aform.js @@ -466,6 +466,10 @@ class AForm { const event = globalThis.event; const value = this.AFMergeChange(event); + if (!value) { + return; + } + const checkers = new Map([ ["9", char => char >= "0" && char <= "9"], [ @@ -498,10 +502,6 @@ class AForm { return true; } - if (!value) { - return; - } - const err = `${GlobalConstants.IDS_INVALID_VALUE} = "${cMask}"`; if (value.length > cMask.length) { @@ -538,10 +538,6 @@ class AForm { AFSpecial_Keystroke(psf) { const event = globalThis.event; - if (!event.value) { - return; - } - psf = this.AFMakeNumber(psf); let formatStr; diff --git a/src/scripting_api/event.js b/src/scripting_api/event.js index 16ddfb3db..f4fc873ab 100644 --- a/src/scripting_api/event.js +++ b/src/scripting_api/event.js @@ -151,6 +151,14 @@ class EventDispatcher { value: savedChange.value, selRange: [savedChange.selStart, savedChange.selEnd], }); + } else { + // Entry is not valid (rc == false) and it's a commit + // so just clear the field. + source.obj._send({ + id: source.obj._id, + value: "", + selRange: [0, 0], + }); } } } diff --git a/test/integration/scripting_spec.js b/test/integration/scripting_spec.js index 139a3ed4f..e7cdb9b62 100644 --- a/test/integration/scripting_spec.js +++ b/test/integration/scripting_spec.js @@ -102,6 +102,11 @@ describe("Interaction", () => { pages.map(async ([browserName, page]) => { await page.type("#\\34 16R", "3.14159", { delay: 200 }); await page.click("#\\34 19R"); + + await page.waitForFunction( + `document.querySelector("#\\\\34 16R").value !== "3.14159"` + ); + const text = await page.$eval("#\\34 16R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("3,14"); @@ -116,10 +121,20 @@ describe("Interaction", () => { pages.map(async ([browserName, page]) => { await page.type("#\\34 48R", "61803", { delay: 200 }); await page.click("#\\34 19R"); + + await page.waitForFunction( + `document.querySelector("#\\\\34 48R").value !== "61803"` + ); + let text = await page.$eval("#\\34 48R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("61.803,00"); await page.click("#\\34 48R"); + + await page.waitForFunction( + `document.querySelector("#\\\\34 48R").value !== "61.803,00"` + ); + text = await page.$eval("#\\34 48R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("61803"); @@ -128,6 +143,11 @@ describe("Interaction", () => { await page.type("#\\34 48R", "1.61803", { delay: 200 }); await page.click("#\\34 19R"); + + await page.waitForFunction( + `document.querySelector("#\\\\34 48R").value !== "1.61803"` + ); + text = await page.$eval("#\\34 48R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("1,62"); }) @@ -137,11 +157,22 @@ describe("Interaction", () => { it("must format the field with 2 digits and leave field with a TAB", async () => { await Promise.all( pages.map(async ([browserName, page]) => { + const prevSum = await page.$eval("#\\34 27R", el => el.value); + await page.type("#\\34 22R", "2.7182818", { delay: 200 }); await page.keyboard.press("Tab"); + + await page.waitForFunction( + `document.querySelector("#\\\\34 22R").value !== "2.7182818"` + ); + const text = await page.$eval("#\\34 22R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("2,72"); + await page.waitForFunction( + `document.querySelector("#\\\\34 27R").value !== "${prevSum}"` + ); + const sum = await page.$eval("#\\34 27R", el => el.value); expect(sum).withContext(`In ${browserName}`).toEqual("5,86"); }) @@ -156,9 +187,14 @@ describe("Interaction", () => { await page.type("#\\34 36R", "0.69314", { delay: 200 }); await page.keyboard.press("Escape"); + const text = await page.$eval("#\\34 36R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("0.69314"); + await page.waitForFunction( + `document.querySelector("#\\\\34 71R").value !== "${sum}"` + ); + sum = await page.$eval("#\\34 71R", el => el.value); expect(sum).withContext(`In ${browserName}`).toEqual("3,55"); }) @@ -168,11 +204,17 @@ describe("Interaction", () => { it("must format the field with 2 digits on key ENTER", async () => { await Promise.all( pages.map(async ([browserName, page]) => { + const prevSum = await page.$eval("#\\34 27R", el => el.value); + await page.type("#\\34 19R", "0.577215", { delay: 200 }); await page.keyboard.press("Enter"); const text = await page.$eval("#\\34 19R", el => el.value); expect(text).toEqual("0.577215"); + await page.waitForFunction( + `document.querySelector("#\\\\34 27R").value !== "${prevSum}"` + ); + const sum = await page.$eval("#\\34 27R", el => el.value); expect(sum).toEqual("6,44"); }) @@ -194,6 +236,14 @@ describe("Interaction", () => { // click on reset button await page.click("[data-annotation-id='402R']"); + await Promise.all( + ["16", "22", "19", "05", "27"].map(id => + page.waitForFunction( + `document.querySelector("#\\\\34 ${id}R").value === ""` + ) + ) + ); + let text = await page.$eval("#\\34 16R", el => el.value); expect(text).toEqual(""); @@ -451,6 +501,10 @@ describe("Interaction", () => { "window.PDFViewerApplication.scriptingReady === true" ); + await page.waitForFunction( + `document.querySelector("#\\\\34 7R").value !== ""` + ); + let text = await page.$eval("#\\34 7R", el => el.value); expect(text).withContext(`In ${browserName}`).toEqual("PageOpen 1"); @@ -642,6 +696,7 @@ describe("Interaction", () => { } for (const num of [6, 4, 2, 1]) { + await clearInput(page, "#\\33 3R"); await page.click(`option[value=Export${num}]`); await page.waitForFunction( `document.querySelector("#\\\\33 3R").value !== ""` @@ -747,7 +802,7 @@ describe("Interaction", () => { await page.keyboard.press("Tab"); await page.waitForFunction( - `getComputedStyle(document.querySelector("#\\\\31 71R")).value !== "${prev}"` + `document.querySelector("#\\\\31 71R").value !== "${prev}"` ); sum += val; @@ -909,4 +964,177 @@ describe("Interaction", () => { ); }); }); + + describe("in issue14307.pdf (1)", () => { + let pages; + + beforeAll(async () => { + pages = await loadAndWait("issue14307.pdf", "#\\33 0R"); + pages.map(async ([, page]) => { + page.on("dialog", async dialog => { + await dialog.dismiss(); + }); + }); + }); + + afterAll(async () => { + await closePages(pages); + }); + + it("must check input for US zip format", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + await page.waitForFunction( + "window.PDFViewerApplication.scriptingReady === true" + ); + + await clearInput(page, "#\\32 9R"); + await clearInput(page, "#\\33 0R"); + + await page.focus("#\\32 9R"); + await page.type("#\\32 9R", "12A"); + await page.waitForFunction( + `document.querySelector("#\\\\32 9R").value !== "12A"` + ); + + let text = await page.$eval(`#\\32 9R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual("12"); + + await page.focus("#\\32 9R"); + await page.type("#\\32 9R", "34"); + await page.click("[data-annotation-id='30R']"); + + await page.waitForFunction( + `document.querySelector("#\\\\32 9R").value !== "1234"` + ); + + text = await page.$eval(`#\\32 9R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual(""); + + await page.focus("#\\32 9R"); + await page.type("#\\32 9R", "12345"); + await page.click("[data-annotation-id='30R']"); + + text = await page.$eval(`#\\32 9R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual("12345"); + }) + ); + }); + }); + + describe("in issue14307.pdf (2)", () => { + let pages; + + beforeAll(async () => { + pages = await loadAndWait("issue14307.pdf", "#\\33 0R"); + pages.map(async ([, page]) => { + page.on("dialog", async dialog => { + await dialog.dismiss(); + }); + }); + }); + + afterAll(async () => { + await closePages(pages); + }); + + it("must check input for US phone number (long) format", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + await page.waitForFunction( + "window.PDFViewerApplication.scriptingReady === true" + ); + + await clearInput(page, "#\\32 9R"); + await clearInput(page, "#\\33 0R"); + + await page.focus("#\\33 0R"); + await page.type("#\\33 0R", "(123) 456A"); + await page.waitForFunction( + `document.querySelector("#\\\\33 0R").value !== "(123) 456A"` + ); + + let text = await page.$eval(`#\\33 0R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual("(123) 456"); + + await page.focus("#\\33 0R"); + await page.type("#\\33 0R", "-789"); + await page.click("[data-annotation-id='29R']"); + + await page.waitForFunction( + `document.querySelector("#\\\\33 0R").value !== "(123) 456-789"` + ); + + text = await page.$eval(`#\\33 0R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual(""); + + await page.focus("#\\33 0R"); + await page.type("#\\33 0R", "(123) 456-7890"); + await page.click("[data-annotation-id='29R']"); + + text = await page.$eval(`#\\33 0R`, el => el.value); + expect(text) + .withContext(`In ${browserName}`) + .toEqual("(123) 456-7890"); + }) + ); + }); + }); + + describe("in issue14307.pdf (3)", () => { + let pages; + + beforeAll(async () => { + pages = await loadAndWait("issue14307.pdf", "#\\33 0R"); + pages.map(async ([, page]) => { + page.on("dialog", async dialog => { + await dialog.dismiss(); + }); + }); + }); + + afterAll(async () => { + await closePages(pages); + }); + + it("must check input for US phone number (short) format", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + await page.waitForFunction( + "window.PDFViewerApplication.scriptingReady === true" + ); + + await clearInput(page, "#\\32 9R"); + await clearInput(page, "#\\33 0R"); + + await page.focus("#\\33 0R"); + await page.type("#\\33 0R", "123A"); + await page.waitForFunction( + `document.querySelector("#\\\\33 0R").value !== "123A"` + ); + + let text = await page.$eval(`#\\33 0R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual("123"); + + await page.focus("#\\33 0R"); + await page.type("#\\33 0R", "-456"); + await page.click("[data-annotation-id='29R']"); + + await page.waitForFunction( + `document.querySelector("#\\\\33 0R").value !== "123-456"` + ); + + text = await page.$eval(`#\\33 0R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual(""); + + await page.focus("#\\33 0R"); + await page.type("#\\33 0R", "123-4567"); + await page.click("[data-annotation-id='29R']"); + + text = await page.$eval(`#\\33 0R`, el => el.value); + expect(text).withContext(`In ${browserName}`).toEqual("123-4567"); + }) + ); + }); + }); }); diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index afb7f86bd..7d6292215 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -504,3 +504,4 @@ !PDFBOX-3148-2-fuzzed.pdf !poppler-90-0-fuzzed.pdf !issue14415.pdf +!issue14307.pdf diff --git a/test/pdfs/issue14307.pdf b/test/pdfs/issue14307.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4143b36f1ce48693a663eacaae526f6d2a5764c9 GIT binary patch literal 10827 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 literal 0 HcmV?d00001 diff --git a/web/generic_scripting.js b/web/generic_scripting.js index 62a413525..992604b44 100644 --- a/web/generic_scripting.js +++ b/web/generic_scripting.js @@ -56,7 +56,7 @@ class GenericScripting { async dispatchEventInSandbox(event) { const sandbox = await this._ready; - sandbox.dispatchEvent(event); + setTimeout(() => sandbox.dispatchEvent(event), 0); } async destroySandbox() {