Releases: mozilla/pdf.js
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...
v3.8.162
This release features improvements in the areas of annotation editing/saving/printing, font conversion, accessibility and performance.
Changes since v3.7.107
- Bump versions in
pdfjs.config
by @timvandermeij in #16487 - Update Puppeteer to version 20 by @timvandermeij in #16489
- [Editor] Add few more info when saving ink data (thickness, opacity, β¦) by @calixteman in #16494
- Try to not omit some values when printing a choice list with several selected items by @calixteman in #16501
- Fix canvasMaxAreaInBytes type by @wojtekmaj in #16504
- Fix more regressions from PR 15812 by @Snuffleupagus in #16507
- export ImageKind by @maxired in #16505
- Fix incorrect
USERACTIVATION_CALLBACKID
import (15618 follow-up) by @Snuffleupagus in #16511 - Use the
Util.getAxialAlignedBoundingBox
helper function more by @Snuffleupagus in #16497 - Enable the
import/named
ESLint plugin rule by @Snuffleupagus in #16514 - [editor] Initialize
KeyboardManager
-instances lazily by @Snuffleupagus in #16516 - [api-minor] Update the minimum supported Google Chrome version to 92 by @Snuffleupagus in #16499
- Improve handling of mismatching /BaseFont and /FontName entries for non-embedded fonts (issue 7454) by @Snuffleupagus in #16513
- [api-minor] Make the AnnotationLayer an object in order to use it in the AnnotationEditorLayer by @calixteman in #16508
- Limit some
PDFRenderingQueue
-related code to the GENERIC viewer by @Snuffleupagus in #16495 - Enable more
import
ESLint plugin rules by @Snuffleupagus in #16517 - Enable the
import/no-cycle
ESLint plugin rule by @Snuffleupagus in #16515 - Improve Puppeteer's
trimCache
API usage by @timvandermeij in #16519 - Remove unused variables in
InkAnnotation.createNewAppearanceStream
(issue 16518, PR 16494 follow-up) by @Snuffleupagus in #16520 - [Editor] Connect then annotation layer and the editor one by @calixteman in #16521
- [Editor] Guess font size and color from the AS of FreeText annotations by @calixteman in #16522
- [Editor] Allow to undo/redo committed text modifications for FreeText by @calixteman in #16525
- [Editor] Commit the text when the user hits ctrl+s (bug 1831574) by @calixteman in #16528
- [Editor] Fix test failures in m-c because of the new FreeText undo/redo stuff by @calixteman in #16533
- Concat data when push fails in the CFF compiler by @calixteman in #16539
- [Editor] Add the possibility to update an existing annotation with some new properties when saving or printing by @calixteman in #16523
- Update packages and translations by @Snuffleupagus in #16542
- Improve SMask/Mask lookup when parsing inline images by @Snuffleupagus in #16541
- Enable the
unicorn/prefer-optional-catch-binding
ESLint plugin rule by @Snuffleupagus in #16544 - [api-minor] Remove the
type
fromRenderingCancelledException
(PR 16226 follow-up) by @Snuffleupagus in #16550 - Ensure that
cleanup
during rendering is actually ignored, to prevent a blank canvas by @Snuffleupagus in #16551 - Limit more code to GENERIC builds by @Snuffleupagus in #16543
- Add a container for Signature with their own canvas by @calixteman in #16554
- [Editor] Allow to edit FreeText annotations by @calixteman in #16535
- [Editor] Don't add an editor for empty FreeText annotations by @calixteman in #16555
- Disable events on canvas in the annotation layer by @calixteman in #16557
- [Editor] Avoid to have duplicated entries in the Annot array when saving an existing and modified annotation by @calixteman in #16556
- Add a test to check that the compression is ok when saving an annotation by @calixteman in #16559
- Improve handling of /Filter-entries in
writeStream
by @Snuffleupagus in #16558 - [Editor] Avoid an exception when copying an existing editor by @calixteman in #16561
- Guess that a checkbox belongs to a group in using its T value (bug 1838855) by @calixteman in #16563
- [Editor] Show hidden annotations once editing is finished by @calixteman in #16567
- [api-minor] Make the popup independent of their associated annotations by @calixteman in #16552
- Fix integration tests by @calixteman in #16570
- [api-minor] Ensure that the
AnnotationLayer
gets a default l10n-instance in GENERIC builds (PR 16552 follow-up) by @Snuffleupagus in #16572 - [Editor] Don't make editable an empty freetext annotation by @calixteman in #16579
- Remove the
OverlayManager.unregister
method since it's completely unused by @Snuffleupagus in #16580 - [Editor] Hide visible popups when editing by @calixteman in #16578
- Simplify the
sign
handling in theLexer.getNumber
method by @Snuffleupagus in #16581 - [Firefox] Disable the ability to change preferences directly from the viewer by @Snuffleupagus in #16583
- Move the
fixupLangCode
helper function into theweb/genericl10n.js
file by @Snuffleupagus in #16573 - Add a unit-test to check that the official PDF.js API exposes the expected functionality by @Snuffleupagus in #16587
- [Firefox] Simplify
FirefoxPreferences._readFromStorage
(PR 16583 follow-up) by @Snuffleupagus in #16597 - Remove a couple of unused constants from
src/shared/util.js
by @Snuffleupagus in #16590 - [api-minor] Remove the default-factories from the viewer components (PR 15811 follow-up) by @Snuffleupagus in #16592
- [api-minor] Re-factor the
PDFScriptingManager
class to use private fields/methods by @Snuffleupagus in #16569 - [CRX] Set minimum_chrome_version to 88 by @Rob--W in #16600
- Update packages and translations by @Snuffleupagus in #16598
- Run the PDF.js-viewer API unit-test in Node.js environments (PR 16592 follow-up) by @Snuffleupagus in #16604
- Use nullish coalescing when handling the
TESTING
build-target by @Snuffleupagus in #16602 - [GeckoView] Remove the
enableFloatingToolbar
preference by @Snuffleupagus in #16605 - Improve highlightments and popups in HCM (bug 1830850) by @calixteman in #16593
- Re-factor how HCM highlight-filters are handled in the viewer components (PR 16593 follow-up) by @Snuffleupagus in #16608
- [Editor] Add support for printing/saving newly added Stamp annotations by @calixteman in #16588
- Fully remove the
canvasFactory
option fromPDFPageProxy.render
(PR 16242 follow-up) by @Snuffleupagus in #16623 - Move the
transfers
computation into theAnnotationStorage
class by @Snuffleupagus in #16620 - Remove outdated polyfill comment from
src/pdf.image_decoders.js
by @Snuffleupagus in #16622 - Improve lint-chromium to output actionable information by @Rob--W in #16607
- Revert "Temporarily stop listing the official Chrome extension in the main README" by @Rob--W in #16601
- [api-minor] Remove the
CSS.supports
checks for thepageColors
-option in the GENERIC viewer by @Snuffleupagus in #16626 - [api-minor] Stop "supporting" binary data provided as
Buffer
in Node.js environments (PR 16055 follow-up) by @Snuffleupagus in #16627 - A couple of small tweaks of the
PDFCursorTools
class by @Snuffleupagus in #16616 - Fix reading property of null object in chrome extension's updateEmbedElement function by @erm1116 in #16612
- Inline the
webViewerInitialized
function inPDFViewerApplication.run
by @Snuffleupagus in https://github.com/m...
v3.7.107
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.
Changes since v3.6.172
- Bump versions in
pdfjs.config
by @timvandermeij in #16399 - [api-minor] Update the minimum supported Node.js version to 18 by @Snuffleupagus in #16293
- Introduce some optional chaining in the
src/core/xfa/
folder by @Snuffleupagus in #16398 - Make something similar to Acrobat when Underline annotation has no appearance by @calixteman in #16397
- Compress the data when saving annotions by @calixteman in #16392
- [api-minor] Use a local font or fallback on an embedded one (if it exists) for non-embedded fonts (bug 1766039) by @calixteman in #16363
- Add a cache to avoid to load several times a local font by @calixteman in #16408
- Reduce some duplication when toggling "expanded" buttons in the viewer toolbars by @Snuffleupagus in #16410
- [api-minor] Update the minimum supported Safari version to 15.4 by @Snuffleupagus in #16401
- Move the sidebar-resizing handling into the
PDFSidebar
class by @Snuffleupagus in #16413 - For missing font, use a local font if it exists even if there's no standard substitution by @calixteman in #16416
- Update packages and translations by @Snuffleupagus in #16417
- Enable the
unicorn/no-useless-promise-resolve-reject
ESLint plugin rule by @Snuffleupagus in #16415 - Update
jasmine
to version 5 by @Snuffleupagus in #16418 - Add tests for the font substitution by @calixteman in #16421
- Check the
css
property in thegetFontSubstitution
unit-tests by @Snuffleupagus in #16422 - [GeckoView] Add a Nimbus experiment for the toolbar (bug 1833093) by @calixteman in #16425
- Simplify the code to generate font substitution information by @calixteman in #16420
- For non-embedded fonts, don't generate the fallback several times by @calixteman in #16426
- Update
package-lock.json
to lockfileVersion=3 by @Snuffleupagus in #16430 - Warn when pdf.js can't load an OS font by @calixteman in #16431
- Attempt to fallback to a default font, for non-available ones, in more cases (issue 16432) by @Snuffleupagus in #16434
- For text widgets, get the text from the AP stream instead of from the format callback (bug 1825002) by @calixteman in #16433
- Introduce more optional chaining in the
src/core/
folder by @Snuffleupagus in #16424 - Simplify the
fontID
handling inPartialEvaluator.loadFont
by @Snuffleupagus in #16437 - Add a localization note to explain that 'Open in app' strings are for mobile (bug 1833858) by @marco-c in #16438
- Flush the current chunk when the font changed because of a restore op (issue #14755) by @calixteman in #16439
- Introduce even more modern JavaScript features in the code-base by @Snuffleupagus in #16440
- [api-minor] Slightly shorten some
idFactory
strings by @Snuffleupagus in #16443 - Extend
getNonStdFontMap
for non-embedded Impact fonts (bug 1365930) by @Snuffleupagus in #16446 - Improve performance of canvas::rescaleAndStroke by around 30% (bug 1135277) by @calixteman in #16448
- Stop trying to sort the attachments in the sidebar by @Snuffleupagus in #16449
- Sanitize the glyph bounding box by @calixteman in #16450
- [GeckoView] Add some telemetry for the toolbar buttons (bug 1829216) by @calixteman in #16453
- [Editor] Improve curve smoothing for Ink tool (bug 1789443) by @calixteman in #16445
- Take into account the final space if any in the TJ command by @calixteman in #16462
- Improve "EI" detection in inline images (PR 12028 follow-up, issue 16454) by @Snuffleupagus in #16461
- Ignore named encoding for non-embedded symbol fonts (issue 16464) by @Snuffleupagus in #16465
- Attempt to improve non-embedded Wingdings font support (bug 1652224) by @Snuffleupagus in #16451
- Avoid to have a null fallback if none has been provided by @calixteman in #16467
- [GeckoView] Remove the
Toolbar
-stub since the viewer has an actual toolbar now by @Snuffleupagus in #16466 - Extract all the text of text annotations by @calixteman in #16472
- Reset the formatted value when after a text field has been modified by @calixteman in #16474
- Re-factor the
isPageVisible
-handling in the find-controller (PR 10217 follow-up) by @Snuffleupagus in #16479 - Update packages and translations by @Snuffleupagus in #16481
- Introduce a "thumbnailrendered" event to simplify cleanup after thumbnail rendering (PR 12613 follow-up) by @Snuffleupagus in #16470
- [OTS] Remove cntrmask instruction with no stem in charstring (bug 1529502) by @calixteman in #16483
- Re-factor updating of thumbnails in the
PDFSidebar
-class by @Snuffleupagus in #16484
v3.6.172
This release features improvements in the areas of performance, text selection/searching, image/pattern rendering, accessibility and documentation/types.
Changes since v3.5.141
- Bump versions in
pdfjs.config
by @timvandermeij in #16244 - Reduce duplication when dispatching the "switchannotationeditorparams" event by @Snuffleupagus in #16248
- [api-minor] Remove SVG-rendering from the viewer (PR 15173 follow-up) by @Snuffleupagus in #16226
- [Firefox] Add CSS at-page size when printing from FirefoxPrintService (bug 1820651) by @fchasen in #16241
- Tweak the
--scale-factor
CSS-variable warning threshold (issue 16254) by @Snuffleupagus in #16256 - [GeckoView] Add a basic toolbar with a download button for GV (bug 1823164) by @calixteman in #16260
- Tweak the
loadingBar
CSS to better support RTL locales by @Snuffleupagus in #16261 - Tweak the
pageNumber
CSS to better support RTL locales by @Snuffleupagus in #16262 - Force-install when using
gulp dist-install
(issue 15435) by @Snuffleupagus in #16246 - [api-minor] Update the minimum supported Google Chrome version by @Snuffleupagus in #16249
- [Firefox] Use
float: inline-start/inline-end
directly in MOZCENTRAL builds (PR 15968 follow-up) by @Snuffleupagus in #16265 - Thin whitespaces must have their own span by @calixteman in #16225
- Attempt to also cache images at the "page"-level (issue 16263) by @Snuffleupagus in #16268
- Fix search of numbers inside fractions by @calixteman in #16275
- Skip transfers, in
LoopbackPort.postMessage
, for PDF.jslegacy
-builds (issue 16255) by @Snuffleupagus in #16279 - [GeckoView] Show the download button by default and add a pref to disable it (bug 1827963) by @calixteman in #16284
- Avoid when it's possible to use Array.concat when compiling a CFF font by @calixteman in #16292
- Limit the
Path2D
-checks in the worker-thread to Node.js (PR 16238 follow-up, issue 16289) by @Snuffleupagus in #16291 - Remove
CFFCompiler.compileGlobalSubrIndex
, and simplifyCFFCompiler.compileTypedArray
by @Snuffleupagus in #16294 - Reduce some duplication when toggling buttons in the viewer toolbars by @Snuffleupagus in #16281
- Slightly modernize print-related code by @Snuffleupagus in #16288
- Add the possibility to copy all the pdf text whatever the rendered pages are (bug 1788035) by @calixteman in #16286
- Remove null chars, i.e.
\u0000
, when getting all text (PR 16286 follow-up) by @Snuffleupagus in #16297 - Create the "hiddenCopyElement" in the
PDFViewer
constructor (PR 16286 follow-up) by @Snuffleupagus in #16298 - Update packages and translations by @Snuffleupagus in #16296
- Update TypeScript to version
5
by @Snuffleupagus in #16299 - [api-minor] Add support, in
PDFFindController
, for mixing phrase/word searches (issue 7442) by @Snuffleupagus in #16247 - Use CustomEvent when dispatching the "webviewerloaded" event by @Pascal-D in #16295
- [Editor] Take into account the initial rotation (issue #16278) by @calixteman in #16301
- [api-minor] Don't normalize the text used in the text layer. by @calixteman in #16200
- [GeckoView] Don't change style for the download button when focused/hovered by @calixteman in #16308
- Compatible with ResizeObserver borderBoxSize in legacy safari by @linxianxi in #16311
- Correctly clip the text in the text layer (fixes #16316) by @calixteman in #16318
- Disable the "copy all text" feature when
enablePermissions
is set (PR 16286 follow-up) by @Snuffleupagus in #16320 - Enforce double-colon notation for CSS pseudo-elements by @Snuffleupagus in #16317
- Introduce some
:is
usage in the xfaLayer CSS by @Snuffleupagus in #16310 - Introduce some
:is
usage in the textLayer CSS by @Snuffleupagus in #16313 - Introduce some
:is
usage in the PDFViewer CSS by @Snuffleupagus in #16314 - Introduce some
:is
usage in the annotationLayer CSS by @Snuffleupagus in #16315 - Introduce some
:is
usage in the viewer CSS by @Snuffleupagus in #16323 - Introduce some
:is
usage in the debugger CSS by @Snuffleupagus in #16324 - Update
eslint-plugin-mozilla
to avoid having to force-install packages (issue 15429) by @Snuffleupagus in #16327 - Remove the
PRODUCTION
build-target by @Snuffleupagus in #16305 - Don't include Chrome-specific CSS rules in MOZCENTRAL builds by @Snuffleupagus in #16326
- Remove unnecessary closures in the CMap code by @Snuffleupagus in #16331
- Remove the remaining unnecessary closures in the
src/core/primitives.js
file by @Snuffleupagus in #16332 - Remove the
PDF20
closure, in thesrc/core/crypto.js
file by @Snuffleupagus in #16334 - Don't force-install packages in the CI job anymore by @timvandermeij in #16335
- Update translations and packages by @timvandermeij in #16338
- Don't use the deprecated
CustomEvent.initCustomEvent
method anymore by @timvandermeij in #16336 - [GeckoView] Change the toolbar for a static one on the top of the viewer (bug 1829366) by @calixteman in #16340
- Allow text-selection, but not copying, when
enablePermissions
is set (PR 16320 follow-up) by @Snuffleupagus in #16333 - Prevent incomplete copy-all behaviour while text-extraction is running (PR 16286 follow-up) by @Snuffleupagus in #16347
- Remove the unused
getXhr
-option in theNetworkManager
constructor by @Snuffleupagus in #16357 - Avoid some repeated
stringToBytes
-calls in thesrc/core/crypto.js
file by @Snuffleupagus in #16354 - [api-minor] Stop including the "lib"-build in the
pdfjs-dist
repository by @Snuffleupagus in #16350 - Update the styling of the findbar
findMsg
-element (issue 16355) by @Snuffleupagus in #16356 - Declare the
linkService
andl10n
properties as optional in thePDFViewerOptions
documentation by @timvandermeij in #16361 - Fix two intermittents issues in integration tests by @calixteman in #16344
- Chmod ugo-x gv-toolbarButton-download.svg by @calixteman in #16365
- Introduce a GitHub Actions workflow for publishing the website by @timvandermeij in #16364
- Update type documentations for #16307, #16359 by @SebCorbin in #16362
- Include the entire
git
history in the work-flows (issue 16366) by @Snuffleupagus in #16371 - Limit the
publish_website.yml
work-flow to only themaster
branch (issue 16369) by @Snuffleupagus in #16370 - Apply HCM filters on annotations which have their own canvas (bug 1830850) by @calixteman in #16380
- [api-minor] Remove SystemJS usage, in development mode, from the worker by @Snuffleupagus in #12563
- Remove the unused
isStandardFont
font-property (PR 15880 follow-up) by @Snuffleupagus in #16381 - Inline the
addPageIndex
method inGlobalImageCache.shouldCache
by @Snuffleupagus in #16368 - Re-factor the
PDFViewer.pageViewsReady
getter slightly by @Snuffleupagus in #16375 - Simplify the thumbnail styling in the viewer by @Snuffleupagus in #16374
- Simplify the
PDFSidebar.#forceRendering
method by @Snuffleupagus in #16379 - Better approximate gradient color stops by @bungeman in #16106
- [Annotations] Draw readonly annotations on their own canvas and show the HTML elements when there is a JS interaction (issue #16384) by @calixteman in #16387
- [GeckoView] Add a button to download and open the fil...