Skip to content

Releases: mozilla/pdf.js

v2.14.305

14 May 12:37
eaaa8b4
Compare
Choose a tag to compare

This release features improvements for the text layer (space insertion), canvas rendering (thin line rendering), forms (printing/saving of choice lists) and accessibility (sidebar and search results). Moreover, this release contains performance improvements for rendering image masks, Type3 fonts and certain drawing instructions. Finally, the user can now specify custom background/foreground colors for rendering in the viewer.

Changes since v2.13.216:

#14614 Bump versions in pdfjs.config
#14536 Fix some issues with lineWidth < 1 after transform (bug 1753075, bug 1743245, bug 1710019)
#14615 Remove the -webkit-overflow-scrolling: touch; CSS rules (PR 4516 follow-up)
#14617 Remove the -webkit-outer-spin-button CSS rule
#14623 Remove some deprecated code from the viewer
#14624 Simplify the fallback-logic in the default viewer
#14629 Compute the loca table endOffset, of the "first" glyph, correctly (issue 14618)
#14631 Fix a couple of small typos in JSDoc typedef comments
#14628 When stopAtErrors is set, throw rather than warn when exceeding maxImageSize (issue 14626)
#14634 Replace XMLHttpRequest usage with the Fetch API in Driver.run
#14633 Update packages and translations
#14635 Replace XMLHttpRequest usage with the Fetch API in loadStyles (in test/driver.js)
#14638 Replace XMLHttpRequest usage with the Fetch API in the reftest-analyzer
#14637 Use proper private methods in web/{pdf_cursor_tools,pdf_find_bar,secondary_toolbar}.js
#14636 Replace XMLHttpRequest usage with the Fetch API in Driver._quit
#14640 Update TypeScript to version 4.6.2 and work-around stricter type checks
#14648 Simplify the PDFDocument constructor
#14645 [api-minor] Remove the, in legacy builds, bundled DOMMatrix polyfill
#14642 Replace XMLHttpRequest usage with the Fetch API in Driver._send
#14651 Replace XMLHttpRequest usage with the Fetch API in inlineImages (in test/driver.js)
#14620 Bug 1757527 - Slightly reduce (repeated) message passing overhead when localizing the PDF Viewer
#14554 Try to improve a11y for the "button groups" in the SecondaryToolbar/Sidebar (issue 14526)
#14654 Replace XMLHttpRequest usage with the Fetch API in send (in test/unit/testreporter.js)
#14656 Move the isSameOrigin helper function
#14658 Validate the cMapUrl/standardFontDataUrl parameters in getDocument
#14661 Update Checkout to version 3
#14667 Enable the "gets fieldObjects" unit-test in Node.js (PR 14409 follow-up)
#14668 Remove the addLinkAttributes warnings in the Annotation/XFA-layers (PR 14092 follow-up)
#14665 Convert the BasePreferences class to use private fields
#14669 Replace dir-dependent padding-left/padding-right/text-align with logical properties
#14676 Remove the custom grab/grabbing cursor image files
#14678 Convert the PDFDocumentProperties class to use private methods
#14675 Build the web/viewer.css file used in the development viewer (i.e. gulp server)
#14682 [gulpfile.js] Use the regular defines in the preprocessCSS function
#14688 Add general iteration support in the RefSet and RefSetCache classes
#14683 [src/display/api.js] Simplify the sendTest function, used with Worker initialization (PR 14291 follow-up)
#14689 Slightly simplify the PDFFindController._extractText method, and convert all "private" methods into proper ones
#14670 Replace dir-dependent margin/margin-left/margin-right with logical properties
#14671 Replace dir-dependent float with logical properties
#14692 [JS] - Parse a date in using the given format first and then try the default date parser
#14695 Update packages and translations
#14690 Replace dir-dependent left/right with logical properties
#14704 Convert the OverlayManager class to use private fields/methods
#14699 Slightly improve validation of (some) parameters in getDocument
#14691 Replace dir-dependent border-rules with logical properties
#14693 Remove the remaining dir-dependent CSS rules
#14717 Change the type of the container property, in the TextLayerRenderParameters typedef (issue 14716)
#14715 Avoid the textLayer becoming visible in high contrast mode (issue 13230)
#14703 [text selection] Add the whitespaces present in the pdf in the text chunk
#14720 [Annotations] Add support for printing/saving choice list with multiple selections
#14710 Convert the existing overlays to use <dialog> elements (issue 14698)
#14733 Use String.prototype.repeat() in a couple of spots
#14735 [Annotations] Some annotations can have their values stored in the xfa:datasets
#14734 Don't manually convert setAttribute values to strings (PR 14554 follow-up)
#14738 Decode non-ASCII values found in the xfa:datasets (PR 14735 follow-up)
#14742 Replace most loops in web/debugger.js with for...of loops
#14744 Update GitHub Actions workflow steps/dependencies/translations to the most recent versions
#14745 Convert web/debugger.js to a basic module
#14739 Refactor some xfa*** getters in document.js
#14663 [GENERIC viewer] Try to improve a11y, for search results, in the findbar (issue 14525)
#14761 Use a bit more optional chaining in the viewer
#14751 Re-factor the isLittleEndian/isEvalSupported caching
#14750 Remove the BaseViewer._getCurrentVisiblePage helper method
#14754 [api-minor] Improve performance with image masks (bug 857031)
#14766 Improve performance of applyMaskImageData
#14764 Correct typos
#14765 Simplify handling of requestFullscreen errors in PDFPresentationMode
#14767 [GENERIC viewer] Re-factor the fileInput initialization
#14769 Remove unnecessary @media CSS rules (PR 8993 follow-up)
#14770 Always remove the sidebarMoving CSS class when the sidebar is closed
#14771 Simplify the dialog::backdrop CSS rules (PR 14710 follow-up)
#14772 Remove/simplify some CSS rules
#14773 Remove some dropdownToolbarButton-related CSS rules
#14780 Replace the --viewport-scale-factor CSS variable
#14722 PDFScriptingManager: Bind mousedown listener with capture=true
#14784 Improve performance of shared/utils.js::intersect (bug 1135277)
#14785 Update core-js to allow removing a structuredClone work-around
#14777 [api-minor] Improve performances with image masks (bug 857031)
#14796 [api-minor] Simplify min/max computations in constructPath (bug 1135277)
#14797 Don't clip when the clip path is empty (issue #12306)
#14799 Fix clipping issue with pattern (follow-up of #14797)
#14788 Move the PDFBug-related CSS from viewer.css and into its own file
#14790 Remove some outdated CSS rules related to printing
#14792 Update packages and translations
#14795 Reduce more duplication in the CSS
#14793 Simplify spread-mode handling for the PAGE scroll-mode
#14801 [GENERIC viewer] Simplify the styling of the previous/next findbar buttons
#14803 Add support for the /Catalog Base-URI when resolving URLs (issue 14802)
#14794 Remove the PresentationMode special-case from BaseViewer.update
#14810 Stop bundling errorWrapper CSS rules in the MOZCENTRAL build
#14817 Some more, small, CSS clean-up
#14818 Use correct case for JavaScript
#14815 Ignore non-Stream /SMask-entries when parsing images (issue 14814)
#14828 Use more for...of loops in the viewer
#14827 Simplify setting of spacing at the left/right edges of the toolbar(s)
#14823 Ignore invalid /Encoding-entries when parsing fonts (issue 14821)
#14825 Ensure that worker-thread image caching doesn't break optional content (issue 14824)
#14829 Remove unnecessary print CSS rules
#14831 Add a helper function for incrementing the count of cached ImageMasks
#14836 Don't use pref 'browser.download.improvements_to_download_panel' in Firefox (#14822)
#14848 Support destinations in NameTrees with encoded keys (issue 14847)
#14833 Stop bundling the openFile-buttons in the MOZCENTRAL build
#14835 Clean-up some CSS rules for the various toolbar separators
#14856 [api-minor] Remove the forceClamped-functionality in the Streams (issue 14849)
#14853 Use integer coordinates when drawing images (bug 1264608, issue #3351)
#14854 Remove redundant class names from the button DOM-elements
#14857 Inline the webViewerOpenFileViaURL function in webViewerInitialized
#14860 Update dependencies and translations
#14858 Use Path2D, if available, when rendering Type3-fonts (bug 810214)
#14861 Pin the es-module-shims dependency to version 1.4.7
#14863 Update quickjs to revision 2788d71e823b522b178db3b3660ce93689534e6d
#14865 Support encoded dest-strings in /GoTo destination dictionaries (issue 14864)
#14866 Immediately release the temporary Uint8Arrays used during Type3-compilation
#14869 [JS] Fix few bugs present in the pdf for issue #14862
#14873 Replace the AnnotationStorage.lastModified-getter with a proper hash-method
#14870 Only bundle the src/display/node_utils.js file in GENERIC-builds
#14871 Re-factor the PresentationMode handling in BaseViewer.#ensurePageViewVisible
#14874 [api-minor] Improve pdf reading in high contrast mode
#14877 Add (basic) support for Spread modes in PresentationMode (issue 14749)
#14880 Introduce a --viewer-container-height CSS variable to simplify the code
#14884 Simplify the "fileattachmentannotation"-event handling a little bit
#14882 Add support for TrueType format 12 cmaps (issue 14881)
#14887 Ignore pageColors when the background/foreground is identical (PR 14874 follow-up)
#14885 Stop bundling PDFViewerApplication.{unbindEvents, unbindWindowEvents} in MOZCENTRAL builds
#14888 Try to fix dispatching of "attachmentsloaded"-events, when the document contains no "regular" attachments (PR 8788, 12163 follow-up)
#14886 Use the regular preprocess-function for the CSS files as well
#14890 [JS] Formatted value has to be a string when neither null nor undefined
#14903 Update the preprocess-function to avoid adding trailing new-lines (issue 14902)
#14904 Avoid the preprocess...

Read more

v2.13.216

27 Feb 18:22
399a0ec
Compare
Choose a tag to compare

This release features improvements for searching in the viewer: searching with/without diacritics, arbitrary whitespace matching, searching for hyphenated words when linebreaks are present and searching around punctuation characters. Moreover, this release contains many bugfixes and optimizations, in particular for annotations, font/image conversion, SMask rendering, text layer rendering and TypeScript definitions.

Changes since v2.12.313:

#13261 [api-minor] Support search with or without diacritics (bug 1508345, bug 916883, bug 1651113)
#14389 Bump versions in pdfjs.config
#14388 Unblock the "load" event in inactive windows/tabs (bug 1746213, PR 11646 follow-up)
#14401 Update packages and translations
#14391 Handle non-integer Annotation border widths correctly (issue 14203)
#14400 [api-minor] Convert Catalog.getPageDict to an asynchronous method
#14409 Improve caching for the Catalog.getPageIndex method (PR 13319 follow-up)
#14411 Convert Catalog.getAllPageDicts to an async method
#14413 Drop the beta logic from the Gulpfile/website/pdfjs.config file
#14417 Revert "Disable failing print actions integration test in Firefox"
#14418 Use positive dimensions for text chunks in the text layer (issue #14415)
#14429 [JS] Fix few errors around AFSpecial_Keystroke
#14423 Remove the eventBus parameter from getViewerConfiguration
#14424 [api-minor] Move addLinkAttributes, LinkTarget, and removeNullCharacters into the viewer (PR 14092 follow-up)
#14432 Update packages and translations
#14443 Prevent run-time errors in BaseViewer when it's falling back to SimpleLinkService (issue 14442, PR 14295 follow-up)
#14450 Add (basic) UTF-8 support in the stringToPDFString helper function (issue 14449)
#14446 Expose even more API-functionality in the TypeScript definitions (issue 14435, PR 14013 follow-up)
#14454 Replace some assert usage with unreachable in the src/shared/util.js file
#14453 Dispatch a "documenterror" event in PDFViewerApplication._documentError (issue 14451)
#14439 Ignore Annotations with empty /Rect-entries in the display-layer (issue 14438)
#14448 Prevent circular references in Type3 fonts
#14428 Use the correct dimension to know if we have to add an EOL in vertical mode
#14455 Make the normalizeWhitespace handling, in the PartialEvaluator, more efficient (PR 14428 follow-up)
#14457 Implement a unit test for getCharUnicodeCategory in src/core/unicode.js (PR 14428 follow-up)
#14456 Font renderer - get int8 instead of uint8 in composite glyphes (bug 1749563)
#14464 Support Type1 font files with incomplete /CharStrings definitions (issue 14462)
#14430 [JS] Use beforeinput event to trigger a keystroke event in the sandbox
#14487 Remove the out.pdf file (PR 14430 follow-up)
#14489 Fix scripting test related to keystroke event
#14483 Remove the invisible format marks from the text chunks
#14479 Update packages and translations
#14490 Add a (global) cache to the getCharUnicodeCategory function
#14495 web: Read WheelEvent.deltaMode before deltas.
#14500 Take into account all rotations before comparing glyph positions
#14491 fix for lines (stroke) are rendered too thick (Bug 1743245)
#14506 Update the year in the license_header files
#14392 Polyfill structuredClone with core-js (PR 13948 follow-up)
#14507 Bump copy-props from 2.0.4 to 2.0.5
#14508 Bump nanoid from 3.1.30 to 3.2.0
#14513 Update quickjs sandbox
#14510 [api-minor] Annotations - Adjust the font size in text field in considering the total width (bug 1721335)
#14517 Disable the browser-tests, during gulp makeref, in Google Chrome on the Windows bot (PR 14392 follow-up)
#14516 [UI] Avoid to have buttons in hover state after having been clicked (bug 836732)
#14518 Remove the MBTA-pretax-form-July2012 browser-test since it's a duplicate
#14522 Remove the xfa_bug1716838 browser-test since it's a duplicate
#14515 [api-minor] Remove support for browsers/environments without fully working URL.createObjectURL implementations
#14527 [api-minor] Remove the normalizeWhitespace option in the PDFPageProxy.{getTextContent, streamTextContent} methods (issue 14519, PR 14428 follow-up)
#14535 [GENERIC viewer] Use consistent casing, for the labels, in the findbar
#14532 [GENERIC viewer] Remove the moz-prefixed FullScreen API usage from the viewer
#14530 Avoid the findResultsCount span taking up (vertical) space when hidden (PR 13261 follow-up)
#14537 Update packages and translations
#14539 Bump simple-get from 3.1.0 to 3.1.1
#14538 [api-minor] Update the minimum supported browser versions
#14548 [api-minor] Ensure that the PDFDocumentLoadingTask-promise is rejected when cancelling the PasswordPrompt (bug 1754421)
#14547 Update the file used with the xfa_bug1720182 test-case
#14543 Let Lexer.getNumber treat a single minus sign as zero (bug 1753983)
#14551 [api-minor] Stop exposing the createObjectURL helper function in the API
#14557 Remove unnecessary font-size CSS rule from the html element (issue 14555, PR 3794 follow-up)
#14558 Remove the UTF-8 fallback, when TextDecoder is missing, from the Content-Disposition parser
#14560 [api-minor] Remove the, in legacy builds, bundled ReadableStream polyfill
#14559 Revert "Don't block origin-less blob:-URLs in hosted viewer"
#14564 [api-minor] Don't add in the text content the chars which are out-of-page (bug 1755201)
#14563 [Search] Some matches were incorrectly shifted because of some '-\n'
#14572 Add a missing string-check in the _collectJS helper function
#14566 Miscellaneous small viewer clean-up
#14569 Fix canvas state getting out of sync from smasks. (bug 1755507)
#14581 Use the (viewer) parseQueryString helper function in the reference tests
#14580 Change PixelsPerInch to a class with static properties (issue 14579)
#14578 Remove the backingStorePixelRatio-part of the getOutputScale helper function
#14575 Remove the isStream helper function
#14577 Remove the isRef helper function
#14584 Update packages and translations
#14585 Improve the PDFObjects class
#14594 Prefer instanceof ... rather than calling isCmd/isDict/isName with one argument
#14596 Remove the isNum helper function
#14595 Update the support information for structuredClone (PR 14392 follow-up)
#14588 Remove old prefixed CSS rules used with text tests
#14597 Ensure that Dict.set only accepts string keys
#14598 Re-factor the Catalog.viewerPreferences method and remove the isBool helper function
#14545 Generate test images at different output scales.
#14605 Simplify the decodeFontData/encodeFontData font-test helper functions
#14608 Don't close window from test driver.
#14609 Improvements to the reftest analyzer.
#14599 Ensure that Cmd/Name is only initialized with string arguments
#14600 [api-minor] Add validation for the PDFDocumentProxy.getPageIndex method
#14607 Simplify the wrapReason helper function
#14606 Only support the standard, unprefixed, Fullscreen API in the default viewer
#14602 Re-factor the PDFDocument.documentInfo method, and remove the isString helper function
#14610 [JPEG 2000] Add support for resetContextProbabilities (bug 1731483)
#14611 Remove the JSDocs "External: Promise"-page, since Promises are now a standard feature
#14612 Add the caniuse-lite package

v2.12.313

19 Dec 15:20
a2ae56f
Compare
Choose a tag to compare

This release features improved XFA support, improved pattern/tiling support, rich text annotation support, a new page scrolling mode in the viewer and many other bugfixes and optimizations.

Changes since v2.11.338:

#14097 Bump versions in pdfjs.config
#14099 Update packages and translations
#14101 [Regression] Fix comb fields scrolling when the last character is entered (PR 14049 follow-up)
#14111 Take the /CIDToGIDMap data into account when computing the hash, in PartialEvaluator.preEvaluateFont, for composite fonts (bug 1734802)
#14106 Empty name is allowed in ISO 32000
#14108 For Annotations that define a closed area, make all of it toggle the PopupAnnotation (issue 14107)
#14118 Implement TrueType character map "format 2" (fixes #14117)
#14116 Use even more optional chaining in the src/display/api.js file
#14134 Convert examples/node/pdf2png/pdf2png.js to await/async
#14138 Convert examples/learning/helloworld.html to await/async
#14143 docs: Fix grammatical error
#14141 Convert examples/text-only/pdf2svg.js to await/async
#14145 XFA - Embedded image is missing
#14148 Ensure that the EditorConfig rules apply to *.json and *.pdf.link files as well
#14131 Ensure that pre-rendering works correctly with spreadModes at higher zoom levels
#14112 Add a new Page scrolling mode (issue 2638, 8952, 10907)
#14149 Convert examples/learning/helloworld64.html to await/async
#14103 [api-minor] Change PDFFindController to use the "find"-event directly (issue 12731)
#14152 Fix a xfaFaxtory typo in the shadowing in the PDFDocument.xfaFactory getter, and some other clean-up
#14166 Ignore Square/Circle-annnotations with a zero borderWidth when creating a fallback appearance stream (issue 14164)
#14114 [api-minor] Include the /Lang-property in the documentInfo, and use it in the viewer (issue 14110)
#14154 Update packages and translations
#14155 Revert "For mozcentral use Firefox color theme instead of system theme." since -moz-toolbar-prefers-color-scheme was removed
#14160 Fix pattern handling regression in SVGGraphics (PR 13770 follow-up)
#14159 Convert examples/node/pdf2svg.js to await/async #14125
#14174 Prevent double-rendering borders for PushButton-annotations (PR 14083 follow-up)
#14167 Convert examples/image_decoders/jpeg_viewer.js to await/async #14123
#14171 Prevent run-time errors in Node.js versions with URL.createObjectURL support (issue 14170)
#14162 Indent the stepper on save/restore.
#14175 Use a new method for handling soft masks.
#14178 Update the browserslist database
#14156 Add support for modern ECMAScript class features
#14158 Improve pre-rendering at the start/end of the document
#14181 Converted simpleviewer.js to await/async
#14199 Avoid to display download panel during integration tests
#14189 [api-minor] Implement securityHandler in the scripting API (bug 1731578)
#14192 [Regression] Prevent breaking errors when opening a new document in the GENERIC viewer (PR 14158 follow-up)
#14191 Ignore pageLabels, in the viewer, when they're all empty
#14180 Handle ranges that "overflow" the last byte in CMap.mapBfRange (bug 1627427)
#14153 Fix XFA links (bug 1735738)
#14204 Remove the shadowViewer used with Page scrolling
#14201 Use the correct border-style for Annotations, when a dash array is specified (bug 1219400)
#14207 JS - Avoid a popup to ask for specific version of Acrobat
#14210 Update packages and translations
#14182 [api-minor] Support rich content in markup annotation
#14212 Add a RTL-text reference test (issue 10301)
#14217 [Firefox] Handle errors if loading failed before the "supportsRangedLoading" message was sent (bug 1732141)
#14221 Use BaseViewer.previousPage more in the default viewer (PR 12870 follow-up)
#14225 Avoid doing unnecessary checks, when pre-rendering page layouts with "holes" (PR 14131 follow-up)
#14228 Reset path bounding box tracking when starting a new path.
#14213 Tweak the Bidi-detection heuristics for very short RTL strings (issue 11656)
#14219 Let getVisibleElements return a Set containing the visible element ids
#14232 Use correct matrix for patterns with showText.
#14218 XFA subform with occur min=0 and no bound data displaying.
#14238 Add a couple of basic unit-tests for PDFPageViewBuffer
#14241 Don't double apply a group xobject's bbox.
#14230 Create shading patterns the size of the current path. (bug 1722807)
#14244 Prevent mobile devices from interfering with the textLayer-elements (issue 14243)
#14240 XFA - Get each page asynchronously in order to avoid blocking the event loop (#14014)
#14245 Convert PDFPageViewBuffer to a standard class, and use a Set internally
#14250 XFA - Encode tag names in UTF-8 when saving (fix #14249)
#14239 XFA - Fix a breakBefore issue when target is a contentArea and startNew is 1 (bug 1739502)
#14209 [Google Chrome] Ensure that markedContent spans are placed in the top-left corner (issue 14205)
#14258 Always prefer abbreviated keys, over full ones, when doing any dictionary lookups (issue 14256)
#14265 XFA - Avoid an exception when looking for a font in a parent node
#14266 Don't consider space as real space when there is an extra spacing (bug 931481)
#14270 When parsing corrupt documents without any trailer-dictionary, fallback to the "top"-dictionary (issue 14269)
#14268 Remove non-displayable chars from outline title (#14267)
#14253 [Chromium addon] Add the Page scrolling mode to the options (PR 14112 follow-up)
#14260 Report "pageInfo" telemetry once, rather than for each rendered page
#14271 Parse query string in using URLSearchParams
#14255 Convert GrabToPan to a standard class
#14273 Update packages and translations
#14247 [api-minor] Render pushbuttons on their own canvas (bug 1737260)
#14280 Slightly optimize spreadMode toggling with ScrollMode.PAGE set (PR 14112 follow-up)
#14278 Replace the remaining Node.removeChild() instances with Element.remove()
#14276 Only show the loadingIcon-spinner on visible pages (issue 14242)
#14262 Include the /Lang-property, when it exists, in the StructTree-data (issue 14261)
#14229 Add an easy way to log to the terminal during browser tests.
#14291 [api-minor] Only use Workers when postMessage transfers are supported (PR 11123 follow-up)
#14294 [api-minor] Replace PDFDocumentProxy.getStats with a synchronous PDFDocumentProxy.stats getter
#14295 Remove the {BaseViewer, PDFThumbnailViewer}._pagesRequests caches
#14299 Convert examples/components/pageviewer.js to await/async (issue 14127)
#14304 Ensure that ChunkedStream won't attempt to request data beyond the document size (issue 14303)
#14298 Center pages vertically in PresentationMode (issue 10906)
#14310 Abort parsing when the XRef /W-array contain bogus entries (issue 14303)
#14314 [Regression] Prevent errors, during loading, in the viewer for XFA-documents (PR 14295 follow-up)
#14318 Handle sub/super-scripts in rich text
#14319 XFA - Draw arcs correctly
#14313 Change the _pagePromises cache, in the worker, from an Array to a Map
#14311 [api-minor] Validate the /Pages-tree /Count entry during document initialization (issue 14303)
#14320 Update packages and translations
#14312 Prevent circular references in XRef tables from hanging the worker-thread (issue 14303)
#14321 Upgrade to Puppeteer 12
#14333 Handle errors correctly when data lookup fails during /Pages-tree parsing (issue 14303)
#14325 Remove the unused skipCount parameter from Catalog.getPageDict (PR 14311 follow-up)
#14328 Update (primarily) the Node.js examples to release page resources
#14335 [Regression] Eagerly fetch/parse the entire /Pages-tree in corrupt documents (issue 14303, PR 14311 follow-up)
#14324 Enforce PAGE-scrolling for very large/long documents (bug 1588435, PR 11263 follow-up)
#14341 Ensure that the shadow helper function is passed a valid property (PR 14152 follow-up)
#14340 Handle errors when fetching the raw /Metadata (issue 14305)
#14338 [api-minor] Clear all caches in XRef.indexObjects, and improve /Root dictionary validation in XRef.parse (issue 14303)
#14339 Add a (linked) test-case for issue 8019
#14345 Ensure that the viewer handles BaseViewer initialization failures
#14344 Modernize the test driver
#14348 Add a (linked) test-case for issue 8022
#14347 Improve caching in Catalog.getPageDict (PR 8207 follow-up)
#14350 Prevent an infinite loop when parsing corrupt /CCITTFaxDecode data (issue 14305)
#14354 Further improve caching in Catalog.getPageDict, for disableAutoFetch mode (PR 8207 follow-up)
#14355 Change WorkerTransport.{pageCache, pagePromises} from an Array to a Map
#14358 Improve PDFDocument.checkLastPage/Catalog.getAllPageDicts for documents with corrupt XRef tables (PR 14311, 14335 follow-up)
#14359 Avoid overloading the worker-thread during eager page initialization in the viewer (PR 11263 follow-up)
#14361 Upgrade Node.js to version 16 in the CI workflow
#14360 Update packages and translations
#14362 Support disabling of form editing when pdfjs.enablePermissions is set (issue 14356)
#14364 Only call PDFDocumentProxy.getPermissions, in the viewer, when pdfjs.enablePermissions is set (PR 14362 follow-up)
#14367 Disable failing print actions integration test in Firefox
#14368 Consistently use string arguments for page.waitForFunction calls and upgrade to Puppeteer 13.0.0
#14380 Move the EventBus, and related functionality, into its own file
#14372 Move the /Lang handling into the BaseViewer (PR 14114 follow-up)
#14370 Slightly reduce asynchronicity in the Catalog.getPageDict method (PR 14338 follow-up)
#14386 Ignore negative /FitH parameters in the viewer (issue 14385)
#14373 [api-minor] Fix broken/missing JSDocs and typedefs, to allow updating TypeScript to the latest version (issue 14342)
#14387 Modernize the test utilities

v2.11.338

02 Oct 12:53
dedff3c
Compare
Choose a tag to compare

This release features improved XFA support (enabled by default now), improved annotations/forms support and other bugfixes and optimizations.

Changes since v2.10.377:

#13793 Bump versions in pdfjs.config
#13792 Remove the remaining closure in the src/display/canvas.js file
#13795 XFA - Elements created outside of XML must have all their properties (bug 1722029)
#13801 Access navigator safely in the src/display/annotation_layer.js file
#13804 Move the compatibilityParams into the web/app_options.js file
#13807 XFA - Get the full value when binding and not only the 1st line (bug 1718725)
#13796 Allow StreamsSequenceStream.readBlock to skip sub-streams with errors (issue 13794)
#13806 XFA - Fix auto-sized fields (bug 1722030)
#13815 XFA - Fix font scale factors (bug 1720888)
#13808 Improve caching of shading patterns. (bug 1721949)
#13819 XFA - Avoid an error when an exdata is a string (bug 1723114)
#13816 [api-minor] Remove the separate enableScripting option in BaseViewer
#13813 Remove a couple of closures in the src/display/api.js file
#13822 Prevent "Uncaught promise" messages in the console when cancelling (some) ReadableStreams
#13824 When no "V" entry exists, let the fieldValue fallback to the "DV" entry (issue 13823)
#13828 Introduce the GitHub Advanced Security workflow
#13830 Improve the code analysis workflow with quality checks
#13833 Make worker-loader optional as peerDependencies. Close #13825.
#13836 Fix inefficient regular expressions in external/cmapscompress/parse.js
#13831 Change the parseQueryString function to return a Map rather than an Object (issue 13829)
#13837 Implement unit tests for the parseQueryString utility function
#13839 Fix a broken regular expression in the docId unit-test (issue 13838, PR 13813 follow-up)
#13841 Allow customization of theme in Chrome extension + set default theme
#13842 Visually hide br in text selections
#13847 Remove useless assignment of availableSpace in the src/core/xfa/template.js file (issue 13829, 13835)
#13852 XFA - Page can be too small when printing (bug 1723705)
#13860 Bump tar from 4.4.8 to 4.4.15
#13859 Remove the isEOF helper function and slightly re-factor EOF
#13848 Remove the LGTM configuration and inline disable comments (issue 13829)
#13854 Prevent breaking errors when an optional content group is undefined (issue 13851)
#13846 Add a special gulp xfatest command, to limit the ref-tests to only XFA-documents (issue 13744)
#13858 Add aria-labels to XFA form elements. (bug 1723422)
#13864 [XFA] Add alt text for images. (bug 1723418)
#13856 XFA - Avoid to put something in very small areas
#13868 Annotation & XFA: Scale the font size in choicelist using zoom factor (bug 1715996)
#13875 Annotation & XFA: Add focus outlines on different fields (bug 1723615, bug 1718528)
#13869 Enable linting in the test/resources/ folder, and fix the "Remote property injection" warning (issue 13862)
#13874 Update the Annotation --zoom-factor CSS variable when PDFPageView is used standalone (PR 13868 follow-up)
#13873 XFA - Support aria heading and table structure. (bug 1723421) (bug 1723425)
#13880 Fix typo in cff_parser_spec.js
#13881 XFA - Elements under an area must be bound (bug 1723734)
#13879 Fix the global variable definitions in test/resources/reftest-analyzer.js (issue 13862)
#13867 [api-minor] Re-factor the internal renderingIntent, and change the default intent value in the PDFPageProxy.getAnnotations method
#13882 [api-minor] Remove the closure from the PDFWorker class, in the src/display/api.js file
#13883 Improve caching of Annotations-data, by using a Map, in the API
#13884 Update packages and translations
#13887 Bump path-parse from 1.0.5 to 1.0.7
#13890 Update some deprecated ESLint rules
#13886 Re-factor the BaseException.name handling, and clean-up some code
#13896 Simplify the ReadableStream polyfill
#13892 Move some validation, in Dict.merge, used during merging of sub-dictionaries (PR 13775 follow-up)
#13900 [api-minor] Stop translating logical assignment in non-legacy builds (PR 12887 follow-up)
#13911 Ensure that the TESTING define can always be overridden in gulpfile.js
#13913 Fix pdf_viewer definitions
#13905 Re-factor loadAndEnablePDFBug and PDFBug.init
#13904 Re-factor the LocalTilingPatternCache to cache by Ref rather than Name (PR 12458 follow-up, issue 13780)
#13899 [Regression] Re-factor the internal includeAnnotationStorage handling, since it's currently subtly wrong
#13920 Extend the glyph maps for standard respectively Calibri fonts (issue 13916)
#13921 Update packages and translations
#13922 Enable the ESLint object-shorthand rule in the extensions/chromium/-folder
#13908 [api-minor] XFA - Support text search in XFA documents.
#13923 [api-minor] Introduce a new annotationMode-option, in PDFPageProxy.{render, getOperatorList}
#13934 Remove the IPDFHistory interface
#13935 A couple of small TextHighlighter/TextLayerBuilder tweaks (PR 13908 follow-up)
#13939 Remove the npm test-command
#13930 Fix Viewer API definitions and include in CI
#13940 Simplify the PDFViewerApplication.supportsFullscreen getter
#13933 Fix saving of XFA checkboxes. (bug 1726381)
#13941 Ensure that PasswordException is handled correctly in the wrapReason function
#13942 Export the XFA/StructTree-layers in the viewer components
#13943 Use async a bit more in the API
#13944 Re-factor the setPDFNetworkStreamFactory usage for the unit-tests (PR 13549 follow-up)
#13937 Fix handling of fetch errors
#13932 Support Optional Content in Image-/XObjects (issue 13931)
#13949 Only use base encoding if it's populated. (bug 1727053)
#13951 Bump tar from 4.4.15 to 4.4.19
#13945 Implement PDFNetworkStreamRangeRequestReader._onError, to handle range request errors with XMLHttpRequest (issue 9883)
#13952 Extend getNonStdFontMap for non-embedded versions of the ItcSymbol font (issue 11532)
#13955 Always prefer the post-table for TrueType fonts with (0, x) cmap-tables (issue 13433)
#13959 Correctly pad strings when saving an encrypted pdf (bug 1726789)
#13967 XFA - Overwrite AcroForm dictionary when saving if no datasets in XFA (bug 1720179)
#13966 XFA - Created data node mustn't belong to datasets namespace
#13970 Fallback to the /ToUnicode map for TrueType fonts with (3, 1) and (1, 0) cmap-tables (issue 13316)
#13961 Simplify some regular expressions
#13973 [api-minor] Change {PDFPageView, PDFThumbnailView}.update to take a parameter object
#13972 Treat all content as visible when no optional content groups are defined (issue 13971)
#13975 Update packages and translations
#13976 Reduce the size of TextLayerRenderTask._textDivProperties in "regular" text-selection mode
#13988 Avoid an error in integration test because of a locale different of en-US
#13985 Improve glyph mapping for non-embedded composite standard fonts (issue 11088)
#13992 XFA - Remove the checked attribute from the checkbox when unchecked (bug 1729877)
#13995 XFA - Handle $record shorcut in SOM expression (issue #13994)
#13996 Make verifyManifestFiles fail for non-linked test-cases with a "link": true-entry
#13991 Enable/disable image smoothing based on image interpolate value. (bug 1722191)
#14000 Re-factor the CSS_PIXELS_PER_INCH/PDF_PIXELS_PER_INCH exports (PR 13991 follow-up)
#13993 Don't create PDFViewerApplication.pdfHistory when the browsing history is disabled
#13977 [api-minor] Reduce postMessage overhead, in PartialEvaluator.getTextContent, by sending text chunks in batches (issue 13962)
#13983 Update the learning/ examples with basic HiDPI-screen support
#14004 [CRX] enableScripting=false by default in Chrome extension
#14002 Let Lexer.getObj return a dummy-Cmd for commands that start with a non-visible ASCII character (issue 13999)
#13998 Write boolean value when saving a form (bug 1729971)
#14006 [src/core/writer.js] Remove unnecessary string-wrapping for boolean values in writeValue (PR 13998 follow-up)
#14007 [src/core/writer.js] Support null values in the writeValue function
#14018 XFA - Don't create images for unsupported mime types
#14027 Annotation - Checkboxes with the same name and export values must be in unison
#14028 Use CSS variables for setting the width of the zoom dropdown (PR 11570 follow-up)
#13984 Enable XFA by default in the viewer, and components/ examples (issue 13968)
#14025 Improve glyph mapping for non-embedded composite standard fonts with a /CIDToGIDMap (issue 11915)
#14035 Annotation - For checkboxes, get field value from AS (if any) instead of V (bug 1722036)
#14040 JS - Avoid the Stay/Leave popup when clicking on a button with a JS action
#14038 JS - Implement few possibilities with app.execMenuItem (bug 1724399)
#14043 Re-factor the EventBus and isInAutomation handling (PR 11655 follow-up)
#14013 Improve the API unit-tests, and try to expose more API-functionality in the TypeScript definitions
#14045 XFA - Only warn about the wrong xfa type when there is an xfa thing
#14005 [GENERIC viewer] Always show the Download-buttons, to allow saving of forms (issue 13997)
#14044 Annotations - Avoid empty value in text field when storage contains something for it (bug 1719148)
#14041 Support cmaps with only CID characters, when building the ToUnicode-map (issue 9367)
#14052 Update packages and translations
#14050 Tweak how fonts with an /Encoding are handled in adjustToUnicode (issue 14048, PR 13277 follow-up)
#14053 Move the zoomIn/zoomOut functionality into BaseViewer (PR 14038 follow-up)
#14056 Correctly validate URLs in XFA documents (bug 1731240)
#14055 Add PDF_TO_CSS_UNITS to the PixelsPerInch-structure
#14058 [api-minor] Change EventBus.dispatch to only support one data-argument
#14063 [GENERIC viewer] Warn about AppOptions being overridden by Preferences during loading
#14023 Re-fact...

Read more

v2.10.377

25 Jul 11:32
156762c
Compare
Choose a tag to compare

This release features improved XFA support, improved pattern rendering and other bugfixes and optimizations.

Changes since v2.9.359:

#13464 Bump versions in pdfjs.config
#13466 Fix typo in template.js
#13465 Some -es5/-legacy renaming clean-up, and deprecated API options removal (PR 12978, PR 13207 follow-up)
#13437 XFA - Move the fake HTML representation of XFA from the worker to the main thread
#13472 Don't change options of the globally used PartialEvaluator in the "should render checkbox with fallback font for printing" unit-test
#13411 XFA - Add support to print XFA forms
#13476 Update Puppeteer to version 10
#13451 XFA - Use native radio and checkbox buttons
#13480 [GENERIC viewer] Fix printing regression from PR 13411
#13489 Add hasEOL to the TextItem typedef in the API (PR 13257 follow-up)
#13478 Fix find highlighting regression from #13306.
#13482 Fix scrolling of search results in documents with marked content (bug 1714183)
#13473 XFA - Implement usehref support
#13492 Add normalization for Hyphen -> Hyphen-minus
#13490 Miscellaneous improvements for gulpfile.js (issue 10362)
#13497 Initialize HTMLResult.{FAILURE, EMPTY} lazily
#13494 Add more info for showText operator in stepper.
#13498 Normalize the coordinates used in SVGGraphics._makeTilingPattern (issue 12996)
#13461 Improve text-selection for Type3 fonts with empty /FontBBox-entries (issue 6605)
#13503 XFA - Don't bind a form node with an empty value when the data node doesn't exist
#13505 Use the DOMSVGFactory, rather than manually creating the SVG-element, in createMatrix (PR 13361 follow-up)
#13501 XFA - CDATA can be xml so parse it when required
#13513 Bump trim-newlines from 3.0.0 to 3.0.1
#13506 XFA - Add support for reftests
#13479 XFA - Fix layout issues (again)
#13514 [api-minor] Fetch binary CMap data in the worker-thread, when useWorkerFetch is set
#13521 [XFA] Use align-items: flex-start; to improve browser compatibility (issue 13518)
#13495 XFA - Display rectangle, line and arc
#13524 XFA - Don't print arrow in select
#13517 XFA - Add Liberation-Sans font as a substitution for some missing fonts
#13515 Cache the "raw" standard font data in the worker-thread (PR 12726 follow-up)
#13525 [api-minor] Re-factor the disableFontFace fallback value, and skip initializing factories with useWorkerFetch set
#13516 Always use standard font data, with disableFontFace set in the API (PR 12726 follow-up)
#13502 XFA - contentarea must be on top of the other containers in a pageArea
#13527 XFA - Avoid infinite loop when creating some nodes in data
#13528 XFA - Handle caption with inline placement as left one
#13529 Bundle the license-file for the Liberation fonts in the builds (PR 13517 follow-up)
#13530 Add a DOMMatrix polyfill for Node.js environments (PR 13361 follow-up)
#13532 XFA - Give all the available space to the caption in case of checkButton
#13534 XFA - Flush contents when breakBefore target is 'auto'
#13539 XFA - Don't show outline on focused textfields
#13540 XFA - Return html element for the different possible value
#13542 XFA - Center vertically radio without caption
#13546 Re-factor the DOMCanvasFactory and DOMSVGFactory implementations slightly
#13547 XFA - Handle correctly subformSet
#13549 Remove the isFetchSupported function since the Fetch API is available in all supported browsers
#13552 Update packages and translations
#13548 XFA - Default fill color for rectangle is transparent
#13555 XFA - Value in field can be html
#13557 XFA - Fix error when creating a new data node
#13559 XFA - Handle maxChars property for text fields
#13563 Add basic linting of JSON files using eslint-plugin-json
#13554 XFA - Add support for overflow element
#13569 XFA - Container wrapper must take the visibility of the wrapped content
#13565 Fix how patterns are applied to image mask objects.
#13570 XFA - By default a text ui has only one line when in a field element
#13560 XFA - Add the possibily to layout and measure text
#13575 XFA - Fix reftest for xfa_issue13500
#13576 XFA - When no fonts in the pdf just use font size as width when measuring text
#13566 XFA - Fix layout issues
#13577 Remove the internal PDFScriptingManager._pageEventsReady boolean (PR 13074 follow-up)
#13587 Set the default value of useSystemFonts correctly, depending on disableFontFace, in the API (PR 13516 follow-up)
#13588 Add a (basic) TypeScript definitions for the viewer components (issue 13267)
#13590 Stop encoding the value in the DOMElement.setAttribute method (issue 8558)
#13589 Allow using the standard font data for non-Type1 fonts (issue 13585, PR 12726 follow-up)
#13591 XFA - Match font family correctly
#13595 XFA - Add support for access property
#13593 XFA - Don't display invisible rectangle borders
#13573 XFA - Fix the way to select page on breaking
#13601 Revert "XFA - Fix the way to select page on breaking"
#13603 Revert "Revert "XFA - Fix the way to select page on breaking""
#13592 XFA - Don't display print-only elements
#13604 XFA - A prototype can have a property which needs itself to resolve a proto
#13608 Bump color-string from 1.5.3 to 1.5.5
#13609 Correctly align the xfaLayer content with horizontal scrolling/spread modes
#13594 XFA - Add margins if needed after having layout some text
#13606 Correctly align the textLayer content with horizontal/spread scrolling modes (issue 13605)
#13614 XFA - Get line height from the font
#13617 Reset the IPDFLinkService.externalLinkEnabled property on document closing
#13612 Support corrupt documents with empty Name-entries (issue 13610)
#13613 [api-minor] Slightly tweak/improve various code related to XFA-printing
#13618 XFA - Always bind root subform on root data
#13622 XFA - No container stretching with lr-tb layout
#13619 XFA - Add back empty subforms (which can have a background)
#13624 XFA - Take into account text position in caption
#13627 XFA - Save filled data in the pdf when downloading the file (Bug 1716288)
#13600 Take the position of the selected element into account when scrolling matches (issue 13596)
#13628 Check that TrueType (3, 0) cmap tables, for symbolic fonts, are sorted correctly (issue 13626)
#13637 Update packages and translations
#13638 A couple of smaller JSDocs tweaks in src/display/api.js
#13642 XFA - Remove quotes of font name in xhtml
#13639 XFA - Replace deprecated break element (bug 1718053)
#13635 XFA - Fix width of a container with lr-tb layout (bug 1718037)
#13641 XFA - Implement aspect property on image element
#13644 XFA - Support non-embedded fonts without a Widths entry
#13645 XFA - Choice list has no selected value by default (bug 1718241)
#13616 Add PDFs from #1773 to the reftests
#13640 Add non-PRODUCTION/TESTING overflow asserts to various string helper-functions (issue 6759)
#13648 XFA - Don't fill when the fill element is not visible (bug 1718735)
#13598 XFA - Remove empty pages
#13657 Replace instanceof Object with typeof checks
#13658 Don't attempt to structure clone unsupported types with workers disabled
#13664 Remove the version field from the package.json file
#13661 [api-minor] Support accessing both the original and modified PDF fingerprint
#13662 XFA - Don't use system font when a font is not embeded but there is a substitution
#13666 Enable the ESLint operator-assignment rule
#13654 XFA - An image can be a stream in the pdf (bug 1718521)
#13672 Revert "XFA - An image can be a stream in the pdf (bug 1718521)"
#13653 XFA - Improve text layout
#13665 XFA - Fix indentation for justified paragraph
#13673 XFA - An image can be a stream in the pdf (bug 1718521)
#13675 [test/driver.js] Ensure that Image src is set after the callbacks in resolveImages
#13680 XFA - Layout correctly a subform with row layout (bug 1718740)
#13684 XFA - Default background in rectangle is white
#13683 Fix transformations when painting image masks and tiling patterns.
#13687 XFA - Don't fail xfa loading because of a JS subexpression in SOM expressions
#13649 Merge the supplemental font data files used with XFA documents
#13691 XFA - Handle correctly nested containers with lr-tb layout (bug 1718670)
#13693 XFA - Enable disabled fields (bug 1719464)
#13694 XFA - remove unnecessary check in the handleBreak function (PR 13687 follow-up)
#13692 XFA - Correctly bind global data (bug 1718725)
#13700 XFA - Scale correctly images
#13706 XFA - Keep xfa layer on top of the others (bug 1719629)
#13703 XFA - Fix typo in factory.js
#13708 XFA - Add support for traversal and traverse element
#13710 XFA - Move xfa layer on top of the others (follow-up of #13706)
#13690 Fixed text annotation comb input box
#13696 [GENERIC viewer] Try to fixup "incomplete" language codes (issue 13689)
#13699 making webpack aware of the change inside of the worker file and hash
#13712 XFA - Always compute the transformed BBox values in checkDimensions (PR 13691 follow-up)
#13705 XFA - Fix text positions (bug 1718741)
#13715 Update packages and translations
#13714 XFA - Use fake MyriadPro as a fallback for missing fonts
#13717 XFA - Fix wrong vertical alignments
#13718 XFA - Support assist element
#13716 XFA - Avoid to have containers not pushed in the html
#13720 Revert "XFA - Avoid to have containers not pushed in the html"
#13723 XFA - Only the first page was printed (bug 1720159)
#13721 XFA - Avoid to have containers not pushed in the html
#13725 Avoid all rendering breaking completely when CanvasPattern.setTransform() is unsupported
#13734 XFA - Cannot print fields with no names
#13739 Remove <meta> tag only necessary for IE-compatibility
#13738 Re-factor the handling of empty Name-instances (PR 13612 follow-up)
#13730 Add a new "botbrowsertest" gulp-task, to allow running only the browser tests on the bots
#13732 XFA - A rectangle must have the width of its parent but without ...

Read more

v2.9.359

30 May 12:11
e667c8c
Compare
Choose a tag to compare

This release features improved text layer rendering (so words and whitespace better match the rendered page), improved accessibility support (for marked PDF files with structure information for screen readers), improved shading/tiling pattern rendering, displaying of digital signatures (but not verifying them), improved XFA support (which is still experimental), improved rendering of annotations without appearance streams and other bugfixes mainly regarding annotations, font rendering and scripting.

Changes since v2.8.335:

#13183 Bump versions in pdfjs.config
#13184 Convert objects to sets in places where we only track keys
#13186 Remove some deprecated code
#13194 Fuzzy-match the fontName, for TrueType Collection fonts, where the "name"-table is wrong (issue 13193)
#13204 Fix typo in canvas.js
#13210 Cache babel source map.
#13209 Remove the enableScripting option from the PDFPageView constructor
#13207 [api-minor] Remove the manual passing of an AnnotationStorage-instance when calling various API-method
#13171 [api-minor] Add support for basic structure tree for accessibility.
#13197 Improve the image quality of thumbnails rendered by PDFThumbnailView.draw (issue 8233)
#13212 Check that the correct pdfDocument is still active, before rendering the outline/attachments/layers
#13214 Display widget signature
#13216 Remove obsolete done callbacks from the unit tests
#13220 Ensure that currentOutlineButton enabling/disabling won't depend on the exact timing of the "pagesloaded" event (PR 13212 follow-up)
#13221 [api-minor] A couple of smaller PDFPageProxy.getStructTree fixes (PR 13171 follow-up)
#13217 [GENERIC viewer] Display a warning message, using the errorWrapper, for documents with signatures (PR 13214 follow-up, issue 13215)
#13141 XFA -- Display text content
#13203 Implement high contrast mode
#13223 Remove the unused "GetIsPureXfa" message handler; and avoid unnecessary parsing when no structTree is available (PR 13069 follow-up, PR 13221 follow-up)
#13232 Fix annotation input focus trap regression in Safari
#13234 [api-minor] Ensure that PDFDocumentProxy.hasJSActions won't fail if MissingDataExceptions are thrown during the associated worker-thread parsing
#13235 Split the classes in src/core/obj.js into separate files
#13238 Update the es-module-shims package to the latest version
#13244 Update the postcss-calc package to the latest version
#13240 Update eslint-config-prettier/eslint-plugin-unicorn packages to their latest versions
#13222 Convert done callbacks to async/await in the smaller unit test files
#13243 Implement visibility expressions for optional content
#13246 Convert done callbacks to async/await in more unit test files
#13247 Update the yargs package to the latest version
#13249 [GENERIC viewer] Don't display the errorWrapper, for documents with signatures (PR 13217 follow-up)
#13250 Remove the PDFViewerApplication._delayedFallback functionality
#13146 XFA -- Load fonts permanently from the pdf
#13254 A couple of small scripting/XFA-related tweaks in the worker-code
#13253 Convert done callbacks to async/await in test/unit/api_spec.js
#13258 Update packages and translations
#13256 Convert done callbacks to async/await in the last two unit test files
#13275 Ensure that the /Properties, used with optional content, is actually loaded before parsing the operatorList/textContent (PR 12095 follow-up)
#13278 Add presentation role to text layer spans.
#13277 For CFF fonts without proper ToUnicode/Encoding data, utilize the "charset"/"Encoding"-data from the font file to improve text-selection (issue 13260)
#13263 Replace done callbacks in the font-tests with async/await instead
#13282 Update Puppeteer to version 9
#13280 Ensure that saveDocument works if there's no /ID-entry in the PDF document (issue 13279)
#13286 [JS] Use heap allocation when initializing quickjs sandbox
#13283 Change NameOrNumberTree.getAll to return a Map rather than an Object
#13272 Update all the text widgets having the same name with the same value
#13291 Replace a bunch of Array.prototype.forEach() cases with for...of loops instead
#13297 Add a note about minification to the webpack-example README (issue 13290)
#13294 Enable the no-var linting rule in src/core/{cmap,image,worker}.js
#13301 Support InkAnnotations without appearance streams (issue 13298)
#13300 Convert the code in src/display/canvas.js to use standard classes
#13304 Convert more code in src/core/ to use standard classes
#13305 Implement rendering polyline/polygon annotations without appearance stream
#13306 Fix position of highlighted all text.
#13314 For mozcentral use Firefox color theme instead of system theme.
#13310 Don't try to insert a structTree in a removed page (PR 13171 follow-up)
#13257 [api-minor] Fix the way to chunk the strings
#13303 Add an abstract base-class, which all the various Stream implementations inherit from
#13322 Update packages and translations
#13320 Add a new BaseStream.getString(...) method to replace manual bytesToString(BaseStream.getBytes(...)) calls
#13321 Enable the no-var linting rule in src/core/{crypto,function}.js
#13324 Fix highlighting of search results when the textLayer contains br-elements (PR 13257 follow-up, issue 13323)
#13319 JS -- add support for page property in field
#13274 [JS] Fix several issues found in pdf in #13269
#13333 [web/debugger.js] Enable the ESLint no-var rule
#13337 [Regression] Move the super-call in the PredictorStream-constructor to prevent errors (PR 13303)
#13340 Fix integration test in the windows bot
#13339 Remove unnecessary closure in src/display/text_layer.js, and use standard classes
#13327 Split the functionality in src/core/fonts.js into multiple files, and use standard classes
#13349 Bump lodash from 4.17.19 to 4.17.21
#13341 Remove unnecessary closure in the src/core/font_renderer.js file
#13352 Bump hosted-git-info from 2.6.0 to 2.8.9
#13338 Convert the src/core/{jbig2, jpg, jpx}.js files to use standard classes
#13344 Enable the no-var rule in the src/core/evaluator.js file
#13350 Add option enableXfa to the viewer
#13347 Take the W array into account when computing the hash, in PartialEvaluator.preEvaluateFont, for composite fonts (issue 13343)
#13354 Export the "raw" toUnicode-data from PartialEvaluator.preEvaluateFont
#13355 Fix some integration tests
#13357 Remove the disableCanvasToImageConversion functionality from PDFThumbnailView (PR 7029 follow-up)
#13358 [api-minor] Remove the WebGL implementation
#13364 Clean-up usage of the TESTING-define in src/pdf.sandbox.js
#13363 Prevent LGTM from complaining about useless assignments (PR 12562 follow-up)
#13368 Fix the Jbig2Image export for the gulp image_decoders build (PR 9729 follow-up, issue 13367)
#13360 Only include the renderer-preference in builds where SVGGraphics is defined
#13366 Convert the remaining functions in src/core/primitives.js to use standard classes
#13361 Fix several issues with radial/axial shadings and tiling patterns.
#13371 Revert "Fix the remaining no-var failures, which couldn't be handled automatically, in the src/core/evaluator.js file" (PR 13344 follow-up)
#13369 Fix tiling pattern with smask.
#13375 Improve the Page.content and Page.getContentStream methods
#13377 Re-factor and convert the code in src/core/pattern.js to use standard classes
#13379 [api-minor] Update minimum supported browser versions (PR 13361 follow-up)
#13383 Update packages and translations
#13380 Re-factor and convert the code in src/display/pattern_helper.js to use standard classes
#13385 Convert src/core/operator_list.js to use standard classes
#13386 Enable the no-var linting rule in src/core/bidi.js
#13387 Fix a few safe ESLint no-var failures in src/core/evaluator.js (13371 follow-up)
#13328 JS - Add support for display property
#13389 Get any width (if one is present) in CFF parser
#13390 XFA - Don't move glyphes in private area with non-truetype fonts
#13394 Handle PI with no value in xml parser
#13401 Remove some, with Prettier 2.3.0, unnecessary // prettier-ignore comments
#13408 Remove focus from the zoom dropdown, when a mouse is used (bug 1300525, issue 4923)
#13415 Improve handling of named destinations in out-of-order NameTrees (PR 10274 follow-up)
#13416 XFA - Fix wrong function name
#13419 Use the stringToBytes helper function in more places
#13381 Handle errors gracefully, in PartialEvaluator.buildFontPaths, when glyph path building fails
#13417 [XFA] Send URLs as strings, rather than objects (issue 1773)
#13420 Drop obsolete logic from the downloadFile function in test/downloadutils.js
#13421 XFA - Don't display images with a href
#13402 XFA - Fix lot of layout issues
#13429 Bump browserslist from 4.16.3 to 4.16.6
#13436 Re-factor FontFaceObject.getPathGenerator to use Arrays instead of strings
#13435 Enable the unicorn/no-array-push-push ESLint plugin rule
#13445 Fix Postscript name in font to avoid bug when saving in pdf
#13450 Fix the JSDocs for PDFDocumentProxy.getPageIndex (issue 13449)
#13455 Italic angle is defined clockwise in CSS when it's counterclockwise in PDF
#13456 Replace clazz by classNames
#13427 XFA - Add a storage to save fields values
#13443 Re-factor the charsCache on Font-instances
#13457 Work-around for HighlightAnnotations without a top-level /ExtGState-entry (issue 13242)
#13448 Support strokeAlpha/fillAlpha when creating a fallback appearance stream (issue 6810)
#13460 Update webpack import instructions
#13462 Update packages and translations
#13463 Bump ws from 7.4.5 to 7.4.6

v2.8.335

05 Apr 13:51
228adbf
Compare
Choose a tag to compare

This release features initial support for XFA (in addition to the support for AcroForms). Moreover, it contains lots of improvements related to scripting, text layer positioning, annotations, printing, accessibility and performance.

Changes since v2.7.570:

#12901 Bump versions in pdfjs.config
#12826 JS -- add support for choice widget
#12914 JS - QuickJS sandbox initialization must be the last evaluated string
#12916 Include pdf.sandbox.js when building the pdfjs-dist files
#12911 Fix text layer regression tests in using the correct line-height property
#12910 Add back dir property in spans in text layer
#12903 Improve global image caching for small images (PR 11912 follow-up, issue 12098)
#12924 Fix font data clone error when pdfBug is enabled.
#12922 Ignore globally cached images in PartialEvaluator.getTextContent (PR 11930 follow-up)
#12920 fix(acroforms): pdf path in acroforms example
#12931 Stop showing the fallback bar for "errorFontLoadNative" errors (PR 10539 follow-up)
#12932 Stop including -ms prefixed CSS rules in GENERIC builds
#12933 Stop polyfilling CSS variables in GENERIC builds
#12935 Remove prefixed fullscreen properties/methods from the MOZCENTRAL builds
#12879 XFA - Add a parser for XFA files
#12943 Re-enable the issue6961 test-case (issue 7112)
#12947 Update Puppeteer to version 6 (issue 12945)
#12954 XFA -- Add attributes and children in XFAObject
#12952 Don't focus the PasswordPrompt input-field on load, when the viewer is embedded in e.g. an iframe (issue 12951)
#12956 Update Puppeteer to version 7
#12946 XFA -- Add template object
#12944 XFA -- Update config object
#12941 fix(a11y): resolve sidebar, find, toolbar missing aria-expanded and aria-controls state
#12961 Use optional chaining, where possible, in the web/-folder
#12965 Request all data, rather than throwing, when encountering general errors in ObjectLoader._walk (issue 9462, PR 3289 follow-up)
#12966 Update packages and translations
#12962 Handle errors gracefully, in PartialEvaluator.translateFont, when fetching the font file (issue 9462)
#12970 Split PDFViewerApplication.error into two methods, for PDF document loading/parsing errors vs other errors (PR 11647 follow-up)
#12971 Use DOM hidden property instead of attribute methods
#12975 Remove the contentmenu usage, from PresentationMode, since it's no longer working
#12972 [GENERIC viewer] Skip the iframe-case when checking if the container div, on BaseViewer-instances, is absolutely positioned (PR 12354 follow-up)
#12973 Use Math.hypot, instead of Math.sqrt with manual squaring
#12978 [api-minor] Rename -es5 to -legacy, to reduce confusion over what's actually supported (issue 12976)
#12948 XFA -- Add localset object
#12949 XFA -- Add other objects
#12982 Update the year in the license_header files
#12984 Replace a few new Date().getTime() instances with Date.now()
#12981 Collect the l10n error/warning message lookup, in web/app.js, in a new helper method
#12904 fix initial state of checkboxes in display layer
#12987 Restore window.alert after use in scripting test
#12986 Remove the unused "loading_error_indicator" l10n string (PR 2719 follow-up)
#12988 Remove unneeded instanceof MissingDataException checks
#12896 Modifiy the way to compute baseline to have a better match between canvas and text layer
#12992 Use a more compact format for the fallback EventBus-listeners in PDFViewerApplication_initializeJavaScript
#12991 Stop including unused/unnecessary code in the viewer, for MOZCENTRAL-builds
#12993 [api-minor] Change the dc:subject Metadata field to an Array
#12964 Avoid infinite loop when getting annotation field name
#12995 Stop showing the fallback bar for "errorFontMissing" errors (PR 11218 follow-up)
#12830 JS -- Fix doc.getField and add missing field methods
#12936 XFA - Add a lexer/parser for FormCalc language
#12998 Simplify the default value handling of renderInteractiveForms in the viewer components
#12999 [api-minor] Remove support for synchronous event dispatching in LoopbackPort
#12997 Move the Metadata parsing to the worker-thread
#12979 XFA - Add support for prototypes
#13001 Send the AnnotationStorage-data to the worker-thread as a Map
#13004 Add a this-bound method for InternalRenderTask.cancel
#13007 Update packages and translations
#13005 JS - Fix setting a color on an annotation
#13008 Allow minor and patch versions for the webpack-stream dependency again
#12983 XFA -- Add support for SOM expressions
#13011 Remove extra new line from HTML source.
#13009 Move the opening of PDF file attachments into the DownloadManager-implementations
#13019 Remove the findResultsCount-check from PDFFindBar.updateResultsCount, and unnecessary defaults from the constructor
#13020 Remove the NullL10n default value from viewer components not included in the COMPONENTS-bundle
#13021 Remove the, strictly unnecessary, closure and variable shadowing from createObjectURL
#13014 [api-minor] Support the Content-Disposition filename in the Firefox PDF Viewer (bug 1694556, PR 9379 follow-up)
#13025 Convert code in src/core/function.js to use "normal" classes
#13026 Convert code in src/core/crypto.js to use "normal" classes
#13024 Update Puppeteer to version 8
#13023 Fix integration test with js-colors
#13029 Enable the no-var linting rule in more core files
#13030 Modernize some of the code in src/core/cmap.js by using classes and async/await
#13031 Implement rendering square/circle annotations without appearance stream
#13032 Don't warn about actions that require scripting support in Catalog.parseDestDictionary
#13033 Implement rendering line annotations without appearance stream
#13039 Change the background to ensure that the sidebar is visible/readable when the viewer is narrow (issue 13036)
#13045 Bump pug-code-gen from 2.0.1 to 2.0.3
#13050 Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up)
#13053 Enable scripting by default in the development viewer; remove the standalone acroforms example
#13042 [api-minor] Move the viewer scripting initialization/handling into a new PDFScriptingManager class
#13054 Move handling of the PageOpen/PageClose events into the PDFScriptingManager (PR 13042 follow-up)
#13060 Update packages and translations
#13055 JS - reset correctly radio buttons
#13062 Remove the test/features folder, since it's very out of date (issue 11954)
#13063 Use more optional chaining in the web/-folder (PR 12961 follow-up)
#13018 XFA - Create Form DOM in merging template and data trees
#13015 JS - Avoid a popup to ask for updating Acrobat.
#13078 Disable intermittent unit test "creates pdf doc from non-existent URL"
#13074 Re-factor the PDFScriptingManager._destroyScripting method (PR 13042 follow-up)
#13081 Replace the objectFromEntries helper function with an objectFromMap one instead, and simplify the data lookup in the AnnotationStorage.getValue method
#13085 Ensure that all errors are handled in rasterizeTextLayer/rasterizeAnnotationLayer
#13090 Enable the ESLint no-var rule in gulpfile.js
#13079 Ensure that getDocument handles Node.js Buffers more gracefully (issue 13075)
#13087 Enable the ESLint no-var rule in the examples/ folder
#13084 Enable the ESLint no-var rule in a few font-parsing files, and convert src/core/type1_parser.js to use "standard" classes
#13092 Enable the ESLint no-var rule in the importL10n/ folder
#13091 Enable the ESLint no-var rule globally
#13093 Enable the ESLint no-var rule in the external/builder/ folder
#13097 Enable the ESLint no-var rule in test/add_test.js
#13096 Enable the ESLint no-var rule in the test/stats/ folder
#13095 Enable linting of the external/cmapscompress/ folder
#13098 Enable the ESLint no-var rule in the external/ folder
#13094 Enable the no-var linting rule for src/core/{operator_list, pattern}.js
#13101 print: Remove invalid @supports condition.
#13100 print: Ensure print containers have the right size and don't create overflow.
#13102 print: RFC: Center when printing a PDF with smaller size than the output page.
#13104 Ensure that printing, triggered from scripting, won't accidentally throw in PDFScriptingManager._updateFromSandbox
#13106 Support LineAnnotations with empty /Rect-entries (issue 6564)
#13069 [api-minor]XFA - Add a layer to display XFA forms
#13119 Actually reset the PDFPageProxy._xfaPromise property as intended (PR 13069 follow-up)
#13120 Rotate landscape pages, during printing, by default in the viewer (enablePrintAutoRotate = true)
#13116 Enable scripting by default in the viewer (PR 13053 follow-up)
#13113 Ignore some scripting events which don't make sense in PresentationMode
#13105 Improve memory usage around the BasePdfManager.docBaseUrl parameter (PR 7689 follow-up)
#13118 Add landmark region and aria-label for each page.
#13124 Tweak the pre-processor condition, for Node.js environments, in the animationStarted helper (issue 13057)
#13117 Re-factor the default preferences generation to support build targets (PR 10548)
#13126 Update packages and translations
#13125 Don't provide the enableXfa parameter to the BaseViewer constructor, and avoid the fallback bar with enableXfa = true set (PR 13069 follow-up)
#13135 Fix typo in pdf_history.js
#13128 Re-factor how the BasePreferences.prefs-property is initialized; remove some indirect loops
#13082 XFA - Convert some template properties into CSS ones
#13149 Set CFF header to 4 when writing it because it contains 4 elements
#13140 [GrabToPan] Remove more IE-specific code, and remove unconditional browser sniffing
#13145 print: Improve rendering of oversized pages.
#13144 [GrabToPan] Use Element.matches() rather than prefixed ...matchesSelector versions
#13138 [PDFHistory] Correctly ...

Read more

v2.7.570

24 Jan 17:43
f2c7338
Compare
Choose a tag to compare

This release features improved performance, font rendering, annotation rendering and form rendering/saving/printing (AcroForm). Moreover, it includes initial support for scripting in a sandbox (disabled by default). Finally, support for IE 11 and non-Chromium-based Edge is dropped.

Changes since v2.6.347:

#12323 Bump versions in pdfjs.config
#12326 Revert "Download, rather than opening, PDF attachments in Firefox (bug 1661259, PR 12286 follow-up)"
#12330 Update packages and translations
#12329 Rename the --outline-... CSS variables to --treeitem-... instead (PR 11077 follow-up)
#12328 Remove code-paths only relevant for IE 11/Edge (non-Chromium based) from the web/ folder
#12331 [api-minor] Only support browsers/environments that have basic support for Promise natively
#12336 Remove, manually implemented, DOM polyfills only necessary for IE 11 support
#12269 Add support for missing appearances for hightlights, strikeout, squiggly and underline annotations.
#12339 Support broken /FitH destinations that are missing the "top" value (bug 1663390)
#12343 Remove some code/comments relevant for old (pre-Chromium) versions of Opera
#12344 Save form data in XFA datasets when pdf is a mix of acroforms and xfa
#12345 Don't try to save something for a button which is neither a checkbox nor a radio
#12354 Ensure that the container div, on BaseViewer-instances, is absolutely positioned
#12352 Remove CSS variables feature-testing from PDFSidebarResizer
#12356 Set the modification date to the current day when saving
#12349 Follow-up comments on PR #12344
#12357 PDF names need to be escaped when saving
#12360 Reset cursor position when focus is out of text field
#12362 Let the loadingBar have the same width as the viewerContainer
#12364 Dict keys need to be escaped too when saving
#12365 Ensure that the length property won't be accidentally accessed on a DecodeStream-instance
#12363 canvas: Properly restore all the remaining items in stateStack in endDrawing
#12368 Revert "canvas: Properly restore all the remaining items in stateStack in endDrawing"
#12372 Skip failing FBF tests, when running makeref, in Firefox as well
#12374 Replace \n and \r by \n and \r when saving a string
#12370 Implement resetting of created streams for annotations
#12361 Ensure that all necessary /Font resources are included when saving a WidgetAnnotation-instance (issue 12294)
#12377 Set parent of radio annotation even if there is no 'V' field
#12375 Ensure that the empty dictionary won't be accidentally modified, and slightly improve the "SaveDocument" handler in src/core/worker.js
#12369 canvas: fix restore() with existing SMask groups and re-land #12363.
#12388 Refactor the container/viewer checks in the BaseViewer constructor
#12387 Use the same kind of strings for radio values
#12393 Prevent errors if the InkList property, in InkAnnotations, is missing and/or not an Array (issue 12392)
#12396 Update packages and translations
#12397 Update the webpack-stream dependency (issue 11996)
#12414 Need to reset the streams when printing
#12409 Compute the transformOrigin correctly, for negative values, when rendering AnnotationElements (bug 1627030)
#12417 Remove the PDFPageView.{error, stats} properties, and some related viewer clean-up
#12405 Fixed keydown event handling problem with shadow DOM.
#12423 Update escodegen to version 2.0
#12422 Don't trigger searching, in the GENERIC viewer, when Shift is used together with the regular keyboard shortcut (issue 12421)
#12419 Use the cidToGidMap, if it exists, when building the glyph mapping for non-embedded composite fonts (issue 12418)
#12426 Re-factor how printing is triggered in the default viewer
#12439 Add version/build info at the top of the built web/viewer.js file
#12436 Enable the ESLint no-var rule in the src/shared/ folder
#12333 Add tooltip if any in annotations layer
#12437 Enable the ESLint no-var rule in the src/display/ folder
#12441 Re-factor how the ESLint no-var rule is enabled in the src/ folder
#12442 Upgrade Puppeteer to version 5.3.1
#12444 Update packages and translations
#12445 Upgrade minor/major versions of dependencies that don't require code changes
#12446 [Firefox] Stop logging RenderingCancelledExceptions as errors when printing
#12448 Enable the ESLint no-debugger and no-alert rules
#12450 Fix invalid XUID entries in CFF fonts
#12451 Upgrade acorn to version 8
#12454 Upgrade terser to version 5
#12458 Add local caching of TilingPatterns in PartialEvaluator.getOperatorList (issue 2765 and 8473)
#12470 Upgrade webpack to version 5
#12476 Remove the scope parameter from the "GetOperatorList" handler in src/core/worker.js (PR 11110 follow-up)
#12477 Handle WorkerTasks, and various PDF document properties, correctly in the "SaveDocument" handler in src/core/worker.js
#12429 [api-minor] Add the possibility to collect Javascript actions
#12479 Fix the "should get form info when AcroForm is present" unit-test
#12478 Convert PartialEvaluator.translateFont to an async method
#12486 Stop caching the parsed Font data on its Dict object (PR 7347 follow-up)
#12483 Don't store complex data in PDFDocument.formInfo, and replace the fields object with a hasFields boolean instead
#12481 Get urls if any in AA::D dictionary for pushbuttons
#12485 [api-minor] JS - Add a function in api to get the fields ids in AcroForm::CO
#12489 Add a test for pdfDocument::fieldObjects
#12491 Update packages and translations
#12493 Support adding pages, in addition to regular destinations, to the browser history and use it with thumbnails (issue 12440)
#12515 Enable the unicorn/no-abusive-eslint-disable ESLint plugin rule
#12503 [api-minor] Invalidate an annotation with no quadPoints (when it's required)
#12432 JS - Add the basic architecture to be able to execute embedded js
#12516 Prevent issues, in PDFDocument.fieldObjects, for invalid Annotations
#12526 Improve argument/name handling when parsing TilingPatterns (PR 12458 follow-up)
#12524 A couple of small (viewer) tweaks of tooltip-only Annotations (PR 12333 follow-up)
#12522 Fix a couple of edge-cases in PDFViewerApplication._initializeJavaScript (PR 12432 follow-up)
#12464 Fix getVisibleElements helper in RTL-locales
#12508 Fallback font for buttons must be ZapfDingbats.
#12528 Convert var to const/let in the test/unit folder
#12529 Tweak the pdf.scripting.js bundling, to improve overall consistency
#12527 Remove SystemJS usage from the development viewer and the unit-tests
#12534 Ensure that MurmurHash3_64.update handles ArrayBuffer input correctly, to avoid hash-collisions (issue 12533)
#12532 Modernize, and remove SystemJS usage from, the font-tests
#12540 Ensure that the same version of PDF.js is used in both the API and the Viewer (PR 8959 follow-up)
#12539 Use standard import statements more when running the unit-tests
#12395 Render not displayed annotations in using normal appearance when printing
#12542 Add a MurmurHash3_64.update unit-test for TypedArrays which share the same underlying ArrayBuffer (PR 12534 follow-up)
#12543 Use a Map, rather than an Object, internally in the Catalog.openAction getter (PR 11644 follow-up)
#12551 Fix some errors reported by the ESLint no-useless-escape rule
#12525 [api-minor] Implement API to get MarkInfo from the catalog.
#12552 Miscellaneous (small) improvements in src/core/annotation.js
#12560 Update npm packages
#12561 Fix some static analyzer warnings (issue 11965)
#12562 Try adding a very basic lgtm.yml file, to prevent LGTM complaining about unused variables (issue 11965)
#12555 Replace css color rgb(...) by #...
#12559 Also update the browser history when the user manually change pages using the pageNumber-input (PR 12493 follow-up)
#12505 [api-minor] Split highlight annotation div into multiple divs
#12572 Change the getVisibleElements helper function to take a parameter object
#12568 [api-minor] JS -- Add default value in annotation data
#12583 Add global caching, for /Resources without blend modes, and use it to reduce repeated fetching/parsing in PartialEvaluator.hasBlendModes
#12564 Make sure that Popup is rendered next to trigger for textAnnotation
#12530 JS -- Add 'util' object
#12591 Improve the Pattern-detection in CanvasGraphics.stroke
#12594 Enable the ESLint no-useless-escape rule (PR 12551 follow-up)
#12595 Convert files in the src/display/-folder to use optional chaining where possible
#12598 Fail early, in modern GENERIC builds, if globalThis isn't available (PR 11799 follow-up, issue 12596)
#12546 [api-minor] JS -- Add listener for sandbox events only if there are some actions
#12582 JS -- Implement doc object
#12585 Fix popup for highlights without popup (follow-up of #12505)
#12613 Trigger cleanup, once rendering has finished, in PDFThumbnailView.draw
#12616 Improve the cleanup functionality for thumbnails
#12618 Ensure that rendering of thumbnails work correctly on HiDPI displays (issue 9820)
#12621 Follow-up for #12585: set elements class in render instead of in _createQuadrilaterals
#12622 Some hasJSActions, and general annotation-code, related cleanup in the viewer and API
#12624 Update packages and translations
#12569 JS -- Fix events dispatchment and add tests
#12625 Add a new preference, viewerCssTheme, to allow forcing the use of the light/dark viewer CSS themes (issue 12290)
#12630 Reduce, now unnecessary, asynchronicity in the BasePreferences constructor
#12636 Add an AppOptions.setAll method, and use it in PDFViewerApplication._readPreferences
#12567 [api-minor] JS -- hidden annotations must be built in case a script show them
#12604 JS -- Add a sandbox based on quickjs
#12642 [api-minor] Add "contentLength" to the information returned by the getMetadata method
#...

Read more

v2.6.347

03 Sep 21:34
3be9c65
Compare
Choose a tag to compare

This release features support for form filling (AcroForm) and layers (optional content). Moreover, the default viewer is redesigned to match Firefox's Photon design, TypeScript definitions are shipped and various performance improvements and bugfixes are included.

Changes since v2.5.207:

#11948 Bump versions in pdfjs.config and update the getting started page of the website for the new release
#11958 [api-minor] Remove the deprecated PDFDocumentProxy.getOpenActionDestination method (PR 11644 follow-up)
#11967 Do not transform jpeg RGB components
#11964 Fix pdfjs-dist/webpack causing errors with certain configs
#11953 For #11838: trigger fallback bar after user clicks in pdf
#11972 Change the loadedChunks property, on ChunkedStream instances, from an Array to a Set
#11963 Avoid calling Math.pow if possible.
#11974 A couple of small image caching/sending improvements
#11976 Remove unused methods from NetworkManager, in src/display/network.js
#11978 Improve unit test coverage for primitives
#11977 Convert the RefSet primitive to a proper class and use a Set internally
#11985 Convert some Objects to Maps in ChunkedStreamManager, and move the isEmptyObj helper function to the test utils
#11987 Update SVGGraphics to account for globally cached images (PR 11912 follow-up)
#11992 Prevent the (old) preprocessor from appending trailing whitespace when removing closing HTML comments
#11993 Change the dependencies property, on OperatorList instances, from an Object to a Set
#11969 For #11961: collect telemetry on all unique unsupported features that…
#11997 Add basic support for the nullish coalescing operator ??
#11999 Update packages and translations
#12000 Ensure that PDFImage.buildImage won't accidentally swallow errors, e.g. from ColorSpace parsing (issue 6707, PR 11601 follow-up)
#12001 Add local caching of ColorSpaces, by name, in PartialEvaluator.getOperatorList (issue 2504)
#12002 Small improvements in CFFCompiler.encodeNumber and CFFCompiler.encodeFloat
#12004 Convert the code in src/core/worker.js to use ES6 classes
#12005 Convert the code in src/core/cff_parser.js to use ES6 classes
#12017 Convert the PDFPageProxy.intentStates property from an Object to a Map
#12016 Tweak the QueueOptimizer to recognize OPS.paintImageMaskXObject operators as repeated when the "skew" transformation matrix elements are non-zero (issue 8078)
#12021 Move the fetchBuiltInCMap method to the PartialEvaluator.prototype
#12012 Improve (local) caching of parsed ColorSpaces (PR 12001 follow-up)
#12024 Update Needle to 2.5.0 or greater.
#12028 Attempt to detect inline images which contain "EI" sequence in the actual image data (issue 11124)
#12032 Update packages and translations
#12041 Replace Mozilla Labs by just Mozilla
#12049 Enable the no-promise-executor-return ESLint rule
#12036 Add at least some test-coverage for the RenderTask.onContinue functionality
#12043 Add a reduced test-case for issue 4260 (PR 4521 follow-up)
#12044 Adjust the heuristics used when dealing with rectangles, i.e. re operators, with zero width/height (issue 12010)
#12040 Replace non-inclusive "whitelist" term with "allowlist"
#12039 [api-minor] Use the NodeCanvasFactory/NodeCMapReaderFactory classes as defaults in Node.js environments (issue 11900)
#12034 Add local caching of Functions, by reference, in the PDFFunctionFactory (issue 2541)
#12057 Allow BaseLocalCache to, optionally, only allocate storage for caching of references (PR 12034 follow-up)
#12059 Convert the code in src/core/image.js to use ES6 classes
#12060 Convert the code in src/core/evaluator.js to use standard classes
#12072 Bump npm from 6.14.5 to 6.14.6
#12056 Refactor/simplify the "delayedFallback" handling in the default viewer
#12070 Re-factor the idFactory functionality, used in the core/-code, and move the fontID generation into it
#12083 Remove the IR (internal representation) part of the ColorSpace parsing
#12063 Tweak the heuristic, in src/core/jpg.js, that handles JPEG images with a wildly incorrect SOF (Start of Frame) scanLines parameter (issue 10989)
#12092 Update packages and translations
#12090 Stop special-casing the (very unlikely) "no /XObject found"-scenario, when parsing OPS.paintXObject operators, in PartialEvaluator.{getOperatorList, getTextContent}
#12099 Use a RefSet, rather than a plain Object, for tracking already processed nodes in PartialEvaluator.hasBlendModes
#12085 Make the detection of Node.js environments on Electron strict.
#12089 Convert RefSetCache to a proper class and to use a Map internally
#12087 Add local caching of "simple" Graphics State (ExtGState) data in PartialEvaluator.{getOperatorList, getTextContent} (issue 2813)
#12101 Add a new size getter and getRawValues method, to Dict instances, to simplify some code
#12023 Fix auto-rotate for printing landscape PDFs where the first page is also landscape
#12114 Remove a couple of unnecessary PDFJSDev checks from the viewer
#12106 [api-minor] Add an annotation storage in order to save annotation data in acroforms
#12122 Update packages and translations
#12124 Include the browser name when printing unit-test results
#12126 Attempt to reduce intermittent failures in the "cleans up document resources during rendering of page" unit-test
#12125 Improve test bot stability
#12127 Improve how Type3-fonts with dependencies are handled
#12135 [src/core/worker.js] Remove a useless Promise handler from the pdfManagerReady function
#12136 Ignore fetch() errors, in PDFFetchStreamRangeReader, once the request has been aborted
#12107 Add support for checkboxes printing
#12143 Fix hanging reference test (PR 12107 follow-up)
#12141 Populate the find field with the search query when URL has #search hash
#12147 [api-minor] Fix the AnnotationStorage usage properly in the viewer/tests (PR 12107 and 12143 follow-up)
#12144 Prevent Uncaught (in promise) AbortException when running the unit-tests
#12148 Revert "Populate the find field with the search query when URL has #search hash"
#12131 [api-minor] Allow loading pdf fonts into another document.
#12151 Revert "[api-minor] Allow loading pdf fonts into another document."
#12153 Unit test improvements
#12108 Add support for radios printing
#12102 Add types annotations
#12162 Tweak for the type of PageViewportParameters.viewBox (PR 12102 follow-up)
#12161 Add types to functions exported as API in src/pdf.js (PR 12102 follow-up)
#12157 Fix the type of SVGGraphics (PR 12102 follow-up)
#12160 Use typedef to define the type of GlobalWorkerOptions (PR 12102 follow-up)
#12095 Add support for optional marked content.
#12156 Improve the types generation and API documentation (PR 12102 follow-up)
#12163 Re-factor the dispatching of "attachmentsloaded" events, when the PDF document contains no "regular" attachments
#12171 Attempt to reduce intermittent failures in the "multiple render() on the same canvas" unit-test
#12168 Fix the gulp types task to run on Windows, and place the TypeScript definitions correctly in pdfjs-dist
#12172 Fix the type definition of TypedArray. (PR 12156 follow-up)
#12174 Do the AppOptions.get("printResolution") lookup once in web/app.js , when initializing PDFPrintServiceFactory-instances, rather than for every printed page
#12173 [api-minor] Fix the annotationStorage parameter in PDFPageProxy.render
#12179 Add support for Object.fromEntries
#12169 Extract common methods from PDFOutlineViewer/PDFAttachmentViewer into a new abstract BaseTreeViewer class
#12175 Support textfield and choice widgets for printing
#12182 Fix the type of PDFDocumentLoadingTask.destroy.
#12154 [api-minor] Allow loading pdf fonts into another document.
#12187 Add a test-case for issue 4398
#12188 Update packages and translations
#12176 Support multiline textfields for printing
#12177 Support comb textfields for printing
#12186 Fix bad truetype loca tables.
#12192 A couple of (small) tweaks of the AnnotationStorage (PR 12173 follow-up)
#12193 Set direction: ltr; on the canvases used during printing (bug 1335712)
#12191 Remove the disableCreateObjectURL option from web/app_options.js
#12137 Add support for saving forms
#12201 Enable renderInteractiveForms by default.
#12211 Wait until saving has finished before resetting PDFViewerApplication._saveInProgress (PR 12137 follow-up)
#12212 Bug 1643508 - Disable touch-based pinch zooming on pdf.js.
#12210 Keep the original class/function names when minifying code (issue 12209)
#12203 Bug 1392361 - Fix zooming sensitivity on macOS
#12219 Add (basic) support for transfer functions to Images (issue 6931, bug 1149713)
#12227 Include image_decoders-es5/minified-es5 in the pdfjs-dist library (issue 12220)
#12229 Dispatch event when annotations have finished rendering.
#12230 Implement reference testing for printing
#12250 Update the zoom dropdown width calculation to work better in locales with long zoom-strings (PR 11077 follow-up)
#12251 Return the query with the findcontrolstate
#12241 confirm if leaving a modified form without saving
#12248 Support file save triggered from the Firefox integrated version.
#12247 Improve the field value parsing for choice widgets to handle null values
#12256 #12241 followup - move event listener to PDFViewerApplication.load
#12244 fix webpack config problem caused by breaking changes of worker-loader
#12260 Replace menu dropdown icon
#12261 Also enable renderInteractiveForms by default in the viewer components (PR 12201 follow-up)
#12265 Don't warn when navigating away from a modified form, if printing has occurred (issue 12262)
#12267 Update packages and translations
#12263 Fix AcroForm printing/saving edge cases
#12268 Reduce the leading padding for the numPages span (PR 11077 follow-up)
#12270 Accent positioning in...

Read more

v2.5.207

01 Jun 10:33
0974d60
Compare
Choose a tag to compare

This release features performance improvements thanks to improved image caching and JPEG decoding.

Changes since v2.4.456:

#11717 Bump versions in pdfjs.config and update the getting started page of the website for the new release
#11719 Remove the unused wideChars property on Font instances
#11720 Update the eslint-plugin-no-unsanitized package to the latest version
#11721 Don't let Travis run npm update during setup
#11728 Remove unnecessary checks from the PDFDocumentProperties constructor
#11724 Only build the necessary web/ files during the gulp default_preferences task
#11723 Remove variable shadowing from the JavaScript files in the src/display/ folder
#11725 Re-factor PDFViewerApplication.load such that {PDFViewer, PDFThumbnailViewer}.setDocument happens slightly earlier
#11734 Remove old API methods which were previously converted to throwing (PR 11219 follow-up)
#11736 Add passive: false to the wheel event listener used in PDFPresentationMode (issue 11735, PR 10765 follow-up)
#11742 Remove variable shadowing from the JavaScript files in the test/unit/ folder
#11738 Remove variable shadowing from the JavaScript files in the src/core/ folder
#11707 Always prefer the PDF.js JPEG decoder for very large images, in order to reduce peak memory usage (issue 11694)
#11744 The first glyph in CFF CIDFonts must be named 0 instead of ".notdef"
#11646 Ensure that automatic printing still works when the viewer and/or its pages are hidden (bug 1618621, bug 1618955)
#11747 Add passive: false when removing wheel listeners
#11745 Enable the ESLint no-shadow rule
#11755 Remove the unused sizes and encoding properties on Font instances
#11767 Replace the RTL images with CSS transforms of the standard images (issue 11766)
#11655 [api-minor] Remove the getGlobalEventBus viewer functionality, and the eventBusDispatchToDOM option/preference (PR 11631 follow-up)
#11771 Fail early, in modern GENERIC builds, if certain required browser functionality is missing (issue 11762)
#11772 Update packages and translations
#11769 Ensure that Font.charToGlyph won't fail because String.fromCodePoint is given an invalid code point (issue 11768)
#11781 Update the "gulp jsdoc" task to account for API changes in the mkdirp package (PR 11772 follow-up)
#11780 Move the initialization of "page labels"/"metadata"/"auto print" out of PDFViewerApplication.load
#11773 [api-minor] Change Font.exportData to use an explicit white-list of exportable properties, and stop exporting internal/unused properties
#11777 [api-minor] Change Font.exportData to, by default, stop exporting properties which are completely unused on the main-thread and/or in the API (PR 11773 follow-up)
#11746 Create the glyph mapping correctly for composite Type1, i.e. CIDFontType0, fonts (issue 11740)
#11727 Add a heuristic to scale even single-char text, when the horizontal/vertical scaling differs significantly (issue 11713)
#11789 Add a new pdfjs.enablePermissions preference, off by default, to allow the PDF documents to disable copying in the viewer (bug 792816)
#11797 Don't bundle the fallback grab/grabbing cursor images when running gulp mozcentral
#11799 Fail early, in modern GENERIC builds, if certain required browser functionality is missing (PR 11771 follow-up)
#11800 Remove any mention of Gitpod from the README (issue 11732)
#11809 Update Prettier to version 2.0
#11806 [api-minor] Fix the return value of PDFDocumentProxy.getViewerPreferences when no viewer preferences are present (PR 10738 follow-up)
#11810 A couple of small String.fromCodePoint improvements (PR 11698 and 11769 follow-up)
#11805 Always skip over any additional, unexpected, RSTx (restart) markers in corrupt JPEG images (issue 11794)
#11813 Suppress browser autofill on page number
#11821 docs: Fix simple typo, occurences -> occurrences
#11819 [src/core/jpg.js] Remove redundant marker validation at the end of the decodeScan function (PR 11805 follow-up)
#11818 Enable the dot-notation ESLint rule
#11814 Support the vertical writing mode with SVG backend.
#11822 Update packages and translations
#11826 Change the "download" keyboard shortcut (Ctrl+S) handling, in GENERIC/CHROME builds, to utilize the EventBus (issue 11657); add a new "openfile" keyboard shortcut (Ctrl+O), in GENERIC builds
#11823 [src/core/fonts.js] Improve the validateOS2Table function and other code
#11825 Avoid reading the "disablePreferences"/"locale" options, when initializing the viewer, in extension builds
#11831 Use Node LTS releases to fix Travis CI builds (issue 10790)
#11835 [api-minor] Change PageViewport to throw when the rotation is not a multiple of 90 degrees
#11837 Always attempt to dispatch the "webviewerloaded" event at the embedding document (PR 10318 follow-up, issue 11829)
#11844 [api-minor] Immediately release the font.data property once the font been attached to the DOM (PR 11777 follow-up)
#11845 Use the native URL.createObjectURL method more in the web/ folder
#11847 Move the maybeValidDimensions check, used with JPEG images, to occur earlier (PR 11523 follow-up)
#11807 Introduce Puppeteer for handling browsers during tests
#11853 Include the name for interactive form elements
#11834 Preserve error types during translation
#11864 Remove the create-react-app example (issue 11729)
#11868 Update packages and translations
#11869 Various smaller clean-up in gulpfile.js
#11863 Add more categories of unsupported features.
#11872 Gracefully handle annotation parsing errors in Page.getOperatorList (issue 11871)
#11879 Enable the ESLint grouped-accessor-pairs rule
#11873 Use the ESLint no-restricted-syntax rule to ensure that assert is always called with two arguments
#11880 Attempt to respect the "zoom" hash parameter, even when the "nameddest" parameter is present (issue 11875)
#11889 Handle errors individually for each annotation in the _parsedAnnotations getter
#11890 Update ESLint to version 7
#11892 Add a minified-es5 gulp task (issue 11858)
#11905 Reduce the usage of require statements in code-paths not protected by pre-processor and/or run-time checks
#11910 Update packages and translations
#11911 Remove the SystemJS dependency from the web/preferences.js file
#11917 [Firefox] Allow PDF attachments to, once again, be opened directly in the browser (bug 1632644)
#11914 Convert the src/pdf.js and src/pdf.worker.js files to use standard import/export statements
#11919 Reduce usage of SystemJS, in the development viewer, even further
#11912 Attempt to cache repeated images at the document, rather than the page, level (issue 11878)
#11924 Avoid hanging the worker-thread for CMap data with ridiculously large ranges (issue 11922)
#11926 Allow GlobalImageCache.clear to, optionally, only remove the actual data (PR 11912 follow-up)
#11601 [api-minor] Decode all JPEG images with the built-in PDF.js decoder in src/core/jpg.js
#11927 Implement fill opacity for shading patterns in the SVG back-end
#11939 Update Acorn to version 7
#11940 Add comments to the export list in the src/pdf.js file (PR 11914 follow-up)
#11930 Improve the local image caching in PartialEvaluator.getOperatorList
#11943 Remove unused code from the external/builder/builder.js file
#11945 Update packages and translations
#11947 Ensure that that we don't attempt to cache inline images in the GlobalImageCache (PR 11912 follow-up)