This release primarily contains bugfixes and optimizations/cleanups, in particular to avoid re-rendering content unnecessarily on e.g. zooming and rotation, which should improve overall viewer performance.
Changes since v3.1.81
- Bump versions in
pdfjs.config
by @timvandermeij in #15749 - Add default icons for FileAttachment annotations (bug 1230933) by @Snuffleupagus in #15747
- Update packages and translations by @Snuffleupagus in #15750
- Slightly modernize the
FontLoader.isSyncFontLoadingSupported
getter by @Snuffleupagus in #15751 - [JS] Fix a rounding issue in printf (bug 1802888) by @calixteman in #15755
- [JS] By default, a text field value must be treated as a number (bug 1802888) by @calixteman in #15757
- [api-minor] Remove all the useless telemetry stuff in the viewer (bug 1802468) by @calixteman in #15758
- Don't add an extra space after a Katakana or a Hiragana at the eol when searching by @calixteman in #15760
- Ignore PDF documents opened from "data:"-URLs when handling internal links (bug 1803050) by @Snuffleupagus in #15762
- [Editor] Change the text annotation cursor for the high dpi screens. by @calixteman in #15718
- Stop duplicating the
platform
getter in multiple files by @Snuffleupagus in #15761 - [Annotation] Send correctly the updated values to the JS sandbox by @calixteman in #15764
- [api-minor] Remove the TextLayer
timeout
parameter (PR 15742 follow-up) by @Snuffleupagus in #15765 - Prevent the
debugger
from breaking on unbalanced save/restore OPS (issue 15767) by @Snuffleupagus in #15768 - [api-minor] Refactor the text layer code in order to avoid to recompute it on each draw by @calixteman in #15722
- Bump decode-uri-component from 0.2.0 to 0.2.2 by @dependabot in #15771
- Remove execution permission on cursor-editorFreeText.svg by @calixteman in #15772
- Enable the
no-typeof-undefined
ESLint plugin rule by @Snuffleupagus in #15752 - [api-minor] Normalize the
view
-getter on the worker-thread by @Snuffleupagus in #15773 - [api-minor] Combine the
textContent
/textContentStream
parameters by @Snuffleupagus in #15779 - Don't re-create the
structTreeLayer
on zooming and rotation by @Snuffleupagus in #15778 - [Editor] Add a very basic and incomplete workaround for issue #15780 by @calixteman in #15786
- Tighten the
vars
-argument for the ESLintno-unused-vars
rule by @Snuffleupagus in #15775 - Remove the unused
DefaultExternalServices.createDownloadManager
options (PR 12191 follow-up) by @Snuffleupagus in #15776 - [api-minor][Editor] Don't use the editor parent which can be null. by @calixteman in #15782
- [Editor] Take all the viewBox into account when computing the coordinates of an annotation in the page (fixes #15789) by @calixteman in #15791
- A few small viewer-related fixes by @Snuffleupagus in #15788
- Fix page-switching for landscape documents with SpreadModes and PresentationMode (PR 14877 follow-up) by @Snuffleupagus in #15798
- Ensure that the various layers always get the correct initial size (issue 15795) by @Snuffleupagus in #15796
- [AnnotationEditorLayerBuilder] Inline the
destroy
code in thecancel
method by @Snuffleupagus in #15800 - Change the
XfaLayerBuilder.render
method to be asynchronous by @Snuffleupagus in #15805 - Set the dimensions of the various layers at their creation by @calixteman in #15770
- Don't attempt to re-create the
annotationLayer
, for pages without any annotations, on zooming and rotation by @Snuffleupagus in #15806 - [api-minor] Add a new
PageViewport
-getter to access the original, un-scaled, viewport dimensions by @Snuffleupagus in #15797 - The annotation layer dimensions must be set before adding some elements (follow-up of #15770) by @calixteman in #15820
- [JS] Handle correctly choice widgets where the display and the export values are different (issue #15815) by @calixteman in #15819
- [JS] Run the named actions before running the format when the file is open (issue #15818) by @calixteman in #15822
- Initialize the
TextHighlighter
-instance lazily inPDFPageView
by @Snuffleupagus in #15826 - Handle possibly undefined parameters once per
AnnotationLayer.render
invocation by @Snuffleupagus in #15824 - [api-minor] Allow specifying an extra-delay, in
RenderTask.cancel
, for worker-thread aborting of operatorList parsing by @Snuffleupagus in #15825 - Don't remove the loading icon from the DOM when a page is resetted by @calixteman in #15829
- [GV] Add a viewer for GeckoView by @calixteman in #15831
- Always parse the entire
startXRefQueue
inXRef.readXRef
(issue 15833) by @Snuffleupagus in #15834 - Protect a few additional DOM element accesses in the viewer (PR 15831 follow-up) by @Snuffleupagus in #15835
- Attempt to expose
OnProgressParameters
in the TypeScript definitions (issue 15828) by @Snuffleupagus in #15832 - Strip out a reserved operator (9) from CFF char strings (fixes issue #15784) by @calixteman in #15841
- [GeckoView] Ignore the pageLayout, from the PDF document, to prevent issues by @Snuffleupagus in #15842
- [TextLayer] Hide the text layer when it's created in order to avoid reflows (fix #15844) by @calixteman in #15845
- Display the text layer before running the a11y stuff (follow-up of #15845) by @calixteman in #15847
- Avoid to compute the client rect of the viewer by @calixteman in #15830
- [Editor] Avoid to scroll when an annotation is commited (fixes issue #15744) by @calixteman in #15849
- [api-minor] Remove the default factories, used to initialize various layers, in the viewer by @Snuffleupagus in #15811
- A couple of small viewer fixes (PR 15811 and 15831 follow-up) by @Snuffleupagus in #15852
- Ensure that the
loadingIconDiv
is always visible (PR 15829 follow-up) by @Snuffleupagus in #15860 - Re-factor searching for incomplete objects in
XRef.indexObjects
(issue 15803) by @Snuffleupagus in #15854 - Update packages and translations by @Snuffleupagus in #15864
- Only redraw after zooming is finished (bug 1661253) by @calixteman in #15812
- Set a z-index for the different layers within a page (fixes #15861) by @calixteman in #15862
- [Regression] Ensure that documents with varying page sizes are initialized correctly (PR 15812 follow-up) by @Snuffleupagus in #15872
- Remove
PDFPageProxy.getJSActions
caching, since it's unused, in the API by @Snuffleupagus in #15870 - Always abort a pending
streamReader
cancel timeout inPDFPageProxy._abortOperatorList
(PR 15825 follow-up) by @Snuffleupagus in #15869 - Only display the loadingIcons when rendering is currently running by @Snuffleupagus in #15867
- Improve name consistency in the viewer (PR 15812 follow-up) by @Snuffleupagus in #15875
- Decouple the loadingBar
background-color
from the rest of the viewer by @Snuffleupagus in #15874