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 #16628