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.
* 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.
* 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
* 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.
* only build debug info when log level is debug
* introduce new flag 'gotenberg-build-debug-data'
* add gotenberg-build-debug-data flag to Makefile
* add new integration test for gotenberg-build-debug-data flag
* update GET /debug (Enabled) test with gotenberg-build-debug-data flag
* reorder GOTENBERG_BUILD_DEBUG_DATA in Makefile
* reorder Build Debug Data Disabled test scenario
---------
Co-authored-by: Hector Zarate <hector@Hectors-MacBook-Pro.local>