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.
Changes since v2.16.105
- Bump versions in
pdfjs.config
by @timvandermeij in #15357 - [api-major] Remove the
enhanceTextSelection
functionality (PR 15145 follow-up) by @Snuffleupagus in #15259 - [api-major] Remove (most of) the remaining
deprecated
code by @Snuffleupagus in #15286 - [api-minor] Support Named-actions in the outline (issue 15367) by @Snuffleupagus in #15368
- [Editor] Avoid to update default params too early by @calixteman in #15369
- [Editor] Use the global clipboard for the copy/paste/cut operations by @calixteman in #15373
- [Editor] Remove some useless code (#15373 follow-up) by @calixteman in #15381
- [Editor] Update some strings (bug 1787299) by @calixteman in #15378
- Update editing icons (bug 1785248) by @calixteman in #15385
- [Editor] Change the cursor when we switch to FreeText mode (bug 1787297) by @calixteman in #15386
- Remove the
browserify
example by @Snuffleupagus in #15388 - Properly ignore PopupAnnotations with custom
trigger
-elements by @Snuffleupagus in #15360 - Remove Bower support in
pdfjs-dist
by @Snuffleupagus in #15390 - [api-minor] Add basic support for the
SetOCGState
action (issue 15372) by @Snuffleupagus in #15377 - Update packages and translations by @Snuffleupagus in #15394
- Don't replace cr by a white space when the last char on the line is an ideographic char by @calixteman in #15395
- Don't allow
adjustToUnicode
to extend a built-in /ToUnicode map (issue 15352) by @Snuffleupagus in #15392 - Fallback to a standard font when a Type1 font program is empty (issue 15292) by @Snuffleupagus in #15397
- Remove the "tagged" telemetry-reporting by @Snuffleupagus in #15402
- Use more optional chaining in the code-base by @Snuffleupagus in #15398
- Update some icons in the toolbar (bug 1739965) by @calixteman in #15384
- Set a display value for the secondary toolbar buttons by @calixteman in #15413
- Move 'presentation mode' and 'bookmarks' buttons in the secondary toolbar (bug 1789082) by @calixteman in #15391
- Don't listen for window resolution changes in old browsers (PR 15319 follow-up) by @Snuffleupagus in #15418
- Fix the visibility of a separator in the secondaryToolbar (PR 15391 follow-up) by @Snuffleupagus in #15421
- Send the
verbosity
when using a workerPort (issue 15419) by @Snuffleupagus in #15420 - Remove the abstract
BaseViewer
-class by @Snuffleupagus in #15414 - Add some telemetry to know how often the buttons in the secondary toolbar are used (bug 1789883) by @calixteman in #15416
- Don't try to update the cursorTool when switching to PresentationMode failed by @Snuffleupagus in #15425
- Disable the editing-indicator, in the document title, during printing (bug 1790552, PR 15351 follow-up) by @Snuffleupagus in #15431
- [api-major] Enable editing by default by @Snuffleupagus in #15339
- [api-minor] Use
new Worker()
syntax in webpack entrypoint by @srmagura in #15430 - Extend
getGlyphMapForStandardFonts
with some quote-entries (issue 15441) by @Snuffleupagus in #15442 - Extend
getSupplementalGlyphMapForCalibri
with more entries (issue 15443) by @Snuffleupagus in #15445 - Update packages and translations by @Snuffleupagus in #15454
- Remove the
enableScripting
-parameter from the component examples (PR 13816 follow-up) by @Snuffleupagus in #15446 - [api-major] Update the minimum supported browsers/environments by @Snuffleupagus in #15451
- Temporarily stop listing the official Chrome extension in the main README by @Snuffleupagus in #15452
- Some small viewer clean-up for non-GENERIC builds by @Snuffleupagus in #15432
- Don't update the Scroll/Spread-mode in the ViewHistory while PresentationMode is active (issue 15453) by @Snuffleupagus in #15455
- Improve CSS for HCM (bug 1726183) by @calixteman in #15438
- Replace some unnecessary
String.prototype.search
usage by @Snuffleupagus in #15458 - Don't use window.print in the Firefox builtin viewer (bug 1774427) by @calixteman in #15459
- Enable the
unicorn/prefer-regexp-test
ESLint plugin rule by @Snuffleupagus in #15460 - [XFA] - Avoid an exception when zooming on a XFA by @calixteman in #15462
- Use AccentColor as background for selected text in the text layer (bug 1790309) by @calixteman in #15461
- Fix commFunc typo in the SandboxSupportBase.destroy method by @nmtigor in #15473
- Fix #selectEditors typo in the AnnotationEditorUIManager.unselectAll method by @nmtigor in #15474
- [Editor] Make sure to have the annotation editor layer on top of the annotation one (bug 1791515) by @calixteman in #15468
- [XFA] Fix an hidden issue in the FormCalc lexer by @calixteman in #15476
- Access the
setTimeout
-functionRefs correctly inSandboxSupportBase.destroy
by @Snuffleupagus in #15477 - Initialize values in the path bounding box before flushing the operator list (bug 1791583) by @calixteman in #15478
- [JS] Remove duplicate
this._document
assignment in theApp
-class by @Snuffleupagus in #15483 - Restore the old fonts in the debugger (PR 15438 follow-up) by @Snuffleupagus in #15489
- Set a
border-radius
when hovering annotationLayer-inputs (PR 15438 follow-up) by @Snuffleupagus in #15491 - [JS] Try to guess what the date is when it doesn't follow the given format (issue #15490) by @calixteman in #15493
- Tweak the heuristic that handles JPEG images with a wildly incorrect SOF (Start of Frame)
scanLines
parameter (issue 15492) by @Snuffleupagus in #15494 - Revert "Don't use window.print in the Firefox builtin viewer (bug 1774427)" by @calixteman in #15495
- Replace some
Array.prototype
-usage with spread syntax by @Snuffleupagus in #15498 - Use more optional chaining in the code-base (PR 15398 follow-up) by @Snuffleupagus in #15485
- Reference supported browsers Wiki-page in more README files by @Snuffleupagus in #15499
- [api-minor] Stop exposing the
LoopbackPort
class in the API by @Snuffleupagus in #15500 - Restore the old fonts in the
errorWrapper
(PR 15438 follow-up) by @Snuffleupagus in #15501 - Use a consistent
outline
for all UI buttons (PR 15438 follow-up) by @Snuffleupagus in #15503 - Use
stopImmediatePropagation
without checking for its existence first by @Snuffleupagus in #15504 - Improve the
FontLoader
code by @Snuffleupagus in #15507 - Fix property chain orders of Operators in isDotExpression by @nmtigor in #15486
- [JS] Override the
Doc.external
-getter to avoidalert
-modals on load (issue 15509) by @Snuffleupagus in #15512 - [Editing] Disable the HandTool during editing (bug 1792422) by @Snuffleupagus in #15522
- [JS] Add the function AFExactMatch by @calixteman in #15527
- Revert "Don't listen for window resolution changes in old browsers (PR 15319 follow-up)" by @Snuffleupagus in #15515
- Add more non-standard ligatures in the
glyphlist.js
file (issue 15516) by @Snuffleupagus in #15517 - Replace the
DOMMatrix
polyfill, used with Node.js, with the one fromnode-canvas
by @Snuffleupagus in #15514 - More
FontLoader
clean-up by @Snuffleupagus in #15511 - Re-factor the
toggleButton
l10n in thePDFSidebar
class by @Snuffleupagus in #15530 - Change how
src/shared/compatibility.js
is imported by @Snuffleupagus in #15510 - Update dependencies and translations to the most recent versions by @timvandermeij in #15508
- [GENERIC viewer] Remove the
errorWrapper
UI by @Snuffleupagus in #15533 - [api-minor] Stop setting an
id
on the styleElement used with CSS font-loading by @Snuffleupagus in #15534 - Use more
for...of
loops in the code-base by @Snuffleupagus in #15536 - [api-minor] Add partial support for the "GoToE" action (issue 8844) by @Snuffleupagus in #15537
- [api-minor] Make
isOffscreenCanvasSupported
configurable via the API (issue 14952) by @Snuffleupagus in #15542 - Replace loop with
TypedArray.prototype.set
in theDecryptStream.readBlock
method by @Snuffleupagus in #15539 - Stop localizing error details in the viewer (PR 15533 follow-up) by @Snuffleupagus in #15538
- Remove the unused
Util.apply3dTransform
method by @Snuffleupagus in #15547 - Simplify the way to compute the remainder modulo 3 in PDF20Hash function by @calixteman in #15548
- [XFA] Add some padding inline in selects by @calixteman in #15549
- [api-major] Remove some deprecated constants by @Snuffleupagus in #15554
- Remove the unused
CMapCompressionType.STREAM
value by @Snuffleupagus in #15553 - Simplify the
dropdownToolbarButton
-select width computation by @Snuffleupagus in #15552 - Clean-up the data that we're sending with "GetDocRequest" by @Snuffleupagus in #15555
- Ensure that
Page.getOperatorList
handles Annotation parsing errors correctly (issue 15557, bug 1794351) by @Snuffleupagus in #15558 - Slightly re-factor the version fetching in
PDFDocument.checkHeader
by @Snuffleupagus in #15562 - [GENERIC viewer] Ensure that the we register the
editorTypes
for eachAnnotationEditorUIManager
-instance (issue 15564) by @Snuffleupagus in #15565 - [Editor] Change the caret cursor into the arrow one only when a text editor isn't empty (bug 1794717) by @calixteman in #15567
- [JS] Take into account all the required fields for some computations by @calixteman in #15570
- [api-minor] Stop sending "UnsupportedFeature" from the worker-thread GetOperatorList-handling by @Snuffleupagus in #15569
- Take the /CIDToGIDMap into account when getting the glyph mapping for CFF fonts (issue 15559) by @Snuffleupagus in #15563
- Use all the current transform as key when caching some image for masks used with pattern fill (bug 1795263, #15573) by @calixteman in #15574
- Don't trigger worker-thread cleanup when destruction has already started by @Snuffleupagus in #15575
- Slightly re-factor
PartialEvaluator._simpleFontToUnicode
by @Snuffleupagus in #15572 - Re-factor the PDF version parsing in the worker-thread by @Snuffleupagus in #15576
- [Editor] Ink editors must have their dimensions in percents after having been resized by @calixteman in #15578
- Tweak the vertical position of the sidebar notification icon by @Snuffleupagus in #15579
- Update packages and translations by @Snuffleupagus in #15580
- [Editor] Commit the current editor before setting the new viewport by @calixteman in #15583
- Fallback and try a previous generation if all else fails in
XRef.indexObjects
(issue 15577) by @Snuffleupagus in #15589 - [Annotation] Take the border into account when computing the font size (bug 1794403) by @calixteman in #15592
- Relax the /Pages dictionary /Count check for corrupt documents (issue 9105) by @Snuffleupagus in #15593
- Extend
getSupplementalGlyphMapForCalibri
with some umlauts (issue 15594) by @Snuffleupagus in #15596 - [Editor] Make FreeText annotations visible for screen readers when in editing mode (bug 1793419) by @calixteman in #15595
- [Annotation] Replace use of id by data-element-id to have the correct id (bug 1796544) by @calixteman in #15598
- Remove the
Glyph.matchesForCache
method (PR 13494 follow-up) by @Snuffleupagus in #15586 - Restore a weaker version of the /Pages dictionary /Count check for corrupt documents (PR 15593 follow-up) by @Snuffleupagus in #15603
- Update icons (last and final update) by @calixteman in #15608
- Let
Lexer.getNumber
treat more invalid "numbers" as zero (issue 15604) by @Snuffleupagus in #15606 - Revert "Avoid all rendering breaking completely when CanvasPattern.setTransform() is unsupported" (PR 13725 follow-up) by @Snuffleupagus in #15581
- Update the l10n-strings for the download-buttons (bug 1662416) by @Snuffleupagus in #15617
- Let the
PdfManager.requestLoadedStream
method return the stream by @Snuffleupagus in #15616 - Fix font for the 'current view' entry in the secondary toolbar (bug 1797310) by @calixteman in #15625
- Fix editor tests on Windows by @calixteman in #15623
- Prevent textLayer errors in documents with unbalanced beginMarkedContent/endMarkedContent operators (issue 15629) by @Snuffleupagus in #15630
- [JS] Avoid to trigger a commit event on 'ENTER' when the textfield is multiline by @calixteman in #15631
- Combine
Array.from
andArray.prototype.map
calls by @Snuffleupagus in #15637 - [JS] Some functions (print, alert,...) must be called only after a user activation by @calixteman in #15618
- [api-minor] Move the handling of unbalanced markedContent to the worker-thread (PR 15630 follow-up) by @Snuffleupagus in #15632
- [Editor] Change the cursor icons by @calixteman in #15633
- Remove the
PdfManager.onLoadedStream
method (PR 15616 follow-up) by @Snuffleupagus in #15641 - Update packages and translations by @Snuffleupagus in #15640
- Bump minimist by @dependabot in #15642