| CARVIEW |
Select Language
HTTP/2 302
x-cloud-trace-context: 7274535997c66b521a38f64dbafaddab
location: /en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen
via: 1.1 google, 1.1 varnish, 1.1 varnish, 1.1 varnish, 1.1 varnish
accept-ranges: bytes
cache-control: no-store
server: Google Frontend
content-type: text/plain; charset=utf-8
date: Wed, 31 Dec 2025 11:27:34 GMT
x-served-by: cache-bfi-krnt7300096-BFI, cache-bfi-krnt7300061-BFI, cache-sin-wsat1880093-SIN, cache-bom-vanm7210051-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1767180454.342725,VS0,VE288
vary: Accept
content-length: 86
HTTP/2 200
x-content-type-options: nosniff
cache-control: public, max-age=3600
via: 1.1 google, 1.1 varnish, 1.1 varnish, 1.1 varnish, 1.1 varnish
x-cloud-trace-context: e6bd4e5929492aab8152ec797a929513
server: Google Frontend
last-modified: Wed, 31 Dec 2025 01:21:26 GMT
referrer-policy: strict-origin-when-cross-origin
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
content-type: text/html
etag: "3371230bd6fa1a7e98993826101db898"
strict-transport-security: max-age=63072000
expires: Wed, 31 Dec 2025 04:54:45 GMT
x-goog-meta-goog-reserved-file-mtime: 1767141876
x-goog-storage-class: STANDARD
x-frame-options: DENY
x-goog-metageneration: 1
x-goog-hash: crc32c=Y2tZAw==, md5=M3EjC9b6Gn6YmTgmEB24mA==
x-guploader-uploadid: AHVrFxO_9N1YPoE_jxoPLDYpBZyujEMkjMH5gNdZK1XIuJ0IiJSXuHfkl3hHrBpAhaVsJsC9kCEGmb4
x-goog-stored-content-encoding: identity
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://*.googletagmanager.com assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://*.googletagmanager.com assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' mdn.github.io *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-goog-generation: 1767144086543274
x-goog-stored-content-length: 146569
content-encoding: gzip
accept-ranges: bytes
age: 2641
date: Wed, 31 Dec 2025 11:27:34 GMT
x-served-by: cache-bfi-krnt7300094-BFI, cache-bfi-krnt7300094-BFI, cache-sin-wsss1830087-SIN, cache-bom-vanm7210051-BOM
x-cache: MISS, MISS, HIT, MISS
x-cache-hits: 0, 0, 5, 0
x-timer: S1767180455.644292,VS0,VE52
vary: Accept-Encoding
content-length: 19566
HTMLCanvasElement: transferControlToOffscreen() method - Web APIs | MDN
Toggle sidebar
>
HTMLCanvasElement: transferControlToOffscreen() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2023.
The HTMLCanvasElement.transferControlToOffscreen() method transfers control to an OffscreenCanvas object, either on the main thread or on a worker.
Syntax
js
transferControlToOffscreen()
Parameters
None.
Return value
An OffscreenCanvas object.
Exceptions
InvalidStateErrorDOMException-
Throws if:
- the canvas has been set a context mode by calling
HTMLCanvasElement.getContext() - the canvas has already transferred its control to offscreen.
- the canvas has been set a context mode by calling
Examples
The following example shows how to transfer control to an OffscreenCanvas object on the main thread.
js
const htmlCanvas = document.createElement("canvas");
const offscreen = htmlCanvas.transferControlToOffscreen();
const gl = offscreen.getContext("webgl");
// Some drawing using the gl context…
The following example shows how to transfer control to an OffscreenCanvas object on a worker.
js
const offscreen = document.querySelector("canvas").transferControlToOffscreen();
const worker = new Worker("my-worker-url.js");
worker.postMessage({ canvas: offscreen }, [offscreen]);
Specifications
| Specification |
|---|
| HTML> # dom-canvas-transfercontroltooffscreen-dev> |
Browser compatibility
See also
- The interface defining this method,
HTMLCanvasElement OffscreenCanvas