NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2102 most downloaded on npm
Generic build of Mozilla's PDF.js library.
Last release 20 days ago
29 Aug 2026
Ships on a steady schedule
a new release about every 4 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
1565 releases · first in 2014
This release contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.
This release contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.
pdfjs.config by @timvandermeij in #20617web/interfaces.js with proper classes by @Snuffleupagus in #20607BasePDFStream implementations to take an actual URL instance by @Snuffleupagus in #20614PDFDataTransportStream class, and remove the PDFDataRangeTransport.prototype.onDataProgress method by @Snuffleupagus in #20615ChunkedStreamManager, and prevent unnecessary data copy in ChunkedStream.prototype.onReceiveData by @Snuffleupagus in #20627Worker was terminated error when loading is cancelled by @andriivitiv in #20503PDFDataTransportStreamReader.prototype.progressiveDone by @Snuffleupagus in #20634getBaseFontMetrics (issue 20246) by @Snuffleupagus in #206375.5 by @Snuffleupagus in #20642PDFPageProxy.prototype.getTextContent to an asynchronous method by @Snuffleupagus in #20648Response.prototype.bytes() in the code-base by @Snuffleupagus in #20651stripPath helper function more by @Snuffleupagus in #20656eslint-plugin-unicorn rules by @Snuffleupagus in #20654ChunkedStreamManager (PR 10694 follow-up) by @Snuffleupagus in #20652unicorn/prefer-class-fields ESLint plugin rule by @Snuffleupagus in #20657Object.hasOwn usage from the src/core/xref.js file by @Snuffleupagus in #20663PDFObjects class to use a Map internally by @Snuffleupagus in #20673CanvasGraphics properties (PR 700 follow-up) by @Snuffleupagus in #20682annotationType automatically in the Annotation constructor by @Snuffleupagus in #20685src folder by @Snuffleupagus in #20684Map.prototype.entries() usage by @Snuffleupagus in #20691getStatIndex helper, in web/debugger.mjs, with native functionality by @Snuffleupagus in #20692ChunkedStreamManager.prototype.sendRequest to an asynchronous method by @Snuffleupagus in #20660searchParams in the getPdfFilenameFromUrl function by @Snuffleupagus in #20690src/scripting_api/ folder by @Snuffleupagus in #20699Map.prototype.getOrInsert() in the getNewAnnotationsMap helper by @Snuffleupagus in #20702Map.prototype.getOrInsert() in the _getPageAdvance method by @Snuffleupagus in #20704Map.prototype.getOrInsertComputed() in the ensureDebugMetadata helper by @Snuffleupagus in #20706Map.prototype.getOrInsert() in the #collectFieldObjects method by @Snuffleupagus in #20703Map.prototype.getOrInsert() in the #collectParents method by @Snuffleupagus in #20705FinalizationRegistry unconditionally in the src/scripting_api/app.js file by @Snuffleupagus in #20709Map.prototype.getOrInsertComputed() in the editorStats getter by @Snuffleupagus in #20711Map.prototype.getOrInsert() more in the src/display/ folder by @Snuffleupagus in #20716Map.prototype.getOrInsertComputed() in the src/display/api.js file by @Snuffleupagus in #20717getOrInsert and getOrInsertComputed by @Snuffleupagus in #20726lastCode property from the LZWStream class (PR 324 follow-up) by @Snuffleupagus in #20733gulp importl10n by @Snuffleupagus in #20755decode helper in the getPdfFilenameFromUrl function (issue 20664) by @Snuffleupagus in #20757src/core/function.js file by @Snuffleupagus in #20738PDFDataRangeTransport unit-tests by @Snuffleupagus in #20756One column per quarter.
This release contains improvements for accessibility, the annotation editor, image decoding, performance and the viewer.
This release contains improvements for accessibility, the annotation editor, image decoding, performance and the viewer.
pdfjs.config by @timvandermeij in #20540ReadableStreams by @Snuffleupagus in #20594NetworkManager class, and inline it in the PDFNetworkStream class by @Snuffleupagus in #20595FileSpec class, and remove no longer needed polyfills by @Snuffleupagus in #20596ReadableStream and URL by @Snuffleupagus in #20605preferences_schema.json file for the Chromium addon by @Snuffleupagus in #20603IPDFStream, IPDFStreamReader, and IPDFStreamRangeReader interfaces with proper base classes by @Snuffleupagus in #20602This release, the final one of 2025, contains improvements for accessibility, font conversion, image conversion, performance, text selection and the v
This release, the final one of 2025, contains improvements for accessibility, font conversion, image conversion, performance, text selection and the viewer.
pdfjs.config by @timvandermeij in #20469markedContent by @nicolo-ribaudo in #20492This release contains improvements for the annotation editor, performance, text selection and the viewer.
This release contains improvements for the annotation editor, performance, text selection and the viewer.
pdfjs.config by @timvandermeij in #20414cached-iterable dev dependency in package.json by @Mario34 in #20450This release contains improvements for the annotation editor, accessibility, font conversion and performance.
This release contains improvements for the annotation editor, accessibility, font conversion and performance.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20339setDims calls in the highlight code by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20335sameLineText dependencies data on setTextMatrix by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/20361aboutstacks.pdf file in the integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20378This release contains improvements for annotations, the annotation editor, font conversion, text selection and the viewer.
This release contains improvements for annotations, the annotation editor, font conversion, text selection and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20215must check that date entered by the user is consistent scripting integration test for Firefox by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20239pending in the integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20271console.warn/console.info where appropriate by @sigmaSd in https://github.com/mozilla/pdf.js/pull/20252This release contains improvements for the annotation editor, performance, printing and the viewer.
This release contains improvements for the annotation editor, performance, printing and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/20124canvasContext as optional by @k-nut in https://github.com/mozilla/pdf.js/pull/20149This release contains improvements for accessibility, annotations, the annotation editor, font conversion and the viewer.
This release contains improvements for accessibility, annotations, the annotation editor, font conversion and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/200615.4 by @ryzokuken in https://github.com/mozilla/pdf.js/pull/20071This release contains improvements for accessibility, annotations, the annotation editor, forms, printing and the viewer.
This release contains improvements for accessibility, annotations, the annotation editor, forms, printing and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19981This release contains improvements for annotations, the annotation editor, font conversion, image decoding, performance and the viewer.
This release contains improvements for annotations, the annotation editor, font conversion, image decoding, performance and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19875navigator polyfill for older Node.js versions by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19876numberToString is called with a number (issue 19877) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19880stringToPDFString (PR 17331 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19884toStyle call in CheckButton by @gpanakkal in https://github.com/mozilla/pdf.js/pull/19883BasePdfManager.prototype.catalog getter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19888serializeXfaData method and related code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19887loadXfaImages method and related code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19885ObjectLoader class, and simplify how the ObjectLoader is used by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19895external/importL10n/locales.mjs by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19905src/core/document.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19902PDFDocument.prototype.fieldObjects getter slightly by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19903Catalog.prototype.openAction getter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19913workerPort option in Firefox by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19936unicorn/prefer-import-meta-properties ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19916eslint-plugin-unicorn rules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19917PDFWorker.fromPort with a generic PDFWorker.create method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19943workerPort option when using "fake" workers by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19939PDFDataRangeTransport class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19944await for asynchronous method calls in the integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/199505.3 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19960constructPath operations (issue 19971) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19972src/core/catalog.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19964src/display/api.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19962This release contains improvements for the annotation editor, font conversion, performance, text selection and the viewer.
This release contains improvements for the annotation editor, font conversion, performance, text selection and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19741Util.applyTransform to use the point-argument as an in/out parameter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19751ImageBitmaps for image masks and inline images by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/197605.2 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19766URLs alone (issue 19761) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19767Map to the src/core/writer.js code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19768ctx.filter unconditionally in the src/display/canvas.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19756isOffscreenCanvasSupported option, in the OperatorList class, once per document by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19758CanvasExtraState class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19771Array.prototype.reduce usage from the unit-tests by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19776process.getBuiltinModule is available by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19777AFSimple_Calculate by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19775export [some declaration] by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/19786.markedContent by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/19785no-array-reduce ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19788IDENTITY_MATRIX constant into src/core/core_utils.js (PR 19772 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19781PDFImage.createRawMask in the PDFImage.createMask method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19773getAll methods with iterators by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19778adjustWidths unconditionally for all embedded fonts (issue 19802) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19804getAnnotationStorage integration-test helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19790Object.fromEntries usage a tiny bit in the web/generic_signature_storage.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19789PDFDocument.prototype._xfaStreams to return a Map by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19805src/ folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/198065.99.5 (issue 19808) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19810Object.prototype hasn't been incorrectly extended (PR 11582 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19828XfaLayerBuilder.prototype.render correctly (issue 19840) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19841mask-image definitions (PR 18385 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19823light-dark CSS function in the viewer (issue 17780) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19819MathClamp helper function more in the web/ folder (PR 19617 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19868color-scheme (issue 19871) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19874This release contains improvements for the annotation editor, font conversion, performance, SMask rendering and the viewer, as well as bugfixes and im
This release contains improvements for the annotation editor, font conversion, performance, SMask rendering and the viewer, as well as bugfixes and improvements after feedback on the initial PDF.js 5.0 release.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19663PDFDocumentLoadingTask-instance (issue 15085) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/196325.1 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19667fetchSync helper function for the IccColorSpace classes by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19675async code in the src/core/document.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19674addSignatureDescription/editSignatureDescription handling (issue 19683) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19684src/core/writer.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19693src/core/writer.js a little bit by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19692setValues function with Array.prototype.fill() in the src/core/bidi.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19703AbortSignal.any polyfill in PDF.js legacy builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19681getSupplementalGlyphMapForCalibri with Pound-sign (issue 19695) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19696Math.sumPrecise usage in the code-base by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19710MathClamp helper function even more (PR 19617 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19714Util to reduce code duplication by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19713Array.prototype.reduce usage from the src/core/xfa/template.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19691enableAutoLinking by default by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19701XRef-instance explicitly to the StructTreeRoot class, and simplify the StructElementNode.prototype.role getter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19719Util.rectBoundingBox more in the annotation code (PR 19713 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19726Path2D objects for Type3-fonts by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19731TilingPattern (PR 4824 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19737PDFViewerApplication._initializeViewerComponents method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19720buildPaintImageXObject by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19739PDF.js 5.0 is a major release that contains a number of API changes, features and bugfixes.
PDF.js 5.0 is a major release that contains a number of API changes, features and bugfixes.
The following significant new features are highlighted:
.wasm file, which requires setting a new wasmUrl API option in order to use it; see PR https://github.com/mozilla/pdf.js/pull/19329.wasmUrl API option) for environments without WebAssembly support; see PR https://github.com/mozilla/pdf.js/pull/19525.wasmUrl API option is set; see PR https://github.com/mozilla/pdf.js/pull/19564.iccUrl API option in order to use it; see PR https://github.com/mozilla/pdf.js/pull/19620.enableAutoLinking option/preference; see PR https://github.com/mozilla/pdf.js/pull/19110.The following significant changes are highlighted (which may require changes in third-party PDF.js implementations):
The complete list of changes in this release is shown below. If you're upgrading to PDF.js 5.0 we recommend checking the changes prefixed with [api-minor] and [api-major] since those might require updates to your code.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19276getSelectedEditors integration test helper function by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19277Dict iteration more (PR 19051 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19278waitForUnselectedEditor integration test helper function more by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19290MeshShadingPattern class (issue 18816) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19305FontRendererFactory by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19317MissingPDFException and UnexpectedResponseException with one exception by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/192645.0 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19332getDocument Factory-parameters by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19331getDocument by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19341import/no-restricted-paths ESLint plugin rule for the viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19353highlightSelection waits until we've fully updated the editing-mode (issue 19369) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19371ColorPicker for each PDF document by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19372render-methods to take parameter objects by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19365isInEditingMode method (PR 19311 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19381isNumberArray helper by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19384readInt16 helper function in the src/core/core_utils.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19388hasFieldFlag calls in the src/core/annotation.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19393Annotation class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19397AnnotationElement class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19402color-mix fallback used with PopupAnnotations by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19408pdfjs-dist (PR 19329 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19415cMapUrl, standardFontDataUrl, and wasmUrl parameters by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19416--save-warning-color CSS variable typo (PR 19414 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19431PLATFORM function (PR 19414 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19430FeatureTest helper in the src/display/font_loader.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19432getPdfColorArray helper more in the src/core/annotation.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19423TextLayer.#getAscent fallback (PR 12896 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19399crypto.getRandomValues unconditionally in the src/core/crypto.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19450MeshStreamReader.prototype.readBits method a little bit by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19446TypedArray.prototype.fill() by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19456borderStyle of inferred links lazily (PR 19110 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19461userUnit using CSS, to fix the text/annotation layers (bug 1947248) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19469Array.from usage in the SignatureManager class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19485PDFPageView helper-method, and dispatch a "linkannotationsadded" event by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19475closeIfActive method in the OverlayManager class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19487CipherTransformFactory.prototype.#buildObjectKey method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19496useWorkerFetch fallback value is always a boolean by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19499eslint-disable statements in the web/ folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19503arrow-body-style warnings by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19504JpegStream (PR 19356 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19518URL.parse() usage in the code-base by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19493useWorkerFetch option is used internally by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19537assert in FontLoader.prototype.loadSystemFont by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19551#renderError on RenderingCancelledException (PR 19128 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19558disableFontFace and fontExtraProperties as part of the exported font-data by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19548PDFViewerApplication._initializeViewerComponents by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19556PDFViewer, when closing the document (PR 19128 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19557getGlyphMapForStandardFonts with some Cyrillic entries (issue 19550) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19562TranslatedFont.prototype.loadType3Data only once per font by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19563GlobalColorSpaceCache to reduce unnecessary re-parsing by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19583PDFWorker.fromPort() by @yjoer in https://github.com/mozilla/pdf.js/pull/19571FakeMLManager class in regular builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19568TypedArray.prototype.fill() in the RunLengthStream class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19589.error-file created for broken test-manifest links (issue 19579) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19581isValidExplicitDest helper function in the worker/viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19577Promise.then calls by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19597ColorSpaceUtils.parseAsync and simplify the ColorSpace "API-surface" by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19599ColorSpaceUtils.singletons handling (PR 19564 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19607opacityToHex helper function (PR 19093 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19610#savedHasOwnCanvas handling in the StampAnnotation class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19619MathClamp helper function more (PR 19617 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19628PDFFunctionFactory.createFromArray method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19623src/core/crypto.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19629d0 operators, with empty /FontBBox-entries (issue 19624) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19625maxCanvasPixels option in the thumbnails code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19635secondaryToolbar when clicking inside it (PR 18385 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19640Lexer.prototype.getNumber treat more cases of a single minus sign as zero (bug 1953099) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19647TouchManager.prototype.MIN_TOUCH_DISTANCE_TO_PINCH value by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19646PDF17 and PDF20 crypto classes by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19644OutputScale static method to get the devicePixelRatio by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19645src/core/crypto.js file a little bit by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19650GenericL10n.#getPaths with simple string parsing by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19657MeshStreamReader methods by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19656PDFThumbnailView.prototype.#finishRenderTask helper method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19661[api-minor] Remove deprecated getDocument options (PR 18776 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19224
This release contains improvements for accessibility, the annotation editor, font conversion, performance, SMasks and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19178PDFNetworkStream (issue 19075) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19114PDFFindBar options with the Enter key (issue 19175) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19185issue14307.pdf integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19192userUnit into account in the PageViewport class (issue 19176) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19196Path2D glyph-objects by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19200getDocument options (PR 18776 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/192244.10 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19225AbortSignal.any is unsupported (PR 19216 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19226handle reading ranges with missing/invalid "Content-Range" header unit-test in Google Chrome (PR 19114 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19237startWorkerTask calls in the "SaveDocument" handler by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19246if-statements in the src/core/ folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19260glyphNameMap parameter from Type2Compiled by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19263fontMatrix is always valid in compileGlyph by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19262requestRange/requestFull methods from the NetworkManager class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19273This release primarily contains a bugfix for a Node.js-specific regression in the previous release; see #19145 and #19149 for context. Moreover, impro
This release primarily contains a bugfix for a Node.js-specific regression in the previous release; see #19145 and #19149 for context. Moreover, improvements for the annotation editor are included.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/19139Promise.try() usage in the code-base by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19161.toggleButton, as used in the findbar, always have visible hover/focus state (issue 19165) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19172import.meta.url statements during building (issue 19145) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19149This release contains improvements for the annotation editor, form rendering, image conversion, text selection and the viewer.
This release contains improvements for the annotation editor, form rendering, image conversion, text selection and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18994toBase64Util helper function in the unit-tests by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18999XRef.indexObjects (issue 18986) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19007src/core/core_utils.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19005test/unit/api_spec.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/190034.9 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19002Page.prototype.userUnit getter slightly by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19019canvas package with @napi-rs/canvas by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19015PartialEvaluator helper for fetching CMap and Standard Font data by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19021getDocument option to disable ImageDecoder usage by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19031extensions/chromium/.eslintrc file (PR 19029 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19052no-var rule in the src/core/evaluator.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19050no-console rule in parts of the code-base by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19042extendCMap (PR 5101 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19057Dict-implementation to use a Map internally by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19051#_hcmCache-data in DOMFilterFactory.prototype.destroy by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19059ImageDecoder usage by default in Chromium browsers by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19045unicorn/no-single-promise-in-promise-methods ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19071getUuid helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19084getPdfManager function to be asynchronous by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19091stopEvent helper function everywhere possible by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19121src/display/api.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19135WorkerMessageHandler class a little bit by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19136getPage call in PDFDocumentProperties class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/19137This release contains improvements for the annotation editor, font conversion, form rendering, image conversion and the viewer.
This release contains improvements for the annotation editor, font conversion, form rendering, image conversion and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18858PDFDocument.fieldObjects getter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18871PDFViewer, with AbortSignal.any() by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18873ColorPicker event listeners with AbortSignal.any() (PR 18586 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18874PDFDateString class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18885AbortSignal in the AltTextManager class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18881removeEventListener in the web/app.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18893PDFViewerApplication.bindEvents by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18898pdkids PDF document to the repository by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18902MessageHandler-class event handler function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18888AbortSignal in the GrabToPan class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18919canvas package to version 3 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/189224.8 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18924eslint-plugin-{fetch-options,html} and eslint-config-prettier dependencies by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18927eslint-plugin-sort-exports by eslint-plugin-perfectionist by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18929mask-image duplication for the print/download buttons by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18930Attach (recommended) or Link to PDF file in the bug report template (PR 18535 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18940BaseCMapReaderFactory fetch-helper to return a Uint8Array by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18933ImageResizer._goodSquareLength definition by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18965CMapCompressionType enumeration by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18951StreamsSequenceStream to skip sub-streams that are not actual Streams (issue 18973) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18974PDFDocument.fingerprints-getter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17862toHexUtil helper (PR 17862 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18978L10n.#elements eagerly since it's unused in MOZCENTRAL builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18979hexNumbers structure in the stringToUTF16HexString helper by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18993flushChunks helper function, used in getPdfManager on the worker-thread by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18992This release contains improvements for accessibility, the annotation editor, annotation rendering, font conversion, form rendering, text selection, ti
This release contains improvements for accessibility, the annotation editor, annotation rendering, font conversion, form rendering, text selection, tiling pattern rendering and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18678Headers consistently in the different IPDFStream implementations by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18673StructTreeLayerBuilder.render method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18689ColorPicker class (PR 18674 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18705AltText class (PR 18674 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18706Headers in the different IPDFStream implementations by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18682.visibleMediumView from overriding already hidden elements (issue 18704, PR 18596 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18707HighlightEditor._l10nPromise field by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18724fs/promises in the Node.js unit-tests (PR 17714 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18772CanvasFactory/FilterFactory, rather than instances, to getDocument by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/187764.7 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18777typescript to version 5.6.2 by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18781splitToolbarButton CSS class (PR 18385 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18795#toolbarContainer-blocks in the CSS (PR 18385 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18796transportFactory initialization in getDocument by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18785trackTransform arguments from CachedCanvases.getCanvas-calls (PR 15281 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18799PDFLayerViewer decides if the UI needs to updated on "optionalcontentconfigchanged" events by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18829toolbarViewer/toolbarContainer regressions (PR 18385, 18786 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18831PDFViewer.annotationEditorMode setter event listeners with AbortSignal.any() by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18842Use the URL global instead of the deprecated url.parse by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/18657
This release contains improvements for the annotation editor, font rendering, form rendering, performance, text selection and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18500BaseCMapReaderFactory and BaseStandardFontDataFactory by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18502PDFWorkerUtil and move its contents into PDFWorker instead by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18507globals dependency by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18509Attach (recommended) or Link to PDF file in the bug report template by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18535Toolbar.prototype.#bindListeners by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18523web/app.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18527web/app.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18544options parameter to various download-methods in the viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18551waitForEvent helper function in the text layer integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18555otherPages variable from the scripting integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18567unicorn/{prefer-includes,throw-new-error} linting rules by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18571eslint-plugin-mozilla dependency by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18583AbortSignal.any() by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18586AbortSignal.any() is supported in PDFViewer too (PR 18586 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18587AbortSignal.any() by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18592AbortController by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18593secondaryToolbarButton CSS class by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18596enableHighlightEditor preference by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/185944.6 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18604PDFViewerApplication._parseHashParams method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18612window.uiManager back to the test code by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18623PDFDocumentProperties by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18636L10n-method to translate an element once, and use that in PDFLayerViewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18643HTMLCanvasElement.toBlob() unconditionally in PDFPrintService by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18644PDFDocumentProperties/AnnotationLayer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18638PDFDocumentProperties.#updateUI method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18655PDFDocumentProperties class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18663src/display/node_stream.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18665AnnotationEditorLayerBuilder in the web/pdf_page_view.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18672[api-minor] Remove the deprecated renderTextLayer and updateTextLayer functions (PR 18104 follow-up) by @Snuffleupagus in https://github.com/mozilla/p…
This release contains improvements for the annotation editor, font rendering, image rendering and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18359renderTextLayer and updateTextLayer functions (PR 18104 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18349isEditing-state into RenderingIntentFlag by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18387renderForms parameter from the Annotation getOperatorList methods by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18394mustBeViewedWhenEditing method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18393waitForScripting helper function and use it in all scripting integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18405BasePreferences to essentially be a wrapper around AppOptions by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18413ensureMinFontSizeComputed calculation if <body> is a flex container by @razh in https://github.com/mozilla/pdf.js/pull/18416DOMFilterFactory (issue 18406) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18417zoomDisabledTimeout usage (issue 17727) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18423pdfjs-dist code from the Gulpfile by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18434DOMFilterFactory.#createUrl in MOZCENTRAL builds (18417 PR follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18430Outliner from the official API by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18441PDFViewerApplication.setTitleUsingUrl by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18464PDFViewerApplication.downloadComplete by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18463AppOptions (PR 18413 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18450Preferences initialization as early as possible by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18470Map-usage in the AppOptions by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18469AppOptions.remove method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18475streamqueue dependency by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18483This release contains improvements for annotations, annotation editing, font conversion, image decoding, performance, scripting, text selection, test/
This release contains improvements for annotations, annotation editing, font conversion, image decoding, performance, scripting, text selection, test/release infrastructure and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18182gulp to version 5.0.0 by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18197DownloadManager.download to use Uint8Array-data by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18216#finishRendering helper in TextLayerBuilder.prototype.render by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18217DownloadManager.downloadUrl method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18236gulp-cli globally in the README and on the website by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18247src/display/api.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18250eslint-plugin-unicorn to version 54.0.0 by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18278tweakWebpackOutput to support minified-legacy builds (issue 18290) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18292maxCanvasPixels when computing canvas dimensions by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/18218FlateStream (issue 18298) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18304PDFFindBar when closing the viewer during testing by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18302waitForEvent integration test helper function by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18325waitForEvent in the pasteFromClipboard integration test helper function by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18326requestAnimationFrame work-around in L10n.prototype.destroy (PR 18313 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18333waitForEvent integration test helper function by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18331requestAnimationFrame in the watchScroll helper (PR 18193 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18335requestAnimationFrame in the API when cancelling rendering by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18336test/webserver.mjs being development-only code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18346npm publish warnings about the package.json format by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18350npm ci, not npm install, on CI by @wojtekmaj in https://github.com/mozilla/pdf.js/pull/18353package.json file for pdfjs-dist by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18358This release contains improvements for performance, image rendering, text selection, annotation editing, accessibility, handling of corrupted document
This release contains improvements for performance, image rendering, text selection, annotation editing, accessibility, handling of corrupted documents, integration with third-party frameworks (see #17245) and the viewer.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/180234.3 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18033FileSpec implementation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18034waitForTimeout usage from the freetext editor integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18041signal in web/pdf_viewer.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18055Font.prototype.spaceWidth getter (PR 13424 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18069ignoreErrors option from the FontFaceObject class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18066src/display/text_layer.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18052TextLayerRenderTask implementation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18089_fetchDocument helper function in getDocument by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18091BaseException class by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18093signal parameter from removeEventListener calls by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18094TextLayerRenderTask.prototype.#processItems when MAX_TEXT_DIVS_TO_RENDER is reached (PR 18089 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18103drawingDelay also when CSS-only zooming is used (issue 18022) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18077rimraf dependency in favor of the built-in Node.js fs.rmSync by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18106needle dependency by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18107cleanupTextLayer when there are pending textLayers by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18109adjustMapping (issue 18117) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18119evaluatorOptions in the src/core/pdf_manager.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18115through2 dependency in favor of the built-in Node.js stream.Transform by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18113waitForTimeout usage from the scripting integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17974merge-stream dependency in favor of the ordered-read-streams dependency by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18145web/text_layer_builder.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18152getRect utility function for the integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/18154loadingParams functionality in the API by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18159TextLayer until render is invoked (PR 18104 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18171setTextContentSource method in TextLayerBuilder (PR 18104 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18170This release includes a new JPX decoder, based on OpenJPEG, which improves JPX image rendering performance and correctness. Moreover, this release con
This release includes a new JPX decoder, based on OpenJPEG, which improves JPX image rendering performance and correctness. Moreover, this release contains improvements for the annotation editor, font conversion and the viewer.
Note that text selection boxes for some PDF files may overlap visually. This is a known issue that we currently track in https://github.com/mozilla/pdf.js/issues/17561.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17924mkdirp dependency in favor of the built-in Node.js fs.mkdirSync by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17935rimraf dependency in favor of the built-in Node.js fs.rmSync in the test folder by @timvandermeij in https://github.com/mozilla/pdf.js/pull/179384.2 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17949JpxImage API issues (PR 17946 follow-up) by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17951waitForTimeout usage from the helper functions by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17966signal in the viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17964JpxImage.parseImageProperties to support TypedArray data in IMAGE_DECODERS builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17977signal-support in the EventBus, and utilize it in the viewer (PR 17964 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17967waitForTimeout usage from the annotation integration tests by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17969DataCloneError (issue 17981) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17984CompiledFont.getPathJs by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18018SimpleLinkService to extend PDFLinkService by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/18013This release features improvements, bugfixes and optimizations for accessibility, annotation rendering, annotation editing, font rendering, form handl
This release features improvements, bugfixes and optimizations for accessibility, annotation rendering, annotation editing, font rendering, form handling, image rendering, text selection and the viewer.
Note that text selection boxes for some PDF files may overlap visually. This is a known issue that we currently track in #17561.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17474workerPort/workerSrc options by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17504npm install on MacOS by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/174904.1 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17507gulp-cli to 2.3.0 and explicitly add it as a dependency by @nicolo-ribaudo in https://github.com/mozilla/pdf.js/pull/17489PDFViewer (PR 14388 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17508web/locale/ folder from linting (PR 17525 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17529isArrayBuffer helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17537git blame by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17546async code when loading fonts in the PartialEvaluator by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17553test.mjs child process exit codes in the Gulpfile by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17555EvaluatorPreprocessor.opMap has a null-prototype (issue 17554) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17556async code in the PartialEvaluator by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17562DefaultExternalServices into a regular class, without static methods by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17588should compress and save text unit-test (issue 17399) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17591fileInput DOM-element dynamically by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17592debuggerSrc-parameter into the AppOptions by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17593GenericL10n works if the locale files cannot be loaded by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17603ExternalServices-instance lazily in the viewer (PR 17588 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17604l10n-folder (issue 17609, PR 17603 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17610PDFDataTransportStream constructor by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17620require statements from the build system by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17634PDFViewerApplication by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17646no-new-symbol and require-yield ESLint rules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17658enableStampEditor preference" (bug 1879588) by @calixteman in https://github.com/mozilla/pdf.js/pull/17651__non_webpack_import__ re-writing into the Babel plugin by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17637PDFViewerApplication.findBar safely in more spots (PR 15831 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17676beginMarkedContentProps operator when optional content parsing fails (issue 17679) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17680PDFPrintServiceFactory.createPrintService to take a parameter object by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17667tweakWebpackOutput usage in the gulpfile (PR 17637 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17678parseMinified handling slightly in the gulpfile by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17681hexNumbers Array, used by Util.makeHexColor, is built by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17718HighlightEditor.#telemetryType getter at its only call-site (PR 17748 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17750XMLHttpRequest-branch in the fetchData helper function (PR 17277 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17710Usage dicts (issue 5764, bug 1826783) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17726dist-pre target (PR 17681 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17717fs/promises in the Node.js-specific code in the src/-folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17714AppOptions by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17694alias-building out of the createWebpackConfig function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17691PDFViewerApplication.initPassiveLoading and directly invoke the open-method from the extension-specific code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17813Path2D polyfill for Node.js environments by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17830BasePreferences class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17842addWindowResolutionChange listener unconditionally (PR 17767 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17865compatibilityParams handling to the GENERIC viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17861PromiseCapability with Promise.withResolvers() by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17854fill-value of the Stamp-icon to work better in non-Firefox browsers by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17916editorHighlightShowAll button, such that it works outside of the Firefox PDF Viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17917waitForTimeout for new usages by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17915gulp-cli globally in the GitHub Actions workflows by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17913This release mainly contains improvements and bugfixes for the annotation editor functionality.
This release mainly contains improvements and bugfixes for the annotation editor functionality.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17339FirefoxCom.requestSync method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17338calculateMD5 and verifyManifestFiles test helper functions by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17367--editor-toolbar-active-bg-color CSS variable (PR 17352 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17377AppOptions default values together by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17391sandboxBundleSrc option is passed to PDFScriptingManager by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17397test/downloadutils.mjs file by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17431AnnotationEditorUIManager.destroy if the altTextManager is undefined by @pulsejet in https://github.com/mozilla/pdf.js/pull/17445outlineOptionsContainer, in the sidebar, using only CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17441This release contains improvements for the annotation editor, including a UI for deleting annotations and experimental support for highlight annotatio
This release contains improvements for the annotation editor, including a UI for deleting annotations and experimental support for highlight annotations, as well as bugfixes and improvements after feedback on the initial PDF.js 4.0 release.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17226fieldObjects and #collectFieldObjects handles References correctly by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17242editorParamsToolbars by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17256Blob used in createCDNWrapper (issue 17259) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17265gulp typestest to a separate GitHub Actions workflow by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17266--hcm-highlight-filter CSS variable name (issue 17254) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17272L10n-implementations to use lowercase language-codes internally by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17273GenericL10n class fetches localization-data by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17277JpegError when a JPEG image has no frame data (issue 17302) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17303fetchData helper function in more cases by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17328Update translations/dependencies to the most recent versions and fix dependency vulnerabilities by @timvandermeij in https://github.com/mozilla/pdf.js…
PDF.js 4.0 is a major release that contains a number of API changes, features and bugfixes. The following changes are highlighted:
The complete list of changes in this release is shown below. If you're upgrading to PDF.js 4.0 we recommend checking the changes prefixed with [api-minor] and [api-major] since those might require updates to your code.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17024layerProperties to an Object (PR 15811 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17026export statement in the web/pdfjs.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/170524.0 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17063rgb colors by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17077pdf.scripting.js as a JavaScript module (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17080structuredClone in legacy builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17086autoprint integration test as soon as possible by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17090web/debugger.js since it's actually a JavaScript module (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17094integration test-files to JavaScript modules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17112LIB build-target (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17114PDFWorkerUtil.createCDNWrapper to account for JavaScript modules (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17098import maps in development mode by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/14743import/no-commonjs ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17117src/shared/{cffStandardStrings,fonts_utils}.js files by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17120autoprint integration test, and tweak the protocol timeout configuration for Puppeteer by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17122globals list (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17123writeStream by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17134DownloadManager.openOrDownloadData by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17131dropdownToolbarButton width (issue 17137) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17138NullL10n in GENERIC builds (bug 1859818) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17135Preferences/AppOptions initialization slightly more efficient by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17130merge helper, in the gulpfile by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17133L10n-instance as soon as possible in Firefox (PR 17115 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17140ResizeObserver to update the layout of PDFFindBar by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17152NullL10n and remove the hard-coded l10n strings (PR 17115 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17146PDFDocumentProperties tweaks (PR 17115 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17151pageLabel exists by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17156NullL10n won't diverge from the L10n-class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17161ConstL10n class (PR 17161 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17173enableStampEditor preference by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17006WidgetAnnotationElement._getKeyModifier to account for Linux by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17185examples/-folder to account for outputting of JavaScript modules (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17081setup-node to version 4 in the GitHub Actions workflows by @timvandermeij in https://github.com/mozilla/pdf.js/pull/17199navigator-object accesses in src/-files (issue 15728) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17153PDFViewerApplication.open (PR 17208 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17218external/dist/webpack.js to account for outputting of JavaScript modules (PR 17055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17224viewerCssTheme-option, since it's partially broken by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17222This release primarily features accessibility improvements for the annotation editor and fixes for the type definitions.
This release primarily features accessibility improvements for the annotation editor and fixes for the type definitions.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16876removeNullCharacters in the addLinkAttributes helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16892InternalRenderTask changes by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16881getB function in src/core/pattern.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16951src/core/colorspace.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16954EvaluatorPreprocessor.opMap getter a little bit by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16956await even more in the "SaveDocument" worker-thread handler by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16957CipherTransformFactory class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16959web/debugger.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16961altText dialog if it's not open (PR 16977 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16984declaration-block-no-duplicate-properties rule (issue 16995) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16996AltTextManager class, since it's unused by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16993annotation_editor_layer_builder.css in the build (issue 16994) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16999collectFields parameter in the Annotation code (issue 17000) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17003this.#currentEditor when destroying the dialog by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17011Esc (PR 16987 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17012noContextMenu function in both the src/- and web/-folders by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/17017[api-minor] Deprecate the PDFDocumentProxy.getJavaScript method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16779
This release primarily features improvements and bugfixes for the annotation editor.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16769baseVersion commit hash (PR 16769 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16770PDFDocumentProxy.getJavaScript method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16779pdfjsLib globally regardless of how the library is imported (issue 16778) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16790round CSS function in the setLayerDimensions helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16794PDFViewerApplication._initializeAutoPrint slightly (PR 16779 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16810src/core/ Babel excludes, since they no longer seem necessary by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16829workerPort when destruction has started, but not yet finished (issue 16777) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16830StampEditor.#getBitmap by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16840StampEditor.isEmpty method to handle File (PR 16828 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16844workerPort in parallel (PR 16830 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16834PDFWorker.#workerPorts WeakMap lazily by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16852.mjs file-extension to the EditorConfig by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16860lineEndings, in Annotation-data, in MOZCENTRAL builds (PR 14899 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16856This release features improvements in the areas of annotation editing (including a new stamp editor), accessibility, form rendering/saving, text selec
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.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16629src/core/default_appearance.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16646parseAppearanceStream to handle more "complex" ColorSpaces by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16648external/importL10n-folder to use standard modules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16663parseMinified to use import() syntax by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16664test-folder to use standard modules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16665import() syntax by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16666import() syntax by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16667import() syntax by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16671gulpfile to use standard modules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16668external/builder/-folder to use standard modules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16669writeStream implementation slightly by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16678isOffscreenCanvasSupported option once in PDFViewerApplication._initializeViewerComponents by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16683unicorn plugin rules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16697PDFScriptingManager-class for the viewer-components by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16687core-js polyfills automatically by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16703require-calls from the src/display/-folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16698no-lonely-if ESLint rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16715no-var rule in the extensions/firefox/ folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16724useOnlyCssZoom preference by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16729vinyl-fs dependency by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16730debugger accesses API-functionality by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16738unicorn/prefer-ternary ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16753_keyboardManager initialization by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16755useWorkerFetch default value checks (PR 15879 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16758XRef.indexObjects (issue 16759, PR 15854 follow-up, bug 1845762) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16760web/app.js simplifications by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16744eq test for bug 858128 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16765useOnlyCssZoom option with maxCanvasPixels = 0 instead (PR 16729 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16731This release features improvements in the areas of annotation editing/saving/printing, font conversion, accessibility and performance.
This release features improvements in the areas of annotation editing/saving/printing, font conversion, accessibility and performance.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16487USERACTIVATION_CALLBACKID import (15618 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16511Util.getAxialAlignedBoundingBox helper function more by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16497import/named ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16514KeyboardManager-instances lazily by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16516PDFRenderingQueue-related code to the GENERIC viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16495import ESLint plugin rules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16517import/no-cycle ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16515trimCache API usage by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16519InkAnnotation.createNewAppearanceStream (issue 16518, PR 16494 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16520unicorn/prefer-optional-catch-binding ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16544type from RenderingCancelledException (PR 16226 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16550cleanup during rendering is actually ignored, to prevent a blank canvas by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16551writeStream by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16558AnnotationLayer gets a default l10n-instance in GENERIC builds (PR 16552 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16572OverlayManager.unregister method since it's completely unused by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16580sign handling in the Lexer.getNumber method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16581fixupLangCode helper function into the web/genericl10n.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16573FirefoxPreferences._readFromStorage (PR 16583 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16597src/shared/util.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16590PDFScriptingManager class to use private fields/methods by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16569TESTING build-target by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16602enableFloatingToolbar preference by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16605canvasFactory option from PDFPageProxy.render (PR 16242 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16623transfers computation into the AnnotationStorage class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16620src/pdf.image_decoders.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16622CSS.supports checks for the pageColors-option in the GENERIC viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16626Buffer in Node.js environments (PR 16055 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16627PDFCursorTools class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16616webViewerInitialized function in PDFViewerApplication.run by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16628This release features improvements in the areas of font conversion and substitution, annotation rendering and data compression, ink tool smoothing, te
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.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16399src/core/xfa/ folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16398PDFSidebar class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16413unicorn/no-useless-promise-resolve-reject ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16415jasmine to version 5 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16418css property in the getFontSubstitution unit-tests by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16422package-lock.json to lockfileVersion=3 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16430src/core/ folder by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16424fontID handling in PartialEvaluator.loadFont by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16437idFactory strings by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16443getNonStdFontMap for non-embedded Impact fonts (bug 1365930) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16446Toolbar-stub since the viewer has an actual toolbar now by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16466isPageVisible-handling in the find-controller (PR 10217 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16479PDFSidebar-class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16484Don't use the deprecated CustomEvent.initCustomEvent method anymore by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16336
This release features improvements in the areas of performance, text selection/searching, image/pattern rendering, accessibility and documentation/types.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16244--scale-factor CSS-variable warning threshold (issue 16254) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16256loadingBar CSS to better support RTL locales by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16261pageNumber CSS to better support RTL locales by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16262gulp dist-install (issue 15435) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16246float: inline-start/inline-end directly in MOZCENTRAL builds (PR 15968 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16265LoopbackPort.postMessage, for PDF.js legacy-builds (issue 16255) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16279Path2D-checks in the worker-thread to Node.js (PR 16238 follow-up, issue 16289) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16291CFFCompiler.compileGlobalSubrIndex, and simplify CFFCompiler.compileTypedArray by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16294\u0000, when getting all text (PR 16286 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16297PDFViewer constructor (PR 16286 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/162985 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16299PDFFindController, for mixing phrase/word searches (issue 7442) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16247enablePermissions is set (PR 16286 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16320:is usage in the xfaLayer CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16310:is usage in the textLayer CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16313:is usage in the PDFViewer CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16314:is usage in the annotationLayer CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16315:is usage in the viewer CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16323:is usage in the debugger CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16324eslint-plugin-mozilla to avoid having to force-install packages (issue 15429) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16327PRODUCTION build-target by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16305src/core/primitives.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16332PDF20 closure, in the src/core/crypto.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16334CustomEvent.initCustomEvent method anymore by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16336enablePermissions is set (PR 16320 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16333getXhr-option in the NetworkManager constructor by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16357stringToBytes-calls in the src/core/crypto.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16354pdfjs-dist repository by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16350findMsg-element (issue 16355) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16356linkService and l10n properties as optional in the PDFViewerOptions documentation by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16361git history in the work-flows (issue 16366) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16371publish_website.yml work-flow to only the master branch (issue 16369) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16370isStandardFont font-property (PR 15880 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16381addPageIndex method in GlobalImageCache.shouldCache by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16368PDFViewer.pageViewsReady getter slightly by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16375PDFSidebar.#forceRendering method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16379unicorn/no-invalid-remove-event-listener ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16394[api-minor] Remove the deprecated onUnsupportedFeature functionality (PR 15758 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/…
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.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/16093OffscreenCanvas support once on the worker-thread by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16095canvasFactory option into getDocument by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16100getDocument directly with a PDFDataRangeTransport-instance (PR 15943 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16103rimraf to version 4" by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16118onUnsupportedFeature functionality (PR 15758 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16122returns-type for two PageViewport-methods (issue 16134) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16142OffscreenCanvas by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16151--scale-factor CSS-variable in renderTextLayer (issue 16139) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16162applyTransferMapsToCanvas method (PR 16151 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16166PDFViewer.{increaseScale, decreaseScale} methods by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16171web/viewer.html by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16169margin-inline in the web/pdf_viewer.css file (PR 14670 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16172DOMFilterFactory, to reduce duplication when creating <feFuncX>s by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16180--scale-factor CSS-variable for visible textLayers (PR 16162 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16181transfer parameter, for structuredClone, in the LoopbackPort by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16175Set, rather than an Object by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16191inset usage in the CSS files by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16173inset-block usage in the viewer CSS by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16182String.prototype.replaceAll() where appropriate by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16196PDFViewer.{increaseScale, decreaseScale} methods by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16198unicorn/prefer-negative-index ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16185replaceAll in the recoverJsURL helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16208declaration-block-no-redundant-longhand-properties Stylelint rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16207FontInspector-integration in the API by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16199occurred in a couple of comments by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16211transition CSS-rules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16212isPDFFunction helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16218validateCSSFont helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16213imageResourcesPath correctly (PR 16153 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16228disableCombineTextItems option by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16234baseUrl in the PDFLinkService (PR 16153 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16232canvasFactory option from PDFPageProxy.render (PR 16100 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16242[api-minor] Deprecate providing binary data as Buffer in Node.js environments by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16055
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).
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/15974getGlyphMapForStandardFonts with additional entries (issue 15977) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15979singlePageView CSS rules to only the COMPONENTS build by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15996loadingIcon in all cases when resetting the page (PR 15992 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15997@media CSS rules by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15999removePageBorders option, in PDFViewer, to only GENERIC builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15998PDFViewerApplication.open method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15991isEmptyObj unit-test helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16005--scale-select-width CSS variable to the relevant DOM element by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16003cMapPacked parameter, in getDocument, default to true by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15981logical plugin by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15968onOpenWithTransport method in PDFViewerApplication.initPassiveLoading by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15987WorkerTransport by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16004getDocument by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16007require statements from the viewer (PR 16009 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16019LoopbackPort class to use a Set internally by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16030arrayByteLength helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16032LocalPdfManager/NetworkPdfManager constructor by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16047rewriteUrlClosure into the web/chromecom.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16028arraysToBytes helper function (PR 16032 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16040eventBus option in PDFThumbnailViewer (PR 15215 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16051annotationStorage entry by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16053getDocument call in test/driver.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16054Buffer in Node.js environments by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16055xfaLayer "on top" in regular PDF documents by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16056ImageBitmap clean-up into the PDFObjects class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16079OffscreenCanvas as intended for all code-paths in src/display/text_layer.js (PR 15722 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/16086[api-minor] Deprecate calling getDocument directly with a PDFDataRangeTransport-instance by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/1…
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.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/15878defaultZoomDelay option/preference unconditionally, and other (small) improvements by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15884PDFDocumentProxy.stats getter (PR 15758 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15880type/subtype at the end of font parsing by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15885accumulateWheelTicks/accumulateTouchTicks methods (PR 15886 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15891useWorkerFetch default value checks by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15879setPDFNetworkStreamFactory functionality in src/display/api.js by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15887--toolbar-border-color CSS variable (PR 15850 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15899XRef.indexObjects (issue 15893) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15897background-color of the sidebarContent (PR 15850 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15904transferPdfData option to allow transferring more data to the worker-thread (bug 1809164) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15908PDFDataTransportStream._onReceiveData (PR 15908 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15917PDFFetchStream implementation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15916src/core/core_utils.js by @timvandermeij in https://github.com/mozilla/pdf.js/pull/15905drawingDelay set (PR 15812 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15923rimraf to version 4 by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15925appearance-entries are actually Streams by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15926name table to infer the encoding for TrueType fonts missing such data (issue 15910) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15934license_header files by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15940highlight colors (PR 15921 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15937PDFViewerApplication helper method to center the position after wheel/pinch-zooming by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15935decodeInteger function returns valid integers (issue 15942) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15945getDocument directly with a PDFDataRangeTransport-instance by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15943disableAutoFetch functionality into the ProgressBar-class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15949adjustType1ToUnicode for fonts with a predefined named encoding (bug 1811668, PR 14050 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15948normalizeWheelEventDelta helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15959ProgressBar-related CSS variables into the loadingBar DOM-element (issue 15958) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15960GlobalWorkerOptions default values (PR 9480 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15966url-parameter in getDocument (PR 13166 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15954getDocument in GENERIC builds by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15964Path2D in Node.js environments by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15951PDFViewerApplication.open method to only accept objects by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15972This release primarily contains bugfixes and optimizations/cleanups, in particular to avoid re-rendering content unnecessarily on e.g. zooming and rot
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.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/15749FontLoader.isSyncFontLoadingSupported getter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15751platform getter in multiple files by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15761timeout parameter (PR 15742 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15765debugger from breaking on unbalanced save/restore OPS (issue 15767) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15768no-typeof-undefined ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15752view-getter on the worker-thread by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15773textContent/textContentStream parameters by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15779structTreeLayer on zooming and rotation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15778vars-argument for the ESLint no-unused-vars rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15775DefaultExternalServices.createDownloadManager options (PR 12191 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15776destroy code in the cancel method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15800XfaLayerBuilder.render method to be asynchronous by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15805annotationLayer, for pages without any annotations, on zooming and rotation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15806PageViewport-getter to access the original, un-scaled, viewport dimensions by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15797TextHighlighter-instance lazily in PDFPageView by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15826AnnotationLayer.render invocation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15824RenderTask.cancel, for worker-thread aborting of operatorList parsing by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15825startXRefQueue in XRef.readXRef (issue 15833) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15834OnProgressParameters in the TypeScript definitions (issue 15828) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15832loadingIconDiv is always visible (PR 15829 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15860XRef.indexObjects (issue 15803) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15854PDFPageProxy.getJSActions caching, since it's unused, in the API by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15870streamReader cancel timeout in PDFPageProxy._abortOperatorList (PR 15825 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15869background-color from the rest of the viewer by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15874[api-minor] Deprecate the TextLayer timeout parameter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15742
This release primarily contains bugfixes and optimizations/cleanups, in particular a follow-up on the previous release where a dependency we use could cause installation issues on certain platforms.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/15643Catalog.getAllPageDicts return an empty dictionary when loading the first /Page fails (issue 15590) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15613Glyph-instance by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15657Glyph-instance by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15665Parser.makeInlineImage (bug 1799927) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15679AnnotationStorage and StatTimer clean-up by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15682assert in Parser.findDefaultInlineStreamEnd to a non-PRODUCTION one by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15686DIACRITICS_EXCEPTION_STR constant lazily by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15698_isOffscreenCanvasSupported property to the base Annotation class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15699src/core/worker.js file by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15706annotationLayer reference tests (issue 10791) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15710MarkupAnnotations by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15713scrollIntoView (issue 15714) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15721scrollIntoView (issue 15714)" by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15740timeout parameter by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15742getQuadPoints helper function by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15715This major release features the new editor mode in the viewer (enabled by default now), new icons in the viewer, removal of deprecated functionality/A…
This major release features the new editor mode in the viewer (enabled by default now), new icons in the viewer, removal of deprecated functionality/APIs, removal of support for outdated browser versions, font conversion/text selection improvements and other features/bugfixes.
pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/15357enhanceTextSelection functionality (PR 15145 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15259deprecated code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15286browserify example by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15388trigger-elements by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15360pdfjs-dist by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15390SetOCGState action (issue 15372) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15377adjustToUnicode to extend a built-in /ToUnicode map (issue 15352) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15392verbosity when using a workerPort (issue 15419) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15420BaseViewer-class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15414new Worker() syntax in webpack entrypoint by @srmagura in https://github.com/mozilla/pdf.js/pull/15430getGlyphMapForStandardFonts with some quote-entries (issue 15441) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15442getSupplementalGlyphMapForCalibri with more entries (issue 15443) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15445enableScripting-parameter from the component examples (PR 13816 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15446String.prototype.search usage by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15458unicorn/prefer-regexp-test ESLint plugin rule by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15460setTimeout-functionRefs correctly in SandboxSupportBase.destroy by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15477this._document assignment in the App-class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15483border-radius when hovering annotationLayer-inputs (PR 15438 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15491scanLines parameter (issue 15492) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15494Array.prototype-usage with spread syntax by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15498LoopbackPort class in the API by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15500errorWrapper (PR 15438 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15501outline for all UI buttons (PR 15438 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15503stopImmediatePropagation without checking for its existence first by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15504FontLoader code by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15507Doc.external-getter to avoid alert-modals on load (issue 15509) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15512glyphlist.js file (issue 15516) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15517DOMMatrix polyfill, used with Node.js, with the one from node-canvas by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15514FontLoader clean-up by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15511toggleButton l10n in the PDFSidebar class by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15530src/shared/compatibility.js is imported by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15510errorWrapper UI by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15533id on the styleElement used with CSS font-loading by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15534for...of loops in the code-base by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15536isOffscreenCanvasSupported configurable via the API (issue 14952) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15542TypedArray.prototype.set in the DecryptStream.readBlock method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15539Util.apply3dTransform method by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15547CMapCompressionType.STREAM value by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15553dropdownToolbarButton-select width computation by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15552Page.getOperatorList handles Annotation parsing errors correctly (issue 15557, bug 1794351) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15558PDFDocument.checkHeader by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15562editorTypes for each AnnotationEditorUIManager-instance (issue 15564) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15565PartialEvaluator._simpleFontToUnicode by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15572XRef.indexObjects (issue 15577) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15589getSupplementalGlyphMapForCalibri with some umlauts (issue 15594) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15596Glyph.matchesForCache method (PR 13494 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15586Lexer.getNumber treat more invalid "numbers" as zero (issue 15604) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15606PdfManager.requestLoadedStream method return the stream by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15616Array.from and Array.prototype.map calls by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15637PdfManager.onLoadedStream method (PR 15616 follow-up) by @Snuffleupagus in https://github.com/mozilla/pdf.js/pull/15641This release features bugfixes and accessibility improvements for the new _experimental_ editor mode in the viewer as introduced in the previous relea
This release features bugfixes and accessibility improvements for the new experimental editor mode in the viewer as introduced in the previous release.
Changes since v2.15.349:
#15252 Bump versions in pdfjs.config
#15251 Ignore too small page-canvases in PDFThumbnailView.setImage
#15253 [api-minor] Update the minimum supported Safari version
#15263 Always set a border-radius for RadioButton annotations (issue 15262)
#15264 [Editor] Add some telemetry to know how often the editing features are used (bug 1782254)
#15268 Fix a typo in firefox print service (bug 1777693)
#15271 Skip unknown fields when calculating a value in using AFSimple_Calculate
#15267 [Annotation] Add a div containing the text of a FreeText annotation (bug 1780375)
#15274 [Editor] A pasted FreeText editor was missing when printing/saving
#15275 [Editor] Remove some a11y properties only useful when a FreeText editor is edited
#15282 Enable the ESLint prefer-spread rule
#15261 Don't include images/toolbarButton-editorInk.svg in the gulp components build (issue 15260)
#15281 Remove mozCurrentTransform/mozCurrentTransformInverse usage
#15283 [api-minor] Sort PopupAnnotations already on the worker-thread (PR 11535 follow-up)
#15284 Update packages and translations
#15287 [Editor] Remove use of innerHtml
#15290 Fix OTS issue with empty index (#15289)
#15295 [Editing] Disable buttons until the first page is rendered
#15296 Move the reset-calls to occur last in the toolbar-constructors
#15297 [Editor] Avoid creation of an editor on "wrong" clicks
#15298 [Editor] Ensure an ink editor has the minimal required size after having been pasted
#15279 Remove the extensions/firefox/README.mozilla file (bug 1778567 follow-up)
#15299 Add official support for passing ArrayBuffer-data to getDocument (issue 15269)
#15237 [Annotations] Add some aria-owns in the text layer to link to annotations (bug 1780375)
#15307 [Annotation] Add an aria role comment for FreeText annotations
#15309 Remove the remaining closure in the src/core/function.js file
#15306 Only compile Type3 glyphs when Path2D is supported
#15300 [GENERIC viewer] Export some viewer constants in the default viewer (issue 15294)
#15311 Don't add aria-owns attributes for non-existent elements (PR 15237 follow-up)
#15310 Remove the remaining closures in the src/core/cff_parser.js file
#15313 Move binarySearchFirstItem back to the web/-folder (PR 15237 follow-up)
#15319 Refresh the viewer if the window resolution changes (bug 1784850)
#15318 A couple of small PDFWorker changes
#15315 Remove the remaining closures in the src/core/type1_parser.js file
#15325 Ignoring "resize" events during printing (issue 15324)
#15327 Correctly mimic the proper event-format in AnnotationElement._setDefaultPropertiesFromJS (bug 1785218)
#15329 [api-minor][Annotations] charLimit === 0 means unlimited (bug 1782564)
#15338 Update packages and translations
#15332 [api-minor] Add the Babel targets-option to avoid transpiling code for unsupported browsers
#15335 Ensure that we don't try to re-open, or update the password-callback, when the password dialog is already open
#15348 [editor] Change the focus-outline to blue (bug 1787296)
#15347 Update types in PDFPageViewOptions to properly declare optional parameters
#15355 Always focus the viewerContainer when entering PresentationMode (bug 1787456)
#15344 Enable the unicorn/prefer-array-find ESLint plugin rule
#15343 Use AbortController unconditionally with the Fetch API
#15341 Improve handling of the "Cancel"-button in the password dialog
#15346 [api-minor] Deprecate the imageLayer functionality
#15351 [api-minor][editor] Indicate, in the title, if the document has been edited (bug 1785854)
#15349 [editor] Remove the editorNone toolbar button (bug 1787295)
#15356 Update the Node.js atob/btoa compatibility info
This release features rendering quality improvements and a new _experimental_ editor mode in the viewer, providing users with basic PDF editing functi
This release features rendering quality improvements and a new experimental editor mode in the viewer, providing users with basic PDF editing functionality such as inserting annotations.
Changes since v2.14.305:
#14919 Bump versions in pdfjs.config
#14920 Update packages and translations
#14921 Adjust the heuristics for handling of incomplete path operators (issue 14917)
#14898 [api-minor] Use a CSS transform to update the progress bar instead of changing the width (bug 1768481)
#14945 Allow to have float numbers when getting image information in reftest-analyzer
#14947 Twitter should be capitalized.
#14929 Display background when printing or saving a text widget (issue #14928)
#14926 Remove the sourceEventType from the viewer (bug 1757771 follow-up)
#14948 Set 'dropEffect' based on 'effectAllowed' for drag-and-drop in the viewer (issue 14942)
#14950 [JS] Format all the fields if any when the document is open (bug 1766987)
#14955 Skip bogus d1 operators in Type3-glyphs (issue 14953)
#14957 Introduce a viewer constant for document.documentElement.style
#14959 Support custom pageColors in the thumbnails (PR 14874)
#14965 Support Hangul syllables when searching some text (bug 1771477)
#14936 Set the text fields font size based on their height
#14966 Use globalThis for webpack's output.globalObject instead of this
#14963 Handle CSS-comments correctly in the preprocess-function (PR 14886 follow-up)
#14964 Ensure that the contentDispositionFilename is always respected, when setting the document title (PR 13014 follow-up)
#14962 Improve the PDFSidebar implementation
#14967 Update packages and translations
#14968 A small memory-usage improvement for PDF documents opened from TypedArray-data
#14980 Handle CSS-comments better in the preprocess-function (PR 14963 follow-up)
#14976 [editor] Add a FreeText editor (#14970)
#14988 Remove mention of gulp singlefile-command from examples/node/getinfo.js
#14985 [editor] A couple of small FreeText-related fixes (PR 14976 follow-up)
#14984 Bundle the <dialog> polyfill-CSS in the GENERIC legacy/-viewer (PR 14710 follow-up)
#14991 [editor] Disable the editor-buttons in XFA documents
#14992 Lookup image-data correctly in paintImageMaskXObjectGroup (issue 14990)
#14993 [editor] Update the AnnotationStorage.hash-getter to support editing
#14994 Conditionally bundle gulp image_decoders-specific code in src/core/jbig2.js (PR 9729 follow-up)
#14998 Reset all the canvas states after rendering each annotations (#14105)
#15000 Outline fields which are required (bug 1724918)
#15001 Set "presentation" role for page canvases (issue 14437)
#15003 Change the name of the generated pdf.sandbox.external for mozilla-central
#14978 [editor] Add support for saving a newly added FreeText
#15008 Polyfill Array.prototype.at with core-js (PR 14976 follow-up)
#15011 Fix a couple of old review comments
#15013 Render PopupAnnotations even if they have missing or empty /Rect-entries (issue 15012, PR 14439 follow-up)
#14989 [editor] Add an Ink editor
#15006 [editor] Add support for saving newly added Ink
#15019 Revert "Change the name of the generated pdf.sandbox.external for mozilla-central"
#15015 Extend TextLayerRenderParameters.container type to include HTMLElement.
#15020 Add an empty entry in combo list when nothing is selected (bug 1773680)
#15014 Enable the unicorn/prefer-at ESLint plugin rule (PR 15008 follow-up)
#15018 Expose TextLayerRenderTask in the TypeScript definitions (issue 15016, PR 14013 follow-up)
#15022 Tweak the editorNone icon to circumvent the "duplicated files"-check
#15026 [api-minor] Stop using the beginAnnotations/endAnnotations operators (PR 14998 follow-up)
#15027 Remove superfluous trailing arguments from parseFloat-calls (PR 14978 follow-up)
#15029 Enable the unicorn/prefer-dom-node-append ESLint plugin rule
#15023 Enable the unicorn/prefer-array-flat and unicorn/prefer-array-flat-map ESLint plugin rules
#15028 [api-minor] Update the minimum supported browsers/environments
#15030 Update packages and translations
#15031 Enable the unicorn/prefer-modern-dom-apis ESLint plugin rule
#15034 Extend getGlyphMapForStandardFonts with some Hebrew entries (issue 15033)
#15046 Add basic support for non-embedded ArialUnicodeMS fonts (issue 15044)
#15050 [Editor] - Add the ability to directly draw after selecting ink tool
#15051 Fix "Good Beginner Bugs" link
#15054 [JS] Hide field borders and buttons (#15053)
#15035 Use modern DOM methods a bit more (PR 15031 follow-up)
#15048 Only define the renderer-option in the GENERIC viewer
#15052 Simplify setting the defaultUrl-option in the CHROME viewer (PR 12470 follow-up)
#15057 Replace element ids with custom attributes for Widget-annotations (issue 15056)
#15036 [api-minor] Get rid of CSS transform on each annotation in the annotation layer
#15058 [api-minor] Remove the "baseviewerinit" event since it's unused (PR 14324 follow-up)
#15059 Reduce unnecessary usage of Array.prototype.concat()
#15065 Popup trigger area must filled its parent (fix #15063)
#15064 Avoid having overflowing sections (#15036 follow-up)
#15062 Simplify the newRefs computation in the "SaveDocument"-handler in the worker-thread
#15071 Add an outline around popup trigger areas in ref-tests
#15074 Only activate ink editor if none is selected
#15069 Ensure that the annotationLayer has the correct dimensions (PR 15036 follow-up)
#15075 [editor] Support disabling of editing when pdfjs.enablePermissions is set (issue 15049)
#15060 Rotate annotations based on the MK::R value (bug 1675139)
#15047 [Editor] Add support for printing newly added Ink annotations
#15076 Enable the prefer-array-index-of ESLint plugin rule
#15081 Fix (obvious) typo in typedef-import of IPDFXfaLayerFactory (PR 14373 follow-up)
#15082 [Editor] Add support for printing newly added FreeText annotations
#15089 Correctly order added annotations when saving or printing
#15043 [api-minor] Introduce a PrintAnnotationStorage with frozen serializable data
#15093 [JS] Update siblings when a field is updated after a calculation (#15092)
#15097 Fix unit test (#15093 follow-up)
#15095 Add (basic) support for Optional Content in Annotations
#15101 Use the built components/pdf_viewer.css file in the reference tests
#15099 Remove element ids from the layersView in the sidebar
#15100 chore: Included githubactions in the dependabot config
#15103 chore: Set permissions for GitHub actions
#15088 Support rotating editor layer
#15104 Update translations and dependencies to the most recent versions
#15105 Always flush the current item with MarkedContent stuff when getting text (#15094)
#15039 [editor] Add some UI elements in order to set font size & color, and ink thickness & color
#15113 [editor] Introduce a proper annotationEditorMode option/preference (PR 15075 follow-up)
#15111 Add a visible page border in HCM (bug 1776914)
#15116 Fix the annotationEditorMode-compatibility for older browsers (PR 15113 follow-up)
#15117 [Editor] Set the freetext editor dimensions when the changing the font size
#15118 [Editor] Allow to select a freetext editor when in ink mode
#15115 [Editor] Handle correctly colors when saving a document in HCM
#15122 [editor] Tweak @media CSS rules to account for the new toolbar buttons
#15123 [editor] Disable editing while PresentationMode is active
#15121 [api-minor] Further modernize the ProgressBar class (PR 14918 follow-up)
#15126 [Editor] Update the id for a l10n string
#15125 Fix the Popup-trigger for FileAttachmentAnnotationElement (PR 15036 follow-up)
#15124 Call AnnotationLayer.setDimensions as part of the render/update-methods (PR 15036 follow-up)
#15133 Improve text-selection for Type3 fonts with bogus /FontBBox-entries (issue 14999)
#15130 [Editor] Dispatch an event when some global states are changing (bug 1777695)
#15142 [editor] Use the fit-curve package (issue 15004)
#15144 [Editor] Allow editors deletion on Backspace or Delete keys
#15146 [Editor] Change the cursor to a pen for the Ink editor
#15143 [jsdoc] failing typescript builds - wrong type
#15147 [Editor] Avoid to resize and redraw the ink canvas when it's useless
#15135 Use default colors only in forced-colors mode (bug 1778068)
#15151 [Editor] Remove useless and faulty code when destroying the global manager
#15152 Ensure that the /Resources-entry is actually a dictionary (issue 15150)
#15153 [Annotation] A push button can have no action (bug 1778692)
#15145 [api-minor] Deprecate the enhanceTextSelection functionality
#15155 Update packages and translations
#15154 Replace element ids with custom attributes in the xfaLayer
#15158 Update ttx from version 2.5 to version 3.19.0
#15159 [Editor] Avoid to have the ink editor smaller than the resizer (bug 1778982)
#15163 [Editor] Always have an ink editor (when in ink mode)
#15162 Enable the unicorn/prefer-logical-operator-over-ternary ESLint plugin rule
#15157 Add unicode mapping in the font cmap to have correct chars when printing in pdf (bug 1778484)
#15168 Disable canvas acceleration for linux tests
#15169 Handle errors in the "Loading by ref" code-path in PartialEvaluator.loadFont
#15170 [JS] Embedded JS scripts can have some null chars
#15173 [api-minor] Deprecate the SVG back-end
#15184 [Editor] Simplify the way to create an editor on click
#15179 [Editor] Use serialized data when copying/pasting
#15174 Use more for...of loops in the code-base
#15110 [Editor] Improve a11y for newly added element (#15109)
#15187 [Editor] Remove useless and potentially deleted editors
#15185 [Editor] Ink editor was too much translated after commit
#15186 [Editor] Move the keyboard manager at the container level
#15192 Ignore invalid /CIDToGIDMap-entries when parsing fonts (issue 15139)
#15195 [Editor] No need to click twice to create an editor when the last one is empty
#15199 Bump terser from 5.14.1 to 5.14.2
#15196 [Editor] Add a z-index in order to draw them in the right order
#15183 Remove the svgviewer example
#15206 [Editor] Simplify the command manager
#15200 [Editor] Add the ability to make multiple selections (bug 1779582)
#15210 [Editor] Unselect correctly removed editors
#15188 [Editor] Replace mouse events by pointer ones (bug 1779015)
#15211 [Editor] Fix multi-selection on touch screens
#15214 Update packages and translations
#15218 [Editor] Fix few keyboard shortcuts on mac
#15221 Support images with /Filter-entries that contain Arrays (issue 15220)
#15230 [Editor] Avoid editor creation/selection on right click (bug 1781762)
#15231 [Editor] Don't set as active an editor which is not (bug 1781763)
#15219 [Editor] Add the possibility to change line opacity in Ink editor
#15233 [Editor] Avoid to add unexpected commands in the undo/redo queue when undoing/redoing (bug 1781790)
#15234 [Editor] Reset the queue when a command is added after having undone all the commands
#15217 [Editor] Simplify the strings for the tools in the UI
#15236 Set opacity in the reference tests (PR 15219 follow-up)
#15235 Ensure that the isUsingOwnCanvas-parameter is consistently included in operatorLists (PR 14247 follow-up)
#15232 Fix text selection with hdpi screens (#15229)
#15238 Fix wrong order of arguments when calling the CipherTransform ctor (bug 1782186)
#15240 [api-minor] Change the various factories, in the viewer, to accept Objects
#15242 [Editor] Avoid to slightly move ink editor when undoing/redoing
#15244 [Editor] Add an editor in the annotation storage only when it's non-empty (#15241)
#15215 [api-minor] Improve how we disable PDFThumbnailView.setImage for documents with Optional Content
#15248 Update l10n files
#15247 Misc. small CSS cleanup
#15246 [api-minor] Improve thumbnail handling in documents that contain interactive forms
This release features improvements for the text layer (space insertion), canvas rendering (thin line rendering), forms (printing/saving of choice list
This release features improvements for the text layer (space insertion), canvas rendering (thin line rendering), forms (printing/saving of choice lists) and accessibility (sidebar and search results). Moreover, this release contains performance improvements for rendering image masks, Type3 fonts and certain drawing instructions. Finally, the user can now specify custom background/foreground colors for rendering in the viewer.
Changes since v2.13.216:
#14614 Bump versions in pdfjs.config
#14536 Fix some issues with lineWidth < 1 after transform (bug 1753075, bug 1743245, bug 1710019)
#14615 Remove the -webkit-overflow-scrolling: touch; CSS rules (PR 4516 follow-up)
#14617 Remove the -webkit-outer-spin-button CSS rule
#14623 Remove some deprecated code from the viewer
#14624 Simplify the fallback-logic in the default viewer
#14629 Compute the loca table endOffset, of the "first" glyph, correctly (issue 14618)
#14631 Fix a couple of small typos in JSDoc typedef comments
#14628 When stopAtErrors is set, throw rather than warn when exceeding maxImageSize (issue 14626)
#14634 Replace XMLHttpRequest usage with the Fetch API in Driver.run
#14633 Update packages and translations
#14635 Replace XMLHttpRequest usage with the Fetch API in loadStyles (in test/driver.js)
#14638 Replace XMLHttpRequest usage with the Fetch API in the reftest-analyzer
#14637 Use proper private methods in web/{pdf_cursor_tools,pdf_find_bar,secondary_toolbar}.js
#14636 Replace XMLHttpRequest usage with the Fetch API in Driver._quit
#14640 Update TypeScript to version 4.6.2 and work-around stricter type checks
#14648 Simplify the PDFDocument constructor
#14645 [api-minor] Remove the, in legacy builds, bundled DOMMatrix polyfill
#14642 Replace XMLHttpRequest usage with the Fetch API in Driver._send
#14651 Replace XMLHttpRequest usage with the Fetch API in inlineImages (in test/driver.js)
#14620 Bug 1757527 - Slightly reduce (repeated) message passing overhead when localizing the PDF Viewer
#14554 Try to improve a11y for the "button groups" in the SecondaryToolbar/Sidebar (issue 14526)
#14654 Replace XMLHttpRequest usage with the Fetch API in send (in test/unit/testreporter.js)
#14656 Move the isSameOrigin helper function
#14658 Validate the cMapUrl/standardFontDataUrl parameters in getDocument
#14661 Update Checkout to version 3
#14667 Enable the "gets fieldObjects" unit-test in Node.js (PR 14409 follow-up)
#14668 Remove the addLinkAttributes warnings in the Annotation/XFA-layers (PR 14092 follow-up)
#14665 Convert the BasePreferences class to use private fields
#14669 Replace dir-dependent padding-left/padding-right/text-align with logical properties
#14676 Remove the custom grab/grabbing cursor image files
#14678 Convert the PDFDocumentProperties class to use private methods
#14675 Build the web/viewer.css file used in the development viewer (i.e. gulp server)
#14682 [gulpfile.js] Use the regular defines in the preprocessCSS function
#14688 Add general iteration support in the RefSet and RefSetCache classes
#14683 [src/display/api.js] Simplify the sendTest function, used with Worker initialization (PR 14291 follow-up)
#14689 Slightly simplify the PDFFindController._extractText method, and convert all "private" methods into proper ones
#14670 Replace dir-dependent margin/margin-left/margin-right with logical properties
#14671 Replace dir-dependent float with logical properties
#14692 [JS] - Parse a date in using the given format first and then try the default date parser
#14695 Update packages and translations
#14690 Replace dir-dependent left/right with logical properties
#14704 Convert the OverlayManager class to use private fields/methods
#14699 Slightly improve validation of (some) parameters in getDocument
#14691 Replace dir-dependent border-rules with logical properties
#14693 Remove the remaining dir-dependent CSS rules
#14717 Change the type of the container property, in the TextLayerRenderParameters typedef (issue 14716)
#14715 Avoid the textLayer becoming visible in high contrast mode (issue 13230)
#14703 [text selection] Add the whitespaces present in the pdf in the text chunk
#14720 [Annotations] Add support for printing/saving choice list with multiple selections
#14710 Convert the existing overlays to use <dialog> elements (issue 14698)
#14733 Use String.prototype.repeat() in a couple of spots
#14735 [Annotations] Some annotations can have their values stored in the xfa:datasets
#14734 Don't manually convert setAttribute values to strings (PR 14554 follow-up)
#14738 Decode non-ASCII values found in the xfa:datasets (PR 14735 follow-up)
#14742 Replace most loops in web/debugger.js with for...of loops
#14744 Update GitHub Actions workflow steps/dependencies/translations to the most recent versions
#14745 Convert web/debugger.js to a basic module
#14739 Refactor some xfa*** getters in document.js
#14663 [GENERIC viewer] Try to improve a11y, for search results, in the findbar (issue 14525)
#14761 Use a bit more optional chaining in the viewer
#14751 Re-factor the isLittleEndian/isEvalSupported caching
#14750 Remove the BaseViewer._getCurrentVisiblePage helper method
#14754 [api-minor] Improve performance with image masks (bug 857031)
#14766 Improve performance of applyMaskImageData
#14764 Correct typos
#14765 Simplify handling of requestFullscreen errors in PDFPresentationMode
#14767 [GENERIC viewer] Re-factor the fileInput initialization
#14769 Remove unnecessary @media CSS rules (PR 8993 follow-up)
#14770 Always remove the sidebarMoving CSS class when the sidebar is closed
#14771 Simplify the dialog::backdrop CSS rules (PR 14710 follow-up)
#14772 Remove/simplify some CSS rules
#14773 Remove some dropdownToolbarButton-related CSS rules
#14780 Replace the --viewport-scale-factor CSS variable
#14722 PDFScriptingManager: Bind mousedown listener with capture=true
#14784 Improve performance of shared/utils.js::intersect (bug 1135277)
#14785 Update core-js to allow removing a structuredClone work-around
#14777 [api-minor] Improve performances with image masks (bug 857031)
#14796 [api-minor] Simplify min/max computations in constructPath (bug 1135277)
#14797 Don't clip when the clip path is empty (issue #12306)
#14799 Fix clipping issue with pattern (follow-up of #14797)
#14788 Move the PDFBug-related CSS from viewer.css and into its own file
#14790 Remove some outdated CSS rules related to printing
#14792 Update packages and translations
#14795 Reduce more duplication in the CSS
#14793 Simplify spread-mode handling for the PAGE scroll-mode
#14801 [GENERIC viewer] Simplify the styling of the previous/next findbar buttons
#14803 Add support for the /Catalog Base-URI when resolving URLs (issue 14802)
#14794 Remove the PresentationMode special-case from BaseViewer.update
#14810 Stop bundling errorWrapper CSS rules in the MOZCENTRAL build
#14817 Some more, small, CSS clean-up
#14818 Use correct case for JavaScript
#14815 Ignore non-Stream /SMask-entries when parsing images (issue 14814)
#14828 Use more for...of loops in the viewer
#14827 Simplify setting of spacing at the left/right edges of the toolbar(s)
#14823 Ignore invalid /Encoding-entries when parsing fonts (issue 14821)
#14825 Ensure that worker-thread image caching doesn't break optional content (issue 14824)
#14829 Remove unnecessary print CSS rules
#14831 Add a helper function for incrementing the count of cached ImageMasks
#14836 Don't use pref 'browser.download.improvements_to_download_panel' in Firefox (#14822)
#14848 Support destinations in NameTrees with encoded keys (issue 14847)
#14833 Stop bundling the openFile-buttons in the MOZCENTRAL build
#14835 Clean-up some CSS rules for the various toolbar separators
#14856 [api-minor] Remove the forceClamped-functionality in the Streams (issue 14849)
#14853 Use integer coordinates when drawing images (bug 1264608, issue #3351)
#14854 Remove redundant class names from the button DOM-elements
#14857 Inline the webViewerOpenFileViaURL function in webViewerInitialized
#14860 Update dependencies and translations
#14858 Use Path2D, if available, when rendering Type3-fonts (bug 810214)
#14861 Pin the es-module-shims dependency to version 1.4.7
#14863 Update quickjs to revision 2788d71e823b522b178db3b3660ce93689534e6d
#14865 Support encoded dest-strings in /GoTo destination dictionaries (issue 14864)
#14866 Immediately release the temporary Uint8Arrays used during Type3-compilation
#14869 [JS] Fix few bugs present in the pdf for issue #14862
#14873 Replace the AnnotationStorage.lastModified-getter with a proper hash-method
#14870 Only bundle the src/display/node_utils.js file in GENERIC-builds
#14871 Re-factor the PresentationMode handling in BaseViewer.#ensurePageViewVisible
#14874 [api-minor] Improve pdf reading in high contrast mode
#14877 Add (basic) support for Spread modes in PresentationMode (issue 14749)
#14880 Introduce a --viewer-container-height CSS variable to simplify the code
#14884 Simplify the "fileattachmentannotation"-event handling a little bit
#14882 Add support for TrueType format 12 cmaps (issue 14881)
#14887 Ignore pageColors when the background/foreground is identical (PR 14874 follow-up)
#14885 Stop bundling PDFViewerApplication.{unbindEvents, unbindWindowEvents} in MOZCENTRAL builds
#14888 Try to fix dispatching of "attachmentsloaded"-events, when the document contains no "regular" attachments (PR 8788, 12163 follow-up)
#14886 Use the regular preprocess-function for the CSS files as well
#14890 [JS] Formatted value has to be a string when neither null nor undefined
#14903 Update the preprocess-function to avoid adding trailing new-lines (issue 14902)
#14904 Avoid the preprocess-function adding consecutive blank lines
#14899 [api-minor] Include line endings in Line/Polyline Annotation-data (issue 14896)
#14894 Try to remove the mozOpaque canvas-property (PR 6551 follow-up)
#14911 Use TypedArray.prototype.fill() a bit more in the code-base
#14910 Ensure that setting the width of the zoom dropdown works correctly (PR 14028 follow-up)
#14918 [api-minor] Modernize and simplify the ProgressBar class
This release features improvements for searching in the viewer: searching with/without diacritics, arbitrary whitespace matching, searching for hyphen
This release features improvements for searching in the viewer: searching with/without diacritics, arbitrary whitespace matching, searching for hyphenated words when linebreaks are present and searching around punctuation characters. Moreover, this release contains many bugfixes and optimizations, in particular for annotations, font/image conversion, SMask rendering, text layer rendering and TypeScript definitions.
Changes since v2.12.313:
#13261 [api-minor] Support search with or without diacritics (bug 1508345, bug 916883, bug 1651113)
#14389 Bump versions in pdfjs.config
#14388 Unblock the "load" event in inactive windows/tabs (bug 1746213, PR 11646 follow-up)
#14401 Update packages and translations
#14391 Handle non-integer Annotation border widths correctly (issue 14203)
#14400 [api-minor] Convert Catalog.getPageDict to an asynchronous method
#14409 Improve caching for the Catalog.getPageIndex method (PR 13319 follow-up)
#14411 Convert Catalog.getAllPageDicts to an async method
#14413 Drop the beta logic from the Gulpfile/website/pdfjs.config file
#14417 Revert "Disable failing print actions integration test in Firefox"
#14418 Use positive dimensions for text chunks in the text layer (issue #14415)
#14429 [JS] Fix few errors around AFSpecial_Keystroke
#14423 Remove the eventBus parameter from getViewerConfiguration
#14424 [api-minor] Move addLinkAttributes, LinkTarget, and removeNullCharacters into the viewer (PR 14092 follow-up)
#14432 Update packages and translations
#14443 Prevent run-time errors in BaseViewer when it's falling back to SimpleLinkService (issue 14442, PR 14295 follow-up)
#14450 Add (basic) UTF-8 support in the stringToPDFString helper function (issue 14449)
#14446 Expose even more API-functionality in the TypeScript definitions (issue 14435, PR 14013 follow-up)
#14454 Replace some assert usage with unreachable in the src/shared/util.js file
#14453 Dispatch a "documenterror" event in PDFViewerApplication._documentError (issue 14451)
#14439 Ignore Annotations with empty /Rect-entries in the display-layer (issue 14438)
#14448 Prevent circular references in Type3 fonts
#14428 Use the correct dimension to know if we have to add an EOL in vertical mode
#14455 Make the normalizeWhitespace handling, in the PartialEvaluator, more efficient (PR 14428 follow-up)
#14457 Implement a unit test for getCharUnicodeCategory in src/core/unicode.js (PR 14428 follow-up)
#14456 Font renderer - get int8 instead of uint8 in composite glyphes (bug 1749563)
#14464 Support Type1 font files with incomplete /CharStrings definitions (issue 14462)
#14430 [JS] Use beforeinput event to trigger a keystroke event in the sandbox
#14487 Remove the out.pdf file (PR 14430 follow-up)
#14489 Fix scripting test related to keystroke event
#14483 Remove the invisible format marks from the text chunks
#14479 Update packages and translations
#14490 Add a (global) cache to the getCharUnicodeCategory function
#14495 web: Read WheelEvent.deltaMode before deltas.
#14500 Take into account all rotations before comparing glyph positions
#14491 fix for lines (stroke) are rendered too thick (Bug 1743245)
#14506 Update the year in the license_header files
#14392 Polyfill structuredClone with core-js (PR 13948 follow-up)
#14507 Bump copy-props from 2.0.4 to 2.0.5
#14508 Bump nanoid from 3.1.30 to 3.2.0
#14513 Update quickjs sandbox
#14510 [api-minor] Annotations - Adjust the font size in text field in considering the total width (bug 1721335)
#14517 Disable the browser-tests, during gulp makeref, in Google Chrome on the Windows bot (PR 14392 follow-up)
#14516 [UI] Avoid to have buttons in hover state after having been clicked (bug 836732)
#14518 Remove the MBTA-pretax-form-July2012 browser-test since it's a duplicate
#14522 Remove the xfa_bug1716838 browser-test since it's a duplicate
#14515 [api-minor] Remove support for browsers/environments without fully working URL.createObjectURL implementations
#14527 [api-minor] Remove the normalizeWhitespace option in the PDFPageProxy.{getTextContent, streamTextContent} methods (issue 14519, PR 14428 follow-up)
#14535 [GENERIC viewer] Use consistent casing, for the labels, in the findbar
#14532 [GENERIC viewer] Remove the moz-prefixed FullScreen API usage from the viewer
#14530 Avoid the findResultsCount span taking up (vertical) space when hidden (PR 13261 follow-up)
#14537 Update packages and translations
#14539 Bump simple-get from 3.1.0 to 3.1.1
#14538 [api-minor] Update the minimum supported browser versions
#14548 [api-minor] Ensure that the PDFDocumentLoadingTask-promise is rejected when cancelling the PasswordPrompt (bug 1754421)
#14547 Update the file used with the xfa_bug1720182 test-case
#14543 Let Lexer.getNumber treat a single minus sign as zero (bug 1753983)
#14551 [api-minor] Stop exposing the createObjectURL helper function in the API
#14557 Remove unnecessary font-size CSS rule from the html element (issue 14555, PR 3794 follow-up)
#14558 Remove the UTF-8 fallback, when TextDecoder is missing, from the Content-Disposition parser
#14560 [api-minor] Remove the, in legacy builds, bundled ReadableStream polyfill
#14559 Revert "Don't block origin-less blob:-URLs in hosted viewer"
#14564 [api-minor] Don't add in the text content the chars which are out-of-page (bug 1755201)
#14563 [Search] Some matches were incorrectly shifted because of some '-\n'
#14572 Add a missing string-check in the _collectJS helper function
#14566 Miscellaneous small viewer clean-up
#14569 Fix canvas state getting out of sync from smasks. (bug 1755507)
#14581 Use the (viewer) parseQueryString helper function in the reference tests
#14580 Change PixelsPerInch to a class with static properties (issue 14579)
#14578 Remove the backingStorePixelRatio-part of the getOutputScale helper function
#14575 Remove the isStream helper function
#14577 Remove the isRef helper function
#14584 Update packages and translations
#14585 Improve the PDFObjects class
#14594 Prefer instanceof ... rather than calling isCmd/isDict/isName with one argument
#14596 Remove the isNum helper function
#14595 Update the support information for structuredClone (PR 14392 follow-up)
#14588 Remove old prefixed CSS rules used with text tests
#14597 Ensure that Dict.set only accepts string keys
#14598 Re-factor the Catalog.viewerPreferences method and remove the isBool helper function
#14545 Generate test images at different output scales.
#14605 Simplify the decodeFontData/encodeFontData font-test helper functions
#14608 Don't close window from test driver.
#14609 Improvements to the reftest analyzer.
#14599 Ensure that Cmd/Name is only initialized with string arguments
#14600 [api-minor] Add validation for the PDFDocumentProxy.getPageIndex method
#14607 Simplify the wrapReason helper function
#14606 Only support the standard, unprefixed, Fullscreen API in the default viewer
#14602 Re-factor the PDFDocument.documentInfo method, and remove the isString helper function
#14610 [JPEG 2000] Add support for resetContextProbabilities (bug 1731483)
#14611 Remove the JSDocs "External: Promise"-page, since Promises are now a standard feature
#14612 Add the caniuse-lite package
This release features improved XFA support, improved pattern/tiling support, rich text annotation support, a new page scrolling mode in the viewer and
This release features improved XFA support, improved pattern/tiling support, rich text annotation support, a new page scrolling mode in the viewer and many other bugfixes and optimizations.
Changes since v2.11.338:
#14097 Bump versions in pdfjs.config
#14099 Update packages and translations
#14101 [Regression] Fix comb fields scrolling when the last character is entered (PR 14049 follow-up)
#14111 Take the /CIDToGIDMap data into account when computing the hash, in PartialEvaluator.preEvaluateFont, for composite fonts (bug 1734802)
#14106 Empty name is allowed in ISO 32000
#14108 For Annotations that define a closed area, make all of it toggle the PopupAnnotation (issue 14107)
#14118 Implement TrueType character map "format 2" (fixes #14117)
#14116 Use even more optional chaining in the src/display/api.js file
#14134 Convert examples/node/pdf2png/pdf2png.js to await/async
#14138 Convert examples/learning/helloworld.html to await/async
#14143 docs: Fix grammatical error
#14141 Convert examples/text-only/pdf2svg.js to await/async
#14145 XFA - Embedded image is missing
#14148 Ensure that the EditorConfig rules apply to *.json and *.pdf.link files as well
#14131 Ensure that pre-rendering works correctly with spreadModes at higher zoom levels
#14112 Add a new Page scrolling mode (issue 2638, 8952, 10907)
#14149 Convert examples/learning/helloworld64.html to await/async
#14103 [api-minor] Change PDFFindController to use the "find"-event directly (issue 12731)
#14152 Fix a xfaFaxtory typo in the shadowing in the PDFDocument.xfaFactory getter, and some other clean-up
#14166 Ignore Square/Circle-annnotations with a zero borderWidth when creating a fallback appearance stream (issue 14164)
#14114 [api-minor] Include the /Lang-property in the documentInfo, and use it in the viewer (issue 14110)
#14154 Update packages and translations
#14155 Revert "For mozcentral use Firefox color theme instead of system theme." since -moz-toolbar-prefers-color-scheme was removed
#14160 Fix pattern handling regression in SVGGraphics (PR 13770 follow-up)
#14159 Convert examples/node/pdf2svg.js to await/async #14125
#14174 Prevent double-rendering borders for PushButton-annotations (PR 14083 follow-up)
#14167 Convert examples/image_decoders/jpeg_viewer.js to await/async #14123
#14171 Prevent run-time errors in Node.js versions with URL.createObjectURL support (issue 14170)
#14162 Indent the stepper on save/restore.
#14175 Use a new method for handling soft masks.
#14178 Update the browserslist database
#14156 Add support for modern ECMAScript class features
#14158 Improve pre-rendering at the start/end of the document
#14181 Converted simpleviewer.js to await/async
#14199 Avoid to display download panel during integration tests
#14189 [api-minor] Implement securityHandler in the scripting API (bug 1731578)
#14192 [Regression] Prevent breaking errors when opening a new document in the GENERIC viewer (PR 14158 follow-up)
#14191 Ignore pageLabels, in the viewer, when they're all empty
#14180 Handle ranges that "overflow" the last byte in CMap.mapBfRange (bug 1627427)
#14153 Fix XFA links (bug 1735738)
#14204 Remove the shadowViewer used with Page scrolling
#14201 Use the correct border-style for Annotations, when a dash array is specified (bug 1219400)
#14207 JS - Avoid a popup to ask for specific version of Acrobat
#14210 Update packages and translations
#14182 [api-minor] Support rich content in markup annotation
#14212 Add a RTL-text reference test (issue 10301)
#14217 [Firefox] Handle errors if loading failed before the "supportsRangedLoading" message was sent (bug 1732141)
#14221 Use BaseViewer.previousPage more in the default viewer (PR 12870 follow-up)
#14225 Avoid doing unnecessary checks, when pre-rendering page layouts with "holes" (PR 14131 follow-up)
#14228 Reset path bounding box tracking when starting a new path.
#14213 Tweak the Bidi-detection heuristics for very short RTL strings (issue 11656)
#14219 Let getVisibleElements return a Set containing the visible element ids
#14232 Use correct matrix for patterns with showText.
#14218 XFA subform with occur min=0 and no bound data displaying.
#14238 Add a couple of basic unit-tests for PDFPageViewBuffer
#14241 Don't double apply a group xobject's bbox.
#14230 Create shading patterns the size of the current path. (bug 1722807)
#14244 Prevent mobile devices from interfering with the textLayer-elements (issue 14243)
#14240 XFA - Get each page asynchronously in order to avoid blocking the event loop (#14014)
#14245 Convert PDFPageViewBuffer to a standard class, and use a Set internally
#14250 XFA - Encode tag names in UTF-8 when saving (fix #14249)
#14239 XFA - Fix a breakBefore issue when target is a contentArea and startNew is 1 (bug 1739502)
#14209 [Google Chrome] Ensure that markedContent spans are placed in the top-left corner (issue 14205)
#14258 Always prefer abbreviated keys, over full ones, when doing any dictionary lookups (issue 14256)
#14265 XFA - Avoid an exception when looking for a font in a parent node
#14266 Don't consider space as real space when there is an extra spacing (bug 931481)
#14270 When parsing corrupt documents without any trailer-dictionary, fallback to the "top"-dictionary (issue 14269)
#14268 Remove non-displayable chars from outline title (#14267)
#14253 [Chromium addon] Add the Page scrolling mode to the options (PR 14112 follow-up)
#14260 Report "pageInfo" telemetry once, rather than for each rendered page
#14271 Parse query string in using URLSearchParams
#14255 Convert GrabToPan to a standard class
#14273 Update packages and translations
#14247 [api-minor] Render pushbuttons on their own canvas (bug 1737260)
#14280 Slightly optimize spreadMode toggling with ScrollMode.PAGE set (PR 14112 follow-up)
#14278 Replace the remaining Node.removeChild() instances with Element.remove()
#14276 Only show the loadingIcon-spinner on visible pages (issue 14242)
#14262 Include the /Lang-property, when it exists, in the StructTree-data (issue 14261)
#14229 Add an easy way to log to the terminal during browser tests.
#14291 [api-minor] Only use Workers when postMessage transfers are supported (PR 11123 follow-up)
#14294 [api-minor] Replace PDFDocumentProxy.getStats with a synchronous PDFDocumentProxy.stats getter
#14295 Remove the {BaseViewer, PDFThumbnailViewer}._pagesRequests caches
#14299 Convert examples/components/pageviewer.js to await/async (issue 14127)
#14304 Ensure that ChunkedStream won't attempt to request data beyond the document size (issue 14303)
#14298 Center pages vertically in PresentationMode (issue 10906)
#14310 Abort parsing when the XRef /W-array contain bogus entries (issue 14303)
#14314 [Regression] Prevent errors, during loading, in the viewer for XFA-documents (PR 14295 follow-up)
#14318 Handle sub/super-scripts in rich text
#14319 XFA - Draw arcs correctly
#14313 Change the _pagePromises cache, in the worker, from an Array to a Map
#14311 [api-minor] Validate the /Pages-tree /Count entry during document initialization (issue 14303)
#14320 Update packages and translations
#14312 Prevent circular references in XRef tables from hanging the worker-thread (issue 14303)
#14321 Upgrade to Puppeteer 12
#14333 Handle errors correctly when data lookup fails during /Pages-tree parsing (issue 14303)
#14325 Remove the unused skipCount parameter from Catalog.getPageDict (PR 14311 follow-up)
#14328 Update (primarily) the Node.js examples to release page resources
#14335 [Regression] Eagerly fetch/parse the entire /Pages-tree in corrupt documents (issue 14303, PR 14311 follow-up)
#14324 Enforce PAGE-scrolling for very large/long documents (bug 1588435, PR 11263 follow-up)
#14341 Ensure that the shadow helper function is passed a valid property (PR 14152 follow-up)
#14340 Handle errors when fetching the raw /Metadata (issue 14305)
#14338 [api-minor] Clear all caches in XRef.indexObjects, and improve /Root dictionary validation in XRef.parse (issue 14303)
#14339 Add a (linked) test-case for issue 8019
#14345 Ensure that the viewer handles BaseViewer initialization failures
#14344 Modernize the test driver
#14348 Add a (linked) test-case for issue 8022
#14347 Improve caching in Catalog.getPageDict (PR 8207 follow-up)
#14350 Prevent an infinite loop when parsing corrupt /CCITTFaxDecode data (issue 14305)
#14354 Further improve caching in Catalog.getPageDict, for disableAutoFetch mode (PR 8207 follow-up)
#14355 Change WorkerTransport.{pageCache, pagePromises} from an Array to a Map
#14358 Improve PDFDocument.checkLastPage/Catalog.getAllPageDicts for documents with corrupt XRef tables (PR 14311, 14335 follow-up)
#14359 Avoid overloading the worker-thread during eager page initialization in the viewer (PR 11263 follow-up)
#14361 Upgrade Node.js to version 16 in the CI workflow
#14360 Update packages and translations
#14362 Support disabling of form editing when pdfjs.enablePermissions is set (issue 14356)
#14364 Only call PDFDocumentProxy.getPermissions, in the viewer, when pdfjs.enablePermissions is set (PR 14362 follow-up)
#14367 Disable failing print actions integration test in Firefox
#14368 Consistently use string arguments for page.waitForFunction calls and upgrade to Puppeteer 13.0.0
#14380 Move the EventBus, and related functionality, into its own file
#14372 Move the /Lang handling into the BaseViewer (PR 14114 follow-up)
#14370 Slightly reduce asynchronicity in the Catalog.getPageDict method (PR 14338 follow-up)
#14386 Ignore negative /FitH parameters in the viewer (issue 14385)
#14373 [api-minor] Fix broken/missing JSDocs and typedefs, to allow updating TypeScript to the latest version (issue 14342)
#14387 Modernize the test utilities
This release features improved XFA support (enabled by default now), improved annotations/forms support and other bugfixes and optimizations.
This release features improved XFA support (enabled by default now), improved annotations/forms support and other bugfixes and optimizations.
Changes since v2.10.377:
#13793 Bump versions in pdfjs.config
#13792 Remove the remaining closure in the src/display/canvas.js file
#13795 XFA - Elements created outside of XML must have all their properties (bug 1722029)
#13801 Access navigator safely in the src/display/annotation_layer.js file
#13804 Move the compatibilityParams into the web/app_options.js file
#13807 XFA - Get the full value when binding and not only the 1st line (bug 1718725)
#13796 Allow StreamsSequenceStream.readBlock to skip sub-streams with errors (issue 13794)
#13806 XFA - Fix auto-sized fields (bug 1722030)
#13815 XFA - Fix font scale factors (bug 1720888)
#13808 Improve caching of shading patterns. (bug 1721949)
#13819 XFA - Avoid an error when an exdata is a string (bug 1723114)
#13816 [api-minor] Remove the separate enableScripting option in BaseViewer
#13813 Remove a couple of closures in the src/display/api.js file
#13822 Prevent "Uncaught promise" messages in the console when cancelling (some) ReadableStreams
#13824 When no "V" entry exists, let the fieldValue fallback to the "DV" entry (issue 13823)
#13828 Introduce the GitHub Advanced Security workflow
#13830 Improve the code analysis workflow with quality checks
#13833 Make worker-loader optional as peerDependencies. Close #13825.
#13836 Fix inefficient regular expressions in external/cmapscompress/parse.js
#13831 Change the parseQueryString function to return a Map rather than an Object (issue 13829)
#13837 Implement unit tests for the parseQueryString utility function
#13839 Fix a broken regular expression in the docId unit-test (issue 13838, PR 13813 follow-up)
#13841 Allow customization of theme in Chrome extension + set default theme
#13842 Visually hide br in text selections
#13847 Remove useless assignment of availableSpace in the src/core/xfa/template.js file (issue 13829, 13835)
#13852 XFA - Page can be too small when printing (bug 1723705)
#13860 Bump tar from 4.4.8 to 4.4.15
#13859 Remove the isEOF helper function and slightly re-factor EOF
#13848 Remove the LGTM configuration and inline disable comments (issue 13829)
#13854 Prevent breaking errors when an optional content group is undefined (issue 13851)
#13846 Add a special gulp xfatest command, to limit the ref-tests to only XFA-documents (issue 13744)
#13858 Add aria-labels to XFA form elements. (bug 1723422)
#13864 [XFA] Add alt text for images. (bug 1723418)
#13856 XFA - Avoid to put something in very small areas
#13868 Annotation & XFA: Scale the font size in choicelist using zoom factor (bug 1715996)
#13875 Annotation & XFA: Add focus outlines on different fields (bug 1723615, bug 1718528)
#13869 Enable linting in the test/resources/ folder, and fix the "Remote property injection" warning (issue 13862)
#13874 Update the Annotation --zoom-factor CSS variable when PDFPageView is used standalone (PR 13868 follow-up)
#13873 XFA - Support aria heading and table structure. (bug 1723421) (bug 1723425)
#13880 Fix typo in cff_parser_spec.js
#13881 XFA - Elements under an area must be bound (bug 1723734)
#13879 Fix the global variable definitions in test/resources/reftest-analyzer.js (issue 13862)
#13867 [api-minor] Re-factor the internal renderingIntent, and change the default intent value in the PDFPageProxy.getAnnotations method
#13882 [api-minor] Remove the closure from the PDFWorker class, in the src/display/api.js file
#13883 Improve caching of Annotations-data, by using a Map, in the API
#13884 Update packages and translations
#13887 Bump path-parse from 1.0.5 to 1.0.7
#13890 Update some deprecated ESLint rules
#13886 Re-factor the BaseException.name handling, and clean-up some code
#13896 Simplify the ReadableStream polyfill
#13892 Move some validation, in Dict.merge, used during merging of sub-dictionaries (PR 13775 follow-up)
#13900 [api-minor] Stop translating logical assignment in non-legacy builds (PR 12887 follow-up)
#13911 Ensure that the TESTING define can always be overridden in gulpfile.js
#13913 Fix pdf_viewer definitions
#13905 Re-factor loadAndEnablePDFBug and PDFBug.init
#13904 Re-factor the LocalTilingPatternCache to cache by Ref rather than Name (PR 12458 follow-up, issue 13780)
#13899 [Regression] Re-factor the internal includeAnnotationStorage handling, since it's currently subtly wrong
#13920 Extend the glyph maps for standard respectively Calibri fonts (issue 13916)
#13921 Update packages and translations
#13922 Enable the ESLint object-shorthand rule in the extensions/chromium/-folder
#13908 [api-minor] XFA - Support text search in XFA documents.
#13923 [api-minor] Introduce a new annotationMode-option, in PDFPageProxy.{render, getOperatorList}
#13934 Remove the IPDFHistory interface
#13935 A couple of small TextHighlighter/TextLayerBuilder tweaks (PR 13908 follow-up)
#13939 Remove the npm test-command
#13930 Fix Viewer API definitions and include in CI
#13940 Simplify the PDFViewerApplication.supportsFullscreen getter
#13933 Fix saving of XFA checkboxes. (bug 1726381)
#13941 Ensure that PasswordException is handled correctly in the wrapReason function
#13942 Export the XFA/StructTree-layers in the viewer components
#13943 Use async a bit more in the API
#13944 Re-factor the setPDFNetworkStreamFactory usage for the unit-tests (PR 13549 follow-up)
#13937 Fix handling of fetch errors
#13932 Support Optional Content in Image-/XObjects (issue 13931)
#13949 Only use base encoding if it's populated. (bug 1727053)
#13951 Bump tar from 4.4.15 to 4.4.19
#13945 Implement PDFNetworkStreamRangeRequestReader._onError, to handle range request errors with XMLHttpRequest (issue 9883)
#13952 Extend getNonStdFontMap for non-embedded versions of the ItcSymbol font (issue 11532)
#13955 Always prefer the post-table for TrueType fonts with (0, x) cmap-tables (issue 13433)
#13959 Correctly pad strings when saving an encrypted pdf (bug 1726789)
#13967 XFA - Overwrite AcroForm dictionary when saving if no datasets in XFA (bug 1720179)
#13966 XFA - Created data node mustn't belong to datasets namespace
#13970 Fallback to the /ToUnicode map for TrueType fonts with (3, 1) and (1, 0) cmap-tables (issue 13316)
#13961 Simplify some regular expressions
#13973 [api-minor] Change {PDFPageView, PDFThumbnailView}.update to take a parameter object
#13972 Treat all content as visible when no optional content groups are defined (issue 13971)
#13975 Update packages and translations
#13976 Reduce the size of TextLayerRenderTask._textDivProperties in "regular" text-selection mode
#13988 Avoid an error in integration test because of a locale different of en-US
#13985 Improve glyph mapping for non-embedded composite standard fonts (issue 11088)
#13992 XFA - Remove the checked attribute from the checkbox when unchecked (bug 1729877)
#13995 XFA - Handle $record shorcut in SOM expression (issue #13994)
#13996 Make verifyManifestFiles fail for non-linked test-cases with a "link": true-entry
#13991 Enable/disable image smoothing based on image interpolate value. (bug 1722191)
#14000 Re-factor the CSS_PIXELS_PER_INCH/PDF_PIXELS_PER_INCH exports (PR 13991 follow-up)
#13993 Don't create PDFViewerApplication.pdfHistory when the browsing history is disabled
#13977 [api-minor] Reduce postMessage overhead, in PartialEvaluator.getTextContent, by sending text chunks in batches (issue 13962)
#13983 Update the learning/ examples with basic HiDPI-screen support
#14004 [CRX] enableScripting=false by default in Chrome extension
#14002 Let Lexer.getObj return a dummy-Cmd for commands that start with a non-visible ASCII character (issue 13999)
#13998 Write boolean value when saving a form (bug 1729971)
#14006 [src/core/writer.js] Remove unnecessary string-wrapping for boolean values in writeValue (PR 13998 follow-up)
#14007 [src/core/writer.js] Support null values in the writeValue function
#14018 XFA - Don't create images for unsupported mime types
#14027 Annotation - Checkboxes with the same name and export values must be in unison
#14028 Use CSS variables for setting the width of the zoom dropdown (PR 11570 follow-up)
#13984 Enable XFA by default in the viewer, and components/ examples (issue 13968)
#14025 Improve glyph mapping for non-embedded composite standard fonts with a /CIDToGIDMap (issue 11915)
#14035 Annotation - For checkboxes, get field value from AS (if any) instead of V (bug 1722036)
#14040 JS - Avoid the Stay/Leave popup when clicking on a button with a JS action
#14038 JS - Implement few possibilities with app.execMenuItem (bug 1724399)
#14043 Re-factor the EventBus and isInAutomation handling (PR 11655 follow-up)
#14013 Improve the API unit-tests, and try to expose more API-functionality in the TypeScript definitions
#14045 XFA - Only warn about the wrong xfa type when there is an xfa thing
#14005 [GENERIC viewer] Always show the Download-buttons, to allow saving of forms (issue 13997)
#14044 Annotations - Avoid empty value in text field when storage contains something for it (bug 1719148)
#14041 Support cmaps with only CID characters, when building the ToUnicode-map (issue 9367)
#14052 Update packages and translations
#14050 Tweak how fonts with an /Encoding are handled in adjustToUnicode (issue 14048, PR 13277 follow-up)
#14053 Move the zoomIn/zoomOut functionality into BaseViewer (PR 14038 follow-up)
#14056 Correctly validate URLs in XFA documents (bug 1731240)
#14055 Add PDF_TO_CSS_UNITS to the PixelsPerInch-structure
#14058 [api-minor] Change EventBus.dispatch to only support one data-argument
#14063 [GENERIC viewer] Warn about AppOptions being overridden by Preferences during loading
#14023 Re-factor document.getElementsByName lookups in the AnnotationLayer (issue 14003)
#14066 Print a special warning message, in the viewer, for XFA Foreground documents
#14068 Fix typo "_annotatationMode" => "_annotationMode"
#14067 Don't save anything in XFA entry if no XFA! (bug 1732344)
#14042 Fix dialogs with forced colors (bug 1722984)
#14072 XFA - Create a new page in case of overflow
#14073 XFA - Bind items when there's a bindItems entry
#14069 Mark the paintJpegXObject operator as deprecated (PR 11601 follow-up)
#14070 Some small readability improvements in the MessageHandler code
#14065 [api-minor] Stop exporting, by default, a few additional Font properties (PR 11777 follow-up)
#14074 [api-minor] Add basic support for RTL text-content in PopupAnnotations (issue 14046)
#14064 Fallback to font name matching, when checking for serif fonts (issue 13845)
#14036 Annotation - Some checkboxes have an empty N dictionary
#14077 Fix issues in driver.js when getting css sheets
#14076 XFA - Add <a> element in button when an url is detected (bug 1716758)
#14081 [api-minor] Move the addDefaultProtocolToUrl/tryConvertUrlEncoding functionality into the createValidAbsoluteUrl function
#14049 Annotation - Use border and background colors from MK dictionary
#14091 Add the missing pdf file for the test in the PR #14049
#14083 AcroForm: Add support for ResetForm action
#14095 Replace a couple of Array.prototype.forEach-invocations with for..of instead
#14057 Support CMap-data with only strings, when parsing TrueType composite fonts (bug 920426)
#14092 [api-minor] Ensure that various URL-related options are applied in the xfaLayer too
#14096 Pre-render one additional page when spreadModes are enabled
This release features improved XFA support, improved pattern rendering and other bugfixes and optimizations.
This release features improved XFA support, improved pattern rendering and other bugfixes and optimizations.
Changes since v2.9.359:
#13464 Bump versions in pdfjs.config
#13466 Fix typo in template.js
#13465 Some -es5/-legacy renaming clean-up, and deprecated API options removal (PR 12978, PR 13207 follow-up)
#13437 XFA - Move the fake HTML representation of XFA from the worker to the main thread
#13472 Don't change options of the globally used PartialEvaluator in the "should render checkbox with fallback font for printing" unit-test
#13411 XFA - Add support to print XFA forms
#13476 Update Puppeteer to version 10
#13451 XFA - Use native radio and checkbox buttons
#13480 [GENERIC viewer] Fix printing regression from PR 13411
#13489 Add hasEOL to the TextItem typedef in the API (PR 13257 follow-up)
#13478 Fix find highlighting regression from #13306.
#13482 Fix scrolling of search results in documents with marked content (bug 1714183)
#13473 XFA - Implement usehref support
#13492 Add normalization for Hyphen -> Hyphen-minus
#13490 Miscellaneous improvements for gulpfile.js (issue 10362)
#13497 Initialize HTMLResult.{FAILURE, EMPTY} lazily
#13494 Add more info for showText operator in stepper.
#13498 Normalize the coordinates used in SVGGraphics._makeTilingPattern (issue 12996)
#13461 Improve text-selection for Type3 fonts with empty /FontBBox-entries (issue 6605)
#13503 XFA - Don't bind a form node with an empty value when the data node doesn't exist
#13505 Use the DOMSVGFactory, rather than manually creating the SVG-element, in createMatrix (PR 13361 follow-up)
#13501 XFA - CDATA can be xml so parse it when required
#13513 Bump trim-newlines from 3.0.0 to 3.0.1
#13506 XFA - Add support for reftests
#13479 XFA - Fix layout issues (again)
#13514 [api-minor] Fetch binary CMap data in the worker-thread, when useWorkerFetch is set
#13521 [XFA] Use align-items: flex-start; to improve browser compatibility (issue 13518)
#13495 XFA - Display rectangle, line and arc
#13524 XFA - Don't print arrow in select
#13517 XFA - Add Liberation-Sans font as a substitution for some missing fonts
#13515 Cache the "raw" standard font data in the worker-thread (PR 12726 follow-up)
#13525 [api-minor] Re-factor the disableFontFace fallback value, and skip initializing factories with useWorkerFetch set
#13516 Always use standard font data, with disableFontFace set in the API (PR 12726 follow-up)
#13502 XFA - contentarea must be on top of the other containers in a pageArea
#13527 XFA - Avoid infinite loop when creating some nodes in data
#13528 XFA - Handle caption with inline placement as left one
#13529 Bundle the license-file for the Liberation fonts in the builds (PR 13517 follow-up)
#13530 Add a DOMMatrix polyfill for Node.js environments (PR 13361 follow-up)
#13532 XFA - Give all the available space to the caption in case of checkButton
#13534 XFA - Flush contents when breakBefore target is 'auto'
#13539 XFA - Don't show outline on focused textfields
#13540 XFA - Return html element for the different possible value
#13542 XFA - Center vertically radio without caption
#13546 Re-factor the DOMCanvasFactory and DOMSVGFactory implementations slightly
#13547 XFA - Handle correctly subformSet
#13549 Remove the isFetchSupported function since the Fetch API is available in all supported browsers
#13552 Update packages and translations
#13548 XFA - Default fill color for rectangle is transparent
#13555 XFA - Value in field can be html
#13557 XFA - Fix error when creating a new data node
#13559 XFA - Handle maxChars property for text fields
#13563 Add basic linting of JSON files using eslint-plugin-json
#13554 XFA - Add support for overflow element
#13569 XFA - Container wrapper must take the visibility of the wrapped content
#13565 Fix how patterns are applied to image mask objects.
#13570 XFA - By default a text ui has only one line when in a field element
#13560 XFA - Add the possibily to layout and measure text
#13575 XFA - Fix reftest for xfa_issue13500
#13576 XFA - When no fonts in the pdf just use font size as width when measuring text
#13566 XFA - Fix layout issues
#13577 Remove the internal PDFScriptingManager._pageEventsReady boolean (PR 13074 follow-up)
#13587 Set the default value of useSystemFonts correctly, depending on disableFontFace, in the API (PR 13516 follow-up)
#13588 Add a (basic) TypeScript definitions for the viewer components (issue 13267)
#13590 Stop encoding the value in the DOMElement.setAttribute method (issue 8558)
#13589 Allow using the standard font data for non-Type1 fonts (issue 13585, PR 12726 follow-up)
#13591 XFA - Match font family correctly
#13595 XFA - Add support for access property
#13593 XFA - Don't display invisible rectangle borders
#13573 XFA - Fix the way to select page on breaking
#13601 Revert "XFA - Fix the way to select page on breaking"
#13603 Revert "Revert "XFA - Fix the way to select page on breaking""
#13592 XFA - Don't display print-only elements
#13604 XFA - A prototype can have a property which needs itself to resolve a proto
#13608 Bump color-string from 1.5.3 to 1.5.5
#13609 Correctly align the xfaLayer content with horizontal scrolling/spread modes
#13594 XFA - Add margins if needed after having layout some text
#13606 Correctly align the textLayer content with horizontal/spread scrolling modes (issue 13605)
#13614 XFA - Get line height from the font
#13617 Reset the IPDFLinkService.externalLinkEnabled property on document closing
#13612 Support corrupt documents with empty Name-entries (issue 13610)
#13613 [api-minor] Slightly tweak/improve various code related to XFA-printing
#13618 XFA - Always bind root subform on root data
#13622 XFA - No container stretching with lr-tb layout
#13619 XFA - Add back empty subforms (which can have a background)
#13624 XFA - Take into account text position in caption
#13627 XFA - Save filled data in the pdf when downloading the file (Bug 1716288)
#13600 Take the position of the selected element into account when scrolling matches (issue 13596)
#13628 Check that TrueType (3, 0) cmap tables, for symbolic fonts, are sorted correctly (issue 13626)
#13637 Update packages and translations
#13638 A couple of smaller JSDocs tweaks in src/display/api.js
#13642 XFA - Remove quotes of font name in xhtml
#13639 XFA - Replace deprecated break element (bug 1718053)
#13635 XFA - Fix width of a container with lr-tb layout (bug 1718037)
#13641 XFA - Implement aspect property on image element
#13644 XFA - Support non-embedded fonts without a Widths entry
#13645 XFA - Choice list has no selected value by default (bug 1718241)
#13616 Add PDFs from #1773 to the reftests
#13640 Add non-PRODUCTION/TESTING overflow asserts to various string helper-functions (issue 6759)
#13648 XFA - Don't fill when the fill element is not visible (bug 1718735)
#13598 XFA - Remove empty pages
#13657 Replace instanceof Object with typeof checks
#13658 Don't attempt to structure clone unsupported types with workers disabled
#13664 Remove the version field from the package.json file
#13661 [api-minor] Support accessing both the original and modified PDF fingerprint
#13662 XFA - Don't use system font when a font is not embeded but there is a substitution
#13666 Enable the ESLint operator-assignment rule
#13654 XFA - An image can be a stream in the pdf (bug 1718521)
#13672 Revert "XFA - An image can be a stream in the pdf (bug 1718521)"
#13653 XFA - Improve text layout
#13665 XFA - Fix indentation for justified paragraph
#13673 XFA - An image can be a stream in the pdf (bug 1718521)
#13675 [test/driver.js] Ensure that Image src is set after the callbacks in resolveImages
#13680 XFA - Layout correctly a subform with row layout (bug 1718740)
#13684 XFA - Default background in rectangle is white
#13683 Fix transformations when painting image masks and tiling patterns.
#13687 XFA - Don't fail xfa loading because of a JS subexpression in SOM expressions
#13649 Merge the supplemental font data files used with XFA documents
#13691 XFA - Handle correctly nested containers with lr-tb layout (bug 1718670)
#13693 XFA - Enable disabled fields (bug 1719464)
#13694 XFA - remove unnecessary check in the handleBreak function (PR 13687 follow-up)
#13692 XFA - Correctly bind global data (bug 1718725)
#13700 XFA - Scale correctly images
#13706 XFA - Keep xfa layer on top of the others (bug 1719629)
#13703 XFA - Fix typo in factory.js
#13708 XFA - Add support for traversal and traverse element
#13710 XFA - Move xfa layer on top of the others (follow-up of #13706)
#13690 Fixed text annotation comb input box
#13696 [GENERIC viewer] Try to fixup "incomplete" language codes (issue 13689)
#13699 making webpack aware of the change inside of the worker file and hash
#13712 XFA - Always compute the transformed BBox values in checkDimensions (PR 13691 follow-up)
#13705 XFA - Fix text positions (bug 1718741)
#13715 Update packages and translations
#13714 XFA - Use fake MyriadPro as a fallback for missing fonts
#13717 XFA - Fix wrong vertical alignments
#13718 XFA - Support assist element
#13716 XFA - Avoid to have containers not pushed in the html
#13720 Revert "XFA - Avoid to have containers not pushed in the html"
#13723 XFA - Only the first page was printed (bug 1720159)
#13721 XFA - Avoid to have containers not pushed in the html
#13725 Avoid all rendering breaking completely when CanvasPattern.setTransform() is unsupported
#13734 XFA - Cannot print fields with no names
#13739 Remove <meta> tag only necessary for IE-compatibility
#13738 Re-factor the handling of empty Name-instances (PR 13612 follow-up)
#13730 Add a new "botbrowsertest" gulp-task, to allow running only the browser tests on the bots
#13732 XFA - A rectangle must have the width of its parent but without inner margins
#13743 XFA - Checkboxes must be printed (bug 1720182)
#13745 Enable XFA by default in the development viewer
#13754 Remove the IR (internal representation) part of the PDFFunction parsing
#13746 [api-minor] Add intent support to the PDFPageProxy.getOperatorList method (issue 13704)
#13735 Ensure that the field value, for checkboxes, refers to an existing appearance state (bug 1720411)
#13761 XFA - Prevent breaking errors in Binder, when searchNode doesn't return data (issue 13756)
#13763 XFA - Must use bindItems element even if there is no direct binding (bug 1720907)
#13764 XFA - Add a missing method to XFAAttribute, to prevent breaking errors (issue 13748)
#13768 XFA - Remove namespace from nodes under xfa:data node
#13766 XFA - Handle startIndex correctly in the Template.$toHTML method (issue 13751)
#13772 Include the font/integration/unit-test folders in the LGTM report
#13776 Include most of the test-folder in the LGTM report (PR 13772 follow-up)
#13777 XFA - SVG elements mustn't get any pointer events (bug 1721589)
#13778 XFA - A field without an ui must provide a default one (bug 1718245)
#13770 Improve performance of reused patterns.
#13782 [api-minor] XFA - Remove the xfaLayer from the DOM when resetting pages (bug 1721977, PR 13427 follow-up)
#13775 Remove some duplication in the Dict.merge method
#13786 Remove a couple of small closures in src/core/ code
#13784 When parsing corrupt documents, avoid inserting obviously broken data in the XRef-table (issue 13783)
#13787 Fix (most) LGTM warnings
#13788 Enable the no-empty-character-class and no-template-curly-in-string linting rules
#13790 Update packages and translations
This release features improved text layer rendering (so words and whitespace better match the rendered page), improved accessibility support (for mark
This release features improved text layer rendering (so words and whitespace better match the rendered page), improved accessibility support (for marked PDF files with structure information for screen readers), improved shading/tiling pattern rendering, displaying of digital signatures (but not verifying them), improved XFA support (which is still experimental), improved rendering of annotations without appearance streams and other bugfixes mainly regarding annotations, font rendering and scripting.
Changes since v2.8.335:
#13183 Bump versions in pdfjs.config
#13184 Convert objects to sets in places where we only track keys
#13186 Remove some deprecated code
#13194 Fuzzy-match the fontName, for TrueType Collection fonts, where the "name"-table is wrong (issue 13193)
#13204 Fix typo in canvas.js
#13210 Cache babel source map.
#13209 Remove the enableScripting option from the PDFPageView constructor
#13207 [api-minor] Remove the manual passing of an AnnotationStorage-instance when calling various API-method
#13171 [api-minor] Add support for basic structure tree for accessibility.
#13197 Improve the image quality of thumbnails rendered by PDFThumbnailView.draw (issue 8233)
#13212 Check that the correct pdfDocument is still active, before rendering the outline/attachments/layers
#13214 Display widget signature
#13216 Remove obsolete done callbacks from the unit tests
#13220 Ensure that currentOutlineButton enabling/disabling won't depend on the exact timing of the "pagesloaded" event (PR 13212 follow-up)
#13221 [api-minor] A couple of smaller PDFPageProxy.getStructTree fixes (PR 13171 follow-up)
#13217 [GENERIC viewer] Display a warning message, using the errorWrapper, for documents with signatures (PR 13214 follow-up, issue 13215)
#13141 XFA -- Display text content
#13203 Implement high contrast mode
#13223 Remove the unused "GetIsPureXfa" message handler; and avoid unnecessary parsing when no structTree is available (PR 13069 follow-up, PR 13221 follow-up)
#13232 Fix annotation input focus trap regression in Safari
#13234 [api-minor] Ensure that PDFDocumentProxy.hasJSActions won't fail if MissingDataExceptions are thrown during the associated worker-thread parsing
#13235 Split the classes in src/core/obj.js into separate files
#13238 Update the es-module-shims package to the latest version
#13244 Update the postcss-calc package to the latest version
#13240 Update eslint-config-prettier/eslint-plugin-unicorn packages to their latest versions
#13222 Convert done callbacks to async/await in the smaller unit test files
#13243 Implement visibility expressions for optional content
#13246 Convert done callbacks to async/await in more unit test files
#13247 Update the yargs package to the latest version
#13249 [GENERIC viewer] Don't display the errorWrapper, for documents with signatures (PR 13217 follow-up)
#13250 Remove the PDFViewerApplication._delayedFallback functionality
#13146 XFA -- Load fonts permanently from the pdf
#13254 A couple of small scripting/XFA-related tweaks in the worker-code
#13253 Convert done callbacks to async/await in test/unit/api_spec.js
#13258 Update packages and translations
#13256 Convert done callbacks to async/await in the last two unit test files
#13275 Ensure that the /Properties, used with optional content, is actually loaded before parsing the operatorList/textContent (PR 12095 follow-up)
#13278 Add presentation role to text layer spans.
#13277 For CFF fonts without proper ToUnicode/Encoding data, utilize the "charset"/"Encoding"-data from the font file to improve text-selection (issue 13260)
#13263 Replace done callbacks in the font-tests with async/await instead
#13282 Update Puppeteer to version 9
#13280 Ensure that saveDocument works if there's no /ID-entry in the PDF document (issue 13279)
#13286 [JS] Use heap allocation when initializing quickjs sandbox
#13283 Change NameOrNumberTree.getAll to return a Map rather than an Object
#13272 Update all the text widgets having the same name with the same value
#13291 Replace a bunch of Array.prototype.forEach() cases with for...of loops instead
#13297 Add a note about minification to the webpack-example README (issue 13290)
#13294 Enable the no-var linting rule in src/core/{cmap,image,worker}.js
#13301 Support InkAnnotations without appearance streams (issue 13298)
#13300 Convert the code in src/display/canvas.js to use standard classes
#13304 Convert more code in src/core/ to use standard classes
#13305 Implement rendering polyline/polygon annotations without appearance stream
#13306 Fix position of highlighted all text.
#13314 For mozcentral use Firefox color theme instead of system theme.
#13310 Don't try to insert a structTree in a removed page (PR 13171 follow-up)
#13257 [api-minor] Fix the way to chunk the strings
#13303 Add an abstract base-class, which all the various Stream implementations inherit from
#13322 Update packages and translations
#13320 Add a new BaseStream.getString(...) method to replace manual bytesToString(BaseStream.getBytes(...)) calls
#13321 Enable the no-var linting rule in src/core/{crypto,function}.js
#13324 Fix highlighting of search results when the textLayer contains br-elements (PR 13257 follow-up, issue 13323)
#13319 JS -- add support for page property in field
#13274 [JS] Fix several issues found in pdf in #13269
#13333 [web/debugger.js] Enable the ESLint no-var rule
#13337 [Regression] Move the super-call in the PredictorStream-constructor to prevent errors (PR 13303)
#13340 Fix integration test in the windows bot
#13339 Remove unnecessary closure in src/display/text_layer.js, and use standard classes
#13327 Split the functionality in src/core/fonts.js into multiple files, and use standard classes
#13349 Bump lodash from 4.17.19 to 4.17.21
#13341 Remove unnecessary closure in the src/core/font_renderer.js file
#13352 Bump hosted-git-info from 2.6.0 to 2.8.9
#13338 Convert the src/core/{jbig2, jpg, jpx}.js files to use standard classes
#13344 Enable the no-var rule in the src/core/evaluator.js file
#13350 Add option enableXfa to the viewer
#13347 Take the W array into account when computing the hash, in PartialEvaluator.preEvaluateFont, for composite fonts (issue 13343)
#13354 Export the "raw" toUnicode-data from PartialEvaluator.preEvaluateFont
#13355 Fix some integration tests
#13357 Remove the disableCanvasToImageConversion functionality from PDFThumbnailView (PR 7029 follow-up)
#13358 [api-minor] Remove the WebGL implementation
#13364 Clean-up usage of the TESTING-define in src/pdf.sandbox.js
#13363 Prevent LGTM from complaining about useless assignments (PR 12562 follow-up)
#13368 Fix the Jbig2Image export for the gulp image_decoders build (PR 9729 follow-up, issue 13367)
#13360 Only include the renderer-preference in builds where SVGGraphics is defined
#13366 Convert the remaining functions in src/core/primitives.js to use standard classes
#13361 Fix several issues with radial/axial shadings and tiling patterns.
#13371 Revert "Fix the remaining no-var failures, which couldn't be handled automatically, in the src/core/evaluator.js file" (PR 13344 follow-up)
#13369 Fix tiling pattern with smask.
#13375 Improve the Page.content and Page.getContentStream methods
#13377 Re-factor and convert the code in src/core/pattern.js to use standard classes
#13379 [api-minor] Update minimum supported browser versions (PR 13361 follow-up)
#13383 Update packages and translations
#13380 Re-factor and convert the code in src/display/pattern_helper.js to use standard classes
#13385 Convert src/core/operator_list.js to use standard classes
#13386 Enable the no-var linting rule in src/core/bidi.js
#13387 Fix a few safe ESLint no-var failures in src/core/evaluator.js (13371 follow-up)
#13328 JS - Add support for display property
#13389 Get any width (if one is present) in CFF parser
#13390 XFA - Don't move glyphes in private area with non-truetype fonts
#13394 Handle PI with no value in xml parser
#13401 Remove some, with Prettier 2.3.0, unnecessary // prettier-ignore comments
#13408 Remove focus from the zoom dropdown, when a mouse is used (bug 1300525, issue 4923)
#13415 Improve handling of named destinations in out-of-order NameTrees (PR 10274 follow-up)
#13416 XFA - Fix wrong function name
#13419 Use the stringToBytes helper function in more places
#13381 Handle errors gracefully, in PartialEvaluator.buildFontPaths, when glyph path building fails
#13417 [XFA] Send URLs as strings, rather than objects (issue 1773)
#13420 Drop obsolete logic from the downloadFile function in test/downloadutils.js
#13421 XFA - Don't display images with a href
#13402 XFA - Fix lot of layout issues
#13429 Bump browserslist from 4.16.3 to 4.16.6
#13436 Re-factor FontFaceObject.getPathGenerator to use Arrays instead of strings
#13435 Enable the unicorn/no-array-push-push ESLint plugin rule
#13445 Fix Postscript name in font to avoid bug when saving in pdf
#13450 Fix the JSDocs for PDFDocumentProxy.getPageIndex (issue 13449)
#13455 Italic angle is defined clockwise in CSS when it's counterclockwise in PDF
#13456 Replace clazz by classNames
#13427 XFA - Add a storage to save fields values
#13443 Re-factor the charsCache on Font-instances
#13457 Work-around for HighlightAnnotations without a top-level /ExtGState-entry (issue 13242)
#13448 Support strokeAlpha/fillAlpha when creating a fallback appearance stream (issue 6810)
#13460 Update webpack import instructions
#13462 Update packages and translations
#13463 Bump ws from 7.4.5 to 7.4.6
This release features initial support for XFA (in addition to the support for AcroForms). Moreover, it contains lots of improvements related to script
This release features initial support for XFA (in addition to the support for AcroForms). Moreover, it contains lots of improvements related to scripting, text layer positioning, annotations, printing, accessibility and performance.
Changes since v2.7.570:
#12901 Bump versions in pdfjs.config
#12826 JS -- add support for choice widget
#12914 JS - QuickJS sandbox initialization must be the last evaluated string
#12916 Include pdf.sandbox.js when building the pdfjs-dist files
#12911 Fix text layer regression tests in using the correct line-height property
#12910 Add back dir property in spans in text layer
#12903 Improve global image caching for small images (PR 11912 follow-up, issue 12098)
#12924 Fix font data clone error when pdfBug is enabled.
#12922 Ignore globally cached images in PartialEvaluator.getTextContent (PR 11930 follow-up)
#12920 fix(acroforms): pdf path in acroforms example
#12931 Stop showing the fallback bar for "errorFontLoadNative" errors (PR 10539 follow-up)
#12932 Stop including -ms prefixed CSS rules in GENERIC builds
#12933 Stop polyfilling CSS variables in GENERIC builds
#12935 Remove prefixed fullscreen properties/methods from the MOZCENTRAL builds
#12879 XFA - Add a parser for XFA files
#12943 Re-enable the issue6961 test-case (issue 7112)
#12947 Update Puppeteer to version 6 (issue 12945)
#12954 XFA -- Add attributes and children in XFAObject
#12952 Don't focus the PasswordPrompt input-field on load, when the viewer is embedded in e.g. an iframe (issue 12951)
#12956 Update Puppeteer to version 7
#12946 XFA -- Add template object
#12944 XFA -- Update config object
#12941 fix(a11y): resolve sidebar, find, toolbar missing aria-expanded and aria-controls state
#12961 Use optional chaining, where possible, in the web/-folder
#12965 Request all data, rather than throwing, when encountering general errors in ObjectLoader._walk (issue 9462, PR 3289 follow-up)
#12966 Update packages and translations
#12962 Handle errors gracefully, in PartialEvaluator.translateFont, when fetching the font file (issue 9462)
#12970 Split PDFViewerApplication.error into two methods, for PDF document loading/parsing errors vs other errors (PR 11647 follow-up)
#12971 Use DOM hidden property instead of attribute methods
#12975 Remove the contentmenu usage, from PresentationMode, since it's no longer working
#12972 [GENERIC viewer] Skip the iframe-case when checking if the container div, on BaseViewer-instances, is absolutely positioned (PR 12354 follow-up)
#12973 Use Math.hypot, instead of Math.sqrt with manual squaring
#12978 [api-minor] Rename -es5 to -legacy, to reduce confusion over what's actually supported (issue 12976)
#12948 XFA -- Add localset object
#12949 XFA -- Add other objects
#12982 Update the year in the license_header files
#12984 Replace a few new Date().getTime() instances with Date.now()
#12981 Collect the l10n error/warning message lookup, in web/app.js, in a new helper method
#12904 fix initial state of checkboxes in display layer
#12987 Restore window.alert after use in scripting test
#12986 Remove the unused "loading_error_indicator" l10n string (PR 2719 follow-up)
#12988 Remove unneeded instanceof MissingDataException checks
#12896 Modifiy the way to compute baseline to have a better match between canvas and text layer
#12992 Use a more compact format for the fallback EventBus-listeners in PDFViewerApplication_initializeJavaScript
#12991 Stop including unused/unnecessary code in the viewer, for MOZCENTRAL-builds
#12993 [api-minor] Change the dc:subject Metadata field to an Array
#12964 Avoid infinite loop when getting annotation field name
#12995 Stop showing the fallback bar for "errorFontMissing" errors (PR 11218 follow-up)
#12830 JS -- Fix doc.getField and add missing field methods
#12936 XFA - Add a lexer/parser for FormCalc language
#12998 Simplify the default value handling of renderInteractiveForms in the viewer components
#12999 [api-minor] Remove support for synchronous event dispatching in LoopbackPort
#12997 Move the Metadata parsing to the worker-thread
#12979 XFA - Add support for prototypes
#13001 Send the AnnotationStorage-data to the worker-thread as a Map
#13004 Add a this-bound method for InternalRenderTask.cancel
#13007 Update packages and translations
#13005 JS - Fix setting a color on an annotation
#13008 Allow minor and patch versions for the webpack-stream dependency again
#12983 XFA -- Add support for SOM expressions
#13011 Remove extra new line from HTML source.
#13009 Move the opening of PDF file attachments into the DownloadManager-implementations
#13019 Remove the findResultsCount-check from PDFFindBar.updateResultsCount, and unnecessary defaults from the constructor
#13020 Remove the NullL10n default value from viewer components not included in the COMPONENTS-bundle
#13021 Remove the, strictly unnecessary, closure and variable shadowing from createObjectURL
#13014 [api-minor] Support the Content-Disposition filename in the Firefox PDF Viewer (bug 1694556, PR 9379 follow-up)
#13025 Convert code in src/core/function.js to use "normal" classes
#13026 Convert code in src/core/crypto.js to use "normal" classes
#13024 Update Puppeteer to version 8
#13023 Fix integration test with js-colors
#13029 Enable the no-var linting rule in more core files
#13030 Modernize some of the code in src/core/cmap.js by using classes and async/await
#13031 Implement rendering square/circle annotations without appearance stream
#13032 Don't warn about actions that require scripting support in Catalog.parseDestDictionary
#13033 Implement rendering line annotations without appearance stream
#13039 Change the background to ensure that the sidebar is visible/readable when the viewer is narrow (issue 13036)
#13045 Bump pug-code-gen from 2.0.1 to 2.0.3
#13050 Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up)
#13053 Enable scripting by default in the development viewer; remove the standalone acroforms example
#13042 [api-minor] Move the viewer scripting initialization/handling into a new PDFScriptingManager class
#13054 Move handling of the PageOpen/PageClose events into the PDFScriptingManager (PR 13042 follow-up)
#13060 Update packages and translations
#13055 JS - reset correctly radio buttons
#13062 Remove the test/features folder, since it's very out of date (issue 11954)
#13063 Use more optional chaining in the web/-folder (PR 12961 follow-up)
#13018 XFA - Create Form DOM in merging template and data trees
#13015 JS - Avoid a popup to ask for updating Acrobat.
#13078 Disable intermittent unit test "creates pdf doc from non-existent URL"
#13074 Re-factor the PDFScriptingManager._destroyScripting method (PR 13042 follow-up)
#13081 Replace the objectFromEntries helper function with an objectFromMap one instead, and simplify the data lookup in the AnnotationStorage.getValue method
#13085 Ensure that all errors are handled in rasterizeTextLayer/rasterizeAnnotationLayer
#13090 Enable the ESLint no-var rule in gulpfile.js
#13079 Ensure that getDocument handles Node.js Buffers more gracefully (issue 13075)
#13087 Enable the ESLint no-var rule in the examples/ folder
#13084 Enable the ESLint no-var rule in a few font-parsing files, and convert src/core/type1_parser.js to use "standard" classes
#13092 Enable the ESLint no-var rule in the importL10n/ folder
#13091 Enable the ESLint no-var rule globally
#13093 Enable the ESLint no-var rule in the external/builder/ folder
#13097 Enable the ESLint no-var rule in test/add_test.js
#13096 Enable the ESLint no-var rule in the test/stats/ folder
#13095 Enable linting of the external/cmapscompress/ folder
#13098 Enable the ESLint no-var rule in the external/ folder
#13094 Enable the no-var linting rule for src/core/{operator_list, pattern}.js
#13101 print: Remove invalid @supports condition.
#13100 print: Ensure print containers have the right size and don't create overflow.
#13102 print: RFC: Center when printing a PDF with smaller size than the output page.
#13104 Ensure that printing, triggered from scripting, won't accidentally throw in PDFScriptingManager._updateFromSandbox
#13106 Support LineAnnotations with empty /Rect-entries (issue 6564)
#13069 [api-minor]XFA - Add a layer to display XFA forms
#13119 Actually reset the PDFPageProxy._xfaPromise property as intended (PR 13069 follow-up)
#13120 Rotate landscape pages, during printing, by default in the viewer (enablePrintAutoRotate = true)
#13116 Enable scripting by default in the viewer (PR 13053 follow-up)
#13113 Ignore some scripting events which don't make sense in PresentationMode
#13105 Improve memory usage around the BasePdfManager.docBaseUrl parameter (PR 7689 follow-up)
#13118 Add landmark region and aria-label for each page.
#13124 Tweak the pre-processor condition, for Node.js environments, in the animationStarted helper (issue 13057)
#13117 Re-factor the default preferences generation to support build targets (PR 10548)
#13126 Update packages and translations
#13125 Don't provide the enableXfa parameter to the BaseViewer constructor, and avoid the fallback bar with enableXfa = true set (PR 13069 follow-up)
#13135 Fix typo in pdf_history.js
#13128 Re-factor how the BasePreferences.prefs-property is initialized; remove some indirect loops
#13082 XFA - Convert some template properties into CSS ones
#13149 Set CFF header to 4 when writing it because it contains 4 elements
#13140 [GrabToPan] Remove more IE-specific code, and remove unconditional browser sniffing
#13145 print: Improve rendering of oversized pages.
#13144 [GrabToPan] Use Element.matches() rather than prefixed ...matchesSelector versions
#13138 [PDFHistory] Correctly simulate an internal destination in the pushPage-method (PR 12493 follow-up)
#13056 Dispatch a "Doc/WillClose" event, when scripting is enabled, when closing the document
#13154 Update quickjs to revision b5e62895c619d4ffc75c9d822c8d85f1ece77e5b
#13155 Move rotation normalization from PDFViewerApplication and into BaseViewer
#13152 Skip extra objects in object stream in using offsets
#13160 Improve handling of linked test-cases for the unit/integration suites
#13133 JS - Handle correctly hierarchy of fields
#13115 XFA - Add support for few ui elements
#13161 Bump y18n from 3.2.1 to 3.2.2
#13156 Prevent errors, in PDFOutlineViewer._getPageNumberToDestHash, for invalid destRef values (PR 12777 follow-up)
#13158 Remove the URL polyfill
#13157 Remove the file://-URL special-case from webViewerOpenFileViaURL
#13166 [api-minor] Support proper URL-objects, in addition to URL-strings, in getDocument
#13165 [api-minor] Stop exposing the raw defaultAppearance-string on Annotation-instances
#13168 Use post table when Encoding has only Differences
#12908 Slightly rescale lineWidth to workaround chrome rendering issue
#13169 [api-minor] Change the format of the fontName-property, in defaultAppearanceData, on Annotation-instances (PR 12831 follow-up)
#13177 Update packages and translations
#13175 [GENERIC viewer] Avoid data loss in forms, by triggering saving when the document is closed (issue 12257)
#13179 Utilize Set a bit more in the code-base
#13172 [api-minor] Add an option, in PDFDocumentProxy.cleanup, to allow fonts to remain attached to the DOM
This release features improved performance, font rendering, annotation rendering and form rendering/saving/printing (AcroForm). Moreover, it includes
This release features improved performance, font rendering, annotation rendering and form rendering/saving/printing (AcroForm). Moreover, it includes initial support for scripting in a sandbox (disabled by default). Finally, support for IE 11 and non-Chromium-based Edge is dropped.
Changes since v2.6.347:
#12323 Bump versions in pdfjs.config
#12326 Revert "Download, rather than opening, PDF attachments in Firefox (bug 1661259, PR 12286 follow-up)"
#12330 Update packages and translations
#12329 Rename the --outline-... CSS variables to --treeitem-... instead (PR 11077 follow-up)
#12328 Remove code-paths only relevant for IE 11/Edge (non-Chromium based) from the web/ folder
#12331 [api-minor] Only support browsers/environments that have basic support for Promise natively
#12336 Remove, manually implemented, DOM polyfills only necessary for IE 11 support
#12269 Add support for missing appearances for hightlights, strikeout, squiggly and underline annotations.
#12339 Support broken /FitH destinations that are missing the "top" value (bug 1663390)
#12343 Remove some code/comments relevant for old (pre-Chromium) versions of Opera
#12344 Save form data in XFA datasets when pdf is a mix of acroforms and xfa
#12345 Don't try to save something for a button which is neither a checkbox nor a radio
#12354 Ensure that the container div, on BaseViewer-instances, is absolutely positioned
#12352 Remove CSS variables feature-testing from PDFSidebarResizer
#12356 Set the modification date to the current day when saving
#12349 Follow-up comments on PR #12344
#12357 PDF names need to be escaped when saving
#12360 Reset cursor position when focus is out of text field
#12362 Let the loadingBar have the same width as the viewerContainer
#12364 Dict keys need to be escaped too when saving
#12365 Ensure that the length property won't be accidentally accessed on a DecodeStream-instance
#12363 canvas: Properly restore all the remaining items in stateStack in endDrawing
#12368 Revert "canvas: Properly restore all the remaining items in stateStack in endDrawing"
#12372 Skip failing FBF tests, when running makeref, in Firefox as well
#12374 Replace \n and \r by \n and \r when saving a string
#12370 Implement resetting of created streams for annotations
#12361 Ensure that all necessary /Font resources are included when saving a WidgetAnnotation-instance (issue 12294)
#12377 Set parent of radio annotation even if there is no 'V' field
#12375 Ensure that the empty dictionary won't be accidentally modified, and slightly improve the "SaveDocument" handler in src/core/worker.js
#12369 canvas: fix restore() with existing SMask groups and re-land #12363.
#12388 Refactor the container/viewer checks in the BaseViewer constructor
#12387 Use the same kind of strings for radio values
#12393 Prevent errors if the InkList property, in InkAnnotations, is missing and/or not an Array (issue 12392)
#12396 Update packages and translations
#12397 Update the webpack-stream dependency (issue 11996)
#12414 Need to reset the streams when printing
#12409 Compute the transformOrigin correctly, for negative values, when rendering AnnotationElements (bug 1627030)
#12417 Remove the PDFPageView.{error, stats} properties, and some related viewer clean-up
#12405 Fixed keydown event handling problem with shadow DOM.
#12423 Update escodegen to version 2.0
#12422 Don't trigger searching, in the GENERIC viewer, when <kbd>Shift</kbd> is used together with the regular keyboard shortcut (issue 12421)
#12419 Use the cidToGidMap, if it exists, when building the glyph mapping for non-embedded composite fonts (issue 12418)
#12426 Re-factor how printing is triggered in the default viewer
#12439 Add version/build info at the top of the built web/viewer.js file
#12436 Enable the ESLint no-var rule in the src/shared/ folder
#12333 Add tooltip if any in annotations layer
#12437 Enable the ESLint no-var rule in the src/display/ folder
#12441 Re-factor how the ESLint no-var rule is enabled in the src/ folder
#12442 Upgrade Puppeteer to version 5.3.1
#12444 Update packages and translations
#12445 Upgrade minor/major versions of dependencies that don't require code changes
#12446 [Firefox] Stop logging RenderingCancelledExceptions as errors when printing
#12448 Enable the ESLint no-debugger and no-alert rules
#12450 Fix invalid XUID entries in CFF fonts
#12451 Upgrade acorn to version 8
#12454 Upgrade terser to version 5
#12458 Add local caching of TilingPatterns in PartialEvaluator.getOperatorList (issue 2765 and 8473)
#12470 Upgrade webpack to version 5
#12476 Remove the scope parameter from the "GetOperatorList" handler in src/core/worker.js (PR 11110 follow-up)
#12477 Handle WorkerTasks, and various PDF document properties, correctly in the "SaveDocument" handler in src/core/worker.js
#12429 [api-minor] Add the possibility to collect Javascript actions
#12479 Fix the "should get form info when AcroForm is present" unit-test
#12478 Convert PartialEvaluator.translateFont to an async method
#12486 Stop caching the parsed Font data on its Dict object (PR 7347 follow-up)
#12483 Don't store complex data in PDFDocument.formInfo, and replace the fields object with a hasFields boolean instead
#12481 Get urls if any in AA::D dictionary for pushbuttons
#12485 [api-minor] JS - Add a function in api to get the fields ids in AcroForm::CO
#12489 Add a test for pdfDocument::fieldObjects
#12491 Update packages and translations
#12493 Support adding pages, in addition to regular destinations, to the browser history and use it with thumbnails (issue 12440)
#12515 Enable the unicorn/no-abusive-eslint-disable ESLint plugin rule
#12503 [api-minor] Invalidate an annotation with no quadPoints (when it's required)
#12432 JS - Add the basic architecture to be able to execute embedded js
#12516 Prevent issues, in PDFDocument.fieldObjects, for invalid Annotations
#12526 Improve argument/name handling when parsing TilingPatterns (PR 12458 follow-up)
#12524 A couple of small (viewer) tweaks of tooltip-only Annotations (PR 12333 follow-up)
#12522 Fix a couple of edge-cases in PDFViewerApplication._initializeJavaScript (PR 12432 follow-up)
#12464 Fix getVisibleElements helper in RTL-locales
#12508 Fallback font for buttons must be ZapfDingbats.
#12528 Convert var to const/let in the test/unit folder
#12529 Tweak the pdf.scripting.js bundling, to improve overall consistency
#12527 Remove SystemJS usage from the development viewer and the unit-tests
#12534 Ensure that MurmurHash3_64.update handles ArrayBuffer input correctly, to avoid hash-collisions (issue 12533)
#12532 Modernize, and remove SystemJS usage from, the font-tests
#12540 Ensure that the same version of PDF.js is used in both the API and the Viewer (PR 8959 follow-up)
#12539 Use standard import statements more when running the unit-tests
#12395 Render not displayed annotations in using normal appearance when printing
#12542 Add a MurmurHash3_64.update unit-test for TypedArrays which share the same underlying ArrayBuffer (PR 12534 follow-up)
#12543 Use a Map, rather than an Object, internally in the Catalog.openAction getter (PR 11644 follow-up)
#12551 Fix some errors reported by the ESLint no-useless-escape rule
#12525 [api-minor] Implement API to get MarkInfo from the catalog.
#12552 Miscellaneous (small) improvements in src/core/annotation.js
#12560 Update npm packages
#12561 Fix some static analyzer warnings (issue 11965)
#12562 Try adding a very basic lgtm.yml file, to prevent LGTM complaining about unused variables (issue 11965)
#12555 Replace css color rgb(...) by #...
#12559 Also update the browser history when the user manually change pages using the pageNumber-input (PR 12493 follow-up)
#12505 [api-minor] Split highlight annotation div into multiple divs
#12572 Change the getVisibleElements helper function to take a parameter object
#12568 [api-minor] JS -- Add default value in annotation data
#12583 Add global caching, for /Resources without blend modes, and use it to reduce repeated fetching/parsing in PartialEvaluator.hasBlendModes
#12564 Make sure that Popup is rendered next to trigger for textAnnotation
#12530 JS -- Add 'util' object
#12591 Improve the Pattern-detection in CanvasGraphics.stroke
#12594 Enable the ESLint no-useless-escape rule (PR 12551 follow-up)
#12595 Convert files in the src/display/-folder to use optional chaining where possible
#12598 Fail early, in modern GENERIC builds, if globalThis isn't available (PR 11799 follow-up, issue 12596)
#12546 [api-minor] JS -- Add listener for sandbox events only if there are some actions
#12582 JS -- Implement doc object
#12585 Fix popup for highlights without popup (follow-up of #12505)
#12613 Trigger cleanup, once rendering has finished, in PDFThumbnailView.draw
#12616 Improve the cleanup functionality for thumbnails
#12618 Ensure that rendering of thumbnails work correctly on HiDPI displays (issue 9820)
#12621 Follow-up for #12585: set elements class in render instead of in _createQuadrilaterals
#12622 Some hasJSActions, and general annotation-code, related cleanup in the viewer and API
#12624 Update packages and translations
#12569 JS -- Fix events dispatchment and add tests
#12625 Add a new preference, viewerCssTheme, to allow forcing the use of the light/dark viewer CSS themes (issue 12290)
#12630 Reduce, now unnecessary, asynchronicity in the BasePreferences constructor
#12636 Add an AppOptions.setAll method, and use it in PDFViewerApplication._readPreferences
#12567 [api-minor] JS -- hidden annotations must be built in case a script show them
#12604 JS -- Add a sandbox based on quickjs
#12642 [api-minor] Add "contentLength" to the information returned by the getMetadata method
#12645 Convert the PDFDocumentProperties.open method to be async
#12647 Update Puppeteer to version 5.5.0
#12656 Bump highlight.js from 9.13.1 to 9.18.5
#12655 Parenthesis in names are not escaped when saving
#12662 Check the top-level /Pages dictionary when finding the trailer in XRef.indexObjects (issue 12402)
#12652 Add a README about quickjs-eval.js file (build and license)
#12665 Update packages and translations
#12666 Use the same SVG images, in the default viewer, regardless of the CSS theme
#12673 Split underline, strikeout, squiggly annotions div into multiple divs
#12631 JS -- Implement app object
#12679 Fix the treeitem-expanded/treeitem-collapsed images in dark-mode (PR 12666 follow-up)
#12681 Update the link for the "pr8808" test-case (issue 12680)
#12682 [Generic viewer] Re-factor how the notFound appearance is set on the "findInput" in the PDFFindBar
#12685 Fix issue #12684: replace bitwise ORs by ORs
#12693 [Regression] Prevent the built pdf.scripting.js/pdf.sandbox.js files from accidentally including most of the main-thread code (PR 12631 follow-up)
#12695 Various clean-up and improvements related to pdf.sandbox.js building, and the related default-viewer functionality
#12696 Fix non-standard quadpoints orders for annotations
#12634 JS -- Add aform functions
#12703 Ensure that the pdf.sandbox.js is removed from the DOM on destroy, and unbreak the Chromium-extension (PR 12695 follow-up)
#12707 Checkboxes with the same name must behave like a radio buttons group
#12712 Attempt to handle collapsed outline items, in the default viewer, according to the specification (issue 12704, PR 10890 follow-up)
#12722 JS -- fix printd issue with negative number
#12720 Be sure that CalculationOrder is either null or a non-empty array
#12668 Add some integration tests using puppeteer
#12723 Bump ini from 1.3.5 to 1.3.7
#12719 JS -- add function eMailValidate used to validate an email address
#12717 Ensure that the /Annots-entry, on /Page-instances, is actually an Array (issue 12714)
#12728 [gulpfile.js] Move the time-zone hack to the testing-pre task, such that all tests work regardless of the current time-zone
#12718 Ignore color-operators in Type3 glyphs beginning with a d1 operator (issue 12705)
#12725 Use widths defined by font for standard fonts.
#12732 Call done.fail correctly in the scripting_spec.js unit-tests
#12734 Update packages and translations
#12733 Add a test-case for bug 1292316
#12736 Remove the remaining IE 11 polyfills
#12700 Fix automatic zoom under spread mode
#12724 Follow-up of #12707: Add an integration test for checkboxes as radio …
#12737 Change the minimum "supported" version of the Safari-browser to Safari 10
#12635 JS -- Send events to the sandbox from annotation layer
#12742 Don't use 'in' operator to check if key is in a Map
#12689 In order to simplify m-c code, move some in pdf.js
#12741 JS -- Actions must be evaluated in global scope
#12754 Dispatch an event on sandbox creation
#12753 Ignore, rather than throwing on, Coding style component (COC) markers in JPEG 2000 images (issue 12752)
#12747 Add new "pageopen"/"pageclose" events for usage with JavaScript actions
#12702 JS - Collect and execute actions at doc level
#12748 Update the events, used with scripting, to use lower-case names and avoid using DOM events internally in the viewer + misc scripting-related tweaks
#12758 Run AnnotationStorage.resetModified when destroying the PDFDocumentLoadingTask/PDFDocumentProxy
#12760 Switch from Travis CI to GitHub Actions
#12761 Stop running gulp components as part of the unit-tests
#12751 Add a default DA for textfield to avoid issues when printing or saving
#12765 Avoid the getJavaScript API-call in PDFViewerApplication._initializeAutoPrint when "enableScripting" is set
#12770 Remove timeout in annotation integration test
#12637 JS -- Add support for buttons
#12771 [Scripting] Try to ensure that the WillPrint/DidPrint respectively DidSave events are always dispatched
#12773 Pass in the "sandboxBundleSrc" option when calling DefaultExternalServices.createScripting
#12780 Remove unused .noResults CSS-rule
#12781 Update packages and translations
#12766 Ignore, rather than throwing on, unsupported Coding style default (COD) options in JPEG 2000 images (issue 11004)
#12788 Include the state in the "presentationmodechanged" event, and remove the separate active/switchInProgress properties
#12792 Switch the badge in the README from Travis CI to GitHub Actions (PR 12760 follow-up)
#12793 Support the once option, when registering EventBus listeners
#12796 Extract common functionality into a new BaseTreeViewer._finishRendering method
#12800 Convert DefaultExternalServices.fallback to an asynchronous method
#12801 Modernize the FirefoxCom.request method
#12802 Add a new FirefoxCom.requestAsync method, to simplify the code in web/firefoxcom.js
#12805 Remove unnecessary toolbarButton icon-flipping in RTL mode (PR 11077 follow-up)
#12804 Remove the DownloadManager.onerror functionality, since its only usage is unlikely to be helpful
#12807 Remove unnecessary dir-dependent CSS rules, and add a missing CSS variable (PR 11077 follow-up)
#12774 JS -- Add tests for print/save actions
#12808 Disable a test using pending function
#12825 An option is missing for last versions of worker-loader to use pdf.js with webpack
#12815 Update webpack example
#12816 JS -- Plug PageOpen and PageClose actions
#12292 Fix encoding issues when printing/saving a form with non-ascii characters
#12822 Improve the PDFViewerApplication._contentLength handling in the viewer, related mostly to scripting
#12824 Improve the handling of errors, in PartialEvaluator.loadFont, occuring in PartialEvaluator.preEvaluateFont (issue 12823)
#12820 Don't dispatch "pageclose" events if a "pageopen" wasn't dispatched for the page (PR 12747 follow-up)
#12834 Try to fix TypeScript definitions for the es5-build in pdfjs-dist (issue 12872)
#12837 Remove unncessary CanvasFactory/CMapReaderFactory/FileReaderFactory duplication in unit-tests
#12394 In a text widget, Font resources can be in the appearance
#12777 Add support for finding/highlighting the outlineItem, corresponding to the currently visible page, in the sidebar (issue 7557, bug 1253820, bug 1499050)
#12843 Fix broken "issue12394" test-case
#12840 Use ESLint to ensure that exports are sorted alphabetically
#12842 Improve handling of JPEG images without an EOI marker (issue 12841)
#12844 Update packages and translations
#12845 Remove unnecessary dir-dependent CSS rules, and simplify som findbar-button rules (PR 11077 follow-up)
#12846 Enable the Stylelint length-zero-no-unit rule
#12848 Correctly align annotation content in horizontal/spead scrolling modes
#12838 [api-minor] Change the "dc:creator" Metadata field to an Array
#12853 Fix the initialization/resetting of scripting-related events in the BaseViewer
#12855 [api-minor] Highlight search results correctly for normalized text (PR 9448)
#12861 Always re-measure non-embedded ArialNarrow fonts (bug 1671312, PR 12725 follow-up)
#12812 Enforce line width to be at least 1px after applied transform
#12863 Remove a duplicated reference test (PR 12812 follow-up)
#12864 Enforce linewidth to 1px when at least one of scale factor is lower than 1
#12874 Put less emphasis on "ES5"/"ES6" in the README and other documentation
#12875 Replace some ternary operators with optional chaining, and nullish coalescing, in the src/display/-folder
#12871 Only display a notification on the sidebarToggle-button, and not the individual view-buttons (PR 7959 follow-up)
#12850 JS -- Add few missing constants in global scope
#12878 Remove redundant compatibility checks, for modern generic builds, in src/core/worker.js
#12869 Fix zoom issue with too thin lines
#12831 Add a parser to get font data from the default appearance
#12836 JS -- update radio/checkbox values even if there are no actions
#12888 Enable the Stylelint shorthand-property-no-redundant-values rule
#12890 Enable ESLint rules that no longer need to be disabled on a directory/file-basis
#12886 Use _defaultAppearanceData directly in WidgetAnnotation._getSaveFieldResources (PR 12831 follow-up)
#12887 Keep logical assignment operators in MOZCENTRAL/TESTING-builds
#12885 Simplify the PDFFunctionFactory._localFunctionCache initialization (PR 12034 follow-up); Fix the gStateObj lookup in TranslatedFont._removeType3ColorOperators (PR 12718 follow-up)
#12891 Ensure that parseDefaultAppearance won't attempt to access a not yet defined variable (PR 12831 follow-up)
#12828 [api-minor] Set font size and color for text widget annotations
#12893 Enable, a basic version of, the ESLint no-use-before-define rule
#12870 Add previous/next-page functionality that takes scroll/spread-modes into account (issue 11946)
#12899 Update the ESLint env to use "es2021"
#12898 Update packages and translations
#12897 JS - Fix mouse event names
This release features support for form filling (AcroForm) and layers (optional content). Moreover, the default viewer is redesigned to match Firefox's
This release features support for form filling (AcroForm) and layers (optional content). Moreover, the default viewer is redesigned to match Firefox's Photon design, TypeScript definitions are shipped and various performance improvements and bugfixes are included.
Changes since v2.5.207:
#11948 Bump versions in pdfjs.config and update the getting started page of the website for the new release
#11958 [api-minor] Remove the deprecated PDFDocumentProxy.getOpenActionDestination method (PR 11644 follow-up)
#11967 Do not transform jpeg RGB components
#11964 Fix pdfjs-dist/webpack causing errors with certain configs
#11953 For #11838: trigger fallback bar after user clicks in pdf
#11972 Change the loadedChunks property, on ChunkedStream instances, from an Array to a Set
#11963 Avoid calling Math.pow if possible.
#11974 A couple of small image caching/sending improvements
#11976 Remove unused methods from NetworkManager, in src/display/network.js
#11978 Improve unit test coverage for primitives
#11977 Convert the RefSet primitive to a proper class and use a Set internally
#11985 Convert some Objects to Maps in ChunkedStreamManager, and move the isEmptyObj helper function to the test utils
#11987 Update SVGGraphics to account for globally cached images (PR 11912 follow-up)
#11992 Prevent the (old) preprocessor from appending trailing whitespace when removing closing HTML comments
#11993 Change the dependencies property, on OperatorList instances, from an Object to a Set
#11969 For #11961: collect telemetry on all unique unsupported features that…
#11997 Add basic support for the nullish coalescing operator ??
#11999 Update packages and translations
#12000 Ensure that PDFImage.buildImage won't accidentally swallow errors, e.g. from ColorSpace parsing (issue 6707, PR 11601 follow-up)
#12001 Add local caching of ColorSpaces, by name, in PartialEvaluator.getOperatorList (issue 2504)
#12002 Small improvements in CFFCompiler.encodeNumber and CFFCompiler.encodeFloat
#12004 Convert the code in src/core/worker.js to use ES6 classes
#12005 Convert the code in src/core/cff_parser.js to use ES6 classes
#12017 Convert the PDFPageProxy.intentStates property from an Object to a Map
#12016 Tweak the QueueOptimizer to recognize OPS.paintImageMaskXObject operators as repeated when the "skew" transformation matrix elements are non-zero (issue 8078)
#12021 Move the fetchBuiltInCMap method to the PartialEvaluator.prototype
#12012 Improve (local) caching of parsed ColorSpaces (PR 12001 follow-up)
#12024 Update Needle to 2.5.0 or greater.
#12028 Attempt to detect inline images which contain "EI" sequence in the actual image data (issue 11124)
#12032 Update packages and translations
#12041 Replace Mozilla Labs by just Mozilla
#12049 Enable the no-promise-executor-return ESLint rule
#12036 Add at least some test-coverage for the RenderTask.onContinue functionality
#12043 Add a reduced test-case for issue 4260 (PR 4521 follow-up)
#12044 Adjust the heuristics used when dealing with rectangles, i.e. re operators, with zero width/height (issue 12010)
#12040 Replace non-inclusive "whitelist" term with "allowlist"
#12039 [api-minor] Use the NodeCanvasFactory/NodeCMapReaderFactory classes as defaults in Node.js environments (issue 11900)
#12034 Add local caching of Functions, by reference, in the PDFFunctionFactory (issue 2541)
#12057 Allow BaseLocalCache to, optionally, only allocate storage for caching of references (PR 12034 follow-up)
#12059 Convert the code in src/core/image.js to use ES6 classes
#12060 Convert the code in src/core/evaluator.js to use standard classes
#12072 Bump npm from 6.14.5 to 6.14.6
#12056 Refactor/simplify the "delayedFallback" handling in the default viewer
#12070 Re-factor the idFactory functionality, used in the core/-code, and move the fontID generation into it
#12083 Remove the IR (internal representation) part of the ColorSpace parsing
#12063 Tweak the heuristic, in src/core/jpg.js, that handles JPEG images with a wildly incorrect SOF (Start of Frame) scanLines parameter (issue 10989)
#12092 Update packages and translations
#12090 Stop special-casing the (very unlikely) "no /XObject found"-scenario, when parsing OPS.paintXObject operators, in PartialEvaluator.{getOperatorList, getTextContent}
#12099 Use a RefSet, rather than a plain Object, for tracking already processed nodes in PartialEvaluator.hasBlendModes
#12085 Make the detection of Node.js environments on Electron strict.
#12089 Convert RefSetCache to a proper class and to use a Map internally
#12087 Add local caching of "simple" Graphics State (ExtGState) data in PartialEvaluator.{getOperatorList, getTextContent} (issue 2813)
#12101 Add a new size getter and getRawValues method, to Dict instances, to simplify some code
#12023 Fix auto-rotate for printing landscape PDFs where the first page is also landscape
#12114 Remove a couple of unnecessary PDFJSDev checks from the viewer
#12106 [api-minor] Add an annotation storage in order to save annotation data in acroforms
#12122 Update packages and translations
#12124 Include the browser name when printing unit-test results
#12126 Attempt to reduce intermittent failures in the "cleans up document resources during rendering of page" unit-test
#12125 Improve test bot stability
#12127 Improve how Type3-fonts with dependencies are handled
#12135 [src/core/worker.js] Remove a useless Promise handler from the pdfManagerReady function
#12136 Ignore fetch() errors, in PDFFetchStreamRangeReader, once the request has been aborted
#12107 Add support for checkboxes printing
#12143 Fix hanging reference test (PR 12107 follow-up)
#12141 Populate the find field with the search query when URL has #search hash
#12147 [api-minor] Fix the AnnotationStorage usage properly in the viewer/tests (PR 12107 and 12143 follow-up)
#12144 Prevent Uncaught (in promise) AbortException when running the unit-tests
#12148 Revert "Populate the find field with the search query when URL has #search hash"
#12131 [api-minor] Allow loading pdf fonts into another document.
#12151 Revert "[api-minor] Allow loading pdf fonts into another document."
#12153 Unit test improvements
#12108 Add support for radios printing
#12102 Add types annotations
#12162 Tweak for the type of PageViewportParameters.viewBox (PR 12102 follow-up)
#12161 Add types to functions exported as API in src/pdf.js (PR 12102 follow-up)
#12157 Fix the type of SVGGraphics (PR 12102 follow-up)
#12160 Use typedef to define the type of GlobalWorkerOptions (PR 12102 follow-up)
#12095 Add support for optional marked content.
#12156 Improve the types generation and API documentation (PR 12102 follow-up)
#12163 Re-factor the dispatching of "attachmentsloaded" events, when the PDF document contains no "regular" attachments
#12171 Attempt to reduce intermittent failures in the "multiple render() on the same canvas" unit-test
#12168 Fix the gulp types task to run on Windows, and place the TypeScript definitions correctly in pdfjs-dist
#12172 Fix the type definition of TypedArray. (PR 12156 follow-up)
#12174 Do the AppOptions.get("printResolution") lookup once in web/app.js , when initializing PDFPrintServiceFactory-instances, rather than for every printed page
#12173 [api-minor] Fix the annotationStorage parameter in PDFPageProxy.render
#12179 Add support for Object.fromEntries
#12169 Extract common methods from PDFOutlineViewer/PDFAttachmentViewer into a new abstract BaseTreeViewer class
#12175 Support textfield and choice widgets for printing
#12182 Fix the type of PDFDocumentLoadingTask.destroy.
#12154 [api-minor] Allow loading pdf fonts into another document.
#12187 Add a test-case for issue 4398
#12188 Update packages and translations
#12176 Support multiline textfields for printing
#12177 Support comb textfields for printing
#12186 Fix bad truetype loca tables.
#12192 A couple of (small) tweaks of the AnnotationStorage (PR 12173 follow-up)
#12193 Set direction: ltr; on the canvases used during printing (bug 1335712)
#12191 Remove the disableCreateObjectURL option from web/app_options.js
#12137 Add support for saving forms
#12201 Enable renderInteractiveForms by default.
#12211 Wait until saving has finished before resetting PDFViewerApplication._saveInProgress (PR 12137 follow-up)
#12212 Bug 1643508 - Disable touch-based pinch zooming on pdf.js.
#12210 Keep the original class/function names when minifying code (issue 12209)
#12203 Bug 1392361 - Fix zooming sensitivity on macOS
#12219 Add (basic) support for transfer functions to Images (issue 6931, bug 1149713)
#12227 Include image_decoders-es5/minified-es5 in the pdfjs-dist library (issue 12220)
#12229 Dispatch event when annotations have finished rendering.
#12230 Implement reference testing for printing
#12250 Update the zoom dropdown width calculation to work better in locales with long zoom-strings (PR 11077 follow-up)
#12251 Return the query with the findcontrolstate
#12241 confirm if leaving a modified form without saving
#12248 Support file save triggered from the Firefox integrated version.
#12247 Improve the field value parsing for choice widgets to handle null values
#12256 #12241 followup - move event listener to PDFViewerApplication.load
#12244 fix webpack config problem caused by breaking changes of worker-loader
#12260 Replace menu dropdown icon
#12261 Also enable renderInteractiveForms by default in the viewer components (PR 12201 follow-up)
#12265 Don't warn when navigating away from a modified form, if printing has occurred (issue 12262)
#12267 Update packages and translations
#12263 Fix AcroForm printing/saving edge cases
#12268 Reduce the leading padding for the numPages span (PR 11077 follow-up)
#12270 Accent positioning in Type1 seac glyphs
#12276 Access the XRef/Catalog data correctly in the "GetStats"/"GetPageIndex" handlers in src/core/worker.js
#12271 Improve AcroForm/XFA form type detection
#12285 Ensure that the sourceEventType parameter is actually optional in PDFViewerApplication.{download, save} (PR 12248 follow-up)
#12286 Use a link, rather than window.open, when opening PDF attachments in Firefox (bug 1661259)
#12293 Download, rather than opening, PDF attachments in Firefox (bug 1661259, PR 12286 follow-up)
#12287 Bug 1661226 - Push button are not rendered with renderInteractiveForms enabled
#12298 Tweak the vertical positions of the findbar and secondaryToolbar (PR 11077 follow-up)
#12259 Fix handling of symbolic fonts and unicode cmaps.
#12300 Fix various :hover effects in the findbar (PR 11077 follow-up)
#12299 Update the indeterminate progressBar to the new design (PR 11077 follow-up)
#12170 [api-minor] Add support for toggling of Optional Content in the viewer (issue 12096)
#12301 Add (basic) support for Stylelint, to allow linting of CSS files
#12296 Add support, in Dict.merge, for merging of "sub"-dictionaries
#12310 Add support for /Print and /SaveAs named actions in the viewer (issue 12308)
#12315 print: Make the firefox printing code able to fail and be re-invoked.
#12321 Ensure that the viewer property, on BaseViewer-instances, is a valid div-element (issue 12320)
Your coding agent can read these notes before it upgrades. Set up the MCP server →