22406 Commits

Author SHA1 Message Date
Jonas Jenwald
302b4cb008
Merge pull request #21112 from Snuffleupagus/createNameTable-TypedArray
Use TypedArrays in the `createNameTable` function
2026-04-16 22:48:52 +02:00
calixteman
7c5f7876e9
Merge pull request #21108 from calixteman/parallelize_browser_tests
Add an option -j XX for browser tests in order to set the number of jobs
2026-04-16 21:30:45 +02:00
Tim van der Meij
5ec6ab1ab8
Merge pull request #21104 from calixteman/fix_focus
Fix integration tests failing because the focus isn't on the right element
2026-04-16 20:02:50 +02:00
Jonas Jenwald
92a0a91046 Pre-compute the length of more intermediate tables in createCmapTable (PR 21103 follow-up)
With the exception of `glyphsIds` the length of the other segments can be trivially determined upfront, which is obvious in hindsight. This way unnecessary allocations can be avoided when building the "cmap" table.
2026-04-16 11:46:59 +02:00
Jonas Jenwald
0a4e8d024d Use TypedArrays in the createNameTable function 2026-04-16 11:46:57 +02:00
Jonas Jenwald
445cb9abf9
Merge pull request #21103 from Snuffleupagus/TrueTypeTableBuilder-2
Use TypedArrays in the `createCmapTable` function
2026-04-16 11:44:14 +02:00
calixteman
9159afd633
Merge pull request #21107 from supermar1010/fix-savedocument-jsdoc
Fix saveDocument JSDoc return type
2026-04-15 22:14:39 +02:00
Jonas Jenwald
17a397ad63
Merge pull request #20958 from Snuffleupagus/rm-sumPrecise-polyfill
Remove the basic `Math.sumPrecise` polyfill
2026-04-15 19:57:06 +02:00
Jonas Jenwald
aced833344 Remove the basic Math.sumPrecise polyfill
This is already polyfilled properly via core-js in `legacy` builds, and the only reason that it wasn't already removed is that the tests (on the bots) use the "modern" builds and Chrome didn't support `Math.sumPrecise` until now; see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sumPrecise#browser_compatibility
2026-04-15 16:32:13 +02:00
Calixte Denizet
863b5d346e Add an option -j XX for browser tests in order to set the number of jobs
One browser per job is opened and will run a subset of the tests.
The goal is to make the tests significantly faster on machines with a good number of cpus.
2026-04-15 15:01:55 +02:00
Mario
9dd30474c2 Fix saveDocument JSDoc return type
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 14:51:39 +02:00
Calixte Denizet
733a9b55a6
Fix integration tests failing because the focus isn't on the right element 2026-04-14 21:31:13 +02:00
calixteman
59908ccad3
Merge pull request #21101 from calixteman/improve_smask
Improve SMask compositing by pre-baking backdrop and filter
2026-04-14 20:57:08 +02:00
Jonas Jenwald
b2cc9ae6d5 Move the string32 helper to the src/display/font_loader.js file
After the previous patches the `string32` helper function is now only used in the `FontLoader.prototype._prepareFontLoadEvent` method, which is stubbed out in the Firefox PDF Viewer, hence move it there instead to avoid bundling dead code.
2026-04-14 20:36:34 +02:00
Jonas Jenwald
cb935c35d3 Use TypedArrays in the createCmapTable function 2026-04-14 20:36:34 +02:00
Jonas Jenwald
f9ecebe63c Add a helper class for building TrueType font tables
This helps reduce the amount of boilerplate code needed in multiple spots throughout the font code, and more importantly it'll help when building TrueType tables whose final size is non-trivial to compute upfront.
2026-04-14 20:36:34 +02:00
Jonas Jenwald
7f7ac949ff
Merge pull request #21100 from Snuffleupagus/createTables-TypedArray
Use TypedArrays when building even more TrueType tables
2026-04-14 20:35:22 +02:00
Calixte Denizet
22a4bd79af
Improve SMask compositing by pre-baking backdrop and filter
remove as much as possible some intermediate canvases and avoid to use SVG filter
at each composition.
Rendering all the pages of issue17784.pdf takes 2x less time now.
2026-04-14 20:18:03 +02:00
calixteman
ee72d8d460
Merge pull request #21102 from nicolo-ribaudo/fix-pattern-fill-deps-tracking
Fix dependency tracking in pattern fill
2026-04-14 18:04:45 +02:00
Nicolò Ribaudo
2ad6b88850
Fix dependency tracking in pattern fill
1. Record `fill` dependencies even if we early return due to `isPatternFill``
2. Isolate the `drawPattern` inner `executeOperationList` in a
   `CanvasNestedDependencyTracker` so that it does not consume pending
   dependencies from the outer list.
2026-04-14 14:16:26 +01:00
Jonas Jenwald
634ce3c163 Convert the return value in createCmapTable and createNameTable to a TypedArray
Compared to the other TrueType table building functions, see previous patches, these ones are not trivial to convert to use TypedArrays properly.
However, in order to simplify the `OpenTypeFileBuilder` implementation a little bit we can at least have these functions return TypedArray data.
2026-04-14 12:28:45 +02:00
Jonas Jenwald
e8ed6c6e24 Use a TypedArray in the createOS2Table function 2026-04-14 10:43:42 +02:00
Jonas Jenwald
aa0bc24e95 Use a TypedArray in the createPostTable function 2026-04-14 10:43:42 +02:00
calixteman
419c2652c3
Merge pull request #21094 from calixteman/issue17784
Correctly sync the transform on the scratch canvas
2026-04-13 23:58:20 +02:00
calixteman
1025af059f
Merge pull request #21099 from calixteman/no_gpu
Use the gpu for drawing meshes only when it has more than 16 triangles (bug 2030745)
2026-04-13 23:55:52 +02:00
calixteman
865b48893a
Correctly sync the transform on the scratch canvas
It fixes #17784.
2026-04-13 23:54:53 +02:00
calixteman
d1ef620541
Merge pull request #21096 from calixteman/issue13520
Fix blending issues while compositing
2026-04-13 22:40:12 +02:00
Calixte Denizet
a2c57ee69e
Use the gpu for drawing meshes only when it has more than 16 triangles (bug 2030745)
And in order to slightly improve performances, move the figure creation in the worker.
2026-04-13 22:23:03 +02:00
calixteman
22bcaf5a8a Fix blending issues while compositing
It fixes #13520.
And remove dead code.
2026-04-13 22:12:04 +02:00
calixteman
b82ceda22b
Merge pull request #21060 from calixteman/implement_merge
Add the UI for merging PDFs (bug 2028071)
2026-04-13 21:37:02 +02:00
calixteman
2417d9aecb
Merge pull request #21098 from calixteman/rm_workaround_1820511
Remove the workaround for bug 1820511
2026-04-13 21:28:49 +02:00
Tim van der Meij
7aca886f2b
Merge pull request #21097 from Snuffleupagus/convert-tables-TypedArray
Use TypedArrays when building more TrueType tables
2026-04-13 21:07:07 +02:00
Calixte Denizet
8c9b819b4e
Add the UI for merging PDFs (bug 2028071) 2026-04-13 19:38:56 +02:00
Calixte Denizet
ec35057b46
Remove the workaround for bug 1820511 2026-04-13 16:49:07 +02:00
calixteman
96debf0c81
Merge pull request #21095 from calixteman/issue19634
Take into account CharProcs keys when computing the type3 hash
2026-04-13 16:09:21 +02:00
calixteman
052e29cc56
Take into account CharProcs keys when computing the type3 hash
It fixes #19634.
2026-04-13 14:49:39 +02:00
Jonas Jenwald
2437f5f961 Use a TypedArray when building the "head" TrueType table 2026-04-13 12:41:41 +02:00
Jonas Jenwald
5096982cfc Use a TypedArray when building the "hhea" TrueType table 2026-04-13 12:41:41 +02:00
Jonas Jenwald
0c789ecc97 Use a TypedArray when building the "maxp" TrueType table 2026-04-13 12:41:41 +02:00
Jonas Jenwald
aaaf143156 Use a DataView when building the "hmtx" TrueType table (PR 21072 follow-up) 2026-04-13 12:41:38 +02:00
Jonas Jenwald
652700dac6
Merge pull request #21078 from Snuffleupagus/isTrueTypeFile-rm-readUint32
Remove `readUint32` usage from the `isTrueTypeFile` function
2026-04-12 21:34:20 +02:00
Jonas Jenwald
2e5ab9c9eb Remove unused helper functions in src/core/core_utils.js
After recent patches, that added more `DataView` usage, these helper functions are now unused.
2026-04-12 19:52:02 +02:00
Jonas Jenwald
c92d4be973 Remove readUint32 usage from the isTrueTypeFile function
This is the only `readUint32` usage in the `src/core/fonts.js` file, and it can be trivially replaced with a string comparison.
2026-04-12 19:50:53 +02:00
Jonas Jenwald
169d8c9616
Merge pull request #21077 from Snuffleupagus/FontRendererFactory-DataView
Re-factor the `FontRendererFactory` class, and related code, to use `DataView`s when reading data
2026-04-12 19:50:06 +02:00
Tim van der Meij
8cfb1f8456
Merge pull request #21093 from timvandermeij/updates
Update dependencies to the most recent versions
2026-04-12 19:39:05 +02:00
Jonas Jenwald
a24d86e1cf Re-factor the FontRendererFactory class, and related code, to use DataViews when reading data 2026-04-12 18:34:19 +02:00
Tim van der Meij
88abcefea0
Merge pull request #21080 from calixteman/recursive_glyf
Avoid infinite recursion while compiling a glyph
2026-04-12 18:32:03 +02:00
Tim van der Meij
89b195d35c
Merge pull request #21092 from Snuffleupagus/AnnotationEditorLayer-stopEvent
Use the `stopEvent` helper function in the `AnnotationEditorLayer` class
2026-04-12 18:31:31 +02:00
Tim van der Meij
0d61268875
Merge pull request #21091 from calixteman/debbuger_array_content_stream
[Debugger] Fix the content stream rendering when it's a ref to an array
2026-04-12 16:29:28 +02:00
Tim van der Meij
d3b00c3b32
Upgrade babel-plugin-istanbul to version 8.0.0
This is a major version bump, but the changelog at
https://github.com/istanbuljs/babel-plugin-istanbul/releases/tag/v8.0.0
doesn't indicate any breaking changes that should impact us (the
dependency update meant a bump of the minimal required Node.js version
to 18, but our minimal supported version is already higher than that).
2026-04-12 16:17:03 +02:00