CARVIEW |
Select Language
HTTP/2 301
content-security-policy: script-src 'sha256-1az3CiAdXAaMP3TFl5msfrDjNuSHMdg1ecAgxfZPR50=' 'unsafe-inline' 'strict-dynamic'; object-src 'none'; base-uri 'none'; report-uri https://csp.withgoogle.com/csp/chromium-website/
location: https://www.chromium.org/developers/design-documents/printing
content-type: text/plain; charset=utf-8
cross-origin-opener-policy-report-only: same-origin; report-to="gfe-default_product_name"
report-to: {"group":"gfe-default_product_name","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/default_product_name"}]}
accept-ranges: bytes
date: Sat, 11 Oct 2025 17:53:56 GMT
x-served-by: cache-bom-vanm7210053-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760205237.595008,VS0,VE123
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 76
HTTP/2 301
content-security-policy: script-src 'sha256-1az3CiAdXAaMP3TFl5msfrDjNuSHMdg1ecAgxfZPR50=' 'unsafe-inline' 'strict-dynamic'; object-src 'none'; base-uri 'none'; report-uri https://csp.withgoogle.com/csp/chromium-website/
location: /developers/design-documents/printing/
content-type: text/plain; charset=utf-8
accept-ranges: bytes
date: Sat, 11 Oct 2025 17:53:56 GMT
x-served-by: cache-bom-vanm7210028-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1760205237.768304,VS0,VE145
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 53
HTTP/2 200
cache-control: max-age=3600
content-encoding: gzip
content-security-policy: script-src 'sha256-1az3CiAdXAaMP3TFl5msfrDjNuSHMdg1ecAgxfZPR50=' 'unsafe-inline' 'strict-dynamic'; object-src 'none'; base-uri 'none'; report-uri https://csp.withgoogle.com/csp/chromium-website/
content-type: text/html; charset=utf-8
etag: "3dc096cababec773ed1d5e8b061bd28c2b78f7adecc67380494847ed834ccdad"
last-modified: Fri, 10 Oct 2025 02:31:02 GMT
strict-transport-security: max-age=31556926
accept-ranges: bytes
date: Sat, 11 Oct 2025 17:53:56 GMT
x-served-by: cache-bom-vanm7210028-BOM
x-cache: HIT
x-cache-hits: 0
x-timer: S1760205237.926556,VS0,VE1
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 1976
Printing

The Chromium Projects
Printing
- The printing is initiated by the yellow boxes; either by user intents or by script.
- The actual printer spooling is done in the print worker thread.
- The renderer thread is blocking the whole time, which could lead to
deadlock where:
- The renderer sends a sync message to the browser UI thread (which implicitly requires a round trip to the I/O thread)
- The browser thread displays a PrintDlgEx() dialog box for instance
- The tab client area (e.g. the HTML display area) receives a invalidation; requiring it to regenerate the display.
- (or) A windowed plugin receives a WM_PAINT window message.
- The windowed plugin calls NPAPI_ExecuteJavascript()
- This calls synchronously the renderer.
- But the renderer is not processing messages anymore -> Deadlock.
Because of this, there is work going on to not block the Renderer Thread by duplicating the WebViewImpl/WebFrameImpl and use the "inert" duplicate frame for the printing. This removes all the sync messages requirements.