Releases: mozilla/pdf.js
v3.11.174
This release primarily features accessibility improvements for the annotation editor and fixes for the type definitions.
Changes since v3.10.111
- Bump versions in
pdfjs.config
by @timvandermeij in #16876 - Add tagged annotations in the structure tree (bug 1850797) by @calixteman in #16886
- Fix the id used in aria-controls used to make a relationship between the popup and its parent by @calixteman in #16889
- Fix JSDoc types by @stof in #16888
- Ignore null-chars when using structTree-data in the viewer by @Snuffleupagus in #16891
- Stop using
removeNullCharacters
in theaddLinkAttributes
helper function by @Snuffleupagus in #16892 - [Type-definitions] Fix type generator to support import maps by @stof in #16890
- Update packages and translations by @Snuffleupagus in #16895
- A couple of small
InternalRenderTask
changes by @Snuffleupagus in #16881 - Drop redundant styles from .grab-to-pan-grab:active by @Rob--W in #16896
- Make annotations focusable (bug 1851489) by @calixteman in #16898
- Unconditionally render non-form annotations in the annotation layer (bug 1851498) by @calixteman in #16899
- Support downloading FileAttachment annotations with the keyboard by @Snuffleupagus in #16902
- Only call the focus/blur callbacks when it's necessary (bug 1851517) by @calixteman in #16905
- Bump actions/checkout from 3 to 4 by @dependabot in #16897
- [Editor] Avoid to use parent of editors in destroyed pages by @calixteman in #16911
- Construct the correct field name and strip out classes when searching by @calixteman in #16915
- [Editor] Add the parent tag id (if any) to the serialized editors (bug 1845087) by @calixteman in #16916
- Simplify writeObject function by @calixteman in #16921
- Slightly reduce asynchronicity when parsing Annotations by @Snuffleupagus in #16920
- Update packages and translations by @timvandermeij in #16925
- Enable unit test "creates pdf doc from non-existent URL" by @timvandermeij in #16932
- [Editor] Only get back the focus when it has been lost after an editor has been moved in the DOM by @calixteman in #16940
- Ensure that the entire PDF document is loaded before we begin saving it by @Snuffleupagus in #16941
- [Editor] Move an editor in the DOM just after having moved it on the screen by @calixteman in #16944
- [Editor] Change the style of the bounding box and the resizers (bug 1852897) by @calixteman in #16943
- [Editor] Change the colors of the outline and the resizers for selected editors in HCM by @calixteman in #16950
- Make it possible to clear the cache, used by the
getB
function insrc/core/pattern.js
by @Snuffleupagus in #16951 - Remove the remaining closures in the
src/core/colorspace.js
file by @Snuffleupagus in #16954 - Simplify the
EvaluatorPreprocessor.opMap
getter a little bit by @Snuffleupagus in #16956 - Use
await
even more in the "SaveDocument" worker-thread handler by @Snuffleupagus in #16957 - Update Puppeteer to version 21.2.1 by @timvandermeij in #16958
- Remove the closure from the
CipherTransformFactory
class by @Snuffleupagus in #16959 - Remove (some) closures from
web/debugger.js
by @Snuffleupagus in #16961 - Fix integration test "Interaction in bug1844576.pdf must check that a field has the correct formatted value" by @timvandermeij in #16962
- Fix integration test "FreeText Editor Move several FreeTexts must move several annotations" by @timvandermeij in #16964
- [Editor] Add the ability to create/update the structure tree when saving a pdf containing newly added annotations (bug 1845087) by @calixteman in #16938
- [Editor] Add a button to trigger a dialog for adding an alt text (bug 1844952) by @calixteman in #16955
- [Editor] Avoid to have some transparency in the icon used in the 'Alt text' button by @calixteman in #16972
- Fix a CSS linter issue in removing a useless comma by @calixteman in #16974
- [Editor] Use the same height as in the svg for icons for the alt-text button by @calixteman in #16975
- [Editor] Add a dialog box in order to get alt-text data (bug 1844952) by @calixteman in #16952
- [Editor] Make the border of the resizers slightly rounded by @calixteman in #16980
- [Editor] Update alt text dialog description by @calixteman in #16979
- Ignore optional content with missing /Type-entries by @Snuffleupagus in #16981
- [Editor] Allow the user to add and save an alt-text for images (bug 1844952) by @calixteman in #16977
- [Editor] Remove copy/paste listener when alt text dialog is displayed by @calixteman in #16982
- [Editor] Add a tooltip showing the alt text when hovering the alt-text button (bug 1844952) by @calixteman in #16983
- Don't try to close the
altText
dialog if it's not open (PR 16977 follow-up) by @Snuffleupagus in #16984 - [Editor] Add more telemetry for the 'add image' feature (bug 1853960) by @calixteman in #16987
- [Editor] Change some strings in the alt-text dialog by @calixteman in #16986
- [Editor] Change the colors for the disabled Save button in alt text dialoag in HCM by @calixteman in #16985
- Use the new "reporttelemetry" event in more viewer components by @Snuffleupagus in #16989
- [Editor] Add an aria-label to the alt-text button depending on its state by @calixteman in #16990
- [Editor] Tweak few values after review from UX by @calixteman in #16988
- Ensure that all "alt_text_*" save-telemetry values are boolean (PR 16987 follow-up) by @Snuffleupagus in #16991
- Enable the Stylelint
declaration-block-no-duplicate-properties
rule (issue 16995) by @Snuffleupagus in #16996 - Make one of the m-c linters happy by @calixteman in #16998
- [GeckoView] Avoid bundling the
AltTextManager
class, since it's unused by @Snuffleupagus in #16993 - [GeckoView] Exclude
annotation_editor_layer_builder.css
in the build (issue 16994) by @Snuffleupagus in #16999 - Restore the
collectFields
parameter in the Annotation code (issue 17000) by @Snuffleupagus in #17003 - Prevent wheel/touch zooming in the viewer when a dialog is open by @Snuffleupagus in #17004
- [Editor] Avoid to darken the current editor when opening the alt-text dialog by @calixteman in #17002
- [Editor] Make the altText dialog labels part of telemetry (PR 16987 follow-up) by @Snuffleupagus in #17009
- [Editor] Darken the toolbar when the alt-text dialog is opened by @calixteman in #17010
- Don't bother trying to unregister the "reporttelemetry" event listener by @Snuffleupagus in #17014
- [Editor] Tweak the save flow in the alt-text dialog by @calixteman in #17005
- [Editor] Let the Save button always enabled in the alt-text dialog by @calixteman in #17015
- Don't reset
this.#currentEditor
when destroying the dialog by @Snuffleupagus in #17011 - [Editor] Report telemetry when closing the altText dialog with
Esc
(PR 16987 follow-up) by @Snuffleupagus in #17012 - [Editor] Disable context menu on alt-text button and in the associated dialog by @calixteman in #17016
- Fix integration test "FreeText Editor FreeText (edit existing in double clicking on it) must move an annotation" by @timvandermeij in #16967
- Fix integration test "Interaction in issue15053.pdf must check that a button and text field with a border are hidden" by @timvandermeij in https://github.com/mozilla/pd...
v3.10.111
This release primarily features improvements and bugfixes for the annotation editor.
Changes since v3.9.179
- Bump versions in
pdfjs.config
by @timvandermeij in #16769 - Add the color changes in the annotation storage by @calixteman in #16767
- Fix typo in the
baseVersion
commit hash (PR 16769 follow-up) by @Snuffleupagus in #16770 - Make sure WillPrint ran before starting printing by @calixteman in #16766
- [GeckoView] Add missing CSS variables for the dialog functionality by @Snuffleupagus in #16771
- [Editor] Limit image types to the ones supported by the browser (bug 1846230) by @calixteman in #16773
- [api-minor] Don't print hidden annotations (bug 1815196) by @calixteman in #16029
- [GeckoView] Allow to query pdf.js to know if we can avoid to print a pdf (bug 1846296) by @calixteman in #16776
- [api-minor] Deprecate the
PDFDocumentProxy.getJavaScript
method by @Snuffleupagus in #16779 - [Editor] Let SVG images be resized horizontally/vertically without keeping the aspect ratio (bug 1846727) by @calixteman in #16780
- [Editor] Use a getter and not a function for the _checkIfSVGFitsInCanvas (bug 1846727) by @calixteman in #16784
- [Editor] Stop the resize session when the window is blurred by @calixteman in #16786
- [Editor] Refactor dragging and dropping an editor (bug 1802895, bug 1844618) by @calixteman in #16781
- Update packages and translations by @Snuffleupagus in #16795
- Attempt to expose e.g.
pdfjsLib
globally regardless of how the library is imported (issue 16778) by @Snuffleupagus in #16790 - Use the
round
CSS function in thesetLayerDimensions
helper function by @Snuffleupagus in #16794 - [Editor] Change the resize cursors to bidirectional variants by @Snuffleupagus in #16799
- [Editor] Fix the dimensions of the annotation editor layer (follow-up of #16794) by @calixteman in #16798
- [Annotation] Strip out the array index in the path only when the path is from a terminal node (bug 1847733) by @calixteman in #16807
- Take fill-alpha into account with default icons for FileAttachment annotations (issue 16800) by @Snuffleupagus in #16804
- [Editor] Move the stamp button on the right of the pen one (bug 1847707) by @calixteman in #16802
- [Editor] Fix the resizing of an editor when it's rotated (bug 1847268) by @calixteman in #16793
- [Editor] Avoid to add a new line when hitting enter with a selected freetext editor by @calixteman in #16808
- [Editor] Move an the editor div in the DOM once a translation with the keyboard is done by @calixteman in #16809
- [Editor] Avoid to unselect some editors when the main window is focused by @calixteman in #16812
- [Editor] Move the parameter elements for FreeText and Ink annotations at the right place (follow-up of #16802) by @calixteman in #16813
- [Editor] Avoid to add a cancelled added image in the undo/redo stack by @calixteman in #16818
- Introduce even more optional chaining in the code-base by @Snuffleupagus in #16815
- [Editor] Avoid to have slightly truncated images because of non-integer canvas dimensions by @calixteman in #16820
- [Editor] Add the possibility to move all the selected editors with the mouse (bug 1847894) by @calixteman in #16811
- [Editor] Don't forget to encrypt image streams (see issue #16821) by @calixteman in #16822
- Fallback to check all pages when getting the pageIndex of FieldObjects by @Snuffleupagus in #16823
- [Editor] Avoid to unselect when a new page is rendered by @calixteman in #16824
- [Editor] Avoid showing the context menu or resizing when a resizer is right clicked by @calixteman in #16825
- Re-factor
PDFViewerApplication._initializeAutoPrint
slightly (PR 16779 follow-up) by @Snuffleupagus in #16810 - [Editor] Add a button to explicitly add an image (bug 1848108) by @calixteman in #16819
- [Editor] Remove the stamp editor displayed when the image was loading (bug 1848313) by @calixteman in #16826
- [Editor] Add the possibility to paste an image from the clipboard (bug 1848317) by @calixteman in #16828
- Remove the
src/core/
Babel excludes, since they no longer seem necessary by @Snuffleupagus in #16829 - Remove the "no-babel-preset" comment used with the LIB build-target (PR 16829 follow-up) by @Snuffleupagus in #16831
- Avoid using the global
workerPort
when destruction has started, but not yet finished (issue 16777) by @Snuffleupagus in #16830 - Improve the "write a new annotation, save the pdf and check that the text content is correct" unit-test (PR 16559 follow-up) by @Snuffleupagus in #16835
- Add a helper method to reduce duplication in
StampEditor.#getBitmap
by @Snuffleupagus in #16840 - Update the
StampEditor.isEmpty
method to handle File (PR 16828 follow-up) by @Snuffleupagus in #16844 - Update packages and translations by @Snuffleupagus in #16850
- Add a unit-test for the "correct" way of using the global
workerPort
in parallel (PR 16830 follow-up) by @Snuffleupagus in #16834 - Initialize the
PDFWorker.#workerPorts
WeakMap lazily by @Snuffleupagus in #16852 - Add the
.mjs
file-extension to the EditorConfig by @Snuffleupagus in #16860 - Add the "aria-controls" attribute to the StampEditor toolbar-button by @Snuffleupagus in #16858
- Revert fix for bug 1838855 (bug 1849876) by @calixteman in #16862
- Don't reset all fields when the resetForm argument is an array by @calixteman in #16864
- Exclude
lineEndings
, in Annotation-data, in MOZCENTRAL builds (PR 14899 follow-up) by @Snuffleupagus in #16856 - Introduce more optional chaining in the code-base by @Snuffleupagus in #16875
v3.9.179
This release features improvements in the areas of annotation editing (including a new stamp editor), accessibility, form rendering/saving, text selection/copying and other bugfixes.
Changes since v3.8.162
- Bump versions in
pdfjs.config
by @timvandermeij in #16629 - Tweak the README slightly by @Snuffleupagus in #16635
- [Editor] Fix dimensions of a rotated FreeText after a dimensions change by @calixteman in #16637
- [Editor] When saving/printing a FreeText, use the identity matrix for the AP and set the cm when rendering it by @calixteman in #16640
- [Editor] Move the 'keep aspect ratio' stuff to the AnnotationEditor level by @calixteman in #16641
- [Editor] Use css aspect-ratio property to keep the aspect ratio during resize by @calixteman in #16645
- Fix typos when handling CMYK colors in
src/core/default_appearance.js
by @Snuffleupagus in #16646 - [Editor] Add a basic stamp editor (bug 1790255) by @calixteman in #16585
- [Editor] Add l10n-strings for the Stamp-editor (PR 16585 follow-up) by @Snuffleupagus in #16649
- Improve
parseAppearanceStream
to handle more "complex" ColorSpaces by @Snuffleupagus in #16648 - [Editor] Avoid to throw when deleting some invisible editors by @calixteman in #16652
- [Editor] Support svg images in the stamp annotation by @calixteman in #16650
- Don't try to hide an already invisible PopupAnnotation (issue 16660) by @Snuffleupagus in #16661
- [Editor] Edit an existing FreeText annotation in double-clicking on it (bug 1787298) by @calixteman in #16659
- Add unit-tests to check that more PDF.js APIs expose the expected functionality by @Snuffleupagus in #16658
- [CRX] Drop code supporting ancient Chrome versions by @Rob--W in #16631
- Correct recognition of fragments at document load by @Rob--W in #16630
- [ESM] Convert the
external/importL10n
-folder to use standard modules by @Snuffleupagus in #16663 - [ESM] Convert
parseMinified
to useimport()
syntax by @Snuffleupagus in #16664 - [ESM] Convert most of
test
-folder to use standard modules by @Snuffleupagus in #16665 - [ESM] Convert the "wintersmith"-task to use
import()
syntax by @Snuffleupagus in #16666 - [ESM] Convert the "cmaps"-task to use
import()
syntax by @Snuffleupagus in #16667 - [ESM] Convert the "default preferences"-handling to use
import()
syntax by @Snuffleupagus in #16671 - [Editor] Cheat the stamp editor icon to make a linter in m-c happy by @calixteman in #16672
- [ESM] Convert the
gulpfile
to use standard modules by @Snuffleupagus in #16668 - [ESM] Convert the
external/builder/
-folder to use standard modules by @Snuffleupagus in #16669 - [Editor] Try to make the position of an edited FreeText the more accurated as possible by @calixteman in #16642
- Re-enable editing, if necessary, when exiting PresentationMode (PR 16659 follow-up) by @Snuffleupagus in #16675
- Tweak the
writeStream
implementation slightly by @Snuffleupagus in #16678 - Access the
isOffscreenCanvasSupported
option once inPDFViewerApplication._initializeViewerComponents
by @Snuffleupagus in #16683 - [Editor] Always use the data url when loading a SVG in order to avoid CSP issue (bug 1843255) by @calixteman in #16686
- [Editor] Resize the image when the page is zoomed by @calixteman in #16690
- Update packages and translations by @Snuffleupagus in #16693
- Ensure that a test-suite that runs no tests is treated as a failure by @Snuffleupagus in #16695
- Enable more ESLint
unicorn
plugin rules by @Snuffleupagus in #16697 - Re-factor the
PDFScriptingManager
-class for the viewer-components by @Snuffleupagus in #16687 - [GeckoView] Fix l10n of the download toolbar-button (PR 16340 follow-up) by @Snuffleupagus in #16701
- [Editor] Avoid to have some part of an editor outside its page (bug 1843303) by @calixteman in #16689
- [Editor] Use 2 decimals for editor positions and dimensions by @calixteman in #16702
- [api-minor] Let Babel handle the necessary
core-js
polyfills automatically by @Snuffleupagus in #16703 - Remove most build-time
require
-calls from thesrc/display/
-folder by @Snuffleupagus in #16698 - [Editor] Don't forget to generate non-missing images when printing (bug 1844036) by @calixteman in #16706
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #16707
- [Editor] Bind redo action on meta+shift+z on mac (bug 1844293) by @calixteman in #16709
- Draw correctly background images in ref tests by @calixteman in #16713
- [Annotation] Use the clip-path property when an annotation has some quad points by @calixteman in #16492
- Don't reset temporary XRef-entries during saving (PR 16392 follow-up) by @Snuffleupagus in #16717
- [Editor] Allow to delete an editor in using the Delete key (aka fn+backspace) (bug 1844625) by @calixteman in #16719
- Text annotations must use their own canvas when their appearance is generated (bug 1844576) by @calixteman in #16720
- Don't get the text content for an annotation when /NeedAppearances is true (bug 1844583) by @calixteman in #16721
- Don't uselessly change the filter when drawing (bug 1508765) by @calixteman in #16722
- XFA - Set storage values to select and option elements by @TaTo30 in #16714
- Enable the
no-lonely-if
ESLint rule by @Snuffleupagus in #16715 - Enable the ESLint
no-var rule
in theextensions/firefox/
folder by @Snuffleupagus in #16724 - Update Stylelint to the latest version by @Snuffleupagus in #16725
- Update packages and translations by @Snuffleupagus in #16728
- Remove the
useOnlyCssZoom
preference by @Snuffleupagus in #16729 - Remove the
vinyl-fs
dependency by @timvandermeij in #16730 - [GeckoView] Fix string for download button by @calixteman in #16726
- Don't replace Acroform dictionary if nothing has changed when saving (bug 1844572) by @calixteman in #16718
- [api-minor] Attempt to prevent Node.js-specific polyfill errors from completely breaking the library by @Snuffleupagus in #16733
- [Editor] Avoid spurious text selection when double clicking to add a FreeText by @calixteman in #16736
- Fix copying of the reduced Planck constant by @Snuffleupagus in #16735
- [Editor] Add some resizers all around an editor (bug 1843302) by @calixteman in #16732
- [Editor] Use inset instead of top/left in css by @calixteman in #16737
- Re-factor how the
debugger
accesses API-functionality by @Snuffleupagus in #16738 - [Editor] Set keyboard events on window instead of the main container by @calixteman in #16740
- [Editor] Avoid to trigger an editor creation when pinching on a touchscreen by @calixteman in #16741
- Improve rendering of buttons in the toolbar in HCM (bug 1845515) by @calixteman in #16748
- [Editor] Make editors movable in using the keyboard (bug 1845088) by @calixteman in #16746
- [Editor] Use the same keyboard shortcut as in Preview to move an editor on mac by @calixteman in #16749
- Enable the
unicorn/prefer-ternary
ESLint plugin rule by @Snuffleupagus in #16753 - [Editor] Add the possibility to move an empty freetext editor with the keyboard (bug 1845088) by @calixteman in #16750
- [Editor] Reduce a bit of duplication on
_keyboardManager
initialization by @Snuffleupagus in https://github.com/mozilla/pdf.js/p...
v3.8.162
This release features improvements in the areas of annotation editing/saving/printing, font conversion, accessibility and performance.
Changes since v3.7.107
- Bump versions in
pdfjs.config
by @timvandermeij in #16487 - Update Puppeteer to version 20 by @timvandermeij in #16489
- [Editor] Add few more info when saving ink data (thickness, opacity, β¦) by @calixteman in #16494
- Try to not omit some values when printing a choice list with several selected items by @calixteman in #16501
- Fix canvasMaxAreaInBytes type by @wojtekmaj in #16504
- Fix more regressions from PR 15812 by @Snuffleupagus in #16507
- export ImageKind by @maxired in #16505
- Fix incorrect
USERACTIVATION_CALLBACKID
import (15618 follow-up) by @Snuffleupagus in #16511 - Use the
Util.getAxialAlignedBoundingBox
helper function more by @Snuffleupagus in #16497 - Enable the
import/named
ESLint plugin rule by @Snuffleupagus in #16514 - [editor] Initialize
KeyboardManager
-instances lazily by @Snuffleupagus in #16516 - [api-minor] Update the minimum supported Google Chrome version to 92 by @Snuffleupagus in #16499
- Improve handling of mismatching /BaseFont and /FontName entries for non-embedded fonts (issue 7454) by @Snuffleupagus in #16513
- [api-minor] Make the AnnotationLayer an object in order to use it in the AnnotationEditorLayer by @calixteman in #16508
- Limit some
PDFRenderingQueue
-related code to the GENERIC viewer by @Snuffleupagus in #16495 - Enable more
import
ESLint plugin rules by @Snuffleupagus in #16517 - Enable the
import/no-cycle
ESLint plugin rule by @Snuffleupagus in #16515 - Improve Puppeteer's
trimCache
API usage by @timvandermeij in #16519 - Remove unused variables in
InkAnnotation.createNewAppearanceStream
(issue 16518, PR 16494 follow-up) by @Snuffleupagus in #16520 - [Editor] Connect then annotation layer and the editor one by @calixteman in #16521
- [Editor] Guess font size and color from the AS of FreeText annotations by @calixteman in #16522
- [Editor] Allow to undo/redo committed text modifications for FreeText by @calixteman in #16525
- [Editor] Commit the text when the user hits ctrl+s (bug 1831574) by @calixteman in #16528
- [Editor] Fix test failures in m-c because of the new FreeText undo/redo stuff by @calixteman in #16533
- Concat data when push fails in the CFF compiler by @calixteman in #16539
- [Editor] Add the possibility to update an existing annotation with some new properties when saving or printing by @calixteman in #16523
- Update packages and translations by @Snuffleupagus in #16542
- Improve SMask/Mask lookup when parsing inline images by @Snuffleupagus in #16541
- Enable the
unicorn/prefer-optional-catch-binding
ESLint plugin rule by @Snuffleupagus in #16544 - [api-minor] Remove the
type
fromRenderingCancelledException
(PR 16226 follow-up) by @Snuffleupagus in #16550 - Ensure that
cleanup
during rendering is actually ignored, to prevent a blank canvas by @Snuffleupagus in #16551 - Limit more code to GENERIC builds by @Snuffleupagus in #16543
- Add a container for Signature with their own canvas by @calixteman in #16554
- [Editor] Allow to edit FreeText annotations by @calixteman in #16535
- [Editor] Don't add an editor for empty FreeText annotations by @calixteman in #16555
- Disable events on canvas in the annotation layer by @calixteman in #16557
- [Editor] Avoid to have duplicated entries in the Annot array when saving an existing and modified annotation by @calixteman in #16556
- Add a test to check that the compression is ok when saving an annotation by @calixteman in #16559
- Improve handling of /Filter-entries in
writeStream
by @Snuffleupagus in #16558 - [Editor] Avoid an exception when copying an existing editor by @calixteman in #16561
- Guess that a checkbox belongs to a group in using its T value (bug 1838855) by @calixteman in #16563
- [Editor] Show hidden annotations once editing is finished by @calixteman in #16567
- [api-minor] Make the popup independent of their associated annotations by @calixteman in #16552
- Fix integration tests by @calixteman in #16570
- [api-minor] Ensure that the
AnnotationLayer
gets a default l10n-instance in GENERIC builds (PR 16552 follow-up) by @Snuffleupagus in #16572 - [Editor] Don't make editable an empty freetext annotation by @calixteman in #16579
- Remove the
OverlayManager.unregister
method since it's completely unused by @Snuffleupagus in #16580 - [Editor] Hide visible popups when editing by @calixteman in #16578
- Simplify the
sign
handling in theLexer.getNumber
method by @Snuffleupagus in #16581 - [Firefox] Disable the ability to change preferences directly from the viewer by @Snuffleupagus in #16583
- Move the
fixupLangCode
helper function into theweb/genericl10n.js
file by @Snuffleupagus in #16573 - Add a unit-test to check that the official PDF.js API exposes the expected functionality by @Snuffleupagus in #16587
- [Firefox] Simplify
FirefoxPreferences._readFromStorage
(PR 16583 follow-up) by @Snuffleupagus in #16597 - Remove a couple of unused constants from
src/shared/util.js
by @Snuffleupagus in #16590 - [api-minor] Remove the default-factories from the viewer components (PR 15811 follow-up) by @Snuffleupagus in #16592
- [api-minor] Re-factor the
PDFScriptingManager
class to use private fields/methods by @Snuffleupagus in #16569 - [CRX] Set minimum_chrome_version to 88 by @Rob--W in #16600
- Update packages and translations by @Snuffleupagus in #16598
- Run the PDF.js-viewer API unit-test in Node.js environments (PR 16592 follow-up) by @Snuffleupagus in #16604
- Use nullish coalescing when handling the
TESTING
build-target by @Snuffleupagus in #16602 - [GeckoView] Remove the
enableFloatingToolbar
preference by @Snuffleupagus in #16605 - Improve highlightments and popups in HCM (bug 1830850) by @calixteman in #16593
- Re-factor how HCM highlight-filters are handled in the viewer components (PR 16593 follow-up) by @Snuffleupagus in #16608
- [Editor] Add support for printing/saving newly added Stamp annotations by @calixteman in #16588
- Fully remove the
canvasFactory
option fromPDFPageProxy.render
(PR 16242 follow-up) by @Snuffleupagus in #16623 - Move the
transfers
computation into theAnnotationStorage
class by @Snuffleupagus in #16620 - Remove outdated polyfill comment from
src/pdf.image_decoders.js
by @Snuffleupagus in #16622 - Improve lint-chromium to output actionable information by @Rob--W in #16607
- Revert "Temporarily stop listing the official Chrome extension in the main README" by @Rob--W in #16601
- [api-minor] Remove the
CSS.supports
checks for thepageColors
-option in the GENERIC viewer by @Snuffleupagus in #16626 - [api-minor] Stop "supporting" binary data provided as
Buffer
in Node.js environments (PR 16055 follow-up) by @Snuffleupagus in #16627 - A couple of small tweaks of the
PDFCursorTools
class by @Snuffleupagus in #16616 - Fix reading property of null object in chrome extension's updateEmbedElement function by @erm1116 in #16612
- Inline the
webViewerInitialized
function inPDFViewerApplication.run
by @Snuffleupagus in https://github.com/m...
v3.7.107
This release features improvements in the areas of font conversion and substitution, annotation rendering and data compression, ink tool smoothing, text selection and extraction, image rendering and canvas rendering performance.
Changes since v3.6.172
- Bump versions in
pdfjs.config
by @timvandermeij in #16399 - [api-minor] Update the minimum supported Node.js version to 18 by @Snuffleupagus in #16293
- Introduce some optional chaining in the
src/core/xfa/
folder by @Snuffleupagus in #16398 - Make something similar to Acrobat when Underline annotation has no appearance by @calixteman in #16397
- Compress the data when saving annotions by @calixteman in #16392
- [api-minor] Use a local font or fallback on an embedded one (if it exists) for non-embedded fonts (bug 1766039) by @calixteman in #16363
- Add a cache to avoid to load several times a local font by @calixteman in #16408
- Reduce some duplication when toggling "expanded" buttons in the viewer toolbars by @Snuffleupagus in #16410
- [api-minor] Update the minimum supported Safari version to 15.4 by @Snuffleupagus in #16401
- Move the sidebar-resizing handling into the
PDFSidebar
class by @Snuffleupagus in #16413 - For missing font, use a local font if it exists even if there's no standard substitution by @calixteman in #16416
- Update packages and translations by @Snuffleupagus in #16417
- Enable the
unicorn/no-useless-promise-resolve-reject
ESLint plugin rule by @Snuffleupagus in #16415 - Update
jasmine
to version 5 by @Snuffleupagus in #16418 - Add tests for the font substitution by @calixteman in #16421
- Check the
css
property in thegetFontSubstitution
unit-tests by @Snuffleupagus in #16422 - [GeckoView] Add a Nimbus experiment for the toolbar (bug 1833093) by @calixteman in #16425
- Simplify the code to generate font substitution information by @calixteman in #16420
- For non-embedded fonts, don't generate the fallback several times by @calixteman in #16426
- Update
package-lock.json
to lockfileVersion=3 by @Snuffleupagus in #16430 - Warn when pdf.js can't load an OS font by @calixteman in #16431
- Attempt to fallback to a default font, for non-available ones, in more cases (issue 16432) by @Snuffleupagus in #16434
- For text widgets, get the text from the AP stream instead of from the format callback (bug 1825002) by @calixteman in #16433
- Introduce more optional chaining in the
src/core/
folder by @Snuffleupagus in #16424 - Simplify the
fontID
handling inPartialEvaluator.loadFont
by @Snuffleupagus in #16437 - Add a localization note to explain that 'Open in app' strings are for mobile (bug 1833858) by @marco-c in #16438
- Flush the current chunk when the font changed because of a restore op (issue #14755) by @calixteman in #16439
- Introduce even more modern JavaScript features in the code-base by @Snuffleupagus in #16440
- [api-minor] Slightly shorten some
idFactory
strings by @Snuffleupagus in #16443 - Extend
getNonStdFontMap
for non-embedded Impact fonts (bug 1365930) by @Snuffleupagus in #16446 - Improve performance of canvas::rescaleAndStroke by around 30% (bug 1135277) by @calixteman in #16448
- Stop trying to sort the attachments in the sidebar by @Snuffleupagus in #16449
- Sanitize the glyph bounding box by @calixteman in #16450
- [GeckoView] Add some telemetry for the toolbar buttons (bug 1829216) by @calixteman in #16453
- [Editor] Improve curve smoothing for Ink tool (bug 1789443) by @calixteman in #16445
- Take into account the final space if any in the TJ command by @calixteman in #16462
- Improve "EI" detection in inline images (PR 12028 follow-up, issue 16454) by @Snuffleupagus in #16461
- Ignore named encoding for non-embedded symbol fonts (issue 16464) by @Snuffleupagus in #16465
- Attempt to improve non-embedded Wingdings font support (bug 1652224) by @Snuffleupagus in #16451
- Avoid to have a null fallback if none has been provided by @calixteman in #16467
- [GeckoView] Remove the
Toolbar
-stub since the viewer has an actual toolbar now by @Snuffleupagus in #16466 - Extract all the text of text annotations by @calixteman in #16472
- Reset the formatted value when after a text field has been modified by @calixteman in #16474
- Re-factor the
isPageVisible
-handling in the find-controller (PR 10217 follow-up) by @Snuffleupagus in #16479 - Update packages and translations by @Snuffleupagus in #16481
- Introduce a "thumbnailrendered" event to simplify cleanup after thumbnail rendering (PR 12613 follow-up) by @Snuffleupagus in #16470
- [OTS] Remove cntrmask instruction with no stem in charstring (bug 1529502) by @calixteman in #16483
- Re-factor updating of thumbnails in the
PDFSidebar
-class by @Snuffleupagus in #16484
v3.6.172
This release features improvements in the areas of performance, text selection/searching, image/pattern rendering, accessibility and documentation/types.
Changes since v3.5.141
- Bump versions in
pdfjs.config
by @timvandermeij in #16244 - Reduce duplication when dispatching the "switchannotationeditorparams" event by @Snuffleupagus in #16248
- [api-minor] Remove SVG-rendering from the viewer (PR 15173 follow-up) by @Snuffleupagus in #16226
- [Firefox] Add CSS at-page size when printing from FirefoxPrintService (bug 1820651) by @fchasen in #16241
- Tweak the
--scale-factor
CSS-variable warning threshold (issue 16254) by @Snuffleupagus in #16256 - [GeckoView] Add a basic toolbar with a download button for GV (bug 1823164) by @calixteman in #16260
- Tweak the
loadingBar
CSS to better support RTL locales by @Snuffleupagus in #16261 - Tweak the
pageNumber
CSS to better support RTL locales by @Snuffleupagus in #16262 - Force-install when using
gulp dist-install
(issue 15435) by @Snuffleupagus in #16246 - [api-minor] Update the minimum supported Google Chrome version by @Snuffleupagus in #16249
- [Firefox] Use
float: inline-start/inline-end
directly in MOZCENTRAL builds (PR 15968 follow-up) by @Snuffleupagus in #16265 - Thin whitespaces must have their own span by @calixteman in #16225
- Attempt to also cache images at the "page"-level (issue 16263) by @Snuffleupagus in #16268
- Fix search of numbers inside fractions by @calixteman in #16275
- Skip transfers, in
LoopbackPort.postMessage
, for PDF.jslegacy
-builds (issue 16255) by @Snuffleupagus in #16279 - [GeckoView] Show the download button by default and add a pref to disable it (bug 1827963) by @calixteman in #16284
- Avoid when it's possible to use Array.concat when compiling a CFF font by @calixteman in #16292
- Limit the
Path2D
-checks in the worker-thread to Node.js (PR 16238 follow-up, issue 16289) by @Snuffleupagus in #16291 - Remove
CFFCompiler.compileGlobalSubrIndex
, and simplifyCFFCompiler.compileTypedArray
by @Snuffleupagus in #16294 - Reduce some duplication when toggling buttons in the viewer toolbars by @Snuffleupagus in #16281
- Slightly modernize print-related code by @Snuffleupagus in #16288
- Add the possibility to copy all the pdf text whatever the rendered pages are (bug 1788035) by @calixteman in #16286
- Remove null chars, i.e.
\u0000
, when getting all text (PR 16286 follow-up) by @Snuffleupagus in #16297 - Create the "hiddenCopyElement" in the
PDFViewer
constructor (PR 16286 follow-up) by @Snuffleupagus in #16298 - Update packages and translations by @Snuffleupagus in #16296
- Update TypeScript to version
5
by @Snuffleupagus in #16299 - [api-minor] Add support, in
PDFFindController
, for mixing phrase/word searches (issue 7442) by @Snuffleupagus in #16247 - Use CustomEvent when dispatching the "webviewerloaded" event by @Pascal-D in #16295
- [Editor] Take into account the initial rotation (issue #16278) by @calixteman in #16301
- [api-minor] Don't normalize the text used in the text layer. by @calixteman in #16200
- [GeckoView] Don't change style for the download button when focused/hovered by @calixteman in #16308
- Compatible with ResizeObserver borderBoxSize in legacy safari by @linxianxi in #16311
- Correctly clip the text in the text layer (fixes #16316) by @calixteman in #16318
- Disable the "copy all text" feature when
enablePermissions
is set (PR 16286 follow-up) by @Snuffleupagus in #16320 - Enforce double-colon notation for CSS pseudo-elements by @Snuffleupagus in #16317
- Introduce some
:is
usage in the xfaLayer CSS by @Snuffleupagus in #16310 - Introduce some
:is
usage in the textLayer CSS by @Snuffleupagus in #16313 - Introduce some
:is
usage in the PDFViewer CSS by @Snuffleupagus in #16314 - Introduce some
:is
usage in the annotationLayer CSS by @Snuffleupagus in #16315 - Introduce some
:is
usage in the viewer CSS by @Snuffleupagus in #16323 - Introduce some
:is
usage in the debugger CSS by @Snuffleupagus in #16324 - Update
eslint-plugin-mozilla
to avoid having to force-install packages (issue 15429) by @Snuffleupagus in #16327 - Remove the
PRODUCTION
build-target by @Snuffleupagus in #16305 - Don't include Chrome-specific CSS rules in MOZCENTRAL builds by @Snuffleupagus in #16326
- Remove unnecessary closures in the CMap code by @Snuffleupagus in #16331
- Remove the remaining unnecessary closures in the
src/core/primitives.js
file by @Snuffleupagus in #16332 - Remove the
PDF20
closure, in thesrc/core/crypto.js
file by @Snuffleupagus in #16334 - Don't force-install packages in the CI job anymore by @timvandermeij in #16335
- Update translations and packages by @timvandermeij in #16338
- Don't use the deprecated
CustomEvent.initCustomEvent
method anymore by @timvandermeij in #16336 - [GeckoView] Change the toolbar for a static one on the top of the viewer (bug 1829366) by @calixteman in #16340
- Allow text-selection, but not copying, when
enablePermissions
is set (PR 16320 follow-up) by @Snuffleupagus in #16333 - Prevent incomplete copy-all behaviour while text-extraction is running (PR 16286 follow-up) by @Snuffleupagus in #16347
- Remove the unused
getXhr
-option in theNetworkManager
constructor by @Snuffleupagus in #16357 - Avoid some repeated
stringToBytes
-calls in thesrc/core/crypto.js
file by @Snuffleupagus in #16354 - [api-minor] Stop including the "lib"-build in the
pdfjs-dist
repository by @Snuffleupagus in #16350 - Update the styling of the findbar
findMsg
-element (issue 16355) by @Snuffleupagus in #16356 - Declare the
linkService
andl10n
properties as optional in thePDFViewerOptions
documentation by @timvandermeij in #16361 - Fix two intermittents issues in integration tests by @calixteman in #16344
- Chmod ugo-x gv-toolbarButton-download.svg by @calixteman in #16365
- Introduce a GitHub Actions workflow for publishing the website by @timvandermeij in #16364
- Update type documentations for #16307, #16359 by @SebCorbin in #16362
- Include the entire
git
history in the work-flows (issue 16366) by @Snuffleupagus in #16371 - Limit the
publish_website.yml
work-flow to only themaster
branch (issue 16369) by @Snuffleupagus in #16370 - Apply HCM filters on annotations which have their own canvas (bug 1830850) by @calixteman in #16380
- [api-minor] Remove SystemJS usage, in development mode, from the worker by @Snuffleupagus in #12563
- Remove the unused
isStandardFont
font-property (PR 15880 follow-up) by @Snuffleupagus in #16381 - Inline the
addPageIndex
method inGlobalImageCache.shouldCache
by @Snuffleupagus in #16368 - Re-factor the
PDFViewer.pageViewsReady
getter slightly by @Snuffleupagus in #16375 - Simplify the thumbnail styling in the viewer by @Snuffleupagus in #16374
- Simplify the
PDFSidebar.#forceRendering
method by @Snuffleupagus in #16379 - Better approximate gradient color stops by @bungeman in #16106
- [Annotations] Draw readonly annotations on their own canvas and show the HTML elements when there is a JS interaction (issue #16384) by @calixteman in #16387
- [GeckoView] Add a button to download and open the fil...
v3.5.141
This release features image rendering improvements that allow rendering big images even if they are larger than the canvas limits, which fixes quite a lot of issues about images that previously failed to render. Moreover, this release contains bugfixes and improvements for annotations, text selection and typing/documentation.
Changes since v3.4.120
- Bump versions in
pdfjs.config
by @timvandermeij in #16093 - Check
OffscreenCanvas
support once on the worker-thread by @Snuffleupagus in #16095 - [api-minor] Move the
canvasFactory
option intogetDocument
by @Snuffleupagus in #16100 - [api-minor] Generate images in the worker instead of the main thread. by @calixteman in #16062
- [api-minor] Remove calling
getDocument
directly with aPDFDataRangeTransport
-instance (PR 15943 follow-up) by @Snuffleupagus in #16103 - Bump minimist from 1.2.5 to 1.2.7 by @dependabot in #16107
- Render large images even if they're larger than the canvas limits (bug 1720282) by @calixteman in #16077
- [Annotation] Don't rotate an annotation when it has the NoRotate flag by @calixteman in #16110
- Revert "Update
rimraf
to version 4" by @Snuffleupagus in #16118 - Use appearance stream to render locked annotations (bug 1723568) by @calixteman in #16121
- Slightly modify the max width of a tracking space by @calixteman in #16124
- [api-minor] Add an option to set the max canvas area by @calixteman in #16125
- Avoid to have a factor too close to 2 when downscaling image by @calixteman in #16117
- [api-minor] Remove the deprecated
onUnsupportedFeature
functionality (PR 15758 follow-up) by @Snuffleupagus in #16122 - Support (rare) Type3 fonts with Pattern resources (issue 16127) by @Snuffleupagus in #16128
- Partially revert PR 15578 by @calixteman in #16131
- Apply transfer filters to any graphic commands by @calixteman in #16115
- Fix search in pdf a containing some UTF-32 characters (bug 1820909) by @calixteman in #16138
- Move the svg definitions in its own div by @calixteman in #16145
- Correct PostScript trigonometric operators by @bungeman in #16096
- [api-minor] Update the minimum supported Node.js version to 16 by @Snuffleupagus in #16123
- Fix the JSDoc
returns
-type for twoPageViewport
-methods (issue 16134) by @Snuffleupagus in #16142 - Include the document-id in the SVG-filter names (PR 16062 follow-up) by @Snuffleupagus in #16141
- Slightly delay cleanup, after rendering, in documents with large images by @Snuffleupagus in #16108
- Update packages and translations by @Snuffleupagus in #16147
- Remove tag from the Firefox built-in viewer (bug 1821408) by @calixteman in #16153
- Miscellaneous small TypeScript fixes by @Snuffleupagus in #16152
- [api-minor] Extend general transfer function support to browsers without
OffscreenCanvas
by @Snuffleupagus in #16151 - Warn about missing/incorrect
--scale-factor
CSS-variable inrenderTextLayer
(issue 16139) by @Snuffleupagus in #16162 - Simplify the
applyTransferMapsToCanvas
method (PR 16151 follow-up) by @Snuffleupagus in #16166 - Clean-up the
PDFViewer.{increaseScale, decreaseScale}
methods by @Snuffleupagus in #16171 - Clean-up the pre-processor statements in
web/viewer.html
by @Snuffleupagus in #16169 - Use
margin-inline
in theweb/pdf_viewer.css
file (PR 14670 follow-up) by @Snuffleupagus in #16172 - [api-minor] Use a SVG filter when rendering pages in HCM by @calixteman in #16075
- Add a helper, in
DOMFilterFactory
, to reduce duplication when creating<feFuncX>
s by @Snuffleupagus in #16180 - Only warn about missing
--scale-factor
CSS-variable for visible textLayers (PR 16162 follow-up) by @Snuffleupagus in #16181 - Fix the
transfer
parameter, forstructuredClone
, in theLoopbackPort
by @Snuffleupagus in #16175 - Use the position of the previous xref stream if any when saving a pdf (bug 1823296) by @calixteman in #16188
- Support multi-byte ToUnicode entries, when using predefined CMaps (issue 16176) by @Snuffleupagus in #16186
- Track previous "XRefStm"s in a
Set
, rather than anObject
by @Snuffleupagus in #16191 - Add even more non-standard ligatures (PR 15517 follow-up) by @Snuffleupagus in #16193
- Introduce
inset
usage in the CSS files by @Snuffleupagus in #16173 - Introduce
inset-block
usage in the viewer CSS by @Snuffleupagus in #16182 - Use cursor:move for draggable texts and drawings (Bug 1804252) by @nchevobbe in #16192
- Use
String.prototype.replaceAll()
where appropriate by @Snuffleupagus in #16196 - Reduce some duplication in the
PDFViewer.{increaseScale, decreaseScale}
methods by @Snuffleupagus in #16198 - Enable the
unicorn/prefer-negative-index
ESLint plugin rule by @Snuffleupagus in #16185 - Use
replaceAll
in therecoverJsURL
helper function by @Snuffleupagus in #16208 - Enable the
declaration-block-no-redundant-longhand-properties
Stylelint rule by @Snuffleupagus in #16207 - Update packages and translations by @Snuffleupagus in #16206
- Slightly reduce the size of the
FontInspector
-integration in the API by @Snuffleupagus in #16199 - Fix spelling of
occurred
in a couple of comments by @Snuffleupagus in #16211 - [GeckoView] Remove unused
transition
CSS-rules by @Snuffleupagus in #16212 - ESMify some modules for m-c (bug 1824610) by @calixteman in #16217
- Simplify the
isPDFFunction
helper function by @Snuffleupagus in #16218 - Reduce duplication in the
validateCSSFont
helper function by @Snuffleupagus in #16213 - Create a new chunk when the char is too rised compared to the previous one by @calixteman in #16223
- Fix various zooming regressions (PR 15812 follow-up) by @Snuffleupagus in #16227
- [Firefox] Set the
imageResourcesPath
correctly (PR 16153 follow-up) by @Snuffleupagus in #16228 - Remove now unnecessary eslint-disable statement generated for PdfJsDefaultPreferences.sys.mjs. (bug 1825522). by @Standard8 in #16235
- [api-minor] Remove the
disableCombineTextItems
option by @Snuffleupagus in #16234 - Update the Node.js compatibility-check in the worker-thread by @Snuffleupagus in #16238
- [Firefox] Stop using a
baseUrl
in thePDFLinkService
(PR 16153 follow-up) by @Snuffleupagus in #16232 - Write some {Object} in api.js more precise by @nmtigor in #16159
- Use object-spread when dispatching events in the toolbars by @Snuffleupagus in #16243
- [api-minor] Remove the
canvasFactory
option fromPDFPageProxy.render
(PR 16100 follow-up) by @Snuffleupagus in #16242
v3.4.120
This release contains bugfixes and optimizations/cleanups, in particular in the areas of annotations/forms, text selection, font conversion, accessibility and performance (reduced browser reflows).
Changes since v3.3.122
- Bump versions in
pdfjs.config
by @timvandermeij in #15974 - Remove the transition when displaying the sidebar when the user prefers reduced motion (bug 1813138) by @calixteman in #15973
- Extend
getGlyphMapForStandardFonts
with additional entries (issue 15977) by @Snuffleupagus in #15979 - Allow, optionally, using worker-modules during local development by @Snuffleupagus in #15984
- [Editor] Make the annotation editor layer invisible when disabled and empty by @calixteman in #15970
- Remove the loading icon div and replace it by a pure css solution using :after. by @calixteman in #15992
- Limit the
singlePageView
CSS rules to only the COMPONENTS build by @Snuffleupagus in #15996 - Remove the
loadingIcon
in all cases when resetting the page (PR 15992 follow-up) by @Snuffleupagus in #15997 - [GeckoView] Remove unused
@media
CSS rules by @Snuffleupagus in #15999 - Limit the
removePageBorders
option, inPDFViewer
, to only GENERIC builds by @Snuffleupagus in #15998 - Remove a couple of manual loops in the
PDFViewerApplication.open
method by @Snuffleupagus in #15991 - [GeckoView] Don't initalize the cursor-tools, since they're unused by @Snuffleupagus in #16001
- Remove the
isEmptyObj
unit-test helper function by @Snuffleupagus in #16005 - Move the
--scale-select-width
CSS variable to the relevant DOM element by @Snuffleupagus in #16003 - [api-minor] Let the
cMapPacked
parameter, ingetDocument
, default totrue
by @Snuffleupagus in #15981 - [api-minor] Update the minimum supported browsers, and remove the PostCSS
logical
plugin by @Snuffleupagus in #15968 - Remove unused parameters from the
onOpenWithTransport
method inPDFViewerApplication.initPassiveLoading
by @Snuffleupagus in #15987 - Improve how we cache Promises in
WorkerTransport
by @Snuffleupagus in #16004 - Miscellaneous small viewer improvements by @Snuffleupagus in #16006
- Re-factor the parameter parsing/validation in
getDocument
by @Snuffleupagus in #16007 - [GeckoView] Avoid unused outline, attachments, and layers fetching by @Snuffleupagus in #16016
- [GeckoView] Reduce the size of the built viewer by @Snuffleupagus in #16009
- [Annotation] Avoid to encrypt the appearance stream two times (bug 1815476) by @calixteman in #16020
- [GeckoView] Skip fetching/parsing of pageLabels by @Snuffleupagus in #16018
- [Annotation] Take into account the stroke alpha for a FreeText without appearance by @calixteman in #16023
- Remove most build-time
require
statements from the viewer (PR 16009 follow-up) by @Snuffleupagus in #16019 - Fix pinch-to-zoom on mac for the Firefox builtin viewer by @calixteman in #16026
- Avoid a useless animation when the spinner is invisible by @calixteman in #16025
- Hide the struct tree layer during zooming by @calixteman in #16017
- Change the
LoopbackPort
class to use a Set internally by @Snuffleupagus in #16030 - [Annotation] For choice widget, use the I entry instead of the V one (bug 1770750) by @calixteman in #16031
- Ignore position of combining diacritics when getting text (bug 1640217) by @calixteman in #16033
- Reduce usage of the
arrayByteLength
helper function by @Snuffleupagus in #16032 - [Annotation] A combo can have a value other than one in the options by @calixteman in #16035
- Ensure that "GetAnnotations" errors are propagated to the main-thread (PR 15267 follow-up) by @Snuffleupagus in #16042
- Update packages and translations by @Snuffleupagus in #16046
- Update Stylelint to version 15 by @Snuffleupagus in #16048
- Improve the consistency between the
LocalPdfManager
/NetworkPdfManager
constructor by @Snuffleupagus in #16047 - Slightly re-factor preferences/options initialization in the viewer by @Snuffleupagus in #16045
- Move
rewriteUrlClosure
into theweb/chromecom.js
file by @Snuffleupagus in #16028 - Remove inline opening of PDF attachments in the COMPONENTS build by @Snuffleupagus in #16013
- Re-factor the
arraysToBytes
helper function (PR 16032 follow-up) by @Snuffleupagus in #16040 - Remove the unused
eventBus
option inPDFThumbnailViewer
(PR 15215 follow-up) by @Snuffleupagus in #16051 - Reduce duplication for reference tests with an
annotationStorage
entry by @Snuffleupagus in #16053 - Don't replace an eol by a whitespace when the last char is a Katakana-Hiragana diacritic by @calixteman in #16065
- A little clean-up of the
getDocument
call intest/driver.js
by @Snuffleupagus in #16054 - [api-minor] Deprecate providing binary data as
Buffer
in Node.js environments by @Snuffleupagus in #16055 - Don't try to place the
xfaLayer
"on top" in regular PDF documents by @Snuffleupagus in #16056 - [JS] Send a Validate action on change on Choice widget by @calixteman in #16071
- Move the
ImageBitmap
clean-up into thePDFObjects
class by @Snuffleupagus in #16079 - [a11y] Improve the visibility of link annotations in HCM by @calixteman in #16080
- [Acroform] Use the full path to find the node in the XFA datasets where to store the value by @calixteman in #16082
- Use
OffscreenCanvas
as intended for all code-paths insrc/display/text_layer.js
(PR 15722 follow-up) by @Snuffleupagus in #16086
v3.3.122
This release contains a new pinch to zoom feature for the viewer and other bugfixes and optimizations/cleanups, in particular some that reduce browser reflow and memory usage which improves performance.
Changes since v3.2.146
- Bump versions in
pdfjs.config
by @timvandermeij in #15878 - Avoid an infinite loop when searching for a single diacritic by @calixteman in #15883
- Enable the
defaultZoomDelay
option/preference unconditionally, and other (small) improvements by @Snuffleupagus in #15884 - [api-minor] Remove the
PDFDocumentProxy.stats
getter (PR 15758 follow-up) by @Snuffleupagus in #15880 - Update the
type
/subtype
at the end of font parsing by @Snuffleupagus in #15885 - [api-minor] Add the pinch-to-zoom feature (bug 1677933) by @calixteman in #15886
- Reduce duplication in the
accumulateWheelTicks
/accumulateTouchTicks
methods (PR 15886 follow-up) by @Snuffleupagus in #15891 - [JS] UserActivation must be enabled before running document actions by @calixteman in #15892
- [GV] Remove print stuff because window.print isn't implemented (bug 1808668) by @calixteman in #15894
- [GV] Add an option in the find controller to update matches count only when the last page is reached (bug 1803188). by @calixteman in #15896
- Delay the loading icon display by @calixteman in #15857
- [api-minor] Improve the
useWorkerFetch
default value checks by @Snuffleupagus in #15879 - Inline the
setPDFNetworkStreamFactory
functionality insrc/display/api.js
by @Snuffleupagus in #15887 - Remove shadow around each pages (fix issue #15836) by @calixteman in #15850
- Tweak the
--toolbar-border-color
CSS variable (PR 15850 follow-up) by @Snuffleupagus in #15899 - Set ExpansionFactor to 0.06 when it's equals to 0 in the private dict of CFF fonts by @calixteman in #15900
- Support parsing encrypted documents in
XRef.indexObjects
(issue 15893) by @Snuffleupagus in #15897 - Avoid null ExpansionFactor in type1 fonts (follow-up of #15289) by @calixteman in #15901
- Bump json5 from 1.0.1 to 1.0.2 by @dependabot in #15903
- Remove the
background-color
of the sidebarContent (PR 15850 follow-up) by @Snuffleupagus in #15904 - Upgrade Node.js to version 18 in the CI workflow by @timvandermeij in #15906
- Fix pinch-to-zoom on a macbook trackpad (bug 1809080) by @calixteman in #15907
- Simplify PDFViewerApplication::supportsPrinting (follow-up of #15894) by @calixteman in #15914
- Add support for smooth pinch-to-zoom on a trackpad (bug 1659492) by @calixteman in #15909
- [api-minor] Add a new
transferPdfData
option to allow transferring more data to the worker-thread (bug 1809164) by @Snuffleupagus in #15908 - Improve input validation in
PDFDataTransportStream._onReceiveData
(PR 15908 follow-up) by @Snuffleupagus in #15917 - [api-minor] Enabling transferring of data fetched with the
PDFFetchStream
implementation by @Snuffleupagus in #15916 - Improve unit test coverage of
src/core/core_utils.js
by @timvandermeij in #15905 - Update packages and translations by @Snuffleupagus in #15924
- [Regression] Avoid showing a black canvas during zooming with a
drawingDelay
set (PR 15812 follow-up) by @Snuffleupagus in #15923 - Update
rimraf
to version 4 by @Snuffleupagus in #15925 - Update highlight background when forced colors are active (bug 1759886) by @fchasen in #15921
- [api-minor] Enable transferring of TypedArray PDF data by default (PR 15908 follow-up) by @Snuffleupagus in #15920
- Ensure that Annotation
appearance
-entries are actually Streams by @Snuffleupagus in #15926 - Move --scale-factor variable in the viewer container (fix #15929) by @calixteman in #15930
- Fallback to using the
name
table to infer the encoding for TrueType fonts missing such data (issue 15910) by @Snuffleupagus in #15934 - Update the year in the
license_header
files by @Snuffleupagus in #15940 - Use CSS variables for the textLayer
highlight
colors (PR 15921 follow-up) by @Snuffleupagus in #15937 - Add a
PDFViewerApplication
helper method to center the position after wheel/pinch-zooming by @Snuffleupagus in #15935 - [JBIG2] Ensure that the
decodeInteger
function returns valid integers (issue 15942) by @Snuffleupagus in #15945 - Change 'Current View' to 'Current Page' in the secondary toolbar by @calixteman in #15941
- [GV] Avoid to update the finder when the results aren't complete by @calixteman in #15947
- [api-minor] Deprecate calling
getDocument
directly with aPDFDataRangeTransport
-instance by @Snuffleupagus in #15943 - Move the
disableAutoFetch
functionality into theProgressBar
-class by @Snuffleupagus in #15949 - Tweak
adjustType1ToUnicode
for fonts with a predefined named encoding (bug 1811668, PR 14050 follow-up) by @Snuffleupagus in #15948 - Set up automated l10n review for new English strings by @calixteman in #15952
- Try to avoid to interpret wheel events as pinch-to-zoom ones (bug 1810800) by @calixteman in #15957
- Tweak the
normalizeWheelEventDelta
helper function by @Snuffleupagus in #15959 - Move
ProgressBar
-related CSS variables into theloadingBar
DOM-element (issue 15958) by @Snuffleupagus in #15960 - [JS] Correctly format field with numbers (bug 1811694, bug 1811510) by @calixteman in #15965
- Update packages and translations by @Snuffleupagus in #15971
- Update various README files to be less specific about the supported JavaScript features by @Snuffleupagus in #15963
- Simplify setting the
GlobalWorkerOptions
default values (PR 9480 follow-up) by @Snuffleupagus in #15966 - Tweak the internal handling of the
url
-parameter ingetDocument
(PR 13166 follow-up) by @Snuffleupagus in #15954 - Only accept non-objects passed to
getDocument
in GENERIC builds by @Snuffleupagus in #15964 - Polyfill
Path2D
in Node.js environments by @Snuffleupagus in #15951 - Change the
PDFViewerApplication.open
method to only accept objects by @Snuffleupagus in #15972
v3.2.146
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