Julien Neuhart
de572fe6b5
refactor(gotenberg): thread engine label into NewProcessSupervisor
2026-06-02 19:25:47 +02:00
Julien Neuhart
8e1ab0110f
refactor(chromium): classify Pdf and Screenshot errors and set span error.type
2026-06-02 19:05:34 +02:00
Julien Neuhart
7967035981
fix(chromium): downgrade pinning-proxy dial logs for client-cancelled requests
2026-05-26 19:39:19 +02:00
Julien Neuhart
27e70fde46
fix(chromium): stop pinning proxy when chromedp start fails
2026-05-22 09:44:25 +02:00
Julien Neuhart
2a9bf6bf11
fix(chromium): register lifecycle listeners before navigate to close race
2026-05-22 09:39:25 +02:00
Julien Neuhart
7f9c3e171c
fix(chromium): downgrade pinning-proxy logs for client-cancelled requests
2026-05-21 18:30:06 +02:00
Heorhii Ovcharenko
c1cdcbdaab
feat(chromium): allow to specify device scale ratio for screenshots ( #1543 )
2026-05-04 21:16:04 +02:00
Julien Neuhart
45b9f32351
refactor(chromium): drop paint-callback polyfill now that chromedp is pinned
2026-04-30 14:16:59 +02:00
Julien Neuhart
cc97cb7e59
docs(chromium): tighten paint-polyfill always-on godoc per CONTRIBUTING style
2026-04-24 14:33:02 +02:00
Julien Neuhart
200334197f
feat(chromium): always inject paint-callback polyfill to cover waitDelay users
2026-04-24 14:30:45 +02:00
Julien Neuhart
05465b3a74
docs(chromium): tighten paint-polyfill godoc per CONTRIBUTING style [skip ci]
2026-04-24 12:51:09 +02:00
Julien Neuhart
1c0ff24c4b
feat(chromium): inject paint-callback polyfill when waitForExpression or waitForSelector is set
2026-04-24 12:14:52 +02:00
Julien Neuhart
8f711b0f99
Revert "feat(chromium): skip lifecycle waits when waitForExpression or waitForSelector is set"
...
This reverts commit 430f95f79f .
2026-04-24 11:19:14 +02:00
Julien Neuhart
430f95f79f
feat(chromium): skip lifecycle waits when waitForExpression or waitForSelector is set
2026-04-24 09:28:27 +02:00
Julien Neuhart
7a914fce65
fix(outbound)!: per-module deny-private-ips and deny-public-ips, permissive defaults
2026-04-23 20:01:27 +02:00
Julien Neuhart
a2a8c42457
fix(chromium): default-deny file:// sub-resources when no prefix is allowed
2026-04-22 07:47:19 +02:00
Julien Neuhart
c204cadfc5
fix(pdfengines): require uploaded stamp/watermark file for image or pdf source
2026-04-22 07:47:19 +02:00
Julien Neuhart
35f1a990a6
fix(chromium): harden outbound URL handling
2026-04-22 07:47:19 +02:00
hubert.lenoir
3187980ead
feat: add embeds metadata
2026-04-16 17:28:16 +02:00
Julien Neuhart
924576d3d4
fix(outboundURLs): better detaults
2026-04-11 13:05:05 +02:00
Julien Neuhart
e4a43434dc
docs: improve godoc and documentation [skip ci]
2026-04-03 14:23:18 +02:00
Julien Neuhart
cfb48d9af4
fix(regex): add timeout
2026-04-02 21:58:44 +02:00
Julien Neuhart
7549a69f71
feat(otel): switch from software name to binary path
2026-03-28 13:31:28 +01:00
Julien Neuhart
ebf0548d19
refactor: switch from multierr to errors.join
2026-03-27 22:14:01 +01:00
Julien Neuhart
d3a65a587c
feat(supervisor): optional idle shutdown
2026-03-27 21:16:49 +01:00
Julien Neuhart
8f7c1c98ad
fix(api): handle correctly filename that takes more that 200 bytes
2026-03-27 20:55:50 +01:00
Julien Neuhart
40d75882a2
fix(chromium): better singlePage handling - accounting for margins now
2026-03-27 19:50:20 +01:00
Julien Neuhart
0b33be17a4
fix(chromium): waitForSelector and waitForExpression poll indefinitely when the main page returns a bad HTTP status (e.g., 500)
2026-03-27 17:32:27 +01:00
Julien Neuhart
c72be765b0
feat(otel): add more tracing when communicating with internal tools / external APIs
2026-03-27 16:50:24 +01:00
Julien Neuhart
4e9f63004d
feat(otel): add OpenTelemetry support
2026-03-27 16:28:45 +01:00
Julien Neuhart
08088c15f4
feat(chromium): skip or waits for networkIdle2 event
2026-03-27 11:01:39 +01:00
Julien Neuhart
06b2b2e10c
fix(chromium): better default security and DX for allow / deny lists
2026-03-27 09:47:21 +01:00
Julien Neuhart
410c1dfd7f
fix(pdfengines): single file for watermark/stamp, and add the feature to the downloadFrom one
2026-03-18 23:22:31 +01:00
Julien Neuhart
0663e5f92b
feat(pdfengines): add rotate feature
2026-03-18 22:36:20 +01:00
Julien Neuhart
21e300fcec
fix(pdfengines): better workflow when applying PDF/A or PDF/UA compliance
2026-03-18 15:24:31 +01:00
Julien Neuhart
19db80bc2e
feat(pdfengines): add watermark and stamp feature
2026-03-18 04:46:12 +01:00
Julien Neuhart
2baa59cb3a
refactor(gofix): modernize
2026-02-20 21:21:19 +01:00
Daniel Moran
82401bdfdd
feat(chromium): add support for emulated media features in Chromium ( #1474 )
...
Closes https://github.com/gotenberg/gotenberg/issues/1460
It can be easier to print a "clean" PDF of some pages if you emulate
media features like `prefers-reduced-motion`. Add support for that
emulation.
2026-02-17 20:16:28 +01:00
Tom Brouws
12c25a2d21
feat(chromium): re-add concurrency support for Chromium ( #1467 )
...
* feat: add concurrency support to ProcessSupervisor
- Replace the single-slot mutex channel with a configurable semaphore to
allow multiple concurrent tasks.
- Add drain logic to ensure all active
tasks complete before process restarts.
* feat: add chromium-max-concurrency flag
- Add a --chromium-max-concurrency flag (1-6) to the Chromium module to
control how many conversions run in parallel.
- Update LibreOffice to pass maxConcurrency=1 as LibreOffice only supports
a single concurrent conversion.
* test: add integration tests for concurrent Chromium conversions
- Add concurrent request support to the integration test framework with
new step definitions for sending parallel requests and asserting on all
responses.
- Add a feature file for concurrent HTML to PDF conversions.
2026-02-13 10:00:58 +01:00
Daniel Moran
3220ca4140
feat(chromium): add waitForSelector option to Chromium conversions ( #1446 )
...
* Add `waitForSelector` option to Chromium conversions
Closes #960
As an alternative to waiting on an expression, this allows users to wait
for a specific node matching a selector to become visible in the HTML /
at the remote URL before converting to PDF.
* Fix style / prettify
2026-01-17 14:57:10 +01:00
markfrost
0b211c39eb
feat(chromium): add IgnoreResourceHttpStatusDomains option to filter out resources based on their hostnames ( #1434 )
...
* Introduced `IgnoreResourceHttpStatusDomains` option to filter out resources based on their hostnames
- Introduced `IgnoreResourceHttpStatusDomains` option to filter out resources based on their hostnames during HTTP status code checks.
- Updated relevant functions to handle domain normalization and matching.
- Enhanced the form data handling to include the new option.
- Added integration test scenario to verify the functionality of ignoring specified domains.
* Updated the `normalizeDomains` function to initialize the `normalized` slice with a predefined capacity based on the input `domains` slice length, improving memory allocation efficiency.
2025-12-25 15:36:45 +01:00
Julien Neuhart
8b9858aa66
fix(chromium): resource intensive health check
2025-12-03 22:34:39 +01:00
Alex Weston
15fdc99ec0
fix(chromium): add net::ERR_HTTP2_PROTOCOL_ERROR in the EventLoadingFailed list
2025-11-21 21:30:03 +01:00
Julien Neuhart
b2c3187690
fix(chromium): better native errors handling
2025-11-15 15:10:09 +01:00
Julien Neuhart
f9ad8bd2d5
test(integration): add more tags, complete embed feature tests suite, fix order with metadata
2025-11-13 22:08:28 +01:00
Hubert Lenoir
a0ee800002
feat(pdfengines): add embed feature
2025-11-05 13:57:23 +01:00
Julien Neuhart
0e6bb27ecf
fix(chromium): add missing wrapped error
2025-10-24 14:49:54 +00:00
Julien Neuhart
83fdc01df1
fix(chromium): accept case-insensitive values for the cookies' sameSite attribute - closes #1331
2025-10-24 14:46:14 +00:00
Julien Neuhart
c7ccabc6cb
fix(chromium): mark the flag --chromium-incognito as deprecated and ignore its value
2025-10-24 14:03:17 +00:00
Stevenson Michel
99307befdd
feat: add PDF encryption feature ( #1217 )
...
* Adding PDF encryption option
* LibreOffice
* QPDF
* PDFtk
* pdfcpu
* Update pkg/modules/pdfengines/pdfengines.go
Co-authored-by: Julien Neuhart <neuhart.julien@gmail.com >
* npx prettier
* go fmt
* PR comments
* Update test/integration/scenario/scenario.go
Co-authored-by: Julien Neuhart <neuhart.julien@gmail.com >
* renamed ProtectWithPassword to encrypt
* more clean up
* Use the same input path as requested
* This commit completes the encryption implementation
* Clean up. Added webhook, disable route and download from tests
---------
Co-authored-by: Julien Neuhart <neuhart.julien@gmail.com >
2025-09-04 14:49:04 +02:00