Closed Bug 1789465 Opened 2 years ago Closed 2 years ago

Update PDF.js to new version 95e3f5d49510bfa3425d7bfb9ce8be48deac30c0 from 2022-09-06 12:21:52

Categories

(Firefox :: PDF Viewer, enhancement)

enhancement

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox106 --- affected

People

(Reporter: update-bot, Unassigned)

Details

(Whiteboard: [3pl-filed][task_id: HWgfwQyrRn2hf5s-pBUXLg])

This update covers 17 commits:


c70ceecff40275439516a89f54d69f24db8538f3 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/c70ceecff40275439516a89f54d69f24db8538f3
Authored: 2022-09-06 13:00:44 +0200
Committed: 2022-09-06 13:00:44 +0200

Remove the "tagged" telemetry-reporting

Given that this is no longer being recorded in Firefox, it shouldn't be necessary to keep the associated code in the default viewer.

Files Modified:

  • web/app.js

947d390421b61dedfcb79c209d49e43af0d05dbd by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/947d390421b61dedfcb79c209d49e43af0d05dbd
Authored: 2022-09-05 11:56:02 +0200
Committed: 2022-09-05 12:07:19 +0200

Fallback to a standard font when a Type1 font program is empty (issue 15292)

Please note: This is only a, hopefully generally helpful, work-around rather than a proper solution to issue 15292.

There's something that's "special" about the Type1 fonts in the referenced PDF document, since we don't manage to find any actual font programs and thus cannot render anything.
Given that it shouldn't make sense for a Type1 font program to ever be empty, since that means that there's no glyph-data to render, we simply fallback to a standard font to at least try and render something in these rare cases.

Files Added:

  • test/pdfs/issue15292.pdf.link

Files Modified:

  • src/core/type1_font.js
  • test/test_manifest.json

6c6f6fb2b89839e8ed5f57dc1d63f64a8686f393 by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/6c6f6fb2b89839e8ed5f57dc1d63f64a8686f393
Authored: 2022-09-04 12:47:45 +0200
Committed: 2022-09-04 14:21:05 +0200

Don't replace cr by a white space when the last char on the line is an ideographic char

Files Added:

  • test/pdfs/issue15340.pdf

Files Modified:

  • test/pdfs/.gitignore
  • test/unit/pdf_find_controller_spec.js
  • web/pdf_find_controller.js

a65cc8d26d9f0136086443f355d715f5e00a92f4 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/a65cc8d26d9f0136086443f355d715f5e00a92f4
Authored: 2022-09-04 10:07:52 +0200
Committed: 2022-09-04 10:16:40 +0200

Update l10n files

Files Modified:

  • l10n/eu/viewer.properties
  • l10n/nl/viewer.properties
  • l10n/oc/viewer.properties
  • l10n/si/viewer.properties

21042371e62fa962264d47dc1579eb84a4021fc5 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/21042371e62fa962264d47dc1579eb84a4021fc5
Authored: 2022-09-04 09:57:59 +0200
Committed: 2022-09-04 10:16:40 +0200

Update npm packages

Files Modified:

  • package-lock.json
  • package.json
  • web/base_viewer.js

12d60e0acf1d1fe3130df971b397555df4003136 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/12d60e0acf1d1fe3130df971b397555df4003136
Authored: 2022-09-03 22:55:24 +0200
Committed: 2022-09-03 23:11:42 +0200

Don't allow adjustToUnicode to extend a built-in /ToUnicode map (issue 15352)

Given that the change in PR 13393 was slightly speculative, given the lack of test-cases, let's just revert part of that to fix the referenced issue.
Based on a quick look at old issues and existing test-cases, it seems that most (if not all) PDF documents that benefit from using the font-data in this way lack any /ToUnicode maps which should mean that they're unaffected by these changes.

Files Added:

  • test/pdfs/issue15352.pdf.link

Files Modified:

  • src/core/fonts.js
  • test/test_manifest.json

5b903a6e2d427534deee104a2264bfd299cc61e0 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/5b903a6e2d427534deee104a2264bfd299cc61e0
Authored: 2022-09-03 13:05:59 +0200
Committed: 2022-09-03 13:05:59 +0200

Remove Bower support in pdfjs-dist

Given that the official Bower website, since almost five years, has been advising users to utilize other tools it doesn't seem entirely necessary to keep including the bower.json file in the pdfjs-dist repository; see e.g. https://bower.io/blog/2017/how-to-migrate-away-from-bower/

Files Modified:

  • gulpfile.js

2075800828ddc4d9498dd01b299097e4c9c17a94 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/2075800828ddc4d9498dd01b299097e4c9c17a94
Authored: 2022-09-02 18:15:42 +0200
Committed: 2022-09-02 18:15:42 +0200

Remove the browserify example

This patch proposes removing the browserify example for the following reasons:

  • The last browserify release was almost two years ago, according to both https://github.com/browserify/browserify/releases and https://www.npmjs.com/package/browserify?activeTab=versions
  • The project no longer seems to be actively maintained, since so far this year there's only been a single (seemingly trivial) patch merged; see https://github.com/browserify/browserify/commits/master
  • Because of the previous points browserify doesn't support modern and up-to-date JavaScript features, as evident from e.g. issue 14731 and multiple issues found in https://github.com/browserify/browserify/issues
  • Our browserify example is most likely not very commonly used, judging by the very low volume of issues/PRs related to it. Looking at the git history of that example the only changes have been lint- or maintenance-related.[1]
  • Providing an example for a framework that's no longer actively maintained doesn't seem like a good idea in general, since we probably don't want to steer users towards using (possibly) older frameworks.
  • Given that we've never used browserify in the PDF.js project, it's also quite difficult to provide support for the example.

[1] It's interesting to compare with the webpack example, since that's generated both issues and also PRs (for missing features) from users.

Files Deleted:

  • examples/browserify/.gitignore
  • examples/browserify/README.md
  • examples/browserify/gulpfile.js
  • examples/browserify/index.html
  • examples/browserify/main.js
  • examples/browserify/package.json
  • examples/browserify/worker.js

1b14b06e4c2d6f2d3283251373bd01ce382faa1c by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/1b14b06e4c2d6f2d3283251373bd01ce382faa1c
Authored: 2022-09-02 14:42:35 +0200
Committed: 2022-09-02 15:17:24 +0200

[Editor] Change the cursor when we switch to FreeText mode (bug 1787297)

Files Modified:

  • src/display/editor/annotation_editor_layer.js
  • src/display/editor/freetext.js
  • web/annotation_editor_layer_builder.css

ec165abfa13d6e8aa246c758b4cbfd2ca4e8094d by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/ec165abfa13d6e8aa246c758b4cbfd2ca4e8094d
Authored: 2022-09-02 12:42:25 +0200
Committed: 2022-09-02 12:42:25 +0200

Update editing icons (bug 1785248)

Files Added:

  • web/images/cursor-editorInk.svg

Files Modified:

  • web/annotation_editor_layer_builder.css
  • web/images/toolbarButton-editorFreeText.svg
  • web/images/toolbarButton-editorInk.svg

c4aa00bee120ef08762eed03e3bebf0d26010468 by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/c4aa00bee120ef08762eed03e3bebf0d26010468
Authored: 2022-09-01 19:34:30 +0200
Committed: 2022-09-01 19:34:30 +0200

[Editor] Remove some useless code (#15373 follow-up)

Files Modified:

  • src/display/editor/tools.js

b8fa7890224136b0c3614b005295c0d26485e515 by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/b8fa7890224136b0c3614b005295c0d26485e515
Authored: 2022-09-01 16:15:27 +0200
Committed: 2022-09-01 18:02:17 +0200

[Editor] Update some strings (bug 1787299)

Files Modified:

  • l10n/en-US/viewer.properties
  • src/display/editor/freetext.js
  • src/display/editor/ink.js
  • web/l10n_utils.js
  • web/viewer.html

cc4baa2fe9e49d69e06b25a1d2bf46c8fa3b0e39 by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/cc4baa2fe9e49d69e06b25a1d2bf46c8fa3b0e39
Authored: 2022-08-31 17:50:28 +0200
Committed: 2022-09-01 17:34:24 +0200

[api-minor] Add basic support for the SetOCGState action (issue 15372)

Note that this patch implements the SetOCGState-handling in PDFLinkService, rather than as a new method in OptionalContentConfig[1], since this action is nothing but a series of setVisibility-calls and that it seems quite uncommon in real-world PDF documents.

The new functionality also required some tweaks in the PDFLayerViewer, to ensure that the layersView in the sidebar is updated correctly when the optional-content visibility changes from "outside" of PDFLayerViewer.


[1] We can obviously move this code into OptionalContentConfig instead, if deemed necessary, but for an initial implementation I figured that doing it this way might be acceptable.

Files Added:

  • test/pdfs/issue15372.pdf

Files Modified:

  • src/core/catalog.js
  • src/display/annotation_layer.js
  • src/display/optional_content_config.js
  • test/pdfs/.gitignore
  • test/unit/api_spec.js
  • web/interfaces.js
  • web/pdf_layer_viewer.js
  • web/pdf_link_service.js
  • web/pdf_outline_viewer.js

372d4d64e3472426680119540d10cd4c46509ab2 by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/372d4d64e3472426680119540d10cd4c46509ab2
Authored: 2022-08-31 14:35:28 +0200
Committed: 2022-08-31 16:32:19 +0200

[Editor] Use the global clipboard for the copy/paste/cut operations

It slightly helps to reduce the code size and its complexity.
But the cool thing is that it allows to copy/paste some anntations from a pdf
to an other.

Files Modified:

  • src/display/editor/tools.js

e91d67563f99c08a56e77ca914aaf8666404f1d8 by Calixte Denizet

https://github.com/mozilla/pdf.jscommit/e91d67563f99c08a56e77ca914aaf8666404f1d8
Authored: 2022-08-31 10:28:47 +0200
Committed: 2022-08-31 10:28:58 +0200

[Editor] Avoid to update default params too early

Files Modified:

  • src/display/editor/tools.js

216b86a082c604719c34615f22911c2e93dcf87f by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/216b86a082c604719c34615f22911c2e93dcf87f
Authored: 2022-08-30 18:40:27 +0200
Committed: 2022-08-30 18:47:45 +0200

[api-minor] Support Named-actions in the outline (issue 15367)

Apparently this is implemented in e.g. Adobe Reader, and the specification does support it, however it cannot be commonly used in real-world PDF documents since it took over ten years for this feature to be requested.

Files Added:

  • test/pdfs/issue15367.pdf

Files Modified:

  • src/core/catalog.js
  • test/pdfs/.gitignore
  • test/unit/api_spec.js
  • web/pdf_outline_viewer.js

0ecf6458eec6a45ce7ffa14711ef13d3f21c539f by Jonas Jenwald

https://github.com/mozilla/pdf.jscommit/0ecf6458eec6a45ce7ffa14711ef13d3f21c539f
Authored: 2022-08-29 16:12:20 +0200
Committed: 2022-08-29 16:32:47 +0200

Properly ignore PopupAnnotations with custom trigger-elements

A number of Annotation-types are currently creating their own PopupAnnotations, since they need to use a custom trigger-element. However, because of where that check is currently implemented[1] we end up attaching empty/unused containers for those PopupAnnotations to the DOM[2]; see e.g. the annotation-line.pdf file in the test-suite for one example.

By instead moving the types-check into the PopupAnnotationElement constructor, we can completely skip those PopupAnnotations that are being explicitly handled elsewhere.
Note that I don't believe that this is a new issue, although I've not tried to bisect it, but this likely goes back quite some time (possibly even as far as PR 8228).


[1] In the PopupAnnotationElement.render method.

[2] Please note that the actual Popup-element itself isn't being attached/rendered here, just its container which by itself serves no purpose as far as I can tell.

Files Modified:

  • src/display/annotation_layer.js

Updatebot encountered an error while trying to submit to try.
Updatebot will be unable to do anything more for this library version.

Flags: needinfo?(cdenizet)

Here is the try run: https://treeherder.mozilla.org/jobs?repo=try&revision=fc8a76b1361bd0385ffe607dbda62e64aeba1d43

Filed https://github.com/mozilla-services/updatebot/issues/277 for this error.

Unfortunately I'm not going to be able to kick Updatebot into attaching the patch, but when I land the fix I could delete the job and that will force Updatebot to run again.

Flags: needinfo?(cdenizet)
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.