feat(chromium): always inject paint-callback polyfill to cover waitDelay users

This commit is contained in:
Julien Neuhart
2026-04-24 14:30:45 +02:00
parent ce9c48b2b0
commit 200334197f
3 changed files with 32 additions and 19 deletions

View File

@@ -195,7 +195,7 @@ Feature: /forms/chromium/convert/html
Wait delay > 2 seconds or expression window globalVar === 'ready' returns true.
"""
Scenario: POST /forms/chromium/convert/html (paint-callback polyfill fires rAF / ResizeObserver / IntersectionObserver when waitForExpression is set)
Scenario: POST /forms/chromium/convert/html (paint-callback polyfill fires rAF / ResizeObserver / IntersectionObserver with waitForExpression)
Given I have a default Gotenberg container
When I make a "POST" request to Gotenberg at the "/forms/chromium/convert/html" endpoint with the following form data and header(s):
| files | testdata/paint-callbacks-html/index.html | file |
@@ -219,14 +219,30 @@ Feature: /forms/chromium/convert/html
io-fired
"""
Scenario: POST /forms/chromium/convert/html (paint-callback polyfill skipped without a readiness signal)
Given I have a Gotenberg container with the following environment variable(s):
| LOG_LEVEL | debug |
Scenario: POST /forms/chromium/convert/html (paint-callback polyfill fires rAF / ResizeObserver / IntersectionObserver with waitDelay and emulatedMediaType=print)
Given I have a default Gotenberg container
When I make a "POST" request to Gotenberg at the "/forms/chromium/convert/html" endpoint with the following form data and header(s):
| files | testdata/page-1-html/index.html | file |
| files | testdata/paint-callbacks-html/index.html | file |
| waitDelay | 3s | field |
| emulatedMediaType | print | field |
| Gotenberg-Output-Filename | foo | header |
Then the response status code should be 200
Then the Gotenberg container should log the following entries:
| paint-callbacks polyfill not requested |
Then the response header "Content-Type" should be "application/pdf"
Then there should be 1 PDF(s) in the response
Then there should be the following file(s) in the response:
| foo.pdf |
Then the "foo.pdf" PDF should have the following content at page 1:
"""
raf-fired
"""
Then the "foo.pdf" PDF should have the following content at page 1:
"""
ro-fired
"""
Then the "foo.pdf" PDF should have the following content at page 1:
"""
io-fired
"""
Scenario: POST /forms/chromium/convert/html (Wait For Selector)
Given I have a default Gotenberg container