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 Uint8Array
s 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 cmap
s (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
-function adding consecutive blank lines
#14899 [api-minor] Include line endings in Line/Polyline Annotation-data (issue 14896)
#14894 Try to remove the mozOpaque
canvas-property (PR 6551 follow-up)
#14911 Use TypedArray.prototype.fill()
a bit more in the code-base
#14910 Ensure that setting the width of the zoom dropdown works correctly (PR 14028 follow-up)
#14918 [api-minor] Modernize and simplify the ProgressBar
class