Releases: mozilla/pdf.js
v2.12.313
This release features improved XFA support, improved pattern/tiling support, rich text annotation support, a new page scrolling mode in the viewer and many other bugfixes and optimizations.
Changes since v2.11.338:
#14097 Bump versions in pdfjs.config
#14099 Update packages and translations
#14101 [Regression] Fix comb fields scrolling when the last character is entered (PR 14049 follow-up)
#14111 Take the /CIDToGIDMap data into account when computing the hash, in PartialEvaluator.preEvaluateFont
, for composite fonts (bug 1734802)
#14106 Empty name is allowed in ISO 32000
#14108 For Annotations that define a closed area, make all of it toggle the PopupAnnotation (issue 14107)
#14118 Implement TrueType character map "format 2" (fixes #14117)
#14116 Use even more optional chaining in the src/display/api.js
file
#14134 Convert examples/node/pdf2png/pdf2png.js to await/async
#14138 Convert examples/learning/helloworld.html to await/async
#14143 docs: Fix grammatical error
#14141 Convert examples/text-only/pdf2svg.js to await/async
#14145 XFA - Embedded image is missing
#14148 Ensure that the EditorConfig rules apply to *.json
and *.pdf.link
files as well
#14131 Ensure that pre-rendering works correctly with spreadModes at higher zoom levels
#14112 Add a new Page scrolling mode (issue 2638, 8952, 10907)
#14149 Convert examples/learning/helloworld64.html to await/async
#14103 [api-minor] Change PDFFindController
to use the "find"-event directly (issue 12731)
#14152 Fix a xfaFaxtory
typo in the shadowing in the PDFDocument.xfaFactory
getter, and some other clean-up
#14166 Ignore Square/Circle-annnotations with a zero borderWidth when creating a fallback appearance stream (issue 14164)
#14114 [api-minor] Include the /Lang-property in the documentInfo
, and use it in the viewer (issue 14110)
#14154 Update packages and translations
#14155 Revert "For mozcentral use Firefox color theme instead of system theme." since -moz-toolbar-prefers-color-scheme
was removed
#14160 Fix pattern handling regression in SVGGraphics
(PR 13770 follow-up)
#14159 Convert examples/node/pdf2svg.js to await/async #14125
#14174 Prevent double-rendering borders for PushButton-annotations (PR 14083 follow-up)
#14167 Convert examples/image_decoders/jpeg_viewer.js to await/async #14123
#14171 Prevent run-time errors in Node.js versions with URL.createObjectURL
support (issue 14170)
#14162 Indent the stepper on save/restore.
#14175 Use a new method for handling soft masks.
#14178 Update the browserslist
database
#14156 Add support for modern ECMAScript class
features
#14158 Improve pre-rendering at the start/end of the document
#14181 Converted simpleviewer.js to await/async
#14199 Avoid to display download panel during integration tests
#14189 [api-minor] Implement securityHandler in the scripting API (bug 1731578)
#14192 [Regression] Prevent breaking errors when opening a new document in the GENERIC viewer (PR 14158 follow-up)
#14191 Ignore pageLabels, in the viewer, when they're all empty
#14180 Handle ranges that "overflow" the last byte in CMap.mapBfRange
(bug 1627427)
#14153 Fix XFA links (bug 1735738)
#14204 Remove the shadowViewer
used with Page scrolling
#14201 Use the correct border-style for Annotations, when a dash array is specified (bug 1219400)
#14207 JS - Avoid a popup to ask for specific version of Acrobat
#14210 Update packages and translations
#14182 [api-minor] Support rich content in markup annotation
#14212 Add a RTL-text reference test (issue 10301)
#14217 [Firefox] Handle errors if loading failed before the "supportsRangedLoading" message was sent (bug 1732141)
#14221 Use BaseViewer.previousPage
more in the default viewer (PR 12870 follow-up)
#14225 Avoid doing unnecessary checks, when pre-rendering page layouts with "holes" (PR 14131 follow-up)
#14228 Reset path bounding box tracking when starting a new path.
#14213 Tweak the Bidi-detection heuristics for very short RTL strings (issue 11656)
#14219 Let getVisibleElements
return a Set containing the visible element id
s
#14232 Use correct matrix for patterns with showText.
#14218 XFA subform with occur min=0 and no bound data displaying.
#14238 Add a couple of basic unit-tests for PDFPageViewBuffer
#14241 Don't double apply a group xobject's bbox.
#14230 Create shading patterns the size of the current path. (bug 1722807)
#14244 Prevent mobile devices from interfering with the textLayer-elements (issue 14243)
#14240 XFA - Get each page asynchronously in order to avoid blocking the event loop (#14014)
#14245 Convert PDFPageViewBuffer
to a standard class, and use a Set
internally
#14250 XFA - Encode tag names in UTF-8 when saving (fix #14249)
#14239 XFA - Fix a breakBefore issue when target is a contentArea and startNew is 1 (bug 1739502)
#14209 [Google Chrome] Ensure that markedContent
spans are placed in the top-left corner (issue 14205)
#14258 Always prefer abbreviated keys, over full ones, when doing any dictionary lookups (issue 14256)
#14265 XFA - Avoid an exception when looking for a font in a parent node
#14266 Don't consider space as real space when there is an extra spacing (bug 931481)
#14270 When parsing corrupt documents without any trailer-dictionary, fallback to the "top"-dictionary (issue 14269)
#14268 Remove non-displayable chars from outline title (#14267)
#14253 [Chromium addon] Add the Page scrolling mode to the options (PR 14112 follow-up)
#14260 Report "pageInfo" telemetry once, rather than for each rendered page
#14271 Parse query string in using URLSearchParams
#14255 Convert GrabToPan
to a standard class
#14273 Update packages and translations
#14247 [api-minor] Render pushbuttons on their own canvas (bug 1737260)
#14280 Slightly optimize spreadMode
toggling with ScrollMode.PAGE
set (PR 14112 follow-up)
#14278 Replace the remaining Node.removeChild()
instances with Element.remove()
#14276 Only show the loadingIcon
-spinner on visible pages (issue 14242)
#14262 Include the /Lang-property, when it exists, in the StructTree-data (issue 14261)
#14229 Add an easy way to log to the terminal during browser tests.
#14291 [api-minor] Only use Workers when postMessage
transfers are supported (PR 11123 follow-up)
#14294 [api-minor] Replace PDFDocumentProxy.getStats
with a synchronous PDFDocumentProxy.stats
getter
#14295 Remove the {BaseViewer, PDFThumbnailViewer}._pagesRequests
caches
#14299 Convert examples/components/pageviewer.js to await/async (issue 14127)
#14304 Ensure that ChunkedStream
won't attempt to request data beyond the document size (issue 14303)
#14298 Center pages vertically in PresentationMode (issue 10906)
#14310 Abort parsing when the XRef /W-array contain bogus entries (issue 14303)
#14314 [Regression] Prevent errors, during loading, in the viewer for XFA-documents (PR 14295 follow-up)
#14318 Handle sub/super-scripts in rich text
#14319 XFA - Draw arcs correctly
#14313 Change the _pagePromises
cache, in the worker, from an Array to a Map
#14311 [api-minor] Validate the /Pages-tree /Count entry during document initialization (issue 14303)
#14320 Update packages and translations
#14312 Prevent circular references in XRef tables from hanging the worker-thread (issue 14303)
#14321 Upgrade to Puppeteer 12
#14333 Handle errors correctly when data lookup fails during /Pages-tree parsing (issue 14303)
#14325 Remove the unused skipCount
parameter from Catalog.getPageDict
(PR 14311 follow-up)
#14328 Update (primarily) the Node.js examples to release page resources
#14335 [Regression] Eagerly fetch/parse the entire /Pages-tree in corrupt documents (issue 14303, PR 14311 follow-up)
#14324 Enforce PAGE-scrolling for very large/long documents (bug 1588435, PR 11263 follow-up)
#14341 Ensure that the shadow
helper function is passed a valid property (PR 14152 follow-up)
#14340 Handle errors when fetching the raw /Metadata (issue 14305)
#14338 [api-minor] Clear all caches in XRef.indexObjects
, and improve /Root dictionary validation in XRef.parse
(issue 14303)
#14339 Add a (linked) test-case for issue 8019
#14345 Ensure that the viewer handles BaseViewer
initialization failures
#14344 Modernize the test driver
#14348 Add a (linked) test-case for issue 8022
#14347 Improve caching in Catalog.getPageDict
(PR 8207 follow-up)
#14350 Prevent an infinite loop when parsing corrupt /CCITTFaxDecode data (issue 14305)
#14354 Further improve caching in Catalog.getPageDict
, for disableAutoFetch
mode (PR 8207 follow-up)
#14355 Change WorkerTransport.{pageCache, pagePromises}
from an Array to a Map
#14358 Improve PDFDocument.checkLastPage
/Catalog.getAllPageDicts
for documents with corrupt XRef tables (PR 14311, 14335 follow-up)
#14359 Avoid overloading the worker-thread during eager page initialization in the viewer (PR 11263 follow-up)
#14361 Upgrade Node.js to version 16 in the CI workflow
#14360 Update packages and translations
#14362 Support disabling of form editing when pdfjs.enablePermissions
is set (issue 14356)
#14364 Only call PDFDocumentProxy.getPermissions
, in the viewer, when pdfjs.enablePermissions
is set (PR 14362 follow-up)
#14367 Disable failing print actions integration test in Firefox
#14368 Consistently use string arguments for page.waitForFunction calls and upgrade to Puppeteer 13.0.0
#14380 Move the EventBus
, and related functionality, into its own file
#14372 Move the /Lang handling into the BaseViewer
(PR 14114 follow-up)
#14370 Slightly reduce asynchronicity in the Catalog.getPageDict
method (PR 14338 follow-up)
#14386 Ignore negative /FitH parameters in the viewer (issue 14385)
#14373 [api-minor] Fix broken/missing JSDocs and typedef
s, to allow updating TypeScript to the latest version (issue 14342)
#14387 Modernize the test utilities
v2.11.338
This release features improved XFA support (enabled by default now), improved annotations/forms support and other bugfixes and optimizations.
Changes since v2.10.377:
#13793 Bump versions in pdfjs.config
#13792 Remove the remaining closure in the src/display/canvas.js
file
#13795 XFA - Elements created outside of XML must have all their properties (bug 1722029)
#13801 Access navigator
safely in the src/display/annotation_layer.js
file
#13804 Move the compatibilityParams
into the web/app_options.js
file
#13807 XFA - Get the full value when binding and not only the 1st line (bug 1718725)
#13796 Allow StreamsSequenceStream.readBlock
to skip sub-streams with errors (issue 13794)
#13806 XFA - Fix auto-sized fields (bug 1722030)
#13815 XFA - Fix font scale factors (bug 1720888)
#13808 Improve caching of shading patterns. (bug 1721949)
#13819 XFA - Avoid an error when an exdata is a string (bug 1723114)
#13816 [api-minor] Remove the separate enableScripting
option in BaseViewer
#13813 Remove a couple of closures in the src/display/api.js
file
#13822 Prevent "Uncaught promise" messages in the console when cancelling (some) ReadableStream
s
#13824 When no "V" entry exists, let the fieldValue fallback to the "DV" entry (issue 13823)
#13828 Introduce the GitHub Advanced Security workflow
#13830 Improve the code analysis workflow with quality checks
#13833 Make worker-loader optional as peerDependencies. Close #13825.
#13836 Fix inefficient regular expressions in external/cmapscompress/parse.js
#13831 Change the parseQueryString
function to return a Map
rather than an Object (issue 13829)
#13837 Implement unit tests for the parseQueryString
utility function
#13839 Fix a broken regular expression in the docId
unit-test (issue 13838, PR 13813 follow-up)
#13841 Allow customization of theme in Chrome extension + set default theme
#13842 Visually hide br in text selections
#13847 Remove useless assignment of availableSpace
in the src/core/xfa/template.js
file (issue 13829, 13835)
#13852 XFA - Page can be too small when printing (bug 1723705)
#13860 Bump tar from 4.4.8 to 4.4.15
#13859 Remove the isEOF
helper function and slightly re-factor EOF
#13848 Remove the LGTM configuration and inline disable comments (issue 13829)
#13854 Prevent breaking errors when an optional content group is undefined (issue 13851)
#13846 Add a special gulp xfatest
command, to limit the ref-tests to only XFA-documents (issue 13744)
#13858 Add aria-labels to XFA form elements. (bug 1723422)
#13864 [XFA] Add alt text for images. (bug 1723418)
#13856 XFA - Avoid to put something in very small areas
#13868 Annotation & XFA: Scale the font size in choicelist using zoom factor (bug 1715996)
#13875 Annotation & XFA: Add focus outlines on different fields (bug 1723615, bug 1718528)
#13869 Enable linting in the test/resources/
folder, and fix the "Remote property injection" warning (issue 13862)
#13874 Update the Annotation --zoom-factor
CSS variable when PDFPageView
is used standalone (PR 13868 follow-up)
#13873 XFA - Support aria heading and table structure. (bug 1723421) (bug 1723425)
#13880 Fix typo in cff_parser_spec.js
#13881 XFA - Elements under an area must be bound (bug 1723734)
#13879 Fix the global variable definitions in test/resources/reftest-analyzer.js
(issue 13862)
#13867 [api-minor] Re-factor the internal renderingIntent, and change the default intent
value in the PDFPageProxy.getAnnotations
method
#13882 [api-minor] Remove the closure from the PDFWorker
class, in the src/display/api.js
file
#13883 Improve caching of Annotations-data, by using a Map
, in the API
#13884 Update packages and translations
#13887 Bump path-parse from 1.0.5 to 1.0.7
#13890 Update some deprecated ESLint rules
#13886 Re-factor the BaseException.name
handling, and clean-up some code
#13896 Simplify the ReadableStream
polyfill
#13892 Move some validation, in Dict.merge
, used during merging of sub-dictionaries (PR 13775 follow-up)
#13900 [api-minor] Stop translating logical assignment in non-legacy
builds (PR 12887 follow-up)
#13911 Ensure that the TESTING
define can always be overridden in gulpfile.js
#13913 Fix pdf_viewer definitions
#13905 Re-factor loadAndEnablePDFBug
and PDFBug.init
#13904 Re-factor the LocalTilingPatternCache to cache by Ref rather than Name (PR 12458 follow-up, issue 13780)
#13899 [Regression] Re-factor the internal includeAnnotationStorage
handling, since it's currently subtly wrong
#13920 Extend the glyph maps for standard respectively Calibri fonts (issue 13916)
#13921 Update packages and translations
#13922 Enable the ESLint object-shorthand
rule in the extensions/chromium/
-folder
#13908 [api-minor] XFA - Support text search in XFA documents.
#13923 [api-minor] Introduce a new annotationMode
-option, in PDFPageProxy.{render, getOperatorList}
#13934 Remove the IPDFHistory
interface
#13935 A couple of small TextHighlighter
/TextLayerBuilder
tweaks (PR 13908 follow-up)
#13939 Remove the npm test
-command
#13930 Fix Viewer API definitions and include in CI
#13940 Simplify the PDFViewerApplication.supportsFullscreen
getter
#13933 Fix saving of XFA checkboxes. (bug 1726381)
#13941 Ensure that PasswordException
is handled correctly in the wrapReason
function
#13942 Export the XFA/StructTree-layers in the viewer components
#13943 Use async
a bit more in the API
#13944 Re-factor the setPDFNetworkStreamFactory
usage for the unit-tests (PR 13549 follow-up)
#13937 Fix handling of fetch errors
#13932 Support Optional Content in Image-/XObjects (issue 13931)
#13949 Only use base encoding if it's populated. (bug 1727053)
#13951 Bump tar from 4.4.15 to 4.4.19
#13945 Implement PDFNetworkStreamRangeRequestReader._onError
, to handle range request errors with XMLHttpRequest (issue 9883)
#13952 Extend getNonStdFontMap
for non-embedded versions of the ItcSymbol font (issue 11532)
#13955 Always prefer the post-table for TrueType fonts with (0, x) cmap-tables (issue 13433)
#13959 Correctly pad strings when saving an encrypted pdf (bug 1726789)
#13967 XFA - Overwrite AcroForm dictionary when saving if no datasets in XFA (bug 1720179)
#13966 XFA - Created data node mustn't belong to datasets namespace
#13970 Fallback to the /ToUnicode map for TrueType fonts with (3, 1) and (1, 0) cmap-tables (issue 13316)
#13961 Simplify some regular expressions
#13973 [api-minor] Change {PDFPageView, PDFThumbnailView}.update
to take a parameter object
#13972 Treat all content as visible when no optional content groups are defined (issue 13971)
#13975 Update packages and translations
#13976 Reduce the size of TextLayerRenderTask._textDivProperties
in "regular" text-selection mode
#13988 Avoid an error in integration test because of a locale different of en-US
#13985 Improve glyph mapping for non-embedded composite standard fonts (issue 11088)
#13992 XFA - Remove the checked attribute from the checkbox when unchecked (bug 1729877)
#13995 XFA - Handle $record shorcut in SOM expression (issue #13994)
#13996 Make verifyManifestFiles
fail for non-linked test-cases with a "link": true
-entry
#13991 Enable/disable image smoothing based on image interpolate value. (bug 1722191)
#14000 Re-factor the CSS_PIXELS_PER_INCH
/PDF_PIXELS_PER_INCH
exports (PR 13991 follow-up)
#13993 Don't create PDFViewerApplication.pdfHistory
when the browsing history is disabled
#13977 [api-minor] Reduce postMessage
overhead, in PartialEvaluator.getTextContent
, by sending text chunks in batches (issue 13962)
#13983 Update the learning/
examples with basic HiDPI-screen support
#14004 [CRX] enableScripting=false by default in Chrome extension
#14002 Let Lexer.getObj
return a dummy-Cmd
for commands that start with a non-visible ASCII character (issue 13999)
#13998 Write boolean value when saving a form (bug 1729971)
#14006 [src/core/writer.js] Remove unnecessary string-wrapping for boolean values in writeValue
(PR 13998 follow-up)
#14007 [src/core/writer.js] Support null
values in the writeValue
function
#14018 XFA - Don't create images for unsupported mime types
#14027 Annotation - Checkboxes with the same name and export values must be in unison
#14028 Use CSS variables for setting the width of the zoom dropdown (PR 11570 follow-up)
#13984 Enable XFA by default in the viewer, and components/
examples (issue 13968)
#14025 Improve glyph mapping for non-embedded composite standard fonts with a /CIDToGIDMap (issue 11915)
#14035 Annotation - For checkboxes, get field value from AS (if any) instead of V (bug 1722036)
#14040 JS - Avoid the Stay/Leave popup when clicking on a button with a JS action
#14038 JS - Implement few possibilities with app.execMenuItem (bug 1724399)
#14043 Re-factor the EventBus
and isInAutomation
handling (PR 11655 follow-up)
#14013 Improve the API unit-tests, and try to expose more API-functionality in the TypeScript definitions
#14045 XFA - Only warn about the wrong xfa type when there is an xfa thing
#14005 [GENERIC viewer] Always show the Download-buttons, to allow saving of forms (issue 13997)
#14044 Annotations - Avoid empty value in text field when storage contains something for it (bug 1719148)
#14041 Support cmaps with only CID characters, when building the ToUnicode-map (issue 9367)
#14052 Update packages and translations
#14050 Tweak how fonts with an /Encoding are handled in adjustToUnicode
(issue 14048, PR 13277 follow-up)
#14053 Move the zoomIn/zoomOut functionality into BaseViewer
(PR 14038 follow-up)
#14056 Correctly validate URLs in XFA documents (bug 1731240)
#14055 Add PDF_TO_CSS_UNITS
to the PixelsPerInch
-structure
#14058 [api-minor] Change EventBus.dispatch
to only support one data-argument
#14063 [GENERIC viewer] Warn about AppOptions being overridden by Preferences during loading
#14023 Re-fact...
v2.10.377
This release features improved XFA support, improved pattern rendering and other bugfixes and optimizations.
Changes since v2.9.359:
#13464 Bump versions in pdfjs.config
#13466 Fix typo in template.js
#13465 Some -es5
/-legacy
renaming clean-up, and deprecated
API options removal (PR 12978, PR 13207 follow-up)
#13437 XFA - Move the fake HTML representation of XFA from the worker to the main thread
#13472 Don't change options of the globally used PartialEvaluator
in the "should render checkbox with fallback font for printing" unit-test
#13411 XFA - Add support to print XFA forms
#13476 Update Puppeteer to version 10
#13451 XFA - Use native radio and checkbox buttons
#13480 [GENERIC viewer] Fix printing regression from PR 13411
#13489 Add hasEOL
to the TextItem
typedef in the API (PR 13257 follow-up)
#13478 Fix find highlighting regression from #13306.
#13482 Fix scrolling of search results in documents with marked content (bug 1714183)
#13473 XFA - Implement usehref support
#13492 Add normalization for Hyphen -> Hyphen-minus
#13490 Miscellaneous improvements for gulpfile.js
(issue 10362)
#13497 Initialize HTMLResult.{FAILURE, EMPTY}
lazily
#13494 Add more info for showText operator in stepper.
#13498 Normalize the coordinates used in SVGGraphics._makeTilingPattern
(issue 12996)
#13461 Improve text-selection for Type3 fonts with empty /FontBBox-entries (issue 6605)
#13503 XFA - Don't bind a form node with an empty value when the data node doesn't exist
#13505 Use the DOMSVGFactory
, rather than manually creating the SVG-element, in createMatrix
(PR 13361 follow-up)
#13501 XFA - CDATA can be xml so parse it when required
#13513 Bump trim-newlines from 3.0.0 to 3.0.1
#13506 XFA - Add support for reftests
#13479 XFA - Fix layout issues (again)
#13514 [api-minor] Fetch binary CMap data in the worker-thread, when useWorkerFetch
is set
#13521 [XFA] Use align-items: flex-start;
to improve browser compatibility (issue 13518)
#13495 XFA - Display rectangle, line and arc
#13524 XFA - Don't print arrow in select
#13517 XFA - Add Liberation-Sans font as a substitution for some missing fonts
#13515 Cache the "raw" standard font data in the worker-thread (PR 12726 follow-up)
#13525 [api-minor] Re-factor the disableFontFace
fallback value, and skip initializing factories with useWorkerFetch
set
#13516 Always use standard font data, with disableFontFace
set in the API (PR 12726 follow-up)
#13502 XFA - contentarea must be on top of the other containers in a pageArea
#13527 XFA - Avoid infinite loop when creating some nodes in data
#13528 XFA - Handle caption with inline placement as left one
#13529 Bundle the license-file for the Liberation fonts in the builds (PR 13517 follow-up)
#13530 Add a DOMMatrix
polyfill for Node.js environments (PR 13361 follow-up)
#13532 XFA - Give all the available space to the caption in case of checkButton
#13534 XFA - Flush contents when breakBefore target is 'auto'
#13539 XFA - Don't show outline on focused textfields
#13540 XFA - Return html element for the different possible value
#13542 XFA - Center vertically radio without caption
#13546 Re-factor the DOMCanvasFactory
and DOMSVGFactory
implementations slightly
#13547 XFA - Handle correctly subformSet
#13549 Remove the isFetchSupported
function since the Fetch API is available in all supported browsers
#13552 Update packages and translations
#13548 XFA - Default fill color for rectangle is transparent
#13555 XFA - Value in field can be html
#13557 XFA - Fix error when creating a new data node
#13559 XFA - Handle maxChars property for text fields
#13563 Add basic linting of JSON files using eslint-plugin-json
#13554 XFA - Add support for overflow element
#13569 XFA - Container wrapper must take the visibility of the wrapped content
#13565 Fix how patterns are applied to image mask objects.
#13570 XFA - By default a text ui has only one line when in a field element
#13560 XFA - Add the possibily to layout and measure text
#13575 XFA - Fix reftest for xfa_issue13500
#13576 XFA - When no fonts in the pdf just use font size as width when measuring text
#13566 XFA - Fix layout issues
#13577 Remove the internal PDFScriptingManager._pageEventsReady
boolean (PR 13074 follow-up)
#13587 Set the default value of useSystemFonts
correctly, depending on disableFontFace
, in the API (PR 13516 follow-up)
#13588 Add a (basic) TypeScript definitions for the viewer components (issue 13267)
#13590 Stop encoding the value in the DOMElement.setAttribute
method (issue 8558)
#13589 Allow using the standard font data for non-Type1 fonts (issue 13585, PR 12726 follow-up)
#13591 XFA - Match font family correctly
#13595 XFA - Add support for access property
#13593 XFA - Don't display invisible rectangle borders
#13573 XFA - Fix the way to select page on breaking
#13601 Revert "XFA - Fix the way to select page on breaking"
#13603 Revert "Revert "XFA - Fix the way to select page on breaking""
#13592 XFA - Don't display print-only elements
#13604 XFA - A prototype can have a property which needs itself to resolve a proto
#13608 Bump color-string from 1.5.3 to 1.5.5
#13609 Correctly align the xfaLayer
content with horizontal scrolling/spread modes
#13594 XFA - Add margins if needed after having layout some text
#13606 Correctly align the textLayer
content with horizontal/spread scrolling modes (issue 13605)
#13614 XFA - Get line height from the font
#13617 Reset the IPDFLinkService.externalLinkEnabled
property on document closing
#13612 Support corrupt documents with empty Name
-entries (issue 13610)
#13613 [api-minor] Slightly tweak/improve various code related to XFA-printing
#13618 XFA - Always bind root subform on root data
#13622 XFA - No container stretching with lr-tb layout
#13619 XFA - Add back empty subforms (which can have a background)
#13624 XFA - Take into account text position in caption
#13627 XFA - Save filled data in the pdf when downloading the file (Bug 1716288)
#13600 Take the position of the selected
element into account when scrolling matches (issue 13596)
#13628 Check that TrueType (3, 0) cmap tables, for symbolic fonts, are sorted correctly (issue 13626)
#13637 Update packages and translations
#13638 A couple of smaller JSDocs tweaks in src/display/api.js
#13642 XFA - Remove quotes of font name in xhtml
#13639 XFA - Replace deprecated break element (bug 1718053)
#13635 XFA - Fix width of a container with lr-tb layout (bug 1718037)
#13641 XFA - Implement aspect property on image element
#13644 XFA - Support non-embedded fonts without a Widths entry
#13645 XFA - Choice list has no selected value by default (bug 1718241)
#13616 Add PDFs from #1773 to the reftests
#13640 Add non-PRODUCTION/TESTING overflow assert
s to various string helper-functions (issue 6759)
#13648 XFA - Don't fill when the fill element is not visible (bug 1718735)
#13598 XFA - Remove empty pages
#13657 Replace instanceof Object
with typeof
checks
#13658 Don't attempt to structure clone unsupported types with workers disabled
#13664 Remove the version
field from the package.json
file
#13661 [api-minor] Support accessing both the original and modified PDF fingerprint
#13662 XFA - Don't use system font when a font is not embeded but there is a substitution
#13666 Enable the ESLint operator-assignment
rule
#13654 XFA - An image can be a stream in the pdf (bug 1718521)
#13672 Revert "XFA - An image can be a stream in the pdf (bug 1718521)"
#13653 XFA - Improve text layout
#13665 XFA - Fix indentation for justified paragraph
#13673 XFA - An image can be a stream in the pdf (bug 1718521)
#13675 [test/driver.js] Ensure that Image src
is set after the callbacks in resolveImages
#13680 XFA - Layout correctly a subform with row layout (bug 1718740)
#13684 XFA - Default background in rectangle is white
#13683 Fix transformations when painting image masks and tiling patterns.
#13687 XFA - Don't fail xfa loading because of a JS subexpression in SOM expressions
#13649 Merge the supplemental font data files used with XFA documents
#13691 XFA - Handle correctly nested containers with lr-tb layout (bug 1718670)
#13693 XFA - Enable disabled fields (bug 1719464)
#13694 XFA - remove unnecessary check in the handleBreak
function (PR 13687 follow-up)
#13692 XFA - Correctly bind global data (bug 1718725)
#13700 XFA - Scale correctly images
#13706 XFA - Keep xfa layer on top of the others (bug 1719629)
#13703 XFA - Fix typo in factory.js
#13708 XFA - Add support for traversal and traverse element
#13710 XFA - Move xfa layer on top of the others (follow-up of #13706)
#13690 Fixed text annotation comb input box
#13696 [GENERIC viewer] Try to fixup "incomplete" language codes (issue 13689)
#13699 making webpack aware of the change inside of the worker file and hash
#13712 XFA - Always compute the transformed BBox values in checkDimensions
(PR 13691 follow-up)
#13705 XFA - Fix text positions (bug 1718741)
#13715 Update packages and translations
#13714 XFA - Use fake MyriadPro as a fallback for missing fonts
#13717 XFA - Fix wrong vertical alignments
#13718 XFA - Support assist element
#13716 XFA - Avoid to have containers not pushed in the html
#13720 Revert "XFA - Avoid to have containers not pushed in the html"
#13723 XFA - Only the first page was printed (bug 1720159)
#13721 XFA - Avoid to have containers not pushed in the html
#13725 Avoid all rendering breaking completely when CanvasPattern.setTransform()
is unsupported
#13734 XFA - Cannot print fields with no names
#13739 Remove <meta>
tag only necessary for IE-compatibility
#13738 Re-factor the handling of empty Name
-instances (PR 13612 follow-up)
#13730 Add a new "botbrowsertest" gulp-task, to allow running only the browser tests on the bots
#13732 XFA - A rectangle must have the width of its parent but without ...
v2.9.359
This release features improved text layer rendering (so words and whitespace better match the rendered page), improved accessibility support (for marked PDF files with structure information for screen readers), improved shading/tiling pattern rendering, displaying of digital signatures (but not verifying them), improved XFA support (which is still experimental), improved rendering of annotations without appearance streams and other bugfixes mainly regarding annotations, font rendering and scripting.
Changes since v2.8.335:
#13183 Bump versions in pdfjs.config
#13184 Convert objects to sets in places where we only track keys
#13186 Remove some deprecated
code
#13194 Fuzzy-match the fontName, for TrueType Collection fonts, where the "name"-table is wrong (issue 13193)
#13204 Fix typo in canvas.js
#13210 Cache babel source map.
#13209 Remove the enableScripting
option from the PDFPageView
constructor
#13207 [api-minor] Remove the manual passing of an AnnotationStorage
-instance when calling various API-method
#13171 [api-minor] Add support for basic structure tree for accessibility.
#13197 Improve the image quality of thumbnails rendered by PDFThumbnailView.draw
(issue 8233)
#13212 Check that the correct pdfDocument
is still active, before rendering the outline/attachments/layers
#13214 Display widget signature
#13216 Remove obsolete done callbacks from the unit tests
#13220 Ensure that currentOutlineButton
enabling/disabling won't depend on the exact timing of the "pagesloaded" event (PR 13212 follow-up)
#13221 [api-minor] A couple of smaller PDFPageProxy.getStructTree
fixes (PR 13171 follow-up)
#13217 [GENERIC viewer] Display a warning message, using the errorWrapper
, for documents with signatures (PR 13214 follow-up, issue 13215)
#13141 XFA -- Display text content
#13203 Implement high contrast mode
#13223 Remove the unused "GetIsPureXfa" message handler; and avoid unnecessary parsing when no structTree is available (PR 13069 follow-up, PR 13221 follow-up)
#13232 Fix annotation input focus trap regression in Safari
#13234 [api-minor] Ensure that PDFDocumentProxy.hasJSActions
won't fail if MissingDataException
s are thrown during the associated worker-thread parsing
#13235 Split the classes in src/core/obj.js
into separate files
#13238 Update the es-module-shims
package to the latest version
#13244 Update the postcss-calc
package to the latest version
#13240 Update eslint-config-prettier
/eslint-plugin-unicorn
packages to their latest versions
#13222 Convert done callbacks to async/await in the smaller unit test files
#13243 Implement visibility expressions for optional content
#13246 Convert done callbacks to async/await in more unit test files
#13247 Update the yargs
package to the latest version
#13249 [GENERIC viewer] Don't display the errorWrapper
, for documents with signatures (PR 13217 follow-up)
#13250 Remove the PDFViewerApplication._delayedFallback
functionality
#13146 XFA -- Load fonts permanently from the pdf
#13254 A couple of small scripting/XFA-related tweaks in the worker-code
#13253 Convert done callbacks to async/await in test/unit/api_spec.js
#13258 Update packages and translations
#13256 Convert done callbacks to async/await in the last two unit test files
#13275 Ensure that the /Properties, used with optional content, is actually loaded before parsing the operatorList/textContent (PR 12095 follow-up)
#13278 Add presentation role to text layer spans.
#13277 For CFF fonts without proper ToUnicode
/Encoding
data, utilize the "charset"/"Encoding"-data from the font file to improve text-selection (issue 13260)
#13263 Replace done
callbacks in the font-tests with async/await instead
#13282 Update Puppeteer to version 9
#13280 Ensure that saveDocument
works if there's no /ID-entry in the PDF document (issue 13279)
#13286 [JS] Use heap allocation when initializing quickjs sandbox
#13283 Change NameOrNumberTree.getAll
to return a Map
rather than an Object
#13272 Update all the text widgets having the same name with the same value
#13291 Replace a bunch of Array.prototype.forEach()
cases with for...of
loops instead
#13297 Add a note about minification to the webpack-example README (issue 13290)
#13294 Enable the no-var
linting rule in src/core/{cmap,image,worker}.js
#13301 Support InkAnnotation
s without appearance streams (issue 13298)
#13300 Convert the code in src/display/canvas.js
to use standard classes
#13304 Convert more code in src/core/
to use standard classes
#13305 Implement rendering polyline/polygon annotations without appearance stream
#13306 Fix position of highlighted all text.
#13314 For mozcentral use Firefox color theme instead of system theme.
#13310 Don't try to insert a structTree in a removed page (PR 13171 follow-up)
#13257 [api-minor] Fix the way to chunk the strings
#13303 Add an abstract base-class, which all the various Stream implementations inherit from
#13322 Update packages and translations
#13320 Add a new BaseStream.getString(...)
method to replace manual bytesToString(BaseStream.getBytes(...))
calls
#13321 Enable the no-var
linting rule in src/core/{crypto,function}.js
#13324 Fix highlighting of search results when the textLayer
contains br
-elements (PR 13257 follow-up, issue 13323)
#13319 JS -- add support for page property in field
#13274 [JS] Fix several issues found in pdf in #13269
#13333 [web/debugger.js] Enable the ESLint no-var
rule
#13337 [Regression] Move the super
-call in the PredictorStream
-constructor to prevent errors (PR 13303)
#13340 Fix integration test in the windows bot
#13339 Remove unnecessary closure in src/display/text_layer.js
, and use standard classes
#13327 Split the functionality in src/core/fonts.js
into multiple files, and use standard classes
#13349 Bump lodash from 4.17.19 to 4.17.21
#13341 Remove unnecessary closure in the src/core/font_renderer.js
file
#13352 Bump hosted-git-info from 2.6.0 to 2.8.9
#13338 Convert the src/core/{jbig2, jpg, jpx}.js
files to use standard classes
#13344 Enable the no-var
rule in the src/core/evaluator.js
file
#13350 Add option enableXfa to the viewer
#13347 Take the W
array into account when computing the hash, in PartialEvaluator.preEvaluateFont
, for composite fonts (issue 13343)
#13354 Export the "raw" toUnicode-data from PartialEvaluator.preEvaluateFont
#13355 Fix some integration tests
#13357 Remove the disableCanvasToImageConversion
functionality from PDFThumbnailView
(PR 7029 follow-up)
#13358 [api-minor] Remove the WebGL implementation
#13364 Clean-up usage of the TESTING
-define in src/pdf.sandbox.js
#13363 Prevent LGTM from complaining about useless assignments (PR 12562 follow-up)
#13368 Fix the Jbig2Image
export for the gulp image_decoders
build (PR 9729 follow-up, issue 13367)
#13360 Only include the renderer
-preference in builds where SVGGraphics
is defined
#13366 Convert the remaining functions in src/core/primitives.js
to use standard classes
#13361 Fix several issues with radial/axial shadings and tiling patterns.
#13371 Revert "Fix the remaining no-var
failures, which couldn't be handled automatically, in the src/core/evaluator.js
file" (PR 13344 follow-up)
#13369 Fix tiling pattern with smask.
#13375 Improve the Page.content
and Page.getContentStream
methods
#13377 Re-factor and convert the code in src/core/pattern.js
to use standard classes
#13379 [api-minor] Update minimum supported browser versions (PR 13361 follow-up)
#13383 Update packages and translations
#13380 Re-factor and convert the code in src/display/pattern_helper.js
to use standard classes
#13385 Convert src/core/operator_list.js
to use standard classes
#13386 Enable the no-var
linting rule in src/core/bidi.js
#13387 Fix a few safe ESLint no-var failures in src/core/evaluator.js
(13371 follow-up)
#13328 JS - Add support for display property
#13389 Get any width (if one is present) in CFF parser
#13390 XFA - Don't move glyphes in private area with non-truetype fonts
#13394 Handle PI with no value in xml parser
#13401 Remove some, with Prettier 2.3.0
, unnecessary // prettier-ignore
comments
#13408 Remove focus from the zoom dropdown, when a mouse is used (bug 1300525, issue 4923)
#13415 Improve handling of named destinations in out-of-order NameTrees (PR 10274 follow-up)
#13416 XFA - Fix wrong function name
#13419 Use the stringToBytes
helper function in more places
#13381 Handle errors gracefully, in PartialEvaluator.buildFontPaths, when glyph path building fails
#13417 [XFA] Send URLs as strings, rather than objects (issue 1773)
#13420 Drop obsolete logic from the downloadFile
function in test/downloadutils.js
#13421 XFA - Don't display images with a href
#13402 XFA - Fix lot of layout issues
#13429 Bump browserslist from 4.16.3 to 4.16.6
#13436 Re-factor FontFaceObject.getPathGenerator to use Arrays instead of strings
#13435 Enable the unicorn/no-array-push-push
ESLint plugin rule
#13445 Fix Postscript name in font to avoid bug when saving in pdf
#13450 Fix the JSDocs for PDFDocumentProxy.getPageIndex
(issue 13449)
#13455 Italic angle is defined clockwise in CSS when it's counterclockwise in PDF
#13456 Replace clazz by classNames
#13427 XFA - Add a storage to save fields values
#13443 Re-factor the charsCache
on Font
-instances
#13457 Work-around for HighlightAnnotations without a top-level /ExtGState-entry (issue 13242)
#13448 Support strokeAlpha/fillAlpha when creating a fallback appearance stream (issue 6810)
#13460 Update webpack import instructions
#13462 Update packages and translations
#13463 Bump ws from 7.4.5 to 7.4.6
v2.8.335
This release features initial support for XFA (in addition to the support for AcroForms). Moreover, it contains lots of improvements related to scripting, text layer positioning, annotations, printing, accessibility and performance.
Changes since v2.7.570:
#12901 Bump versions in pdfjs.config
#12826 JS -- add support for choice widget
#12914 JS - QuickJS sandbox initialization must be the last evaluated string
#12916 Include pdf.sandbox.js
when building the pdfjs-dist files
#12911 Fix text layer regression tests in using the correct line-height property
#12910 Add back dir property in spans in text layer
#12903 Improve global image caching for small images (PR 11912 follow-up, issue 12098)
#12924 Fix font data clone error when pdfBug is enabled.
#12922 Ignore globally cached images in PartialEvaluator.getTextContent
(PR 11930 follow-up)
#12920 fix(acroforms): pdf path in acroforms example
#12931 Stop showing the fallback bar for "errorFontLoadNative" errors (PR 10539 follow-up)
#12932 Stop including -ms
prefixed CSS rules in GENERIC builds
#12933 Stop polyfilling CSS variables in GENERIC builds
#12935 Remove prefixed fullscreen properties/methods from the MOZCENTRAL builds
#12879 XFA - Add a parser for XFA files
#12943 Re-enable the issue6961
test-case (issue 7112)
#12947 Update Puppeteer to version 6 (issue 12945)
#12954 XFA -- Add attributes and children in XFAObject
#12952 Don't focus the PasswordPrompt
input-field on load, when the viewer is embedded in e.g. an iframe
(issue 12951)
#12956 Update Puppeteer to version 7
#12946 XFA -- Add template object
#12944 XFA -- Update config object
#12941 fix(a11y): resolve sidebar, find, toolbar missing aria-expanded and aria-controls state
#12961 Use optional chaining, where possible, in the web/
-folder
#12965 Request all data, rather than throwing, when encountering general errors in ObjectLoader._walk
(issue 9462, PR 3289 follow-up)
#12966 Update packages and translations
#12962 Handle errors gracefully, in PartialEvaluator.translateFont
, when fetching the font file (issue 9462)
#12970 Split PDFViewerApplication.error
into two methods, for PDF document loading/parsing errors vs other errors (PR 11647 follow-up)
#12971 Use DOM hidden property instead of attribute methods
#12975 Remove the contentmenu
usage, from PresentationMode, since it's no longer working
#12972 [GENERIC viewer] Skip the iframe
-case when checking if the container
div, on BaseViewer
-instances, is absolutely positioned (PR 12354 follow-up)
#12973 Use Math.hypot
, instead of Math.sqrt
with manual squaring
#12978 [api-minor] Rename -es5
to -legacy
, to reduce confusion over what's actually supported (issue 12976)
#12948 XFA -- Add localset object
#12949 XFA -- Add other objects
#12982 Update the year in the license_header
files
#12984 Replace a few new Date().getTime()
instances with Date.now()
#12981 Collect the l10n error/warning message lookup, in web/app.js
, in a new helper method
#12904 fix initial state of checkboxes in display layer
#12987 Restore window.alert after use in scripting test
#12986 Remove the unused "loading_error_indicator" l10n string (PR 2719 follow-up)
#12988 Remove unneeded instanceof MissingDataException
checks
#12896 Modifiy the way to compute baseline to have a better match between canvas and text layer
#12992 Use a more compact format for the fallback EventBus-listeners in PDFViewerApplication_initializeJavaScript
#12991 Stop including unused/unnecessary code in the viewer, for MOZCENTRAL
-builds
#12993 [api-minor] Change the dc:subject
Metadata field to an Array
#12964 Avoid infinite loop when getting annotation field name
#12995 Stop showing the fallback bar for "errorFontMissing" errors (PR 11218 follow-up)
#12830 JS -- Fix doc.getField and add missing field methods
#12936 XFA - Add a lexer/parser for FormCalc language
#12998 Simplify the default value handling of renderInteractiveForms
in the viewer components
#12999 [api-minor] Remove support for synchronous event dispatching in LoopbackPort
#12997 Move the Metadata parsing to the worker-thread
#12979 XFA - Add support for prototypes
#13001 Send the AnnotationStorage
-data to the worker-thread as a Map
#13004 Add a this
-bound method for InternalRenderTask.cancel
#13007 Update packages and translations
#13005 JS - Fix setting a color on an annotation
#13008 Allow minor and patch versions for the webpack-stream
dependency again
#12983 XFA -- Add support for SOM expressions
#13011 Remove extra new line from HTML source.
#13009 Move the opening of PDF file attachments into the DownloadManager
-implementations
#13019 Remove the findResultsCount
-check from PDFFindBar.updateResultsCount
, and unnecessary defaults from the constructor
#13020 Remove the NullL10n
default value from viewer components not included in the COMPONENTS
-bundle
#13021 Remove the, strictly unnecessary, closure and variable shadowing from createObjectURL
#13014 [api-minor] Support the Content-Disposition filename in the Firefox PDF Viewer (bug 1694556, PR 9379 follow-up)
#13025 Convert code in src/core/function.js
to use "normal" classes
#13026 Convert code in src/core/crypto.js
to use "normal" classes
#13024 Update Puppeteer to version 8
#13023 Fix integration test with js-colors
#13029 Enable the no-var
linting rule in more core files
#13030 Modernize some of the code in src/core/cmap.js
by using classes and async/await
#13031 Implement rendering square/circle annotations without appearance stream
#13032 Don't warn about actions that require scripting support in Catalog.parseDestDictionary
#13033 Implement rendering line annotations without appearance stream
#13039 Change the background to ensure that the sidebar is visible/readable when the viewer is narrow (issue 13036)
#13045 Bump pug-code-gen from 2.0.1 to 2.0.3
#13050 Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up)
#13053 Enable scripting by default in the development viewer; remove the standalone acroforms
example
#13042 [api-minor] Move the viewer scripting initialization/handling into a new PDFScriptingManager
class
#13054 Move handling of the PageOpen/PageClose events into the PDFScriptingManager
(PR 13042 follow-up)
#13060 Update packages and translations
#13055 JS - reset correctly radio buttons
#13062 Remove the test/features
folder, since it's very out of date (issue 11954)
#13063 Use more optional chaining in the web/-folder (PR 12961 follow-up)
#13018 XFA - Create Form DOM in merging template and data trees
#13015 JS - Avoid a popup to ask for updating Acrobat.
#13078 Disable intermittent unit test "creates pdf doc from non-existent URL"
#13074 Re-factor the PDFScriptingManager._destroyScripting
method (PR 13042 follow-up)
#13081 Replace the objectFromEntries
helper function with an objectFromMap
one instead, and simplify the data lookup in the AnnotationStorage.getValue method
#13085 Ensure that all errors are handled in rasterizeTextLayer
/rasterizeAnnotationLayer
#13090 Enable the ESLint no-var
rule in gulpfile.js
#13079 Ensure that getDocument
handles Node.js Buffer
s more gracefully (issue 13075)
#13087 Enable the ESLint no-var
rule in the examples/
folder
#13084 Enable the ESLint no-var
rule in a few font-parsing files, and convert src/core/type1_parser.js
to use "standard" classes
#13092 Enable the ESLint no-var
rule in the importL10n/
folder
#13091 Enable the ESLint no-var
rule globally
#13093 Enable the ESLint no-var
rule in the external/builder/
folder
#13097 Enable the ESLint no-var
rule in test/add_test.js
#13096 Enable the ESLint no-var
rule in the test/stats/
folder
#13095 Enable linting of the external/cmapscompress/
folder
#13098 Enable the ESLint no-var
rule in the external/
folder
#13094 Enable the no-var
linting rule for src/core/{operator_list, pattern}.js
#13101 print: Remove invalid @supports condition.
#13100 print: Ensure print containers have the right size and don't create overflow.
#13102 print: RFC: Center when printing a PDF with smaller size than the output page.
#13104 Ensure that printing, triggered from scripting, won't accidentally throw in PDFScriptingManager._updateFromSandbox
#13106 Support LineAnnotation
s with empty /Rect-entries (issue 6564)
#13069 [api-minor]XFA - Add a layer to display XFA forms
#13119 Actually reset the PDFPageProxy._xfaPromise
property as intended (PR 13069 follow-up)
#13120 Rotate landscape pages, during printing, by default in the viewer (enablePrintAutoRotate = true
)
#13116 Enable scripting by default in the viewer (PR 13053 follow-up)
#13113 Ignore some scripting events which don't make sense in PresentationMode
#13105 Improve memory usage around the BasePdfManager.docBaseUrl
parameter (PR 7689 follow-up)
#13118 Add landmark region and aria-label for each page.
#13124 Tweak the pre-processor condition, for Node.js environments, in the animationStarted
helper (issue 13057)
#13117 Re-factor the default preferences generation to support build targets (PR 10548)
#13126 Update packages and translations
#13125 Don't provide the enableXfa
parameter to the BaseViewer
constructor, and avoid the fallback bar with enableXfa = true
set (PR 13069 follow-up)
#13135 Fix typo in pdf_history.js
#13128 Re-factor how the BasePreferences.prefs
-property is initialized; remove some indirect loops
#13082 XFA - Convert some template properties into CSS ones
#13149 Set CFF header to 4 when writing it because it contains 4 elements
#13140 [GrabToPan] Remove more IE-specific code, and remove unconditional browser sniffing
#13145 print: Improve rendering of oversized pages.
#13144 [GrabToPan] Use Element.matches()
rather than prefixed ...matchesSelector
versions
#13138 [PDFHistory] Correctly ...
v2.7.570
This release features improved performance, font rendering, annotation rendering and form rendering/saving/printing (AcroForm). Moreover, it includes initial support for scripting in a sandbox (disabled by default). Finally, support for IE 11 and non-Chromium-based Edge is dropped.
Changes since v2.6.347:
#12323 Bump versions in pdfjs.config
#12326 Revert "Download, rather than opening, PDF attachments in Firefox (bug 1661259, PR 12286 follow-up)"
#12330 Update packages and translations
#12329 Rename the --outline-...
CSS variables to --treeitem-...
instead (PR 11077 follow-up)
#12328 Remove code-paths only relevant for IE 11/Edge (non-Chromium based) from the web/
folder
#12331 [api-minor] Only support browsers/environments that have basic support for Promise
natively
#12336 Remove, manually implemented, DOM polyfills only necessary for IE 11 support
#12269 Add support for missing appearances for hightlights, strikeout, squiggly and underline annotations.
#12339 Support broken /FitH destinations that are missing the "top" value (bug 1663390)
#12343 Remove some code/comments relevant for old (pre-Chromium) versions of Opera
#12344 Save form data in XFA datasets when pdf is a mix of acroforms and xfa
#12345 Don't try to save something for a button which is neither a checkbox nor a radio
#12354 Ensure that the container
div, on BaseViewer
-instances, is absolutely positioned
#12352 Remove CSS variables feature-testing from PDFSidebarResizer
#12356 Set the modification date to the current day when saving
#12349 Follow-up comments on PR #12344
#12357 PDF names need to be escaped when saving
#12360 Reset cursor position when focus is out of text field
#12362 Let the loadingBar have the same width as the viewerContainer
#12364 Dict keys need to be escaped too when saving
#12365 Ensure that the length
property won't be accidentally accessed on a DecodeStream
-instance
#12363 canvas: Properly restore all the remaining items in stateStack in endDrawing
#12368 Revert "canvas: Properly restore all the remaining items in stateStack in endDrawing"
#12372 Skip failing FBF tests, when running makeref
, in Firefox as well
#12374 Replace \n and \r by \n and \r when saving a string
#12370 Implement resetting of created streams for annotations
#12361 Ensure that all necessary /Font resources are included when saving a WidgetAnnotation
-instance (issue 12294)
#12377 Set parent of radio annotation even if there is no 'V' field
#12375 Ensure that the empty dictionary won't be accidentally modified, and slightly improve the "SaveDocument" handler in src/core/worker.js
#12369 canvas: fix restore() with existing SMask groups and re-land #12363.
#12388 Refactor the container/viewer checks in the BaseViewer constructor
#12387 Use the same kind of strings for radio values
#12393 Prevent errors if the InkList
property, in InkAnnotations, is missing and/or not an Array (issue 12392)
#12396 Update packages and translations
#12397 Update the webpack-stream
dependency (issue 11996)
#12414 Need to reset the streams when printing
#12409 Compute the transformOrigin
correctly, for negative values, when rendering AnnotationElement
s (bug 1627030)
#12417 Remove the PDFPageView.{error, stats}
properties, and some related viewer clean-up
#12405 Fixed keydown event handling problem with shadow DOM.
#12423 Update escodegen
to version 2.0
#12422 Don't trigger searching, in the GENERIC
viewer, when Shift is used together with the regular keyboard shortcut (issue 12421)
#12419 Use the cidToGidMap
, if it exists, when building the glyph mapping for non-embedded composite fonts (issue 12418)
#12426 Re-factor how printing is triggered in the default viewer
#12439 Add version
/build
info at the top of the built web/viewer.js
file
#12436 Enable the ESLint no-var
rule in the src/shared/
folder
#12333 Add tooltip if any in annotations layer
#12437 Enable the ESLint no-var
rule in the src/display/
folder
#12441 Re-factor how the ESLint no-var
rule is enabled in the src/
folder
#12442 Upgrade Puppeteer to version 5.3.1
#12444 Update packages and translations
#12445 Upgrade minor/major versions of dependencies that don't require code changes
#12446 [Firefox] Stop logging RenderingCancelledException
s as errors when printing
#12448 Enable the ESLint no-debugger
and no-alert
rules
#12450 Fix invalid XUID
entries in CFF fonts
#12451 Upgrade acorn
to version 8
#12454 Upgrade terser
to version 5
#12458 Add local caching of TilingPatterns in PartialEvaluator.getOperatorList
(issue 2765 and 8473)
#12470 Upgrade webpack
to version 5
#12476 Remove the scope
parameter from the "GetOperatorList" handler in src/core/worker.js
(PR 11110 follow-up)
#12477 Handle WorkerTask
s, and various PDF document properties, correctly in the "SaveDocument" handler in src/core/worker.js
#12429 [api-minor] Add the possibility to collect Javascript actions
#12479 Fix the "should get form info when AcroForm is present" unit-test
#12478 Convert PartialEvaluator.translateFont
to an async
method
#12486 Stop caching the parsed Font data on its Dict
object (PR 7347 follow-up)
#12483 Don't store complex data in PDFDocument.formInfo
, and replace the fields
object with a hasFields
boolean instead
#12481 Get urls if any in AA::D dictionary for pushbuttons
#12485 [api-minor] JS - Add a function in api to get the fields ids in AcroForm::CO
#12489 Add a test for pdfDocument::fieldObjects
#12491 Update packages and translations
#12493 Support adding pages, in addition to regular destinations, to the browser history and use it with thumbnails (issue 12440)
#12515 Enable the unicorn/no-abusive-eslint-disable
ESLint plugin rule
#12503 [api-minor] Invalidate an annotation with no quadPoints (when it's required)
#12432 JS - Add the basic architecture to be able to execute embedded js
#12516 Prevent issues, in PDFDocument.fieldObjects
, for invalid Annotations
#12526 Improve argument/name handling when parsing TilingPatterns (PR 12458 follow-up)
#12524 A couple of small (viewer) tweaks of tooltip-only Annotations (PR 12333 follow-up)
#12522 Fix a couple of edge-cases in PDFViewerApplication._initializeJavaScript
(PR 12432 follow-up)
#12464 Fix getVisibleElements helper in RTL-locales
#12508 Fallback font for buttons must be ZapfDingbats.
#12528 Convert var
to const
/let
in the test/unit
folder
#12529 Tweak the pdf.scripting.js
bundling, to improve overall consistency
#12527 Remove SystemJS usage from the development viewer and the unit-tests
#12534 Ensure that MurmurHash3_64.update
handles ArrayBuffer
input correctly, to avoid hash-collisions (issue 12533)
#12532 Modernize, and remove SystemJS usage from, the font-tests
#12540 Ensure that the same version of PDF.js is used in both the API and the Viewer (PR 8959 follow-up)
#12539 Use standard import
statements more when running the unit-tests
#12395 Render not displayed annotations in using normal appearance when printing
#12542 Add a MurmurHash3_64.update
unit-test for TypedArrays which share the same underlying ArrayBuffer (PR 12534 follow-up)
#12543 Use a Map
, rather than an Object
, internally in the Catalog.openAction
getter (PR 11644 follow-up)
#12551 Fix some errors reported by the ESLint no-useless-escape
rule
#12525 [api-minor] Implement API to get MarkInfo from the catalog.
#12552 Miscellaneous (small) improvements in src/core/annotation.js
#12560 Update npm
packages
#12561 Fix some static analyzer warnings (issue 11965)
#12562 Try adding a very basic lgtm.yml
file, to prevent LGTM complaining about unused variables (issue 11965)
#12555 Replace css color rgb(...) by #...
#12559 Also update the browser history when the user manually change pages using the pageNumber-input (PR 12493 follow-up)
#12505 [api-minor] Split highlight annotation div into multiple divs
#12572 Change the getVisibleElements
helper function to take a parameter object
#12568 [api-minor] JS -- Add default value in annotation data
#12583 Add global caching, for /Resources without blend modes, and use it to reduce repeated fetching/parsing in PartialEvaluator.hasBlendModes
#12564 Make sure that Popup is rendered next to trigger for textAnnotation
#12530 JS -- Add 'util' object
#12591 Improve the Pattern-detection in CanvasGraphics.stroke
#12594 Enable the ESLint no-useless-escape
rule (PR 12551 follow-up)
#12595 Convert files in the src/display/
-folder to use optional chaining where possible
#12598 Fail early, in modern GENERIC
builds, if globalThis
isn't available (PR 11799 follow-up, issue 12596)
#12546 [api-minor] JS -- Add listener for sandbox events only if there are some actions
#12582 JS -- Implement doc object
#12585 Fix popup for highlights without popup (follow-up of #12505)
#12613 Trigger cleanup, once rendering has finished, in PDFThumbnailView.draw
#12616 Improve the cleanup functionality for thumbnails
#12618 Ensure that rendering of thumbnails work correctly on HiDPI displays (issue 9820)
#12621 Follow-up for #12585: set elements class in render instead of in _createQuadrilaterals
#12622 Some hasJSActions
, and general annotation-code, related cleanup in the viewer and API
#12624 Update packages and translations
#12569 JS -- Fix events dispatchment and add tests
#12625 Add a new preference, viewerCssTheme
, to allow forcing the use of the light/dark viewer CSS themes (issue 12290)
#12630 Reduce, now unnecessary, asynchronicity in the BasePreferences
constructor
#12636 Add an AppOptions.setAll
method, and use it in PDFViewerApplication._readPreferences
#12567 [api-minor] JS -- hidden annotations must be built in case a script show them
#12604 JS -- Add a sandbox based on quickjs
#12642 [api-minor] Add "contentLength" to the information returned by the getMetadata
method
#...
v2.6.347
This release features support for form filling (AcroForm) and layers (optional content). Moreover, the default viewer is redesigned to match Firefox's Photon design, TypeScript definitions are shipped and various performance improvements and bugfixes are included.
Changes since v2.5.207:
#11948 Bump versions in pdfjs.config
and update the getting started page of the website for the new release
#11958 [api-minor] Remove the deprecated PDFDocumentProxy.getOpenActionDestination
method (PR 11644 follow-up)
#11967 Do not transform jpeg RGB components
#11964 Fix pdfjs-dist/webpack causing errors with certain configs
#11953 For #11838: trigger fallback bar after user clicks in pdf
#11972 Change the loadedChunks
property, on ChunkedStream
instances, from an Array to a Set
#11963 Avoid calling Math.pow if possible.
#11974 A couple of small image caching/sending improvements
#11976 Remove unused methods from NetworkManager
, in src/display/network.js
#11978 Improve unit test coverage for primitives
#11977 Convert the RefSet
primitive to a proper class and use a Set
internally
#11985 Convert some Object
s to Map
s in ChunkedStreamManager
, and move the isEmptyObj
helper function to the test utils
#11987 Update SVGGraphics
to account for globally cached images (PR 11912 follow-up)
#11992 Prevent the (old) preprocessor from appending trailing whitespace when removing closing HTML comments
#11993 Change the dependencies
property, on OperatorList
instances, from an Object to a Set
#11969 For #11961: collect telemetry on all unique unsupported features that…
#11997 Add basic support for the nullish coalescing operator ??
#11999 Update packages and translations
#12000 Ensure that PDFImage.buildImage
won't accidentally swallow errors, e.g. from ColorSpace parsing (issue 6707, PR 11601 follow-up)
#12001 Add local caching of ColorSpace
s, by name, in PartialEvaluator.getOperatorList
(issue 2504)
#12002 Small improvements in CFFCompiler.encodeNumber
and CFFCompiler.encodeFloat
#12004 Convert the code in src/core/worker.js
to use ES6 classes
#12005 Convert the code in src/core/cff_parser.js
to use ES6 classes
#12017 Convert the PDFPageProxy.intentStates
property from an Object
to a Map
#12016 Tweak the QueueOptimizer
to recognize OPS.paintImageMaskXObject
operators as repeated when the "skew" transformation matrix elements are non-zero (issue 8078)
#12021 Move the fetchBuiltInCMap
method to the PartialEvaluator.prototype
#12012 Improve (local) caching of parsed ColorSpace
s (PR 12001 follow-up)
#12024 Update Needle to 2.5.0 or greater.
#12028 Attempt to detect inline images which contain "EI" sequence in the actual image data (issue 11124)
#12032 Update packages and translations
#12041 Replace Mozilla Labs by just Mozilla
#12049 Enable the no-promise-executor-return
ESLint rule
#12036 Add at least some test-coverage for the RenderTask.onContinue
functionality
#12043 Add a reduced test-case for issue 4260 (PR 4521 follow-up)
#12044 Adjust the heuristics used when dealing with rectangles, i.e. re
operators, with zero width/height (issue 12010)
#12040 Replace non-inclusive "whitelist" term with "allowlist"
#12039 [api-minor] Use the NodeCanvasFactory
/NodeCMapReaderFactory
classes as defaults in Node.js environments (issue 11900)
#12034 Add local caching of Function
s, by reference, in the PDFFunctionFactory
(issue 2541)
#12057 Allow BaseLocalCache
to, optionally, only allocate storage for caching of references (PR 12034 follow-up)
#12059 Convert the code in src/core/image.js
to use ES6 classes
#12060 Convert the code in src/core/evaluator.js
to use standard classes
#12072 Bump npm from 6.14.5 to 6.14.6
#12056 Refactor/simplify the "delayedFallback" handling in the default viewer
#12070 Re-factor the idFactory
functionality, used in the core/
-code, and move the fontID
generation into it
#12083 Remove the IR (internal representation) part of the ColorSpace parsing
#12063 Tweak the heuristic, in src/core/jpg.js
, that handles JPEG images with a wildly incorrect SOF (Start of Frame) scanLines
parameter (issue 10989)
#12092 Update packages and translations
#12090 Stop special-casing the (very unlikely) "no /XObject
found"-scenario, when parsing OPS.paintXObject
operators, in PartialEvaluator.{getOperatorList, getTextContent}
#12099 Use a RefSet
, rather than a plain Object, for tracking already processed nodes in PartialEvaluator.hasBlendModes
#12085 Make the detection of Node.js environments on Electron strict.
#12089 Convert RefSetCache
to a proper class and to use a Map
internally
#12087 Add local caching of "simple" Graphics State (ExtGState) data in PartialEvaluator.{getOperatorList, getTextContent}
(issue 2813)
#12101 Add a new size
getter and getRawValues
method, to Dict
instances, to simplify some code
#12023 Fix auto-rotate for printing landscape PDFs where the first page is also landscape
#12114 Remove a couple of unnecessary PDFJSDev
checks from the viewer
#12106 [api-minor] Add an annotation storage in order to save annotation data in acroforms
#12122 Update packages and translations
#12124 Include the browser name when printing unit-test results
#12126 Attempt to reduce intermittent failures in the "cleans up document resources during rendering of page" unit-test
#12125 Improve test bot stability
#12127 Improve how Type3-fonts with dependencies are handled
#12135 [src/core/worker.js] Remove a useless Promise handler from the pdfManagerReady
function
#12136 Ignore fetch()
errors, in PDFFetchStreamRangeReader
, once the request has been aborted
#12107 Add support for checkboxes printing
#12143 Fix hanging reference test (PR 12107 follow-up)
#12141 Populate the find field with the search query when URL has #search hash
#12147 [api-minor] Fix the AnnotationStorage
usage properly in the viewer/tests (PR 12107 and 12143 follow-up)
#12144 Prevent Uncaught (in promise) AbortException
when running the unit-tests
#12148 Revert "Populate the find field with the search query when URL has #search hash"
#12131 [api-minor] Allow loading pdf fonts into another document.
#12151 Revert "[api-minor] Allow loading pdf fonts into another document."
#12153 Unit test improvements
#12108 Add support for radios printing
#12102 Add types annotations
#12162 Tweak for the type of PageViewportParameters.viewBox (PR 12102 follow-up)
#12161 Add types to functions exported as API in src/pdf.js (PR 12102 follow-up)
#12157 Fix the type of SVGGraphics (PR 12102 follow-up)
#12160 Use typedef to define the type of GlobalWorkerOptions (PR 12102 follow-up)
#12095 Add support for optional marked content.
#12156 Improve the types generation and API documentation (PR 12102 follow-up)
#12163 Re-factor the dispatching of "attachmentsloaded" events, when the PDF document contains no "regular" attachments
#12171 Attempt to reduce intermittent failures in the "multiple render() on the same canvas" unit-test
#12168 Fix the gulp types
task to run on Windows, and place the TypeScript definitions correctly in pdfjs-dist
#12172 Fix the type definition of TypedArray. (PR 12156 follow-up)
#12174 Do the AppOptions.get("printResolution")
lookup once in web/app.js
, when initializing PDFPrintServiceFactory
-instances, rather than for every printed page
#12173 [api-minor] Fix the annotationStorage
parameter in PDFPageProxy.render
#12179 Add support for Object.fromEntries
#12169 Extract common methods from PDFOutlineViewer
/PDFAttachmentViewer
into a new abstract BaseTreeViewer
class
#12175 Support textfield and choice widgets for printing
#12182 Fix the type of PDFDocumentLoadingTask.destroy.
#12154 [api-minor] Allow loading pdf fonts into another document.
#12187 Add a test-case for issue 4398
#12188 Update packages and translations
#12176 Support multiline textfields for printing
#12177 Support comb textfields for printing
#12186 Fix bad truetype loca tables.
#12192 A couple of (small) tweaks of the AnnotationStorage
(PR 12173 follow-up)
#12193 Set direction: ltr;
on the canvases used during printing (bug 1335712)
#12191 Remove the disableCreateObjectURL
option from web/app_options.js
#12137 Add support for saving forms
#12201 Enable renderInteractiveForms by default.
#12211 Wait until saving has finished before resetting PDFViewerApplication._saveInProgress
(PR 12137 follow-up)
#12212 Bug 1643508 - Disable touch-based pinch zooming on pdf.js.
#12210 Keep the original class/function names when minifying code (issue 12209)
#12203 Bug 1392361 - Fix zooming sensitivity on macOS
#12219 Add (basic) support for transfer functions to Images (issue 6931, bug 1149713)
#12227 Include image_decoders-es5
/minified-es5
in the pdfjs-dist
library (issue 12220)
#12229 Dispatch event when annotations have finished rendering.
#12230 Implement reference testing for printing
#12250 Update the zoom dropdown width calculation to work better in locales with long zoom-strings (PR 11077 follow-up)
#12251 Return the query with the findcontrolstate
#12241 confirm if leaving a modified form without saving
#12248 Support file save triggered from the Firefox integrated version.
#12247 Improve the field value parsing for choice widgets to handle null
values
#12256 #12241 followup - move event listener to PDFViewerApplication.load
#12244 fix webpack config problem caused by breaking changes of worker-loader
#12260 Replace menu dropdown icon
#12261 Also enable renderInteractiveForms
by default in the viewer components (PR 12201 follow-up)
#12265 Don't warn when navigating away from a modified form, if printing has occurred (issue 12262)
#12267 Update packages and translations
#12263 Fix AcroForm printing/saving edge cases
#12268 Reduce the leading padding for the numPages
span (PR 11077 follow-up)
#12270 Accent positioning in...
v2.5.207
This release features performance improvements thanks to improved image caching and JPEG decoding.
Changes since v2.4.456:
#11717 Bump versions in pdfjs.config
and update the getting started page of the website for the new release
#11719 Remove the unused wideChars
property on Font
instances
#11720 Update the eslint-plugin-no-unsanitized
package to the latest version
#11721 Don't let Travis run npm update
during setup
#11728 Remove unnecessary checks from the PDFDocumentProperties
constructor
#11724 Only build the necessary web/
files during the gulp default_preferences
task
#11723 Remove variable shadowing from the JavaScript files in the src/display/
folder
#11725 Re-factor PDFViewerApplication.load
such that {PDFViewer, PDFThumbnailViewer}.setDocument
happens slightly earlier
#11734 Remove old API methods which were previously converted to throwing (PR 11219 follow-up)
#11736 Add passive: false
to the wheel
event listener used in PDFPresentationMode
(issue 11735, PR 10765 follow-up)
#11742 Remove variable shadowing from the JavaScript files in the test/unit/
folder
#11738 Remove variable shadowing from the JavaScript files in the src/core/
folder
#11707 Always prefer the PDF.js JPEG decoder for very large images, in order to reduce peak memory usage (issue 11694)
#11744 The first glyph in CFF CIDFonts must be named 0 instead of ".notdef"
#11646 Ensure that automatic printing still works when the viewer and/or its pages are hidden (bug 1618621, bug 1618955)
#11747 Add passive: false
when removing wheel listeners
#11745 Enable the ESLint no-shadow
rule
#11755 Remove the unused sizes
and encoding
properties on Font
instances
#11767 Replace the RTL images with CSS transforms of the standard images (issue 11766)
#11655 [api-minor] Remove the getGlobalEventBus
viewer functionality, and the eventBusDispatchToDOM
option/preference (PR 11631 follow-up)
#11771 Fail early, in modern GENERIC
builds, if certain required browser functionality is missing (issue 11762)
#11772 Update packages and translations
#11769 Ensure that Font.charToGlyph
won't fail because String.fromCodePoint
is given an invalid code point (issue 11768)
#11781 Update the "gulp jsdoc" task to account for API changes in the mkdirp
package (PR 11772 follow-up)
#11780 Move the initialization of "page labels"/"metadata"/"auto print" out of PDFViewerApplication.load
#11773 [api-minor] Change Font.exportData
to use an explicit white-list of exportable properties, and stop exporting internal/unused properties
#11777 [api-minor] Change Font.exportData
to, by default, stop exporting properties which are completely unused on the main-thread and/or in the API (PR 11773 follow-up)
#11746 Create the glyph mapping correctly for composite Type1, i.e. CIDFontType0, fonts (issue 11740)
#11727 Add a heuristic to scale even single-char text, when the horizontal/vertical scaling differs significantly (issue 11713)
#11789 Add a new pdfjs.enablePermissions
preference, off by default, to allow the PDF documents to disable copying in the viewer (bug 792816)
#11797 Don't bundle the fallback grab
/grabbing
cursor images when running gulp mozcentral
#11799 Fail early, in modern GENERIC
builds, if certain required browser functionality is missing (PR 11771 follow-up)
#11800 Remove any mention of Gitpod from the README (issue 11732)
#11809 Update Prettier to version 2.0
#11806 [api-minor] Fix the return value of PDFDocumentProxy.getViewerPreferences
when no viewer preferences are present (PR 10738 follow-up)
#11810 A couple of small String.fromCodePoint
improvements (PR 11698 and 11769 follow-up)
#11805 Always skip over any additional, unexpected, RSTx (restart) markers in corrupt JPEG images (issue 11794)
#11813 Suppress browser autofill on page number
#11821 docs: Fix simple typo, occurences -> occurrences
#11819 [src/core/jpg.js] Remove redundant marker validation at the end of the decodeScan
function (PR 11805 follow-up)
#11818 Enable the dot-notation
ESLint rule
#11814 Support the vertical writing mode with SVG backend.
#11822 Update packages and translations
#11826 Change the "download" keyboard shortcut (Ctrl+S) handling, in GENERIC/CHROME builds, to utilize the EventBus
(issue 11657); add a new "openfile" keyboard shortcut (Ctrl+O), in GENERIC builds
#11823 [src/core/fonts.js] Improve the validateOS2Table
function and other code
#11825 Avoid reading the "disablePreferences"/"locale" options, when initializing the viewer, in extension builds
#11831 Use Node LTS releases to fix Travis CI builds (issue 10790)
#11835 [api-minor] Change PageViewport
to throw when the rotation
is not a multiple of 90 degrees
#11837 Always attempt to dispatch the "webviewerloaded" event at the embedding document
(PR 10318 follow-up, issue 11829)
#11844 [api-minor] Immediately release the font.data
property once the font been attached to the DOM (PR 11777 follow-up)
#11845 Use the native URL.createObjectURL
method more in the web/
folder
#11847 Move the maybeValidDimensions
check, used with JPEG images, to occur earlier (PR 11523 follow-up)
#11807 Introduce Puppeteer for handling browsers during tests
#11853 Include the name for interactive form elements
#11834 Preserve error types during translation
#11864 Remove the create-react-app
example (issue 11729)
#11868 Update packages and translations
#11869 Various smaller clean-up in gulpfile.js
#11863 Add more categories of unsupported features.
#11872 Gracefully handle annotation parsing errors in Page.getOperatorList
(issue 11871)
#11879 Enable the ESLint grouped-accessor-pairs
rule
#11873 Use the ESLint no-restricted-syntax
rule to ensure that assert
is always called with two arguments
#11880 Attempt to respect the "zoom" hash parameter, even when the "nameddest" parameter is present (issue 11875)
#11889 Handle errors individually for each annotation in the _parsedAnnotations
getter
#11890 Update ESLint to version 7
#11892 Add a minified-es5
gulp task (issue 11858)
#11905 Reduce the usage of require
statements in code-paths not protected by pre-processor and/or run-time checks
#11910 Update packages and translations
#11911 Remove the SystemJS dependency from the web/preferences.js
file
#11917 [Firefox] Allow PDF attachments to, once again, be opened directly in the browser (bug 1632644)
#11914 Convert the src/pdf.js
and src/pdf.worker.js
files to use standard import
/export
statements
#11919 Reduce usage of SystemJS, in the development viewer, even further
#11912 Attempt to cache repeated images at the document, rather than the page, level (issue 11878)
#11924 Avoid hanging the worker-thread for CMap data with ridiculously large ranges (issue 11922)
#11926 Allow GlobalImageCache.clear
to, optionally, only remove the actual data (PR 11912 follow-up)
#11601 [api-minor] Decode all JPEG images with the built-in PDF.js decoder in src/core/jpg.js
#11927 Implement fill opacity for shading patterns in the SVG back-end
#11939 Update Acorn to version 7
#11940 Add comments to the export
list in the src/pdf.js
file (PR 11914 follow-up)
#11930 Improve the local image caching in PartialEvaluator.getOperatorList
#11943 Remove unused code from the external/builder/builder.js
file
#11945 Update packages and translations
#11947 Ensure that that we don't attempt to cache inline images in the GlobalImageCache
(PR 11912 follow-up)
v2.4.456
From now on we produce a non-translated/non-polyfilled build for modern browsers by default. However, we also provide the translated/polyfilled build for older browsers in a separate bundle (with the -es5-dist.zip
suffix).
Changes since v2.3.200:
#11202 Bump versions in pdfjs.config
#11198 [PDFSidebarResizer] Add a couple of (small) readability improvements in the code
#11212 [MessageHandler] Some additional (small) clean-up of the code
#11213 Update the gulp importl10n
command to fetch the active language codes
#11186 Improve the heuristics, in PartialEvaluator._buildSimpleFontToUnicode
, for glyphNames of the Cdd{d}/cdd{d} format (issue 9655)
#11209 Use square brackets for optional properties in the JSDoc comments of src/display/api.js
#11222 Remove locales which are unmaintained and/or not shipping in Nightly (PR 11213 follow-up)
#11219 [api-minor] Replace all deprecated
calls with throwing of actual Error
s
#11218 Attempt to fallback to a default font, for non-available ones, in PartialEvaluator.loadFont
#11220 Added create react app example with typescript and basic usage
#11228 Enable the ESLint rule accessor-pairs
for Classes
#11232 Cache processed 'ExtGState's in PartialEvaluator.hasBlendModes
to avoid unnecessary parsing/lookups
#11234 Convert a number of reference tests, for documents with corrupt XRef tables, from load
to eq
#11237 Update src/shared/compatibility.js
to only run with SKIP_BABEL = false
set
#11235 Improve the JSDoc comments
#11246 Tweak the isIOS
check, in web/viewer_compatibility
, to attempt to support newer Safari versions (issue 11245)
#11247 Change variable assignment
#11253 Avoid handling keyboard shortcuts for contentEditable
DOM elements (issue 7156)
#11250 Silence the Autoprefixer message being printed with all build logs
#11256 [Firefox] Remove unused addon l10n
files (PR 9566 follow-up)
#11257 Remove/update skipPages
annotations from test/test_manifest.json
#11231 Allow over-writing entries, in XRef.indexObjects
, only when the generation number matches (issues 11230, 11139, 9552, 9129, 7303)
#11260 Update npm packages
#11243 Add a fallback for non-embedded composite Verdana fonts (issue 11242)
#11261 Re-factor sending of various Exceptions from the worker to the API
#11262 Re-add the en-US chrome.properties
l10n file, to avoid it being removed at mozilla-central (PR 11256 follow-up)
#11263 Attempt to reduce resource usage, by not eagerly fetching all pages, for long/large documents
#11268 refactor: viewer.css refactored, duplications removed
#11271 Re-factor StatTimer
usage, in src/display/api.js
, and remove DummyStatTimer
#11273 [api-minor] Support custom offsetX
/offsetY
values in PDFPageProxy.getViewport
and PageViewport.clone
#11282 Update l10n files
#11281 Support Blend Modes which are specified in an Array of Names (issue 11279)
#11283 Ensure that PartialEvaluator.hasBlendModes
handles Blend Modes in Arrays (PR 11281 follow-up)
#11284 Make the ObjectLoader
use more efficient methods when determining if data needs to be loaded
#11294 Remove some unused require
statements, used when loading fake workers, in non-PRODUCTION
mode
#11290 [MessageHandler] Re-factor and convert the code to a proper class
#11301 Ensure that the peekByte
methods, on the various Streams, handles end of data correctly (PR 5286 follow-up)
#11296 Allow skipping of errors when parsing broken/unsupported ColorSpaces (issue 6707, issue 11287)
#11302 Slightly re-factor setting of the link target
in addLinkAttributes
#11304 Re-factor the ObjectLoader._walk
method to be properly asynchronous
#11307 Support UTF-16 little-endian strings in the stringToPDFString
helper function (bug 1593902)
#11308 Prevent browser exceptions from incorrectly triggering the assert
in PDFPageProxy._abortOperatorList
(PR 11069 follow-up)
#11312 Convert Catalog.getPageDict
to an async
method
#11314 Revert "Convert Catalog.getPageDict
to an async
method"
#11313 Ensure that Popup annotations, where the parent annotation is a polyline, will always be possible to open/close (issue 11122)
#11305 Fix nodejs core module : ignore url module for web browser
#11315 Include a reduced test case for annotations without a Border
/BS
entry (PR 6180 follow-up)
#11300 Simplifies code contributions by automating the dev setup
#11316 Convert globalScope
and isNodeJS
to proper modules
#11318 [PDFHistory] Move the IE11 pushState
/replaceState
work-around to src/shared/compatibility.js
(PR 10461 follow-up)
#11317 Update npm packages
#11334 Use getBytes
, rather than looping over getByte
, in FlateStream.prototype.readBlock
#11335 Subtract stream.start
when getting the startXRef
property for documents with a Linearization dictionary (issue 11330)
#11346 Ensure that attempting to print with disableAutoFetch
set will fail gracefully (issue 11339)
#11338 Reduce duplication when registering event listeners for the Toolbar
buttons, and other small clean-up
#11350 Convert {BaseViewer, PDFThumbnailViewer}._pagesRequests
from an Array to a WeakMap
#11353 Remove document.attachEvent
code from web/pdf_print_service.js
since it's only necessary for old IE versions
#11325 Added custom file transform function
#11354 Enable the getter-return
, no-dupe-else-if
, and no-setter-return
ESLint rules
#11356 Remove outdated, and misleading, JSDoc comment from the PDFDocument
class
#11363 Remove the Number.isInteger
checks from XRef.fetchUncompressed
(PR 8857 follow-up)
#11370 Stop caching Streams in XRef.fetchCompressed
#11373 Slightly simplify the XRef cache lookup in XRef.fetch
#11374 Set the first pdfPage
immediately in {BaseViewer, PDFThumbnailViewer}.setDocument
#11382 Fix an incorrect condition in BaseViewer.isPageVisible
(PR 10217 follow-up)
#11388 Remove the viewer
option from the PDFPresentationMode
constructor
#11390 Ensure that PDFDocument.checkFirstPage
waits for cleanup to complete (PR 10392 follow-up)
#11391 [api-minor] Replace globalScope
with the standard globalThis
property instead
#11387 Handle corrupt ASCII85Decode inline images with truncated EOD markers (issue 11385)
#11398 Attempt to improve the PDFDocument
error message for empty files (issue 5887)
#11404 [api-minor] Move the ReadableStream
polyfill to the global scope
#11407 Bump npm from 6.13.0 to 6.13.4
#11406 Re-factor the find
helper function, in src/core/document.js
, to search through the raw bytes rather than a string
#11380 Add a reset
method to the PDFHistory
implementation
#11413 Re-factor the npm test
command, used by Travis, to avoid running the 'default_preferences' tasks concurrently (issue 10732)
#11415 Update npm
packages and l10n files
#11418 [api-minor] Simplify the fallback fake worker loader code in src/display/api.js
#11422 Use the strict
mode assert
in the pdf2png Node.js example (issue 10768)
#11425 Use const in viewer_compatibility.js
#11426 Use const in viewer.js
#11427 Use const in view_history.js
#11428 Use const in ui_utils.js
#11429 Use const in toolbar.js
#11436 Update webpack-stream to fix vulnerabiliy reported by npm and dedupe Webpack
#11440 Tweak the "gets page stats after rendering page, with pdfBug
set" unit-test to remove an intermittent failure on Travis
#11437 Extract & use createHeaders helper
#11431 Use const in secondary_toolbar.js
#11430 Use const in text_layer_builder.js
#11433 Use const in pdf_thumbnail_viewer.js
#11432 Use const in preferences.js
#11423 Ignore Metadata entries with incorrectly encoded characters, when setting the viewer title (bug 1605526)
#11443 Support OpenAction dictionaries without Type
entries when parsing Print
actions (issue 11442)
#11446 Enable auto-formatting of the entire code-base using Prettier (issue 11444)
#11445 Include a unit test for OpenAction dictionaries without Type
entries (PR 11443 follow-up)
#11449 Move the regular expression, used with auto printing in the viewer, to web/ui_utils.js
and also use it in the API unit-tests
#11450 Enable the ESLint prefer-const
rule in the web/
directory
#11454 Move the SegoeUISymbol font to the getNonStdFontMap
(PR 8698 follow-up)
#11455 Update npm
packages and l10n files
#11447 Convert all non-RGBA colors to RGBA colors
#11463 [Firefox] Ensure that telemetry will be correctly recorded even when the PDF header is missing (bug 1606566)
#11472 Update the year in the license_header
files
#11466 [Firefox] Slightly simplify how the generator is determined, when sending telemetry data from the viewer
#11474 [api-minor] Remove the Webpack-only npm dependencies from pdfjs-dist
(PR 11418 follow-up)
#11465 Ensure that all import
and require
statements, in the entire code-base, have a .js
file extension
#11488 Enable the no-nested-ternary
ESLint rule in the web/
directory
#11505 Enable the ESLint no-unneeded-ternary
rule
#11504 Add direction: ltr;
to the canvases used in examples/learning
, to ensure correct text rendering (issue 11457)
#11503 Remove the unused id
properties from page and thumbnail canvas/image DOM elements (issue 11499)
#11520 Update the GlobalWorkerOptions.workerSrc
JSDoc comment
#11521 Remove the supportsDocumentColors
warning in MOZCENTRAL builds (bug 844349 follow-up)
#11519 Enable import/extensions of ESlint plugin to enforce all import
have a .js
file extension.
#11522 Ensure that the viewer telemetry reporting, and fallback code, runs in development mode and GENERIC builds
#11510 Skip failing FBF tests in Google Chrome when running makeref
on the bots
#11529 Display the CSS tab in the interactive examples (issue 11506 follow-up)
#11502 Fix a couple of cases where Prettier broke existing formatting (PR 11446 follow-up)
#11511 Enable the no-nested-ternary
ESLint rule (PR 11488 follow-up)
#11497 Add support for `Promise.allSett...
v2.3.200
Changes since v2.2.228:
#10960 Bump versions in pdfjs.config
#10963 Ensure that PDFViewerApplication.{zoomIn, zoomOut}
won't run when PesentationMode is active (PR 10652 follow-up)
#10959 Remove the data-pdfjsprinting
attribute on the <body>
when destroying FirefoxPrintService
/PDFPrintService
instances (issue 10948)
#10962 Prevent "Uncaught promise" messages in the console when cancelling TextLayer
tasks (PR 10601 follow-up)
#10964 Bump lodash from 4.17.10 to 4.17.14
#10958 Remove the intentState.receivingOperatorList
boolean since it's redundant
#10850 Scale stroking line width when using a tiling pattern.
#10851 Apply bounding box before using shading patterns.
#10950 Fixed testing webserver to handle paths correctly on Windows
#10966 Add timestamp to the page rendered event.
#10968 Remove useless wrapReason
calls in the MessageHandler
class
#10970 Simplify, and inline, the finalize
function in the MessageHandler
class
#10969 Add an API unit-test for the stopAtErrors
option (PRs 8240 and 8922 follow-up)
#10974 Simplify the PDFDocument.fingerprint
method slightly
#10820 Annotations - Added parsing of IRT, RT, State and StateModel
#10987 Bump js-yaml from 3.12.0 to 3.13.1
#10990 Refactor the onBeforeDraw
/onAfterDraw
functionality used in BaseViewer
and PDFPageView
#10979 [Firefox] Re-factor the 'zoomreset' message handling in the viewer (PR 10652 follow-up)
#10986 Attempt to significantly reduce the number of ChunkedStream.{ensureByte, ensureRange}
calls by inlining the this.progressiveDataLength
checks at the call-sites
#10993 Add the docBaseUrl
API parameter to AppOptions
in the viewer
#10995 Remove an unnecessary PDFDocumentProperties.setFileSize
call, relevant for the Firefox built-in viewer, and use the "normal" code-path in PDFViewerApplication.open
instead
#11001 Inline the isCmd
check in the Parser.shift
method
#10996 Avoid creating a PDFFindBar
instance, in the Firefox built-in viewer, when not actually necessary
#11003 Ensure that setting the zoomDisabledTimeout
isn't skipped, regardless of the supported zoom keys, when handling mouse wheel events (PR 7097 follow-up)
#11012 Reduce the number of function calls in EvaluatorPreprocessor.read
#11019 Decode URL encoded filenames from content disposition headers
#11020 Add a work-around, in glyphlist.js
, for bad PDF generators which use a non-standard /f_f
string in the Encoding
dictionary when referring to the ff ligature (issue 11016)
#11033 Ensure that the loading indicator, in the pageNumber input, is hidden when the viewer is closed
#11029 [api-minor] Update telemetry to use 'categorical' histograms.
#11034 Ensure that ReadableStream
s are cancelled with actual Errors
#11038 [api-minor] Fix completely broken getStats
method by returning stats in Objects, rather than in Arrays (PR 11029 follow-up)
#11013 [api-minor] Implement quadpoints for annotations in the core layer
#11048 Use more compact keys in PDFLinkService._pagesRefCache
#11049 Add page rendered timestamp to telemetry.
#11047 Support corrupt PDF files with invalid/non-existent Group /CS entries (issue 11045)
#11051 Actually compare the cropBox
and mediaBox
correctly in the Page.view
getter
#11057 Handle some corrupt/truncated JPEG images that are missing the EOI (End of Image) marker (issue 11052)
#11059 Fallback gracefully when encountering corrupt PDF files with empty /MediaBox and /CropBox entries
#11062 Miscellaneous small clean-up of code in the web/
folder
#11064 Convert the src/shared/util.js
file to ES6 syntax
#11070 Inline the isString
check in the Parser.getObj
method
#11073 Move polyfill for codePointAt to String prototype.
#11076 Replace the XRef.cache
Array with a Map instead
#11081 added in information about pdfjs/webpack
#11079 [TextLayer] Only cache the current textDiv
style when enhanceTextSelection
is enabled and use template strings in expandTextDivs
#11087 Add a way to disable external links.
#11086 [TextLayer] Only cache the originalTransform
when enhanceTextSelection
is enabled
#11091 [TextLayer] Only handle positive padding values in expandTextDivs
#11090 [TextLayer] Use an Array to build the total transform
, rather than concatenating Strings, in expandTextDivs
#11093 Shorthand afterPrint signature in app.js
#11092 [TextLayer] Use an Array to build the total padding
, rather than concatenating Strings, in expandTextDivs
#11069 Use streams for OperatorList chunking (issue 10023)
#11096 Update translations/packages and upgrade to eslint
version 6
#11095 Include a reduced, non-linked PDF file for the attachments API unit test
#11097 [TextLayer] Only measure the width of the text, in _layoutText
, for multi-char text divs
#11102 Bump mixin-deep from 1.3.1 to 1.3.2
#11104 [TextLayer] Avoid unnecessary font updates in _layoutText
and remove setAttribute
usage in appendText
#11107 Various MessageHandler
improvements when using Streams
#11110 Remove support for the scope
parameter in the MessageHandler.on
method
#11111 Inline the resolveCall
helper function at its call-sites in MessageHandler
#11112 Remove the API/Worker version warning message in TESTING
mode
#11108 Use more ES6 syntax in the annotation code
#11115 Ensure that Error
s are handled correctly when using postMessage
with Streams in MessageHandler
#11123 [api-minor] Remove the postMessageTransfers
parameter, and thus the ability to manually disable transferring of data, from the API
#11118 Transfer, rather than copy, CMap data to the worker-thread
#11127 Update the eslint-plugin-mozilla
to the latest version (PR 10905 follow-up)
#11129 Prevent "offsetParent is not set -- cannot scroll" errors when the viewer loads in e.g. a hidden <iframe>
#11133 Enable the no-async-promise-executor
ESLint rule
#11130 Don't enqueue
unused properties when sending 'GetOperatorList' data from the worker-thread (PR 11069 follow-up)
#11138 [CRX] Ignore auto-generated from Chrome
#11134 Ensure that addLinkAttributes
is always called with a valid url
parameter
#11142 Stop dispatching a "localized" event from the webL10n library, since it's unused and may clash with the default viewer
#11106 Abort, with a small delay, getOperatorList
on the worker-thread when rendering is cancelled (PR 11069 follow-up)
#11145 Update translations and packages
#11155 Miscellaneous (small) clean-up of the MessageHandler
code
#11159 For Type1 fonts, replace missing font dictionary /Widths entries with ones from the font data (issue 11150)
#11158 Avoid floating point inaccuracy in gradient color stops
#11163 Fix the link in the doc website
#11146 Replace our URL
polyfill with the one from core-js
#11165 Enable a couple of return
related ESLint rules
#11168 Remove unmaintained localizations and update translations and packages
#11171 Fix the inconsistent return types for Dict.{get, getAsync}
#11173 Replace the bundled ReadableStream
polyfill with the web-streams-polyfill
npm package (issue 11157)
#11169 Reduce the number of function calls in the Dict
class
#11185 Convert the various ...Exception
s to proper classes, to reduce code duplication
#11182 Forbid sending of Dict
s and Stream
s, with postMessage
, when workers are disabled
#11187 Convert the various image decoder ...Error
s to classes extending BaseException
(PR 11185 follow-up)