pdf.js/test
Jonas Jenwald 3351d3476d Don't store complex data in PDFDocument.formInfo, and replace the fields object with a hasFields boolean instead
*This patch is based on a couple of smaller things that I noticed when working on PR 12479.*

 - Don't store the /Fields on the `formInfo` getter, since that feels like overloading it with unintended (and too complex) data, and utilize a `hasFields` boolean instead.
   This functionality was originally added in PR 12271, to help determine what kind of form data a PDF document contains, and I think that we should ensure that the return value of `formInfo` only consists of "simple" data.
   With these changes the `fieldObjects` getter instead has to look-up the /Fields manually, however that shouldn't be a problem since the access is guarded by a `formInfo.hasFields` check which ensures that the data both exists and is valid. Furthermore, most documents doesn't even have any /AcroForm data anyway.

 - Determine the `hasFields` property *first*, to ensure that it's always correct even if there's errors when checking e.g. the /XFA or /SigFlags entires, since the `fieldObjects` getter depends on it.

 - Simplify a loop in `fieldObjects`, since the object being accessed is a `Map` and those have built-in iteration support.

 - Use a higher logging level for errors in the `formInfo` getter, and include the actual error message, since that'd have helped with fixing PR 12479 a lot quicker.

 - Update the JSDoc comment in `src/display/api.js` to list the return values correctly, and also slightly extend/improve the description.
2020-10-16 12:47:27 +02:00
..
chromium Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
features Remove usage of mozFillRule 2017-01-29 23:24:44 +01:00
font Identify browsers using the name instead of the path 2020-04-26 14:42:17 +02:00
pdfs Fix invalid XUID entries in CFF fonts 2020-10-05 17:38:01 +03:00
resources Introduce Puppeteer for handling browsers during tests 2020-04-27 13:03:12 +02:00
stats Enable the dot-notation ESLint rule 2020-04-17 12:24:46 +02:00
ttx Update fonttools location and version (issue 6223) 2015-07-17 12:51:09 +02:00
types Add typescript definitions 2020-07-30 11:10:37 +02:00
unit Don't store complex data in PDFDocument.formInfo, and replace the fields object with a hasFields boolean instead 2020-10-16 12:47:27 +02:00
.eslintrc Fix badly formatted .eslintrc 2018-11-23 13:49:58 +01:00
.gitignore Ignore test snapshots directory. 2013-03-15 11:24:08 -07:00
add_test.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
annotation_layer_builder_overrides.css Convert all three-digit HEX colors to RGBA colors 2020-01-01 14:52:37 +01:00
downloadutils.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
driver.js Create an OptionalContentConfig-instance once for each task, when running the reference test-suite 2020-08-30 16:28:40 +02:00
test_manifest.json Fix invalid XUID entries in CFF fonts 2020-10-05 17:38:01 +03:00
test_slave.html Use the SimpleLinkService when running "annotations" reference tests 2017-09-12 15:24:46 +02:00
test.js Upgrade Puppeteer to version 5.3.1 2020-10-03 23:06:31 +02:00
testutils.js Update Prettier to version 2.0 2020-04-14 12:28:14 +02:00
text_layer_test.css Use span instead of div in the text layer 2018-11-18 15:54:08 +01:00
webserver.js Enable the dot-notation ESLint rule 2020-04-17 12:24:46 +02:00