Releases: mozilla/pdf.js
v5.5.207
This release contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.
Changes since v5.4.624
- Bump the stable version in
pdfjs.configby @timvandermeij in #20617 - Replace the various interfaces in
web/interfaces.jswith proper classes by @Snuffleupagus in #20607 - Add support for Brotli decompression by @calixteman in #20610
- Change all relevant
BasePDFStreamimplementations to take an actualURLinstance by @Snuffleupagus in #20614 - Report loading progress "automatically" when using the
PDFDataTransportStreamclass, and remove thePDFDataRangeTransport.prototype.onDataProgressmethod by @Snuffleupagus in #20615 - Use the ccittfax decoder from pdfium by @calixteman in #20613
- Avoid to have to download the model when toggling the button in the alt-text image settings dialog (bug 2013899) by @calixteman in #20621
- Let the toggle button in the alt-text dialog downloading (resp. delete) the model and enabling (resp. disabling) alt-text guessing (bug 2014167) by @calixteman in #20622
- Flush the text content chunk only on real font changes (bug 2013793) by @calixteman in #20624
- Improve progress reporting in
ChunkedStreamManager, and prevent unnecessary data copy inChunkedStream.prototype.onReceiveDataby @Snuffleupagus in #20627 - Cap the max canvas dimensions in order to avoid to downscale large images in the worker (bug 2014399) by @calixteman in #20628
- Fix
Worker was terminatederror when loading is cancelled by @andriivitiv in #20503 - In tagged pdfs, TH can be either a column header or a row header (bug 2014080) by @calixteman in #20623
- [api-minor] Update the supported Node.js "patch" versions by @Snuffleupagus in #20635
- Ensure that pending requests are resolved when calling
PDFDataTransportStreamReader.prototype.progressiveDoneby @Snuffleupagus in #20634 - Normalize the font name in
getBaseFontMetrics(issue 20246) by @Snuffleupagus in #20637 - Avoid branching in convertBlackAndWhiteToRGBA by @calixteman in #20638
- Set a pages mapper per loaded document by @calixteman in #20640
- Bump library version to
5.5by @Snuffleupagus in #20642 - [api-minor] Update the minimum supported Google Chrome version to 118 by @Snuffleupagus in #20645
- Update dependencies and translations to the most recent versions by @timvandermeij in #20639
- Fix a 'FreeText accessibility' integration test by @calixteman in #20643
- Add firefox-devtools-mcp to let AI agents test and debug in Firefox by @marco-c in #20644
- Convert
PDFPageProxy.prototype.getTextContentto an asynchronous method by @Snuffleupagus in #20648 - Ends the current drawing session when closing the tab (bug 2015385) by @calixteman in #20649
- Start using
Response.prototype.bytes()in the code-base by @Snuffleupagus in #20651 - Move and re-use the
stripPathhelper function more by @Snuffleupagus in #20656 - Update jbig2 decoder (pdfium@0455e822ded1a5537d826703988e986a33d2d4a1) by @calixteman in #20655
- Enable a couple of additional
eslint-plugin-unicornrules by @Snuffleupagus in #20654 - Fix types to make "gulp typestest" succeeding by @calixteman in #20641
- Avoid parsing skipped range requests in
ChunkedStreamManager(PR 10694 follow-up) by @Snuffleupagus in #20652 - Enable the
unicorn/prefer-class-fieldsESLint plugin rule by @Snuffleupagus in #20657 - Add code coverage for unit tests running in node by @calixteman in #20658
- Add a Codecov badge by @calixteman in #20659
- Remove
Object.hasOwnusage from thesrc/core/xref.jsfile by @Snuffleupagus in #20663 - Truncate too long /Decode map entries (issue 20668) by @Snuffleupagus in #20669
- Convert the
PDFObjectsclass to use aMapinternally by @Snuffleupagus in #20673 - Fix the keyboard accessibility of the manage button in the thumbnails view (bug 2015916) by @calixteman in #20675
- fix: support text selection under search highlights by @matt-atticus in #20463
- Fix code coverage line mapping by @calixteman in #20665
- Remove unused
CanvasGraphicsproperties (PR 700 follow-up) by @Snuffleupagus in #20682 - Add an aria-label to the checkboxes in the thumbnails view (bug 2016136) by @calixteman in #20678
- Correctly handle tab/page down when on a menu (bug 2016212) by @calixteman in #20681
- Add an aria-label to the sidebar resizer (bug 2016142) by @calixteman in #20679
- Add support for deleting, cutting, copying and pasting pages (bug 2010830, 2010831) by @calixteman in #20670
- Add the possibility to navigate with the keyboard to go from a checkbox to an other in the thumbnail view (bug 2016007) by @calixteman in #20677
- Set the
annotationTypeautomatically in theAnnotationconstructor by @Snuffleupagus in #20685 - Update dependencies and translations to the most recent versions, and upgrade most packages to new major versions by @timvandermeij in #20661
- Remove unnecessary class constructors in the
srcfolder by @Snuffleupagus in #20684 - Remove unnecessary
Map.prototype.entries()usage by @Snuffleupagus in #20691 - Fix the color of the arrow on buttons when hovering in HCM (bug 2016311) by @calixteman in #20686
- Replace the
getStatIndexhelper, inweb/debugger.mjs, with native functionality by @Snuffleupagus in #20692 - Fix the menu dimensions when on of the item is too long (bug 2018134) by @calixteman in #20694
- Fix the style of the thumbnails in HCM (bug 2016491, bug 2016321, bug 2016323, bug 2016827) by @calixteman in #20693
- Convert
ChunkedStreamManager.prototype.sendRequestto an asynchronous method by @Snuffleupagus in #20660 - Update the page count in the UI when some changes are done (bug 2018125) by @calixteman in #20695
- Reduce duplication when parsing
searchParamsin thegetPdfFilenameFromUrlfunction by @Snuffleupagus in #20690 - Add code coverage for font tests by @calixteman in #20688
- Add some unit tests for functions in image_utils.js by @calixteman in #20698
- Update quickjs to fa628f8c523ecac8ce560c081411e91fcaba2d20 by @calixteman in #20708
- Slightly shorten some code in the
src/scripting_api/folder by @Snuffleupagus in #20699 - Only show the status bar in the views manager when it's in thumbnails mode (bug 2016656) by @calixteman in #20696
- Use
Map.prototype.getOrInsert()in thegetNewAnnotationsMaphelper by @Snuffleupagus in #20702 - Use
Map.prototype.getOrInsert()in the_getPageAdvancemethod by @Snuffleupagus in #20704 - Use
Map.prototype.getOrInsertComputed()in theensureDebugMetadatahelper by @Snuffleupagus in #20706 - Use
Map.prototype.getOrInsert()in the#collectFieldObjectsmethod by @Snuffleupagus in #20703 - Use
Map.prototype.getOrInsert()in the#collectParentsmethod by @Snuffleupagus in #20705 - Remove the leading slash in windows file path when instrumenting js files for ccov by @calixteman in #20710
- Use
FinalizationRegistryunconditionally in thesrc/scripting_api/app.jsfile by @Snuffleupagus in #20709 - Use
Map.prototype.getOrInsertComputed()in theeditorStatsgetter by @Snuffleupagus in #20711 - Use
Map.prototype.getOrInsert()more in thesrc/display/folder by @Snuffleupagus in #20716 - Correctly generate the NormalizeWithNFKC string in generic build...
v5.4.624
This release contains improvements for accessibility, the annotation editor, image decoding, performance and the viewer.
Changes since v5.4.530
- Bump the stable version in
pdfjs.configby @timvandermeij in #20540 - Get glyph contours when stroking using a pattern by @calixteman in #20515
- Use the PDFium JBig2 decoder compiled into wasm by @calixteman in #20546
- Update dependencies and translations to the most recent versions by @timvandermeij in #20547
- Fix wasm url issue for the jbig2 decoder by @calixteman in #20548
- Revert "Remove some files from talos tests because they aren't available on webarchive" by @timvandermeij in #20549
- Aria-hide artifacts in the text layer (bug 2004951) by @calixteman in #20550
- Don't add an aria-label on MathML elements in the struct tree (bug 2004951) by @calixteman in #20551
- Add some tests for the JBIG2 js decoder by @calixteman in #20552
- Update jbig2 decoder (pdfium@3c679253a9e17c10be696d345c63636b18b7f925) by @calixteman in #20566
- Don't use contents stream which have an image format by @calixteman in #20570
- Hide the text in the text layer associated with MathML elements (bug 2009627) by @calixteman in #20567
- Make sure the caret is black in dark mode when in caret browsing mode by @calixteman in #20569
- Add the possibility to drag & drop some thumbnails in the pages view (bug 2009573) by @calixteman in #20559
- Select the dropped thumbnail (bug 2010820) by @calixteman in #20578
- The 'find in page' feature must correctly work after the pages have been reorganized (bug 2010814) by @calixteman in #20577
- Avoid exception after having moved an annotation by @calixteman in #20572
- Add the possibility to order the pages in an extracted pdf (bug 1997379) by @calixteman in #20475
- Bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in #20588
- Update image pattern in gulpfile to accommodate missing images by @dgiessing in #20554
- Hide the menu container in changing it's visibility by @calixteman in #20583
- Fix links and outline after reorganizing a pdf by @calixteman in #20580
- Use DecompressionStream in async code by @calixteman in #20593
- Fix the drag marker dimensions in the thumbnails view by @calixteman in #20591
- Bug 1999154 - Add the ability to undo comment deletion by @marco-c in #20586
- Refactor a bit page mapping stuff in order to be able to support delete/copy pages by @calixteman in #20587
- Add a manage button in the thumbnail view in order to save an edited pdf (bug 2010830) by @calixteman in #20582
- Fix the sidebar resizer accessibility by @calixteman in #20598
- [Node.js] Don't abort the full request for local PDF files smaller than two range requests, and use standard
ReadableStreams by @Snuffleupagus in #20594 - Simplify the
NetworkManagerclass, and inline it in thePDFNetworkStreamclass by @Snuffleupagus in #20595 - Simplify the
FileSpecclass, and remove no longer needed polyfills by @Snuffleupagus in #20596 - Remove unit-tests for global
ReadableStreamandURLby @Snuffleupagus in #20605 - Improve preferences building, and generate the
preferences_schema.jsonfile for the Chromium addon by @Snuffleupagus in #20603 - Replace the
IPDFStream,IPDFStreamReader, andIPDFStreamRangeReaderinterfaces with proper base classes by @Snuffleupagus in #20602 - fix: Fix mailto links truncated at dash by @kairosci in #20565
v5.4.530
This release, the final one of 2025, contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.
Changes since v5.4.449
- Bump the stable version in
pdfjs.configby @timvandermeij in #20469 - [Editor] Pointer type initialization only when the user changes the mode by @legraina in #20226
- Update dependencies and translations to the most recent versions by @timvandermeij in #20470
- Aria-hide the text content part of a MathML formula (bug 1998046) by @calixteman in #20471
- Inject the text from the text layer in the MathML tags when they're in the struct tree (bug 1998046) by @calixteman in #20472
- Add a menu class in order to be used in the new UI for the merge feature by @calixteman in #20483
- Add some callbacks when resizing a sidebar by @calixteman in #20474
- Use HTMLElement.scrollIntoView when showing a thumbnail by @calixteman in #20476
- Extend getGlyphMapForStandardFonts with some Russian entries (issue 20453) by @xiaobai2017666 in #20454
- Add a new linting task in order to detect unused/unknown css variables in the Firefox build by @calixteman in #20485
- Add .vscode to .gitignore by @calixteman in #20490
- Encode FontPath data into an ArrayBuffer by @ryzokuken in #20346
- Move the css for tree object in its own file by @calixteman in #20493
- Use only one resize observer in the the sidebar by @calixteman in #20494
- Fix infinite loop in JBIG2 decoder with >4 referred-to segments by @Gaurang-5 in #20440
- Move text layer scaling logic to CSS by @nicolo-ribaudo in #20491
- Improves text rendering performance by skipping unnecessary pattern calculations by @AtiX in #20499
- Simplify positioning of elements inside
markedContentby @nicolo-ribaudo in #20492 - Fix #20420: Prevent double decoding of file URL parameter by @Uzair-Ahmed-Shah in #20482
- Fix the position of the checkmark when the menu is displayed in RTL by @calixteman in #20500
- Fix some css in the tree view by @calixteman in #20508
- Change the sidebar for a views manager by @calixteman in #20495
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #20507
- Run the CI tests in Node.js version 25 too by @timvandermeij in #20502
- Fix unit tests in adding a comma in the JSON for imports by @calixteman in #20517
- Update dependencies and translations to the most recent versions by @timvandermeij in #20501
- Escape punctuation signs in search query by @calixteman in #20518
- Avoid exception when trying to render some glyphs contours by @calixteman in #20514
- Simplify regex escaping by @calixteman in #20524
- Dont' throw when adding page labels in thumbnails by @calixteman in #20521
- Fix the encoding for some missing chinese fonts by @calixteman in #20526
- Remove some files from talos tests because they aren't available on webarchive by @calixteman in #20527
- Avoid pattern creation with some basic gradients by @calixteman in #20525
- Introduce a helper function to draw a line in the ink editor integration tests by @timvandermeij in #20519
- Add CLAUDE.md generated with claude code by @calixteman in #20522
- Avoid to have a mail link with string having the format ddd@d.dddd by @calixteman in #20531
- Remove undefStack stuff in the cff parser by @calixteman in #20537
- Fix the loca table length when there is enough space for it by @calixteman in #20538
- Use CIDToGIDMap when the font is a type 2 with an OpenType font by @calixteman in #20535
v5.4.449
This release contains improvements for the annotation editor, performance, text selection and the viewer.
Changes since v5.4.394
- Bump the stable version in
pdfjs.configby @timvandermeij in #20414 - Create the number tree for the ParentTree only one time by @calixteman in #20425
- Add the possibility to create a pdf from different ones (bug 1997379) by @calixteman in #20409
- Update the page labels tree when a pdf is extracted (bug 1997379) by @calixteman in #20411
- Update the named page destinations when some pdf are combined (bug 1997379) by @calixteman in #20421
- Version entry in the catalog has to be a name and not a string by @calixteman in #20432
- Add a wrapper for the new xref in order to be able to get some values from cloned dictionaries by @calixteman in #20431
- Update dependencies and translations to the most recent versions by @timvandermeij in #20429
- Introduce a helper function to create a freetext editor in the integration tests by @timvandermeij in #20430
- Add telemetry for tagged pdfs (bug 1997134) by @calixteman in #20405
- Merge the structure trees coming from different pdfs (bug 1997379) by @calixteman in #20436
- Add regression test for PR 19184 by @maettuu in #20151
- Bump glob by @dependabot[bot] in #20448
- Bump js-yaml from 3.14.1 to 3.14.2 by @dependabot[bot] in #20449
- Lint and format the HTML in using Prettier by @calixteman in #20447
- Add setter for some FontFaceObject properties by @Aditi-1400 in #20427
- fix: deleteAnnotationElement takes a full editor object by @sachiniyer in #20413
- When searching for a group of punctuation signs, only add extraspaces around the group by @calixteman in #20456
- [XFA] Set default max value in occur tag to -1 (bug 1998843) by @calixteman in #20455
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #20459
- Include missing
cached-iterabledev dependency inpackage.jsonby @Mario34 in #20450 - Don't use firstChild/lastChild when getting elements (follow-up of #20447) by @calixteman in #20458
- [Editor] Allow to save an edited comment in using CTRL+Enter shortcut. by @calixteman in #20460
- Create a sidebar object by @calixteman in #20467
- Fix the regex string used to find the chars to normalize with NFKC when searching by @calixteman in #20465
- Use OIDC trusted publishing in the GitHub Actions release workflow by @timvandermeij in #20468
- Slightly reduce the memory used by thumbnails by @calixteman in #20462
v5.4.394
This release contains improvements for the annotation editor, accessibility, font conversion and performance.
Changes since v5.4.296
- Bump the stable version in
pdfjs.configby @timvandermeij in #20339 - Update dependencies and translations to the most recent versions by @timvandermeij in #20337
- [Editor] Remove obsolete arguments for
setDimscalls in the highlight code by @timvandermeij in #20335 - Add a test for PR #20320 by @calixteman in #20338
- [Editor] Make sure that comment stuff is removed when an editor is deleted (bug 1992987) by @calixteman in #20342
- [Editor] Make sure the editor is focused after the comment has been deleted (bug 1992832) by @calixteman in #20343
- [Editor] Make sure all editors are focusable with the keyboard (bug 1992868) by @calixteman in #20341
- [Editor] Remove the role radio for the editing buttons (bug 1990826) by @calixteman in #20347
- [Editor] Make sure that annotation positions in the DOM respect the visual order (bug 1992770) by @calixteman in #20344
- [Annotation] Use the annotations rect in order to fix the order in the DOM (bug 1987914) by @calixteman in #20350
- [Editor] Avoid to have a null button in the DOM when there's no comment manager by @calixteman in #20351
- Improve performance of the struct tree build (bug 1987914) by @calixteman in #20352
- [Annotation] Improve the performance of the code for getting glyphs which belongs to annotations bounding boxes (bug 1987914) by @calixteman in #20353
- Use enums instead of string for mesh shading figure type by @Aditi-1400 in #20354
- Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #20357
- Very slightly improve intersector performance by @calixteman in #20358
- Use Python 3.14 in the GitHub workflows by @timvandermeij in #20363
- Update dependencies and translations to the most recent versions by @timvandermeij in #20356
- Reset
sameLineTextdependencies data onsetTextMatrixby @nicolo-ribaudo in #20361 - Use a binary format for the glyph paths by @calixteman in #20367
- [Editor] Correctly focus the annotation once the comment has been removed in the annotation layer (bug 1994738) by @calixteman in #20369
- [Editor] Fix the tooltip of the comment button when in the editor toolbar (bug 1994958) by @calixteman in #20372
- [Editor] FreeText annotations aren't supposed to have an attached popup so disable commenting for them (bug 1995028) by @calixteman in #20374
- [Editor] Make sure the color picker has the right color when pasting an editor by @calixteman in #20375
- [Editor] Fix integration test after #20372 by @calixteman in #20377
- Use stream for whatever substrem in stream classes by @calixteman in #20373
- Fix stream use when getting the text (follow-up of #20373) by @calixteman in #20379
- Add a highlightSpan function in order to simplify a bit the integration tests by @calixteman in #20355
- Tweak the "scroll into view" viewer integration test by @timvandermeij in #20380
- Don't use the
aboutstacks.pdffile in the integration tests by @timvandermeij in #20378 - Bump actions/setup-node from 5 to 6 by @dependabot[bot] in #20381
- Serialize pattern data into ArrayBuffer by @Aditi-1400 in #20340
- [Editor] Fix the css of the button to close the comment sidebar (bug 1995766) by @calixteman in #20386
- [Editor] Fix the css of the link in the comment sidebar (bug 1995721) by @calixteman in #20387
- [Editor] Avoid to have several Undo entries in the context menu (bug 1995705) by @calixteman in #20388
- [Editor] Make sure the left (resp. right) corner of the popup is visible when in LTR (resp. RTL) (bug 1995579) by @calixteman in #20389
- Make MathML elements visible in the struct tree (bug 1937438) by @calixteman in #20384
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #20400
- Update dependencies and translations to the most recent versions by @timvandermeij in #20396
- Add the font PT Astra Serif as a possible substitution for Times New Roman by @CoelacanthusHex in #20394
- Collect all child nodes of lists and tables in StructTree by @edoardocavazza in #20327
- Add text extractor as an external service by @gregtatum in #20406
- Revert "Add some telemetry in order to know what are the certificates used in pdfs (bug 1973573)" by @calixteman in #20404
- Don't set the MathML namespace for attributes in MathML tags (bug 1997343) by @calixteman in #20408
- [Editor] A new CurrentPointers class to store current pointers used by the editor by @legraina in #20213
v5.4.296
This release contains improvements for annotations, the annotation editor, font conversion, text selection and the viewer.
Changes since v5.4.149
- Bump the stable version in
pdfjs.configby @timvandermeij in #20215 - Update dependencies and translations to the most recent versions by @timvandermeij in #20216
- Add a function changeLightness in order to change the lightness of a RGB color by @calixteman in #20204
- [Editor] Hide the comment sidebar on document change by @timvandermeij in #20220
- [Editor] Add editors with a comment in the sidebar by @calixteman in #20217
- [Editor] Make scrollable the area containing the comments in the sidebar by @calixteman in #20222
- [Editor] Use the color of the annotation for the background of the comment button by @calixteman in #20221
- [Editor] Don't save the image when updating a stamp annotation by @calixteman in #20233
- Add a new function renderRichText to be used in the annotation layer by @calixteman in #20231
- Fix the rendering of XFA rich text in popup annotations by @timvandermeij in #20238
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #20242
- Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #20243
- Improve the integration test code by @timvandermeij in #20172
- [Editor] Fix saving a deleted popup by @calixteman in #20244
- [Editor] Add the dates and rich text if any to the editors in order to use them when displaying the popup by @calixteman in #20245
- Unskip the
must check that date entered by the user is consistentscripting integration test for Firefox by @timvandermeij in #20239 - [Editor] Make sure the comment button is at the right place when adding it in the toolbar by @calixteman in #20248
- [Editor] When clicking on a comment in the sidebar, wait for the annotation editor layer to be rendered by @calixteman in #20247
- Reduce background canvas resolution by @nicolo-ribaudo in #20255
- Add an option in scrollIntoView and goToXY in order to be able to center vertically or horizontally the point XY in the viewer container by @calixteman in #20253
- [Editor] Don't throw when switching to editing mode before an annotation editor layer is rendered by @calixteman in #20259
- [Editor] Cleanup the pages not being fully rendered before switching to editing mode by @calixteman in #20258
- Make sure that a good constrast ratio is respected when darkening/lightening a color by @calixteman in #20240
- Store ops bboxes in a linear Uint8Array by @nicolo-ribaudo in #20208
- Fix JSDoc description in src/display/api.js by @nicolo-ribaudo in #20267
- Only record bboxes when needed by @nicolo-ribaudo in #20256
- Use a dichotomy to find a color with a good contrast ratio by @calixteman in #20269
- Replace manual returns with
pendingin the integration tests by @timvandermeij in #20271 - Consider a ttf font with both Symbolic and Nonsymbolic flags set with a Differences array in the encoding dict as non-symbolic by @calixteman in #20270
- Update dependencies and translations to the most recent versions by @timvandermeij in #20272
- [Editor] Add a new popup for comments (bug 1987425) by @calixteman in #20249
- [Annotation] Use the new popup in reading mode (bug 1987426) by @calixteman in #20250
- [Editor] Fix the position of the comment popup and its dialog by @calixteman in #20278
- [Annotation] Save the comment changes made in reading mode (bug 1987427) by @calixteman in #20274
- Avoid unused css variables by @calixteman in #20279
- Use
console.warn/console.infowhere appropriate by @sigmaSd in #20252 - [Editor] Fix the focus outline for the comment dialog buttons by @calixteman in #20281
- [Editor] Make sure to not add extra editors when showing again a destroyed page by @calixteman in #20282
- Update OpenJPEG to 2.5.4 by @calixteman in #20286
- Serialize font data into an ArrayBuffer by @ryzokuken in #20197
- [Editor] Make sure the comment dialog is visible on the screen (bug 1989304) by @calixteman in #20283
- [Editor] Remove useless computations when setting the dimensions of an editor by @calixteman in #20285
- [Editor] When in HCM, don't apply light/dark color in the comment buttons (bug 1977269) by @calixteman in #20291
- [Editor] Update the color and the position of the comment button in reading mode they've been modified by @calixteman in #20295
- [Editor] Don't add scrollbars when it's useless in the comment sidebar (bug 1990099) by @calixteman in #20297
- [Editor] Avoid to use similar colors for background and foreground colors in HCM (bug 1990082) by @calixteman in #20298
- [Editor] Use some percent coordinates for the comment dialog (bug 1990104) by @calixteman in #20299
- [Editor] Fix the button labels in the comment dialog (bug 1990499) by @calixteman in #20300
- [Editor] Make the comment sidebar resizable (bug 1990544) by @calixteman in #20303
- [Editor] Add a title to the comment buttons (bug 1990813) by @calixteman in #20305
- [Editor] Move the focus to the comment button once editing is done (bug 1990820) by @calixteman in #20304
- [Editor] Make sure the selected editor is correctly focused after switching editing mode (bug 1990872) by @calixteman in #20307
- [Editor] Fix the URL for the 'Learn more' link in the comment sidebar (bug 1990454) by @calixteman in #20308
- [Editor] Show the comments in the sidebar in the chronological order,newest to oldest (bug 1990762) by @calixteman in #20310
- Update dependencies by @calixteman in #20309
- [Editor] Give the focus to the comment button after editing in reading mode by @calixteman in #20311
- [Annotation] In reading mode with new commment stuff enabled, use the comment popup for annotations without a popup but with some contents (bug 1991029) by @calixteman in #20312
- [Editor] Add some telemetry for the commenting feature (bug 1991172) by @calixteman in #20313
- [Editor] Remove useless sidebar css by @calixteman in #20314
- [Editor] Add a fake annotation (in the annotation layer) associated with an editor in order to be able to show the comment button (bug 1989420) by @calixteman in #20321
- [Editor] Avoid an error when getting the editors telemetry data by @calixteman in #20318
- [Annotation] Fix some timezone issues when getting a date from the date picker (bug 1991584) by @calixteman in #20320
- [Editor] Add the possibility to unselect a comment from the sidebar by @calixteman in #20322
- Increase the rendering quality of the detail view (bug 1991482) by @calixteman in #20323
- Improve serif fallback font name matching by @james-atticus in #20224
- Fix the creation of the annotation layer in the ref tests by @calixteman in #20329
- [Editor] Make sure the comment dialog always have relative coordinates between 0% and 100% by @calixteman in #20328
- [Editor] Slightly move the resizer in the sidebar comment in order to make it easier to use (bug 1992385) by @calixteman in #20332
- Only apply word spacing when there is a 0x20 in the text chunk by @calixteman in #20334
- Bump tar-fs from 3.1.0 to 3.1.1 by @dependabot[bot] in #20301
- Fix incremental saving with hybrid references by @calixteman in #20333
v5.4.149
This release contains improvements for the annotation editor, performance, printing and the viewer.
Changes since v5.4.54
- Bump the stable version in
pdfjs.configby @timvandermeij in #20124 - Update dependencies and translations to the most recent versions by @timvandermeij in #20125
- [Editor] Add a floating button in order to highlight the text selection and add a comment (bug 1979381) by @calixteman in #20119
- Add regression test for PR 19639 by @maettuu in #20109
- Add comment-* images when building components by @calixteman in #20128
- [Editor] Remove useless css and use a defined but unused property by @calixteman in #20131
- [Editor] Remove unused property by @calixteman in #20132
- Fix intermittent failure in the "must check that the computed value is correct" scripting integration test by @timvandermeij in #20134
- Disable printing when enablePermission is true and the pdf isn't allowed to be printed (bug 1978985) by @calixteman in #20129
- [Editor] Highlight text on a selectionchange event which hasn't been triggered by the pointer or the keyboard (bug 1976597) by @calixteman in #20138
- Trigger a fake scrollend event in case it hasn't been triggered by the browser (bug 1957680) by @calixteman in #20142
- Lazy initialize FinalizationRegistry used by IccColorSpace.#finalizer by @fnlctrl in #20148
- Make horizontal padding relative to device width by @Aditi-1400 in #20093
- Mark
canvasContextas optional by @k-nut in #20149 - Update l10n files by @calixteman in #20159
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #20161
- Check the setDash arguments by @calixteman in #20160
- [Editor] Avoid to use a null signal when setting listeners in the editor toolbar by @calixteman in #20166
- [Editor] Correctly hide deleted annotations by @calixteman in #20164
- Implement a delay for Chrome protocol calls in the integration tests, and skip the "must check that an existing highlight is ignored on hovering" integration test on Windows by @timvandermeij in #20126
- Update Firefox preferences for testing by @timvandermeij in #20171
- [Editor] Add the ability to get all the editable annotations in a pdf document by @calixteman in #20167
- Update dependencies and translations to the most recent versions by @timvandermeij in #20169
- Use Firefox stable for the tests because bug 1983414 by @calixteman in #20178
- Add logic to track rendering area of various PDF ops by @nicolo-ribaudo in #19043
- Use Firefox nightly with puppeteer by @calixteman in #20186
- [Editor] Make sure the resizers are on top of the editor content by @calixteman in #20183
- Use the cached annotations when collecting them by types by @calixteman in #20184
- [Editor] Move the comment button just before the delete one by @calixteman in #20180
- [Editor] Add a Rect entry to a saved popup in order to avoid to have an invalid pdf by @calixteman in #20179
- Use WebDriver BiDi for Chrome by @timvandermeij in #20188
- [Editor] Don't use a null signal for the comment button by @timvandermeij in #20189
- Update puppeteer to 24.17.0 by @calixteman in #20187
- [Editor] Add a button to the annotation having a popup in order to edit it by @calixteman in #20182
- Don't iterate over all empty slots in the xref entries (bug 1980958) by @calixteman in #20170
- Improve the selection check in the "doesn't jump when moving selection" integration test by @timvandermeij in #20190
- [Editor] Change the icon for inline comments by @calixteman in #20194
- Add a method goToXY in PDFLinkService in order to scroll the document at a given location by @calixteman in #20191
- Skip the curvature ink editor integration test for Chrome on Windows by @timvandermeij in #20195
- [Editor] Add a method to get an editor rect in the pdf page coordinates by @calixteman in #20196
- [Editor] Remove useless CSS and fix styling for the comment button by @calixteman in #20200
- [Editor] Fix the dimensions of the comment icon by @calixteman in #20209
- [Editor] Fix unit (for consistency) and remove few useless px by @calixteman in #20211
- Reset editing mode when changing the pdf document by @calixteman in #20212
- [Editor] Add a sidebar allowing the user to navigate between the comments in a pdf (bug 1985567) by @calixteman in #20210
v5.4.54
This release contains improvements for accessibility, annotations, the annotation editor, font conversion and the viewer.
Changes since v5.3.93
- Bump the stable version in
pdfjs.configby @timvandermeij in #20061 - Use the creation date in the popup when there is no modification date by @calixteman in #20058
- Fix typos across the codebase by @noritaka1166 in #20060
- Fix the default appearance of a Polygon annotation when a fill color is provided by @calixteman in #20063
- Add few methods to the Dict class in order to simplify the code when writing an annotation by @calixteman in #20064
- [api-minor] Move getContext call to InternalRenderTask by @ryzokuken in #20016
- Bump library version to
5.4by @ryzokuken in #20071 - Revert "Make horizontal padding relative to device width" by @calixteman in #20076
- Use the canvas context from mozPrintCallback when printing a pdf from the Firefox viewer by @calixteman in #20082
- In HCM, invert colors when hovering an annotation with a popup by @calixteman in #20084
- Add the l10n parameter when pasting a Signature annotation by @calixteman in #20081
- [Editor] Remove a popup from the DOM when it's deleted by @calixteman in #20077
- [Editor] Add the possibility to add a popup to an annotation when saving by @calixteman in #19976
- Fix the "must check that canvas perfectly fits the page whatever the zoom level" viewer integration test by @timvandermeij in #20087
- Update dependencies and translations to the most recent versions by @timvandermeij in #20086
- Handle the case where all the image data are in the alpha channel (bug 1975719) by @calixteman in #20085
- [Editor] Add a color picker in the toolbar of Ink and Freetext annotations by @calixteman in #20070
- Avoid Firefox test failure by @calixteman in #20092
- [Editor] Use a round color swatch for the basic color picker by @calixteman in #20094
- [Editor] Make sure that doorhangers are large enough to fit localized strings by @calixteman in #20095
- Don't add an undefined id to the span for marked content by @calixteman in #20103
- [Editor] Make possible to change the highlight color from the main panel by @calixteman in #20098
- [Editor] Add the possibility to add Popup annotations (bug 1976724) by @calixteman in #20080
- [Editor] Only add a popup to an existing annotation if it exits by @calixteman in #20104
- Use canvas context text primitives when the font file is missing by @calixteman in #20101
- Make the link annotations correctly announced by screen readers (bug 1708041) by @calixteman in #20096
- Fix intermittent failure in the viewer alert tests by @timvandermeij in #20106
- [Editor] Fix the highlighting colors in HCM (bug 1977259) by @calixteman in #20099
- Update translations and dependencies to the most recent versions by @timvandermeij in #20107
- Fix the xref table with the values we've at the beginning of a xref stream (bug 1978317) by @calixteman in #20113
- Use a HTML date/time input when a field requires a date or a time. by @calixteman in #20116
- [Editor] Don't show the actions button in the comment popup when it's useless by @calixteman in #20120
v5.3.93
This release contains improvements for accessibility, annotations, the annotation editor, forms, printing and the viewer.
Changes since v5.3.31
- Bump the stable version in
pdfjs.configby @timvandermeij in #19981 - Update Puppeteer to version 24.10.0 by @calixteman in #19985
- Update dependencies and translations to the most recent versions by @timvandermeij in #19997
- Fix intermittent failure in the find integration tests by @timvandermeij in #20000
- Log test number and id in reftests by @nicolo-ribaudo in #20002
- Move the popup annotation in the DOM just after the element triggering it by @calixteman in #20004
- [Editor] Fix the text alignment in freetext annotations (bug 1971134) by @calixteman in #20011
- Fix a printing issue on Mac (bug 1961423) by @calixteman in #19996
- Remove the possibility to go to the next page in using the ENTER key (bug 1971299) by @calixteman in #20003
- Make annotations focusable just after the text layer by @calixteman in #20013
- [JS] Make the date parser less strict by @calixteman in #20021
- Correctly handle files with a hash sign in their names (bug 1894166) by @calixteman in #19992
- Only show popups when they've some contents to display by @calixteman in #19986
- Slightly simplify the way to create the editor toolbar by @calixteman in #19993
- Allow to have an URL as file parameter when loading the viewer by @calixteman in #20027
- [Editor] When editing mode is disabled, allow to double click on a added annotation to edit it by @calixteman in #20023
- [Editor] Fix the accessibility of the dropdown in the color picker by @calixteman in #20022
- Update dependencies and translations to the most recent versions by @timvandermeij in #20028
- Get the text under highlight/squiggly/underline/strikethrough annotations (bug 1885505) by @calixteman in #20019
- Add some telemetry in order to know what are the certificates used in pdfs (bug 1973573) by @calixteman in #20031
- Don't remove a dash at the end of a line when guessing urls (bug 1974112) by @calixteman in #20038
- [Editor] In the signature modal, disable the save checkbox when the storage is full (bug 1974257) by @calixteman in #20039
- Remove the shadow from the links (bug 1974436) by @calixteman in #20041
- Make horizontal padding relative to device width by @Aditi-1400 in #20047
- Don't focus the viewer at startup (bug 1974863) by @calixteman in #20054
- [Editor] When an annotation is added, announce it if the user is using a screen reader (bug 1975264) by @calixteman in #20055
- Make Popup annotations always have noRotate flag set as true by @yyliu12 in #20043
- [Editor] Allow to change the editor mode when selecting the corresponding editor (bug 1975538) by @calixteman in #20056
v5.3.31
This release contains improvements for annotations, the annotation editor, font conversion, image decoding, performance and the viewer.
Changes since v5.2.133
- Bump the stable version in
pdfjs.configby @timvandermeij in #19875 - Add useractivation check for response function by @1Jesper1 in #19855
- Add a basic
navigatorpolyfill for older Node.js versions by @Snuffleupagus in #19876 - Fix the bbox when saving a rotated text field (bug 1963407) by @calixteman in #19881
- Assert that
numberToStringis called with a number (issue 19877) by @Snuffleupagus in #19880 - Don't update the visible canvas at 60 fps (bug 1936605) by @calixteman in #19856
- Allow to, optionally, keep Unicode escape sequences in
stringToPDFString(PR 17331 follow-up) by @Snuffleupagus in #19884 - Fix arguments in
toStylecall inCheckButtonby @gpanakkal in #19883 - Remove the
BasePdfManager.prototype.cataloggetter by @Snuffleupagus in #19888 - Simplify the
serializeXfaDatamethod and related code by @Snuffleupagus in #19887 - Simplify the
loadXfaImagesmethod and related code by @Snuffleupagus in #19885 - Slightly re-factor how we pre-load fonts and images in XFA documents by @Snuffleupagus in #19889
- Downscale jpeg2000 images, if needed, while decoding them by @calixteman in #19893
- Unify method return values in the
ObjectLoaderclass, and simplify how theObjectLoaderis used by @Snuffleupagus in #19895 - Update the Firefox repository used in
external/importL10n/locales.mjsby @Snuffleupagus in #19905 - Add a pref in order to cap the canvas area to a factor of the window one (bug 1958015) by @calixteman in #19755
- Shorten the code in the
src/core/document.jsfile by @Snuffleupagus in #19902 - Shorten the
PDFDocument.prototype.fieldObjectsgetter slightly by @Snuffleupagus in #19903 - Improve validation in the
Catalog.prototype.openActiongetter by @Snuffleupagus in #19913 - Decode appearance keys of checkboxes by @calixteman in #19911
- Reduce duplication when computing the maximum canvas pixels by @Snuffleupagus in #19915
- Preserve webpack/vite ignore comments when minifying by @nicolo-ribaudo in #19922
- Update qcms build by @calixteman in #19924
- [Editor] Keep aspect ratio when rescaling an image before being processed for a signature (bug 1962819) by @calixteman in #19925
- Run CI tests in Node.js version 24 by @Snuffleupagus in #19897
- Remove unused OpenJPEG wasm fallback logic by @nicolo-ribaudo in #19923
- Prefer the /Metadata, when available, in the document properties dialog (bug 1966086) by @Snuffleupagus in #19929
- Minify the js code when building for Firefox (bug 1965003) by @calixteman in #19934
- Allow using the
workerPortoption in Firefox by @Snuffleupagus in #19936 - Use the worker created in the child actor (bug 1966721) by @calixteman in #19935
- Bump undici from 6.21.1 to 6.21.3 by @dependabot in #19933
- Enable the
unicorn/prefer-import-meta-propertiesESLint plugin rule by @Snuffleupagus in #19916 - chore: remove redundant word in comment by @studystill in #19937
- Add a couple of new
eslint-plugin-unicornrules by @Snuffleupagus in #19917 - Replace
PDFWorker.fromPortwith a genericPDFWorker.createmethod by @Snuffleupagus in #19943 - Update dependencies and translations to the most recent versions by @timvandermeij in #19942
- Ensure that the viewer clears the
workerPortoption when using "fake" workers by @Snuffleupagus in #19939 - Use private fields in the
PDFDataRangeTransportclass by @Snuffleupagus in #19944 - Remove Node.js-specific checks when using the Fetch API by @Snuffleupagus in #19945
- Fix intermittent failure in the stamp editor's undo-related integration tests by @timvandermeij in #19949
- Fix missing
awaitfor asynchronous method calls in the integration tests by @timvandermeij in #19950 - [api-minor] Create the css color to use with the canvas in the worker by @calixteman in #19953
- Support Type3 fonts with an incomplete /FontDescriptor dictionary (issue 19954) by @Snuffleupagus in #19955
- Fix pdfjsPreloadedWorker when it's undefined by @calixteman in #19959
- Remove all the useless subarrays when using qcms. by @calixteman in #19957
- Bump library version to
5.3by @Snuffleupagus in #19960 - Don't create a useless subarray when getting image data from a flate stream by @calixteman in #19958
- Revert "Minify the js code when building for Firefox (bug 1965003)" by @calixteman in #19967
- Improve how the PDF.js version/commit information is exposed in the built files by @Snuffleupagus in #19956
- Show the op dispatched by constructPath in the debugger by @nicolo-ribaudo in #19961
- Ignore empty paths when optimizing
constructPathoperations (issue 19971) by @Snuffleupagus in #19972 - Replace semi-private fields/methods with actual private ones in
src/core/catalog.jsby @Snuffleupagus in #19964 - Move a few helper functions/classes out of the
src/display/api.jsfile by @Snuffleupagus in #19962 - Fix the colors of disabled buttons in the dialogs by @calixteman in #19975
- [Editor] Change mode when double clicking on an editor by @calixteman in #19969
- Fix intermittent failure in the "supports specifying a custom origin" viewer integration test by @timvandermeij in #19952