Revert fix for bug 1838855 (bug 1849876)

The issue described in the mentioned bug is reall because
Acrobat is rendering the XFA instead of the Acroform.
The original patch just tried to workaround the issue but it
induces some regressions.
This commit is contained in:
Calixte Denizet 2023-08-23 11:14:29 -04:00
parent a7d829155b
commit ee3ac35e05
5 changed files with 8 additions and 79 deletions

View File

@ -1661,17 +1661,6 @@ class WidgetAnnotation extends Annotation {
if (data.fieldName === undefined) {
data.fieldName = this._constructFieldName(dict);
}
if (
data.fieldName &&
/\[\d+\]$/.test(data.fieldName) &&
!dict.has("Kids") &&
dict.has("T")
) {
data.baseFieldName = data.fieldName.substring(
0,
data.fieldName.lastIndexOf("[")
);
}
if (data.actions === undefined) {
data.actions = collectActions(xref, dict, AnnotationActionEventType);

View File

@ -1710,11 +1710,6 @@ class PDFDocument {
name = name === "" ? partName : `${name}.${partName}`;
}
if (!field.has("Kids") && field.has("T") && /\[\d+\]$/.test(name)) {
// We've a terminal node: strip the index.
name = name.substring(0, name.lastIndexOf("["));
}
if (!promises.has(name)) {
promises.set(name, []);
}

View File

@ -1197,7 +1197,7 @@ class TextWidgetAnnotationElement extends WidgetAnnotationElement {
element.setAttribute("data-element-id", id);
element.disabled = this.data.readOnly;
element.name = this.data.baseFieldName || this.data.fieldName;
element.name = this.data.fieldName;
element.tabIndex = DEFAULT_TAB_INDEX;
this._setRequired(element, this.data.required);
@ -1499,7 +1499,7 @@ class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {
element.disabled = data.readOnly;
this._setRequired(element, this.data.required);
element.type = "checkbox";
element.name = data.baseFieldName || data.fieldName;
element.name = data.fieldName;
if (value) {
element.setAttribute("checked", true);
}
@ -1584,7 +1584,7 @@ class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {
element.disabled = data.readOnly;
this._setRequired(element, this.data.required);
element.type = "radio";
element.name = data.baseFieldName || data.fieldName;
element.name = data.fieldName;
if (value) {
element.setAttribute("checked", true);
}
@ -1697,7 +1697,7 @@ class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {
selectElement.disabled = this.data.readOnly;
this._setRequired(selectElement, this.data.required);
selectElement.name = this.data.baseFieldName || this.data.fieldName;
selectElement.name = this.data.fieldName;
selectElement.tabIndex = DEFAULT_TAB_INDEX;
let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;

View File

@ -121,46 +121,6 @@ describe("Checkbox annotation", () => {
});
});
describe("f1040_2022.pdf", () => {
let pages;
beforeAll(async () => {
pages = await loadAndWait(
"f1040_2022.pdf",
"[data-annotation-id='1566R']"
);
});
afterAll(async () => {
await closePages(pages);
});
it("must check the checkbox", async () => {
await Promise.all(
pages.map(async ([_browserName, page]) => {
const selectors = [1566, 1568, 1569, 1570, 1571].map(
id => `[data-annotation-id='${id}R']`
);
for (const selector of selectors) {
await page.click(selector);
for (const otherSelector of selectors) {
if (otherSelector === selector) {
await page.waitForFunction(
`document.querySelector("${selector} > :first-child").checked`
);
} else {
await page.waitForFunction(
`!document.querySelector("${otherSelector} > :first-child").checked`
);
}
}
page.waitForTimeout(10);
}
})
);
});
});
describe("bug1847733.pdf", () => {
let pages;

View File

@ -1586,11 +1586,12 @@ describe("api", function () {
case "pdf_submission_new":
case "simple_spc":
case "adobeWarning":
case "typeA13[0]":
case "typeA13[1]":
case "typeA13[2]":
case "typeA13[3]":
expected = [0];
break;
case "typeA13":
expected = [0, 0, 0, 0];
break;
case "typeA15[0]":
case "typeA15[1]":
case "typeA15[2]":
@ -1604,22 +1605,6 @@ describe("api", function () {
await loadingTask.destroy();
});
it("check field object for group of buttons", async function () {
if (isNodeJS) {
pending("Linked test-cases are not supported in Node.js.");
}
const loadingTask = getDocument(buildGetDocumentParams("f1040_2022.pdf"));
const pdfDoc = await loadingTask.promise;
const fieldObjects = await pdfDoc.getFieldObjects();
expect(
fieldObjects["topmostSubform[0].Page1[0].c1_01"].map(o => o.id)
).toEqual(["1566R", "1568R", "1569R", "1570R", "1571R"]);
await loadingTask.destroy();
});
it("gets non-existent calculationOrder", async function () {
const calculationOrder = await pdfDocument.getCalculationOrderIds();
expect(calculationOrder).toEqual(null);