Releases: mozilla/pdf.js
v4.4.168
This release contains improvements for annotations, annotation editing, font conversion, image decoding, performance, scripting, text selection, test/release infrastructure and the viewer.
Changes since v4.3.136
- Bump the stable version in
pdfjs.config
by @timvandermeij in #18182 - Update dependencies and translations to the most recent versions by @timvandermeij in #18183
- [api-minor] Simplify how the list of points are structured by @calixteman in #18163
- Bump library version to 4.4 by @calixteman in #18192
- Disconnect the resize observer and remove scroll listener when unbinding window events by @calixteman in #18193
- Switch to page-scrolling mode when the pdf has more than 10000 pages (bug 1895050) by @calixteman in #18189
- Upgrade
gulp
to version 5.0.0 by @timvandermeij in #18197 - Decompress when it's possible images in using DecompressionStream by @calixteman in #18167
- Fix decoding of JPX images having an alpha channel by @calixteman in #18204
- Change openjpeg.js license from Apache 2 to BSD 2-clause by @calixteman in #18205
- Change
DownloadManager.download
to use Uint8Array-data by @Snuffleupagus in #18216 - Inline the
#finishRendering
helper inTextLayerBuilder.prototype.render
by @Snuffleupagus in #18217 - [Editor] Support dragging & dropping images on a pdf (bug 1900907) by @calixteman in #18214
- Update our OpenJPEG decoder in order to fix a malloc failure due to big image (bug 1901253) by @calixteman in #18219
- Don't display annotations with a PMD (barcode stuff) entry (bug 1899804) by @calixteman in #18228
- Update dependencies and translations to the most recent versions by @timvandermeij in #18231
- Add an option to enable/disable hardware acceleration (bug 1902012) by @calixteman in #18238
- Remove the
DownloadManager.downloadUrl
method by @Snuffleupagus in #18236 - Display a wait cursor when saving by @calixteman in #18243
- Fix an query with an empty selector in integration tests by @calixteman in #18246
- Improve how the wait-cursor is toggled when copying all text by @Snuffleupagus in #18244
- Improve date parsing in the js sandbox by @calixteman in #18234
- Don't recommend installing
gulp-cli
globally in the README and on the website by @timvandermeij in #18247 - Replace Wintersmith with Metalsmith by @timvandermeij in #18248
- Include the generated API documentation directly on the API page by @timvandermeij in #18251
- Improve some old code in the
src/display/api.js
file by @Snuffleupagus in #18250 - Compute correctly the unitsPerEm value from the fontMatrix when converting a font (bug 1539074) by @calixteman in #18253
- Implement reproducibility for the JSDoc builds by @timvandermeij in #18256
- Ensure that saving, in the viewer, works for partially loaded documents by @Snuffleupagus in #18254
- Implement reproducibility for the release builds by @timvandermeij in #18258
- Update jpx decoder by @calixteman in #18257
- Only disable HWA in m-c build and for local dev by @calixteman in #18255
- Only use the l10n fallback bundle when normal ftl-file fetching failed (issue 18264) by @Snuffleupagus in #18270
- Ensure that dependencies are added to the operatorList for locally cached images (issue 18259) by @Snuffleupagus in #18269
- Clean up before closing the tab in integration tests by @calixteman in #18271
- Add a helper function for handling locally cached image data (PR 18269 follow-up) by @Snuffleupagus in #18273
- [Editor] Set the canvas in the stamp editor at the right position in odd spread mode by @calixteman in #18275
- [Editor] Fix intermittent failure in integration test when highlighting with the keyboard by @calixteman in #18277
- Enable dumpio when running the tests in order to have some useful debug data by @calixteman in #18260
- Don't save modified documents, when running tests, upon closing the viewer (issue 18274) by @Snuffleupagus in #18282
- Pause l10n (i.e. disconnect the mutation observer in fluent) when closing the viewer by @calixteman in #18280
- Avoid to call a function in the js sandbox when it has been destroyed by @calixteman in #18286
- [Editor] Remove the various listeners when destroying the editor manager by @calixteman in #18284
- Update dependencies to the most recent versions and upgrade
eslint-plugin-unicorn
to version 54.0.0 by @timvandermeij in #18278 - Update the regular expression in
tweakWebpackOutput
to support minified-legacy builds (issue 18290) by @Snuffleupagus in #18292 - Add a new helper, in the viewer, to close everything during testing by @Snuffleupagus in #18289
- Respect
maxCanvasPixels
when computing canvas dimensions by @nicolo-ribaudo in #18218 - [Editor] Don't create an observer for the stamp annotation after the viewer has been closed by @calixteman in #18301
- Don't throw if there's not enough data to get the header in
FlateStream
(issue 18298) by @Snuffleupagus in #18304 - [Editor] Correctly set the accessibility data when copying & pasting a stamp with an alt text (bug 1903589) by @calixteman in #18296
- Close
PDFFindBar
when closing the viewer during testing by @Snuffleupagus in #18302 - Always use DW if it's a number for the font default width (bug 1903731) by @calixteman in #18306
- Use the new formatted issue templates by @nicolo-ribaudo in #18308
- Expose entireWord in updateFindControlState by @bootleq in #18303
- Update dependencies and translations to the most recent versions by @timvandermeij in #18312
- Try to shutdown Fluent "more" when closing the viewer during testing by @Snuffleupagus in #18313
- Disable system addon updates for Firefox in testing mode by @timvandermeij in #18316
- Close the page in the text layer caret selection integration test by @timvandermeij in #18317
- Fix the "copy/paste from a tab to an other" stamp editor integration test by @timvandermeij in #18320
- Don't ignore errors in the Jasmine suite start/end stages by @timvandermeij in #18321
- Include a security policy for PDF.js by @timvandermeij in #18311
- Improve the security policy by @timvandermeij in #18323
- Fix the computation of unitsPerEm when the fontMatrix has some negative coefficients by @calixteman in #18324
- Fix the timeout logic in the
waitForEvent
integration test helper function by @timvandermeij in #18325 - Use
waitForEvent
in thepasteFromClipboard
integration test helper function by @timvandermeij in #18326 - Override the minimum font size when rendering the text layer by @nicolo-ribaudo in #18283
- Remove the
requestAnimationFrame
work-around inL10n.prototype.destroy
(PR 18313 follow-up) by @Snuffleupagus in #18333 - Add the possibility to dispatch some pdf.js events at the chrome level (bug 1904585) by @calixteman in #18332
- Refactor the copy/paste logic in the integration tests and fix a race condition involving the
waitForEvent
integration test helper function by @timvandermeij in #18331 - Cancel the
requestAnimationFrame
in thewatchScroll
helper (PR 18193 follow-up) by @Snuffleupagus in #18335 - Cancel the
requestAnimationFrame
in the API when cancelling rendering by @Snuffleupagus in #18336 - Add a port option to gulp server by @calixteman in #18339
- Fix intermittent failures with freetext and...
v4.3.136
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.
Changes since v4.2.67
- Bump the stable version in
pdfjs.config
by @timvandermeij in #18023 - Update dependencies and translations to the most recent versions by @timvandermeij in #18024
- Fix rendering problem when zooming on Safari by @Aditi-1400 in #18019
- [api-minor] Remove the use of (get/put)ImageData when drawing SMasks (bug 1874013) by @calixteman in #18029
- [api-minor] Expose the /Desc-attribute of file attachments in the viewer (issue 18030) by @Snuffleupagus in #18031
- Remove the limit used to decided if a group canvas must be upscaled or not by @calixteman in #18035
- Bump library version to
4.3
by @Snuffleupagus in #18033 - Add even more validation of width-data (PR 18017 follow-up) by @Snuffleupagus in #18037
- [api-minor] Improve the
FileSpec
implementation by @Snuffleupagus in #18034 - Pin GitHub actions to Node.js 21 by @nicolo-ribaudo in #18009
- Avoid to aria-hide the structure tree (bug 1894849) by @calixteman in #18044
- Remove most
waitForTimeout
usage from the freetext editor integration tests by @timvandermeij in #18041 - Validate even more dictionary properties by @Snuffleupagus in #18026
- Remove event listeners with
signal
in web/pdf_viewer.js by @Snuffleupagus in #18055 - Remove the unused
Font.prototype.spaceWidth
getter (PR 13424 follow-up) by @Snuffleupagus in #18069 - Revert "Fix rendering problem when zooming on Safari" for causing bug 1895909 by @Snuffleupagus in #18079
- Slightly re-factor how the viewer initializes debug-only functionality by @Snuffleupagus in #18061
- Remove the
ignoreErrors
option from theFontFaceObject
class by @Snuffleupagus in #18066 - [api-minor] Re-factor how Node.js packages/polyfills are loaded (issue 17245) by @Snuffleupagus in #18051
- Restore broken functionality and simplify the implementation in
src/display/text_layer.js
by @Snuffleupagus in #18052 - Update the Babel plugin to remove empty class constructors by @nicolo-ribaudo in #18060
- [api-minor] Include the document /Lang attribute in the textContent-data by @Snuffleupagus in #17941
- [Editor] Fix the CSS properties of the canvas when it's used in a stampEditor (bug 1895909) by @calixteman in #18080
- Fix flickering on text selection by @nicolo-ribaudo in #17923
- Improve the
TextLayerRenderTask
implementation by @Snuffleupagus in #18089 - Update openjpeg build (bug 1896577) by @calixteman in #18087
- Update dependencies and translations to the most recent versions by @timvandermeij in #18092
- Inline the
_fetchDocument
helper function ingetDocument
by @Snuffleupagus in #18091 - Implement a unit test for the
BaseException
class by @timvandermeij in #18093 - Remove unnecessary
signal
parameter fromremoveEventListener
calls by @Snuffleupagus in #18094 - Avoid re-parsing global images that failed decoding (issue 18042, PR 17428 follow-up) by @Snuffleupagus in #18047
- Actually disable
TextLayerRenderTask.prototype.#processItems
whenMAX_TEXT_DIVS_TO_RENDER
is reached (PR 18089 follow-up) by @Snuffleupagus in #18103 - [api-minor] Respect the
drawingDelay
also when CSS-only zooming is used (issue 18022) by @Snuffleupagus in #18077 - Remove the
rimraf
dependency in favor of the built-in Node.jsfs.rmSync
by @timvandermeij in #18106 - Remove the obsolete
needle
dependency by @timvandermeij in #18107 - Don't invoke
cleanupTextLayer
when there are pending textLayers by @Snuffleupagus in #18109 - Support charCodes larger than 32-bit in
adjustMapping
(issue 18117) by @Snuffleupagus in #18119 - Freeze
evaluatorOptions
in the src/core/pdf_manager.js file by @Snuffleupagus in #18115 - [api-minor] Re-factor the basic textLayer-functionality by @Snuffleupagus in #18104
- Remove the
through2
dependency in favor of the built-in Node.jsstream.Transform
by @timvandermeij in #18113 - Update puppeteer to 22.9.0 by @calixteman in #18121
- Support corrupt PDF documents that contain "endsteam" commands (issue 18122) by @Snuffleupagus in #18125
- [Editor] Update popup position and contents after a FreeText has been edited by @calixteman in #17968
- [Editor] Pass a buffer instead of a blob url to the ML api by @calixteman in #18136
- Add test for drawing delay with CSS-only zoom by @nicolo-ribaudo in #18129
- Remove most
waitForTimeout
usage from the scripting integration tests by @timvandermeij in #17974 - Add language attribute to canvas by @Aditi-1400 in #17770
- Improve /Page validation for linearized documents (issue 18138) by @Snuffleupagus in #18143
- Remove the
merge-stream
dependency in favor of theordered-read-streams
dependency by @timvandermeij in #18145 - Shorten the code in the
web/text_layer_builder.js
file by @Snuffleupagus in #18152 - Update dependencies and translations to the most recent versions by @timvandermeij in #18153
- Introduce a
getRect
utility function for the integration tests by @timvandermeij in #18154 - [GeckoView] Don't use the system fonts (bug 1882613) by @calixteman in #18156
- Prevent XRef errors from breaking font loading (bug 1898802) by @Snuffleupagus in #18166
- Update the "File Layout Overview" docs by @Snuffleupagus in #18160
- Improve the
loadingParams
functionality in the API by @Snuffleupagus in #18159 - Simplify the integration test in adding a function to turn on/off an editing tool by @calixteman in #18165
- Move the dialog css stuff in its own file by @calixteman in #18174
- Target ES2022 when building the TypeScript definitions (issue 17932) by @Snuffleupagus in #18161
- Slightly shorten some worker-thread code by @Snuffleupagus in #18169
- Don't register a pending
TextLayer
untilrender
is invoked (PR 18104 follow-up) by @Snuffleupagus in #18171 - [api-minor] Remove the
setTextContentSource
method inTextLayerBuilder
(PR 18104 follow-up) by @Snuffleupagus in #18170 - [api-minor] Simplify API to implement zoom in custom viewers by @nicolo-ribaudo in #18179
v4.2.67
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 #17561.
Changes since v4.1.392
- Bump the stable version in
pdfjs.config
by @timvandermeij in #17924 - Convert the history code to use proper private methods by @timvandermeij in #17925
- Update dependencies and translations to the most recent versions by @timvandermeij in #17927
- Remove the tag for missing font subset when trying to find a substitution by @calixteman in #17930
- Fix resetting of cursor-tools when closing the document (PR 17464 follow-up) by @Snuffleupagus in #17933
- Warn when a non-embedded font has an invalid name by @calixteman in #17934
- Remove the
mkdirp
dependency in favor of the built-in Node.jsfs.mkdirSync
by @timvandermeij in #17935 - Improve type definitions for the viewer by @ex37 in #17879
- Fix the "must check that invisible fields are made visible" scripting integration test by @timvandermeij in #17940
- Remove the
rimraf
dependency in favor of the built-in Node.jsfs.rmSync
in the test folder by @timvandermeij in #17938 - [api-minor] Update the minimum supported Safari version to 16.4 by @Snuffleupagus in #17942
- Fix the "must check that a field has the correct value when a choice is changed" scripting integration test by @timvandermeij in #17947
- [api-minor] Add a jpx decoder based on OpenJPEG 2.5.2 by @calixteman in #17946
- Bump library version to
4.2
by @Snuffleupagus in #17949 - Build the openjpeg-based decoder in a web environment in order to avoid issues when used in node by @calixteman in #17954
- Fix
JpxImage
API issues (PR 17946 follow-up) by @timvandermeij in #17951 - [JPX] Throw an exception with the error messages returned by openjpeg by @calixteman in #17956
- [Editor] Provide an element to render in the annotation layer after a freetext has been edited (bug 1890535) by @calixteman in #17914
- Remove
waitForTimeout
usage from the helper functions by @timvandermeij in #17966 - Remove some event listeners with
signal
in the viewer by @Snuffleupagus in #17964 - [Editor] Don't show the context menu when resizing by @calixteman in #17973
- Correctly update the xref table when an annotation is deleted by @calixteman in #17970
- Update dependencies and translations to the most recent versions by @timvandermeij in #17972
- Improve jpx decoding by around 20% in enabling simd support when compiling OpenJPEG by @calixteman in #17983
- [api-minor] Remove the image-related error message prefixes by @Snuffleupagus in #17979
- Use the pdf.js warn when using jpx decoder by @calixteman in #17985
- Extend the globally cached image main-thread copying to "complex" images as well (PR 17428 follow-up) by @Snuffleupagus in #17978
- Update
JpxImage.parseImageProperties
to support TypedArray data in IMAGE_DECODERS builds by @Snuffleupagus in #17977 - Add
signal
-support in theEventBus
, and utilize it in the viewer (PR 17964 follow-up) by @Snuffleupagus in #17967 - Set correctly the change property for the event triggered when a choice list is changed by @calixteman in #17999
- Remove all
waitForTimeout
usage from the annotation integration tests by @timvandermeij in #17969 - Validate explicit destinations on the worker-thread to prevent
DataCloneError
(issue 17981) by @Snuffleupagus in #17984 - Allow to insert several annotations under the same parent in the structure tree by @calixteman in #17986
- Always enable smoothing when rendering downscaled image by @calixteman in #17868
- Simplify the way to pass the glyph drawing instructions from the worker to the main thread by @calixteman in #18015
- Validate additional font-dictionary properties by @Snuffleupagus in #18014
- Add more validation of width-data by @Snuffleupagus in #18017
- Reduce code-duplication when caching data in
CompiledFont.getPathJs
by @Snuffleupagus in #18018 - Re-factor
SimpleLinkService
to extendPDFLinkService
by @Snuffleupagus in #18013 - [api-minor] Move the page reference/number caching into the API by @Snuffleupagus in #18001
v4.1.392
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.
Changes since v4.0.379
- Bump the stable version in
pdfjs.config
by @timvandermeij in #17474 - [Editor] Take into account the crop box when saving/printing some highlighted text (bug 1872721) by @calixteman in #17475
- Update Puppeteer to version 21.7.0 by @calixteman in #17477
- Avoid to have the text layer mismatching the rendered text with mismatching locales (bug 1869001) by @calixteman in #17476
- Preserve the whitespaces when getting text from FreeText annotations (bug 1871353) by @calixteman in #17458
- [Editor] Init the default highlight color before creating the first editor instance by @calixteman in #17481
- Update packages and translations by @Snuffleupagus in #17482
- Remove terminal white spaces when extracting text from annotation appearances by @calixteman in #17487
- Bump follow-redirects from 1.15.3 to 1.15.4 by @dependabot in #17494
- [Editor] Don't throw when changing the color of an invisible highlight by @calixteman in #17498
- [Editor] Move the code to generate the SVG path from draw_layer.js to outliner.js by @calixteman in #17499
- [Editor] Correctly serialize highlight data (regression from #17499) by @calixteman in #17501
- [api-minor] Validate the
workerPort
/workerSrc
options by @Snuffleupagus in #17504 - Add note about running
npm install
on MacOS by @nicolo-ribaudo in #17490 - Bump library version to
4.1
by @Snuffleupagus in #17507 - Update
gulp-cli
to 2.3.0 and explicitly add it as a dependency by @nicolo-ribaudo in #17489 - Consistently remove the "visibilitychange" listener in
PDFViewer
(PR 14388 follow-up) by @Snuffleupagus in #17508 - Update l10n files by @calixteman in #17513
- [Editor] Extract all the lines when adding a FreeText annotation by @calixteman in #17511
- Take into account empty lines when extracting text content from the appearance by @calixteman in #17512
- [Editor] Draw a line instead of a Bezier curve when an Ink has only one point by @calixteman in #17514
- [Editor] Slightly simplify the serialization of an highlight annotation by @calixteman in #17517
- [Editor] Make editors draggable with touchscreens by @calixteman in #17519
- Add the font Linux Libertine as a possible substitution for Times New Roman by @calixteman in #17405
- Format json files in using prettier by @calixteman in #17525
- [Editor] Avoid an exception when pressing space key to change the color of an highlight by @calixteman in #17527
- Exclude the
web/locale/
folder from linting (PR 17525 follow-up) by @Snuffleupagus in #17529 - [Editor] Avoid to move a non-draggable editor with the keyboard by @calixteman in #17528
- [Editor] Add the ability to make a free highlight (i.e. without having to select some text) (bug 1856218) by @calixteman in #17506
- [Editor] Change the arrow direction when the dropdown is visible in the color picker (bug 1875357) by @calixteman in #17534
- Make the caret visible in the text layer in caret browsing mode by @calixteman in #17533
- [Editor] Add support for printing/saving free highlight annotations by @calixteman in #17531
- Remove the
isArrayBuffer
helper function by @Snuffleupagus in #17537 - Update packages and translations by @Snuffleupagus in #17544
- Ignore auto-formatting patches in
git blame
by @Snuffleupagus in #17546 - Remove DNS resolver workaround from the test framework by @timvandermeij in #17547
- [Editor] Unselect highlights when the user click on the text layer (bug 1869767) by @calixteman in #17543
- Use the original value of a field when propagating event (fixes #17540) by @calixteman in #17541
- [Editor] Don't add the keyboard listener on the color-picker each time the dropdown menu is shown by @calixteman in #17539
- Avoid to have focused tests in using eslint-plugin-jasmine by @calixteman in #17548
- Use shorter arrow functions where possible by @Snuffleupagus in #17550
- Add more
async
code when loading fonts in thePartialEvaluator
by @Snuffleupagus in #17553 - Don't ignore
test.mjs
child process exit codes in the Gulpfile by @timvandermeij in #17555 - Ensure that
EvaluatorPreprocessor.opMap
has a null-prototype (issue 17554) by @Snuffleupagus in #17556 - Print correctly documents containing chars with an unicode greater than 0xFFFF (bug 1669097) by @calixteman in #17558
- Add more
async
code in thePartialEvaluator
by @Snuffleupagus in #17562 - Replace the webpack+acorn transform with a Babel plugin by @nicolo-ribaudo in #17563
- [Editor] Update the parameters in the UI of the last selected editor when undoing/redoing by @calixteman in #17564
- [Editor] Add the possibility to change the thickness of a free highlight (bug 1876096) by @calixteman in #17568
- Fix unreferenced CSS variables (PR 17533 follow-up) by @Snuffleupagus in #17578
- Reduce memory use and improve perfs when computing the bounding box of a bezier curve (bug 1875547) by @calixteman in #17574
- [Editor] Change the icon to add a FreeText annotation (bug 1876564) by @calixteman in #17580
- Fix the textLayer-opacity when using the FontInspector (PR 17533 follow-up) by @Snuffleupagus in #17587
- [Editor] Change the cursors for highlighting (bug 1876588) by @calixteman in #17581
- [Editor] Add a tooltip to the slider to set the thickness of free highlights by @calixteman in #17582
- Re-factor
DefaultExternalServices
into a regular class, without static methods by @Snuffleupagus in #17588 - Update dependencies/translations to the most recent versions by @timvandermeij in #17590
- Re-enable the
should compress and save text
unit-test (issue 17399) by @Snuffleupagus in #17591 - [GENERIC viewer] Generate the
fileInput
DOM-element dynamically by @Snuffleupagus in #17592 - Move the
debuggerSrc
-parameter into theAppOptions
by @Snuffleupagus in #17593 - Fix transform of unary expression in Babel plugin by @nicolo-ribaudo in #17596
- [Editor] Update highlight cursors by @calixteman in #17598
- [Editor] Remove the outline which is inside the free highlight shape by @calixteman in #17586
- [Editor] Fix the position of the free highlight toolbar by @calixteman in #17602
- Ensure that
GenericL10n
works if the locale files cannot be loaded by @Snuffleupagus in #17603 - Initialize the
ExternalServices
-instance lazily in the viewer (PR 17588 follow-up) by @Snuffleupagus in #17604 - Change file permissions for newly added cursors by @calixteman in #17605
- Make downloadManager optional in AnnotationLayerParameters by @wojtekmaj in #17608
- Point the development mode fallback locale-path to the
l10n
-folder (issue 17609, PR 17603 follow-up) by @Snuffleupagus in #17610 - Use a limit, in more places, when splitting strings by @Snuffleupagus in #17619
- Simplify the signature of the
PDFDataTransportStream
constructor by @Snuffleupagus in #17620 - Implement caret browsing mode (bug 807730) by @calixteman in #17611
- [Editor] Set the right color to s...
v4.0.379
This release mainly contains improvements and bugfixes for the annotation editor functionality.
Changes since v4.0.269
- Bump the stable version in
pdfjs.config
by @timvandermeij in #17339 - Don't throw when there isn't enough data to get block info in flate stream by @calixteman in #17340
- [Editor] Avoid to add a new ink editor when we aren't editing anymore by @calixteman in #17344
- [Editor] Add a new editor to highlight some text in a pdf (bug 1866119) by @calixteman in #17317
- [Editor] Move the alt text button in the editor toolbar by @calixteman in #17329
- [Firefox] Remove the
FirefoxCom.requestSync
method by @Snuffleupagus in #17338 - [Editor] Fix subtype for telemetry data (follow-up of #17329) by @calixteman in #17351
- [Editor] Fix the colors in HCM when hovering a button in the editor toolbar by @calixteman in #17352
- Use "count" and not "clickCount" when calling page.mouse.click() by @whimboo in #17358
- Remove the "transitionend" event listener from the default viewer (issue 17347) by @Snuffleupagus in #17360
- [Firefox] Restore opening of PDF attachments (issue 17353, bug 1867764) by @Snuffleupagus in #17363
- [Editor] Disable mouse events when leaving the highlight mode by @calixteman in #17364
- fuzz: initial integration by @manunio in #17337
- Modernize the
calculateMD5
andverifyManifestFiles
test helper functions by @timvandermeij in #17367 - [Editor] Make sure that all layers are disabled when an editing session is done by @calixteman in #17370
- [Editor] Always give the focus to the ink editor when starting drawing (bug 1867588) by @calixteman in #17375
- [Editor] Avoid conflicts between new persistent refs and the ones created when saving (bug 1865341) by @calixteman in #17374
- Remove the unused
--editor-toolbar-active-bg-color
CSS variable (PR 17352 follow-up) by @Snuffleupagus in #17377 - [Editor] Don't remove elements from the draw layer after it has been destroyed by @calixteman in #17380
- [Editor] Highlight must keep selected after the document has been scrolled by @calixteman in #17381
- Set text field value as a string when it's for a date or a time (bug 1868503) by @calixteman in #17385
- [Editor] Add a color picker with predefined colors for highlighting text (bug 1866434) by @calixteman in #17359
- Remove focus from the toggleButton when closing the sidebar with a mouse (issue 17361) by @Snuffleupagus in #17386
- [Editor] Avoid to have a color picker for highlighting twice in the main toolbar by @calixteman in #17388
- Use page.evaluateHandle when we want to await on document promises in integration tests by @calixteman in #17387
- Update Puppeteer to version 21.6.0 and force "CDP" protocol by @whimboo in #17393
- Switch Puppeteer tests from CDP to WebDriver BiDi by @whimboo in #17172
- Limit the amount of console "spam" during fuzz tests (PR 17337 follow-up) by @Snuffleupagus in #17372
- Collect a few non-MOZCENTRAL
AppOptions
default values together by @Snuffleupagus in #17391 - Support Annotations with corrupt /BS-entries by @Snuffleupagus in #17395
- Re-factor how the
sandboxBundleSrc
option is passed toPDFScriptingManager
by @Snuffleupagus in #17397 - Don't run beforeunload callback when closing page in integration tests by @calixteman in #17398
- Set a print listener as soon as possible in the autoprint integration test by @calixteman in #17400
- Bump actions/setup-python from 4 to 5 by @dependabot in #17411
- Bump actions/deploy-pages from 2 to 3 by @dependabot in #17412
- Adds missing button closing tag by @emielmolenaar in #17415
- [Editor] Add some missing strings to localize for highlighting by @calixteman in #17414
- Modernize the code in the
test/downloadutils.mjs
file by @timvandermeij in #17431 - Center radio button checkmark by @jdanyow in #17429
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #17435
- Bump github/codeql-action from 2 to 3 by @dependabot in #17434
- Revert "Bump actions/upload-artifact from 3 to 4" by @Snuffleupagus in #17436
- Prevent errors in
AnnotationEditorUIManager.destroy
if thealtTextManager
is undefined by @pulsejet in #17445 - Toggle the visibility of the
outlineOptionsContainer
, in the sidebar, using only CSS by @Snuffleupagus in #17441 - Attempt to further reduce re-parsing for globally cached images (PR 11912, 16108 follow-up) by @Snuffleupagus in #17428
- Update packages and translations by @Snuffleupagus in #17456
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #17460
- Bump actions/deploy-pages from 3 to 4 by @dependabot in #17461
- Remove the internal "toolbarreset"/"secondarytoolbarreset" events and slightly re-factor the code by @Snuffleupagus in #17464
v4.0.269
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.
Changes since v4.0.189
- Bump the stable version in
pdfjs.config
by @timvandermeij in #17226 - Don't try to collect a nonexistent field because of an invalid ref by @calixteman in #17233
- Ensure that
fieldObjects
and#collectFieldObjects
handles References correctly by @Snuffleupagus in #17242 - Don't avoid to execute the Blur callback when blurring a text field (bug 1863910) by @calixteman in #17247
- Remove the "Open file"-button from the main toolbar by @Snuffleupagus in #17244
- [Editor] Add a toolbar to selected editors with a button to delete it (bug 1863763) by @calixteman in #17243
- Fix the maxp table version in font to make it visible on Windows by @calixteman in #17253
- Tweak the background-color of the
editorParamsToolbar
s by @Snuffleupagus in #17256 - Update dependencies and translations to the most recent versions by @timvandermeij in #17260
- Set a type for the
Blob
used increateCDNWrapper
(issue 17259) by @Snuffleupagus in #17265 - Rename *.d.ts to *.d.mts by @tamuratak in #17252
- Ensure that the viewer waits for the library to complete loading (issue 17228) by @Snuffleupagus in #17255
- [Editor] Avoid to click on the delete button in the freetext integration tests by @calixteman in #17264
- Move linting to a separate GitHub Actions workflow by @Snuffleupagus in #17267
- Move
gulp typestest
to a separate GitHub Actions workflow by @Snuffleupagus in #17266 - Clean-up the CI workflow a bit by @Snuffleupagus in #17268
- [GENERIC viewer] Fallback to the short-format of the language code (issue 17269) by @Snuffleupagus in #17270
- Fix typo in the
--hcm-highlight-filter
CSS variable name (issue 17254) by @Snuffleupagus in #17272 - Get the field name from its parent when it doesn't have one when collecting fields (bug 1864136) by @calixteman in #17271
- Introduce a GitHub Actions workflow for running the font tests by @timvandermeij in #17263
- Re-factor the
L10n
-implementations to use lowercase language-codes internally by @Snuffleupagus in #17273 - Re-factor how the
GenericL10n
class fetches localization-data by @Snuffleupagus in #17277 - [Editor] Add a tooltip to the delete button by @calixteman in #17281
- Restore the option to set light/dark mode for chromium and generic builds by @calixteman in #17293
- [Editor] Make the alt-text button large enough to display correctly whatever string by @calixteman in #17300
- Throw a
JpegError
when a JPEG image has no frame data (issue 17302) by @Snuffleupagus in #17303 - [Editor] Add a way to extract the outlines of a union of rectangles by @calixteman in #17291
- Re-factor the loading-icons used in the viewer toolbars by @Snuffleupagus in #17287
- [Editor] Add support for saving/printing a newly added Highlight annotation (bug 1865708) by @calixteman in #17304
- Move the editor-buttons in the main toolbar by @Snuffleupagus in #17294
- Make sure that only one radio button is checked in its group (bug 1864136) by @calixteman in #17318
- [Editor] Only focus the canvas for mouse events when drawing in the canvas by @calixteman in #17330
- Use the
fetchData
helper function in more cases by @Snuffleupagus in #17328 - Fix examples/webpack/README.md. by @tamuratak in #17320
- Remove language codes from text strings. by @calixteman in #17331
- Update dependencies and translations to the most recent versions by @timvandermeij in #17334
v4.0.189
PDF.js 4.0 is a major release that contains a number of API changes, features and bugfixes. The following changes are highlighted:
- Conversion to JavaScript modules for the builds
- Conversion to Fluent for localization
- Optimizations for CPU and memory usage
- Improvements and bugfixes for the annotation editor and annotation rendering
- Removal of the deprecated SVG back-end
- Removal of other deprecated functionality and options
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.
Changes since v3.11.174
- Bump the stable version in
pdfjs.config
by @timvandermeij in #17024 - [Editor] Slightly postpone the move in the DOM in order to not block the UI (bug 1854991) by @calixteman in #17031
- [Editor] Remove the class fooEditing from the layer when destroying it by @calixteman in #17030
- [Editor] Don't try to add data to the struct tree when there is no accessibilityData (bug 1855157) by @calixteman in #17034
- [Editor] Disabled the alt-text button when the editor is being resized by @calixteman in #17039
- [Editor] Remove unused CSS rules for the altText "Save"-button (PR 17015 follow-up) by @Snuffleupagus in #17040
- [Editor] Clear the different timeouts when destroying by @calixteman in #17041
- StructParents entry isn't required on pages with no tagged contents (bug 1855641) by @calixteman in #17043
- [Editor] Disable pointer events in the parent layer while an editor is resized by @calixteman in #17045
- Remove comments from the built CSS files by @Snuffleupagus in #17035
- Make downloadManager optional in JSDoc types by @ayushmourya in #17038
- Update Puppeteer to the latest version by @Snuffleupagus in #17027
- Convert
layerProperties
to an Object (PR 15811 follow-up) by @Snuffleupagus in #17026 - [Editor] Remove almost all the waitForTimeout from the freetext integration tests by @calixteman in #17036
- Remove the timeouts from the inkEditor integration tests by @calixteman in #17048
- Remove the timeouts from the stampEditor integration tests by @calixteman in #17049
- [Editor] Make a deleted (when it was invisible) editor undoable by @calixteman in #17050
- Use a standard
export
statement in theweb/pdfjs.js
file by @Snuffleupagus in #17052 - Add alt-text svg images to the dist (issue #17044) by @calixteman in #17053
- Fix new intermittent failures with ink and stamp tests by @calixteman in #17051
- [Editor] Don't show the alt-text button when the alt-text dialog is visible by @calixteman in #17032
- [Editor] Use the alt text to descibe the canvas used to display the image by @calixteman in #17058
- Remove timeouts from the copy_paste integration test by @calixteman in #17059
- [api-major] Remove various deprecated functionality and options by @Snuffleupagus in #16774
- [api-major] Remove the SVG back-end (PR 15173 follow-up) by @Snuffleupagus in #16699
- Ensure that readonly TextWidget-annotations are rendered when forms are disabled (issue 17064) by @Snuffleupagus in #17066
- Compute correctly the bounding box of a transformed rectangle (fixes #17065) by @calixteman in #17067
- Bump library version to
4.0
by @Snuffleupagus in #17063 - Add support for "GoToE" actions with destinations (issue 17056) by @Snuffleupagus in #17060
- [Editor] Support resizing editors with the keyboard (bug 1854340) by @calixteman in #17062
- [Editor] Add role=spinbutton to resizers when they're used with the keyboard by @calixteman in #17072
- Update the noHTML flag to take into account the hasOwnCanvas one (fixes #17069) by @calixteman in #17070
- Add a HTML containter for locked FreeText annotations in order to be able to display a popup (follow-up of #17070) by @calixteman in #17075
- Enable some Stylelint color-related rules to slightly reduce file sizes by @Snuffleupagus in #17076
- Make the toolbar buttons usable with keyboard when Page Fit is used by @calixteman in #17074
- [Editor] Add the possibility to create a new editor in using the keyboard (bug 1853424) by @calixteman in #16761
- Remove unnecessary alpha-value from CSS
rgb
colors by @Snuffleupagus in #17077 - [api-major] Output JavaScript modules in the builds (issue 10317) by @Snuffleupagus in #17055
- Output
pdf.scripting.js
as a JavaScript module (PR 17055 follow-up) by @Snuffleupagus in #17080 - [api-minor] Stop polyfilling
structuredClone
in legacy builds by @Snuffleupagus in #17086 - Activate the selector check for the
autoprint
integration test as soon as possible by @timvandermeij in #17090 - Bump postcss from 8.4.30 to 8.4.31 by @dependabot in #17093
- Rename
web/debugger.js
since it's actually a JavaScript module (PR 17055 follow-up) by @Snuffleupagus in #17094 - Fix the protocol timeout configuration for Puppeteer by @timvandermeij in #17095
- [Debugger] Add some info about substitution font by @calixteman in #17073
- Update the "Interactive examples" links (PR 17055 follow-up) by @Snuffleupagus in #17105
- Don't store page-level data, in the API, after cleanup has run (bug 1854145) by @Snuffleupagus in #17106
- Remove useless chrome.properties file (bug 1858700) by @calixteman in #17113
- Convert the
integration
test-files to JavaScript modules by @Snuffleupagus in #17112 - Output JavaScript modules for the
LIB
build-target (PR 17055 follow-up) by @Snuffleupagus in #17114 - Tweak
PDFWorkerUtil.createCDNWrapper
to account for JavaScript modules (PR 17055 follow-up) by @Snuffleupagus in #17098 - Use native
import maps
in development mode by @Snuffleupagus in #14743 - Enable the
import/no-commonjs
ESLint plugin rule by @Snuffleupagus in #17117 - Remove obsolete
src/shared/{cffStandardStrings,fonts_utils}.js
files by @timvandermeij in #17120 - Update translations/dependencies to the most recent versions and fix dependency vulnerabilities by @timvandermeij in #17119
- Remove Escape key press from the
autoprint
integration test, and tweak the protocol timeout configuration for Puppeteer by @timvandermeij in #17122 - Update the ESLint
globals
list (PR 17055 follow-up) by @Snuffleupagus in #17123 - Fix intermittent problems on Windows in the XFA search integration test by @timvandermeij in #17125
- Reduce unnecessary type conversion in
writeStream
by @Snuffleupagus in #17134 - Re-factor the blob-URL caching in
DownloadManager.openOrDownloadData
by @Snuffleupagus in #17131 - [api-minor] Move to Fluent for the localization (bug 1858715) by @calixteman in #17115
- Use a CSS-only solution to set the
dropdownToolbarButton
width (issue 17137) by @Snuffleupagus in #17138 - Only bundle
NullL10n
in GENERIC builds (bug 1859818) by @Snuffleupagus in #17135 - Try to make the
Preferences
/AppOptions
initialization slightly more efficient by @Snuffleupagus in #17130 - Use object destructuring, rather than the
merge
helper, in the gulpfile by @Snuffleupagus in #17133 - [L10n] Don't try to connect the root element when it has already been done by @calixteman in #17142
- Initialize the
L10n
-instance as soon as possible in Firefox (PR 17115 follow-up) by @Snuffleupagus in #17140 - Fix size of maskCanvas to draw image masks correctly by @JT-External in #17148
- Use a
ResizeObserver
to update the layout ofPDFFindBar
by @snuff...
v3.11.174
This release primarily features accessibility improvements for the annotation editor and fixes for the type definitions.
Changes since v3.10.111
- Bump versions in
pdfjs.config
by @timvandermeij in #16876 - Add tagged annotations in the structure tree (bug 1850797) by @calixteman in #16886
- Fix the id used in aria-controls used to make a relationship between the popup and its parent by @calixteman in #16889
- Fix JSDoc types by @stof in #16888
- Ignore null-chars when using structTree-data in the viewer by @Snuffleupagus in #16891
- Stop using
removeNullCharacters
in theaddLinkAttributes
helper function by @Snuffleupagus in #16892 - [Type-definitions] Fix type generator to support import maps by @stof in #16890
- Update packages and translations by @Snuffleupagus in #16895
- A couple of small
InternalRenderTask
changes by @Snuffleupagus in #16881 - Drop redundant styles from .grab-to-pan-grab:active by @Rob--W in #16896
- Make annotations focusable (bug 1851489) by @calixteman in #16898
- Unconditionally render non-form annotations in the annotation layer (bug 1851498) by @calixteman in #16899
- Support downloading FileAttachment annotations with the keyboard by @Snuffleupagus in #16902
- Only call the focus/blur callbacks when it's necessary (bug 1851517) by @calixteman in #16905
- Bump actions/checkout from 3 to 4 by @dependabot in #16897
- [Editor] Avoid to use parent of editors in destroyed pages by @calixteman in #16911
- Construct the correct field name and strip out classes when searching by @calixteman in #16915
- [Editor] Add the parent tag id (if any) to the serialized editors (bug 1845087) by @calixteman in #16916
- Simplify writeObject function by @calixteman in #16921
- Slightly reduce asynchronicity when parsing Annotations by @Snuffleupagus in #16920
- Update packages and translations by @timvandermeij in #16925
- Enable unit test "creates pdf doc from non-existent URL" by @timvandermeij in #16932
- [Editor] Only get back the focus when it has been lost after an editor has been moved in the DOM by @calixteman in #16940
- Ensure that the entire PDF document is loaded before we begin saving it by @Snuffleupagus in #16941
- [Editor] Move an editor in the DOM just after having moved it on the screen by @calixteman in #16944
- [Editor] Change the style of the bounding box and the resizers (bug 1852897) by @calixteman in #16943
- [Editor] Change the colors of the outline and the resizers for selected editors in HCM by @calixteman in #16950
- Make it possible to clear the cache, used by the
getB
function insrc/core/pattern.js
by @Snuffleupagus in #16951 - Remove the remaining closures in the
src/core/colorspace.js
file by @Snuffleupagus in #16954 - Simplify the
EvaluatorPreprocessor.opMap
getter a little bit by @Snuffleupagus in #16956 - Use
await
even more in the "SaveDocument" worker-thread handler by @Snuffleupagus in #16957 - Update Puppeteer to version 21.2.1 by @timvandermeij in #16958
- Remove the closure from the
CipherTransformFactory
class by @Snuffleupagus in #16959 - Remove (some) closures from
web/debugger.js
by @Snuffleupagus in #16961 - Fix integration test "Interaction in bug1844576.pdf must check that a field has the correct formatted value" by @timvandermeij in #16962
- Fix integration test "FreeText Editor Move several FreeTexts must move several annotations" by @timvandermeij in #16964
- [Editor] Add the ability to create/update the structure tree when saving a pdf containing newly added annotations (bug 1845087) by @calixteman in #16938
- [Editor] Add a button to trigger a dialog for adding an alt text (bug 1844952) by @calixteman in #16955
- [Editor] Avoid to have some transparency in the icon used in the 'Alt text' button by @calixteman in #16972
- Fix a CSS linter issue in removing a useless comma by @calixteman in #16974
- [Editor] Use the same height as in the svg for icons for the alt-text button by @calixteman in #16975
- [Editor] Add a dialog box in order to get alt-text data (bug 1844952) by @calixteman in #16952
- [Editor] Make the border of the resizers slightly rounded by @calixteman in #16980
- [Editor] Update alt text dialog description by @calixteman in #16979
- Ignore optional content with missing /Type-entries by @Snuffleupagus in #16981
- [Editor] Allow the user to add and save an alt-text for images (bug 1844952) by @calixteman in #16977
- [Editor] Remove copy/paste listener when alt text dialog is displayed by @calixteman in #16982
- [Editor] Add a tooltip showing the alt text when hovering the alt-text button (bug 1844952) by @calixteman in #16983
- Don't try to close the
altText
dialog if it's not open (PR 16977 follow-up) by @Snuffleupagus in #16984 - [Editor] Add more telemetry for the 'add image' feature (bug 1853960) by @calixteman in #16987
- [Editor] Change some strings in the alt-text dialog by @calixteman in #16986
- [Editor] Change the colors for the disabled Save button in alt text dialoag in HCM by @calixteman in #16985
- Use the new "reporttelemetry" event in more viewer components by @Snuffleupagus in #16989
- [Editor] Add an aria-label to the alt-text button depending on its state by @calixteman in #16990
- [Editor] Tweak few values after review from UX by @calixteman in #16988
- Ensure that all "alt_text_*" save-telemetry values are boolean (PR 16987 follow-up) by @Snuffleupagus in #16991
- Enable the Stylelint
declaration-block-no-duplicate-properties
rule (issue 16995) by @Snuffleupagus in #16996 - Make one of the m-c linters happy by @calixteman in #16998
- [GeckoView] Avoid bundling the
AltTextManager
class, since it's unused by @Snuffleupagus in #16993 - [GeckoView] Exclude
annotation_editor_layer_builder.css
in the build (issue 16994) by @Snuffleupagus in #16999 - Restore the
collectFields
parameter in the Annotation code (issue 17000) by @Snuffleupagus in #17003 - Prevent wheel/touch zooming in the viewer when a dialog is open by @Snuffleupagus in #17004
- [Editor] Avoid to darken the current editor when opening the alt-text dialog by @calixteman in #17002
- [Editor] Make the altText dialog labels part of telemetry (PR 16987 follow-up) by @Snuffleupagus in #17009
- [Editor] Darken the toolbar when the alt-text dialog is opened by @calixteman in #17010
- Don't bother trying to unregister the "reporttelemetry" event listener by @Snuffleupagus in #17014
- [Editor] Tweak the save flow in the alt-text dialog by @calixteman in #17005
- [Editor] Let the Save button always enabled in the alt-text dialog by @calixteman in #17015
- Don't reset
this.#currentEditor
when destroying the dialog by @Snuffleupagus in #17011 - [Editor] Report telemetry when closing the altText dialog with
Esc
(PR 16987 follow-up) by @Snuffleupagus in #17012 - [Editor] Disable context menu on alt-text button and in the associated dialog by @calixteman in #17016
- Fix integration test "FreeText Editor FreeText (edit existing in double clicking on it) must move an annotation" by @timvandermeij in #16967
- Fix integration test "Interaction in issue15053.pdf must check that a button and text field with a border are hidden" by @timvandermeij in https://github.com/mozilla/pd...
v3.10.111
This release primarily features improvements and bugfixes for the annotation editor.
Changes since v3.9.179
- Bump versions in
pdfjs.config
by @timvandermeij in #16769 - Add the color changes in the annotation storage by @calixteman in #16767
- Fix typo in the
baseVersion
commit hash (PR 16769 follow-up) by @Snuffleupagus in #16770 - Make sure WillPrint ran before starting printing by @calixteman in #16766
- [GeckoView] Add missing CSS variables for the dialog functionality by @Snuffleupagus in #16771
- [Editor] Limit image types to the ones supported by the browser (bug 1846230) by @calixteman in #16773
- [api-minor] Don't print hidden annotations (bug 1815196) by @calixteman in #16029
- [GeckoView] Allow to query pdf.js to know if we can avoid to print a pdf (bug 1846296) by @calixteman in #16776
- [api-minor] Deprecate the
PDFDocumentProxy.getJavaScript
method by @Snuffleupagus in #16779 - [Editor] Let SVG images be resized horizontally/vertically without keeping the aspect ratio (bug 1846727) by @calixteman in #16780
- [Editor] Use a getter and not a function for the _checkIfSVGFitsInCanvas (bug 1846727) by @calixteman in #16784
- [Editor] Stop the resize session when the window is blurred by @calixteman in #16786
- [Editor] Refactor dragging and dropping an editor (bug 1802895, bug 1844618) by @calixteman in #16781
- Update packages and translations by @Snuffleupagus in #16795
- Attempt to expose e.g.
pdfjsLib
globally regardless of how the library is imported (issue 16778) by @Snuffleupagus in #16790 - Use the
round
CSS function in thesetLayerDimensions
helper function by @Snuffleupagus in #16794 - [Editor] Change the resize cursors to bidirectional variants by @Snuffleupagus in #16799
- [Editor] Fix the dimensions of the annotation editor layer (follow-up of #16794) by @calixteman in #16798
- [Annotation] Strip out the array index in the path only when the path is from a terminal node (bug 1847733) by @calixteman in #16807
- Take fill-alpha into account with default icons for FileAttachment annotations (issue 16800) by @Snuffleupagus in #16804
- [Editor] Move the stamp button on the right of the pen one (bug 1847707) by @calixteman in #16802
- [Editor] Fix the resizing of an editor when it's rotated (bug 1847268) by @calixteman in #16793
- [Editor] Avoid to add a new line when hitting enter with a selected freetext editor by @calixteman in #16808
- [Editor] Move an the editor div in the DOM once a translation with the keyboard is done by @calixteman in #16809
- [Editor] Avoid to unselect some editors when the main window is focused by @calixteman in #16812
- [Editor] Move the parameter elements for FreeText and Ink annotations at the right place (follow-up of #16802) by @calixteman in #16813
- [Editor] Avoid to add a cancelled added image in the undo/redo stack by @calixteman in #16818
- Introduce even more optional chaining in the code-base by @Snuffleupagus in #16815
- [Editor] Avoid to have slightly truncated images because of non-integer canvas dimensions by @calixteman in #16820
- [Editor] Add the possibility to move all the selected editors with the mouse (bug 1847894) by @calixteman in #16811
- [Editor] Don't forget to encrypt image streams (see issue #16821) by @calixteman in #16822
- Fallback to check all pages when getting the pageIndex of FieldObjects by @Snuffleupagus in #16823
- [Editor] Avoid to unselect when a new page is rendered by @calixteman in #16824
- [Editor] Avoid showing the context menu or resizing when a resizer is right clicked by @calixteman in #16825
- Re-factor
PDFViewerApplication._initializeAutoPrint
slightly (PR 16779 follow-up) by @Snuffleupagus in #16810 - [Editor] Add a button to explicitly add an image (bug 1848108) by @calixteman in #16819
- [Editor] Remove the stamp editor displayed when the image was loading (bug 1848313) by @calixteman in #16826
- [Editor] Add the possibility to paste an image from the clipboard (bug 1848317) by @calixteman in #16828
- Remove the
src/core/
Babel excludes, since they no longer seem necessary by @Snuffleupagus in #16829 - Remove the "no-babel-preset" comment used with the LIB build-target (PR 16829 follow-up) by @Snuffleupagus in #16831
- Avoid using the global
workerPort
when destruction has started, but not yet finished (issue 16777) by @Snuffleupagus in #16830 - Improve the "write a new annotation, save the pdf and check that the text content is correct" unit-test (PR 16559 follow-up) by @Snuffleupagus in #16835
- Add a helper method to reduce duplication in
StampEditor.#getBitmap
by @Snuffleupagus in #16840 - Update the
StampEditor.isEmpty
method to handle File (PR 16828 follow-up) by @Snuffleupagus in #16844 - Update packages and translations by @Snuffleupagus in #16850
- Add a unit-test for the "correct" way of using the global
workerPort
in parallel (PR 16830 follow-up) by @Snuffleupagus in #16834 - Initialize the
PDFWorker.#workerPorts
WeakMap lazily by @Snuffleupagus in #16852 - Add the
.mjs
file-extension to the EditorConfig by @Snuffleupagus in #16860 - Add the "aria-controls" attribute to the StampEditor toolbar-button by @Snuffleupagus in #16858
- Revert fix for bug 1838855 (bug 1849876) by @calixteman in #16862
- Don't reset all fields when the resetForm argument is an array by @calixteman in #16864
- Exclude
lineEndings
, in Annotation-data, in MOZCENTRAL builds (PR 14899 follow-up) by @Snuffleupagus in #16856 - Introduce more optional chaining in the code-base by @Snuffleupagus in #16875
v3.9.179
This release features improvements in the areas of annotation editing (including a new stamp editor), accessibility, form rendering/saving, text selection/copying and other bugfixes.
Changes since v3.8.162
- Bump versions in
pdfjs.config
by @timvandermeij in #16629 - Tweak the README slightly by @Snuffleupagus in #16635
- [Editor] Fix dimensions of a rotated FreeText after a dimensions change by @calixteman in #16637
- [Editor] When saving/printing a FreeText, use the identity matrix for the AP and set the cm when rendering it by @calixteman in #16640
- [Editor] Move the 'keep aspect ratio' stuff to the AnnotationEditor level by @calixteman in #16641
- [Editor] Use css aspect-ratio property to keep the aspect ratio during resize by @calixteman in #16645
- Fix typos when handling CMYK colors in
src/core/default_appearance.js
by @Snuffleupagus in #16646 - [Editor] Add a basic stamp editor (bug 1790255) by @calixteman in #16585
- [Editor] Add l10n-strings for the Stamp-editor (PR 16585 follow-up) by @Snuffleupagus in #16649
- Improve
parseAppearanceStream
to handle more "complex" ColorSpaces by @Snuffleupagus in #16648 - [Editor] Avoid to throw when deleting some invisible editors by @calixteman in #16652
- [Editor] Support svg images in the stamp annotation by @calixteman in #16650
- Don't try to hide an already invisible PopupAnnotation (issue 16660) by @Snuffleupagus in #16661
- [Editor] Edit an existing FreeText annotation in double-clicking on it (bug 1787298) by @calixteman in #16659
- Add unit-tests to check that more PDF.js APIs expose the expected functionality by @Snuffleupagus in #16658
- [CRX] Drop code supporting ancient Chrome versions by @Rob--W in #16631
- Correct recognition of fragments at document load by @Rob--W in #16630
- [ESM] Convert the
external/importL10n
-folder to use standard modules by @Snuffleupagus in #16663 - [ESM] Convert
parseMinified
to useimport()
syntax by @Snuffleupagus in #16664 - [ESM] Convert most of
test
-folder to use standard modules by @Snuffleupagus in #16665 - [ESM] Convert the "wintersmith"-task to use
import()
syntax by @Snuffleupagus in #16666 - [ESM] Convert the "cmaps"-task to use
import()
syntax by @Snuffleupagus in #16667 - [ESM] Convert the "default preferences"-handling to use
import()
syntax by @Snuffleupagus in #16671 - [Editor] Cheat the stamp editor icon to make a linter in m-c happy by @calixteman in #16672
- [ESM] Convert the
gulpfile
to use standard modules by @Snuffleupagus in #16668 - [ESM] Convert the
external/builder/
-folder to use standard modules by @Snuffleupagus in #16669 - [Editor] Try to make the position of an edited FreeText the more accurated as possible by @calixteman in #16642
- Re-enable editing, if necessary, when exiting PresentationMode (PR 16659 follow-up) by @Snuffleupagus in #16675
- Tweak the
writeStream
implementation slightly by @Snuffleupagus in #16678 - Access the
isOffscreenCanvasSupported
option once inPDFViewerApplication._initializeViewerComponents
by @Snuffleupagus in #16683 - [Editor] Always use the data url when loading a SVG in order to avoid CSP issue (bug 1843255) by @calixteman in #16686
- [Editor] Resize the image when the page is zoomed by @calixteman in #16690
- Update packages and translations by @Snuffleupagus in #16693
- Ensure that a test-suite that runs no tests is treated as a failure by @Snuffleupagus in #16695
- Enable more ESLint
unicorn
plugin rules by @Snuffleupagus in #16697 - Re-factor the
PDFScriptingManager
-class for the viewer-components by @Snuffleupagus in #16687 - [GeckoView] Fix l10n of the download toolbar-button (PR 16340 follow-up) by @Snuffleupagus in #16701
- [Editor] Avoid to have some part of an editor outside its page (bug 1843303) by @calixteman in #16689
- [Editor] Use 2 decimals for editor positions and dimensions by @calixteman in #16702
- [api-minor] Let Babel handle the necessary
core-js
polyfills automatically by @Snuffleupagus in #16703 - Remove most build-time
require
-calls from thesrc/display/
-folder by @Snuffleupagus in #16698 - [Editor] Don't forget to generate non-missing images when printing (bug 1844036) by @calixteman in #16706
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #16707
- [Editor] Bind redo action on meta+shift+z on mac (bug 1844293) by @calixteman in #16709
- Draw correctly background images in ref tests by @calixteman in #16713
- [Annotation] Use the clip-path property when an annotation has some quad points by @calixteman in #16492
- Don't reset temporary XRef-entries during saving (PR 16392 follow-up) by @Snuffleupagus in #16717
- [Editor] Allow to delete an editor in using the Delete key (aka fn+backspace) (bug 1844625) by @calixteman in #16719
- Text annotations must use their own canvas when their appearance is generated (bug 1844576) by @calixteman in #16720
- Don't get the text content for an annotation when /NeedAppearances is true (bug 1844583) by @calixteman in #16721
- Don't uselessly change the filter when drawing (bug 1508765) by @calixteman in #16722
- XFA - Set storage values to select and option elements by @TaTo30 in #16714
- Enable the
no-lonely-if
ESLint rule by @Snuffleupagus in #16715 - Enable the ESLint
no-var rule
in theextensions/firefox/
folder by @Snuffleupagus in #16724 - Update Stylelint to the latest version by @Snuffleupagus in #16725
- Update packages and translations by @Snuffleupagus in #16728
- Remove the
useOnlyCssZoom
preference by @Snuffleupagus in #16729 - Remove the
vinyl-fs
dependency by @timvandermeij in #16730 - [GeckoView] Fix string for download button by @calixteman in #16726
- Don't replace Acroform dictionary if nothing has changed when saving (bug 1844572) by @calixteman in #16718
- [api-minor] Attempt to prevent Node.js-specific polyfill errors from completely breaking the library by @Snuffleupagus in #16733
- [Editor] Avoid spurious text selection when double clicking to add a FreeText by @calixteman in #16736
- Fix copying of the reduced Planck constant by @Snuffleupagus in #16735
- [Editor] Add some resizers all around an editor (bug 1843302) by @calixteman in #16732
- [Editor] Use inset instead of top/left in css by @calixteman in #16737
- Re-factor how the
debugger
accesses API-functionality by @Snuffleupagus in #16738 - [Editor] Set keyboard events on window instead of the main container by @calixteman in #16740
- [Editor] Avoid to trigger an editor creation when pinching on a touchscreen by @calixteman in #16741
- Improve rendering of buttons in the toolbar in HCM (bug 1845515) by @calixteman in #16748
- [Editor] Make editors movable in using the keyboard (bug 1845088) by @calixteman in #16746
- [Editor] Use the same keyboard shortcut as in Preview to move an editor on mac by @calixteman in #16749
- Enable the
unicorn/prefer-ternary
ESLint plugin rule by @Snuffleupagus in #16753 - [Editor] Add the possibility to move an empty freetext editor with the keyboard (bug 1845088) by @calixteman in #16750
- [Editor] Reduce a bit of duplication on
_keyboardManager
initialization by @Snuffleupagus in https://github.com/mozilla/pdf.js/p...