calixteman
399fce6471
Merge pull request #21010 from calixteman/ps_js
...
Add an interpreter for optimized ps code
2026-03-31 22:21:00 +02:00
calixteman
f33f816991
Merge pull request #21012 from calixteman/shading_function
...
Add support for function-based shadings (bug 1254066)
2026-03-31 22:08:17 +02:00
Calixte Denizet
9f3de1edf6
Add an interpreter for optimized ps code
...
It'll be used as a fallback when wasm is disabled.
And add in the debugger a view for the generated js code and one for the ps code.
2026-03-31 21:00:22 +02:00
Calixte Denizet
3727b7095a
Add support for function-based shadings (bug 1254066)
...
It fixes #5046 .
We just generate a mesh for the pattern rectangle where the color of each vertex is computed from the function.
Since the mesh is generated in the worker we don't really take into account the current transform when it's drawn.
That being said, there are maybe some possible improvements in using directly the gpu for the shading creation
which could then take into account the current transform, but it could only work with ps function we can convert
ino wgsl language and simple enough color spaces (gray and rgb).
2026-03-31 20:46:01 +02:00
Tim van der Meij
58b807d8e8
Merge pull request #21008 from calixteman/ast_cse
...
Avoid expressions duplication in the ps AST and use a local instead when compiling to WASM
2026-03-31 20:21:59 +02:00
Tim van der Meij
b0c0680bea
Merge pull request #18815 from calixteman/dont_always_use_pattern
...
Don't use an intermediate canvas when rendering a tiling pattern bigger than the rectangle to fill
2026-03-31 20:18:08 +02:00
Tim van der Meij
48228e2756
Merge pull request #21013 from calixteman/bug2026956
...
Add attachments when merging/reorganizing a pdf (bug 2026956)
2026-03-31 20:17:54 +02:00
Tim van der Meij
d1c3d3938e
Merge pull request #21007 from Snuffleupagus/Node-getReadableStream-simplify
...
[Node.js] Remove the `node-readable-to-web-readable-stream` polyfill
2026-03-31 20:03:40 +02:00
Calixte Denizet
5b8c04f383
Add attachments when merging/reorganizing a pdf (bug 2026956)
2026-03-31 14:48:06 +02:00
Calixte Denizet
4c019e7712
Don't use an intermediate canvas when rendering a tiling pattern bigger than the rectangle to fill
2026-03-30 18:38:56 +02:00
Calixte Denizet
63cf35b47f
Avoid expressions duplication in the ps AST and use a local instead when compiling to WASM
2026-03-30 16:30:33 +02:00
Jonas Jenwald
bfffb6c0f0
Import fs/promises directly in a few spots in the unit-tests
...
Also, use the existing PDF.js helper function to fetch text-data when running the "bidi" tests in browsers.
2026-03-30 14:34:53 +02:00
Jonas Jenwald
90fe6c70ff
[Node.js] Remove the node-readable-to-web-readable-stream polyfill
...
While `Readable.toWeb` wasn't marked as stable until more recently, the functionality itself has existed since Node.js version `17.0.0`; note https://nodejs.org/api/stream.html#streamreadabletowebstreamreadable-options
Hence the polyfill shouldn't actually be necessary, which is confirmed by the unit-tests passing in Node.js version `20` in GitHub Actions.
2026-03-30 13:45:13 +02:00
calixteman
a40b91f0bb
Merge pull request #21002 from calixteman/ps_eval
...
[api-minor] Rewrite the ps lexer & parser and add a small Wasm compiler
2026-03-30 09:23:13 +02:00
calixteman
952952c905
[api-minor] Rewrite the ps lexer & parser and add a small Wasm compiler
...
The main goal is to remove the eval-based interpreter.
In order to have some good performances, the new parser performs some optimizations
on the AST (similar to the ones in the previous implementation),
and the Wasm compiler generates code for the optimized AST.
For now, in case of errors or unsupported features, the Wasm compiler returns null
and the old interpreter is used as a fallback.
Few things are still missing:
- a wasm-based interpreter using a stack (in case the ps code isn't stack-free);
- a better js implementation in case of disabled wasm.
but they will be added in follow-up patches.
2026-03-30 09:22:33 +02:00
Tim van der Meij
cb2640dc33
Merge pull request #21004 from timvandermeij/bump
...
Bump the stable version in `pdfjs.config`
2026-03-29 20:48:47 +02:00
Tim van der Meij
806d071ea8
Bump the stable version in pdfjs.config
2026-03-29 20:45:34 +02:00
Tim van der Meij
ada3438039
Merge pull request #21001 from Snuffleupagus/getDestFromStructElement-unit-test
...
Add a unit-test for the `Catalog.#getDestFromStructElement` method
v5.6.205
2026-03-29 16:08:21 +02:00
Tim van der Meij
9026329d3d
Merge pull request #21003 from Snuffleupagus/applyOpacity-map
...
Simplify the `applyOpacity` helper function
2026-03-29 16:06:28 +02:00
Tim van der Meij
80d0d7349c
Merge pull request #20997 from Snuffleupagus/StatTimer-Map
...
Re-factor the `StatTimer` class a little bit
2026-03-29 16:05:15 +02:00
Tim van der Meij
37f5902c3c
Merge pull request #20996 from Snuffleupagus/more-logical-assignment
...
Use more logical assignment in the code-base
2026-03-29 16:03:40 +02:00
Tim van der Meij
8941695fe8
Merge pull request #20998 from Snuffleupagus/statcmp-import
...
Use a standard import for the `ttest` package in `test/stats/statcmp.js`
2026-03-29 16:01:34 +02:00
Tim van der Meij
cdae7a9b36
Merge pull request #20993 from mozilla/update-locales
...
l10n: Update locale files
2026-03-29 15:59:53 +02:00
Jonas Jenwald
498daadf3c
Simplify the applyOpacity helper function
...
This function only has a single call-site (if we ignore the unit-tests), where the colors are split into separate parameters.
Given that all the color components are modified in the exact same way, it seems easier (and shorter) to pass the colors as-is to `applyOpacity` and have it use `Array.prototype.map()` instead.
2026-03-29 14:52:06 +02:00
Jonas Jenwald
5d2c4ed211
Merge pull request #20999 from Snuffleupagus/getRGB-rgba-split-limit
...
Remove a tiny bit of unnecessary "rgba" parsing in the `getRGB` function
2026-03-29 14:04:52 +02:00
Jonas Jenwald
d1f15fe352
Add a unit-test for the Catalog.#getDestFromStructElement method
...
This code already has an integration-test, however also having a unit-test shouldn't hurt since those are often easier to run and debug (and it nicely complements the existing `outline` unit-tests).
The patch also makes the following smaller changes to the method itself:
- Avoid creating and parsing an empty Array, when doing the `pageRef` search.
- Use `XRef.prototype.fetch` directly, when walking the parent chain, since the check just above ensures that the value is a Reference.
- Use the `lookupRect` helper when parsing the /BBox entry.
2026-03-29 14:01:43 +02:00
Jonas Jenwald
8121bc0dd2
Remove a tiny bit of unnecessary "rgba" parsing in the getRGB function
...
This obviously won't matter in practice, however it seems more "correct" to only extract the necessary number of color components rather than slicing off excess ones at the end.
2026-03-29 12:13:59 +02:00
Jonas Jenwald
545656007b
Use a standard import for the ttest package in test/stats/statcmp.js
...
Since this code is quite old parts of it can also be simplified a little bit by using modern string methods, which removes the need for the `pad` helper function.
2026-03-29 11:53:44 +02:00
Jonas Jenwald
256be7f3a6
Remove manual loops in the StatTimer.prototype.toString method
...
We can use Array methods instead, which is a tiny bit shorter.
2026-03-27 15:35:25 +01:00
Jonas Jenwald
522f5f85b9
Re-factor the StatTimer class to track started times in a private Map
2026-03-27 15:35:23 +01:00
Jonas Jenwald
0060eeb726
Use more logical assignment in the code-base
2026-03-27 12:18:04 +01:00
github-actions[bot]
5836d3fc8f
l10n: Update locale files
2026-03-27 00:34:30 +00:00
calixteman
a9e439bce1
Merge pull request #20977 from calixteman/bug2026037
...
Use non-breakable spaces in options for the choice widget (bug 2026037)
2026-03-26 23:55:49 +01:00
Calixte Denizet
013a209e77
Use non-breakable spaces in options for the choice widget (bug 2026037)
...
Usual white spaces are collapsed.
2026-03-26 23:52:46 +01:00
calixteman
0128ead18a
Merge pull request #20985 from calixteman/bug2023150_2
...
Avoid to be blocked when searching after a page move (bug 2023150)
2026-03-26 23:28:33 +01:00
calixteman
47513119e8
Merge pull request #20991 from calixteman/bug2026639
...
Avoid to have multiple selected pages after copy/cut operations (bug 2026639)
2026-03-26 22:26:00 +01:00
calixteman
018c1539dd
Merge pull request #20957 from calixteman/issue20956
...
Break text chunks only if the base font is different
2026-03-26 22:24:23 +01:00
calixteman
27e619f00d
Merge pull request #20992 from calixteman/organize_avoid_exception
...
Avoid exception when cloning a page with some modified annotations
2026-03-26 22:15:06 +01:00
Calixte Denizet
2e3d79e616
Break text chunks only if the base font is different
...
It fixes #20956 .
2026-03-26 21:39:32 +01:00
calixteman
484518614d
Merge pull request #20976 from calixteman/bidi_tests
...
Add the bidi tests coming from BidiTest.txt and BidiCharacterTest.txt
2026-03-26 21:36:18 +01:00
Calixte Denizet
f98ce9ca85
Avoid to have multiple selected pages after copy/cut operations (bug 2026639)
2026-03-26 21:35:10 +01:00
calixteman
466c6263ad
Merge pull request #20974 from calixteman/bug2025674
...
Don't walk the children of a node having some attached MathML (bug 2025674)
2026-03-26 21:33:13 +01:00
Calixte Denizet
2b20e012bb
Avoid exception when cloning a page with some modified annotations
...
Some tests will come later.
2026-03-26 20:53:09 +01:00
Tim van der Meij
377f6d8b73
Merge pull request #20984 from calixteman/debugger_dont_update_canvas_view
...
Update the canvas detail view only when drawing is done
2026-03-26 20:41:22 +01:00
Tim van der Meij
a924af2e0b
Merge pull request #20990 from calixteman/bug2026564
...
Hide the new badge while a page is selected (bug 2026564)
2026-03-26 20:35:56 +01:00
Tim van der Meij
bf7d25b35c
Merge pull request #20975 from Snuffleupagus/AnnotationStorage-rm-typeof-function
...
Use optional chaining rather than `typeof` checks when invoking the `AnnotationStorage` callbacks
2026-03-26 20:35:24 +01:00
Tim van der Meij
f52a50ba09
Merge pull request #20986 from Snuffleupagus/FontInfo-readString-simplify
...
Reduce allocations in the `FontInfo.prototype.#readString` method (PR 20197 follow-up)
2026-03-26 20:34:03 +01:00
Tim van der Meij
8531947112
Merge pull request #20978 from calixteman/debugger_tree_whitespace
...
Debugger: in the tree view, display the white spaces as they're
2026-03-26 20:30:32 +01:00
Tim van der Meij
d3fd72e7e8
Merge pull request #20982 from calixteman/debugger_images_preview
...
Display mask in the tree view in the debugger
2026-03-26 20:29:42 +01:00
Tim van der Meij
5716b6e8b5
Merge pull request #20972 from Snuffleupagus/downloadFile-skip-duplicates
...
Avoid downloading test PDFs multiple times
2026-03-26 20:26:52 +01:00