Intent to Ship: OffscreenCanvas on limited domains

123 views
Skip to first unread message

Andrew Osmond

unread,
Feb 17, 2022, 11:22:50 AM2/17/22
to dev-pl...@lists.mozilla.org
Last mid December in Firefox 97, we turned on OffscreenCanvas + WebGL in nightly in bug 1746110, and it was subsequently turned off in January. Ultimately, our conclusion was that it would break too many websites for users without the full Canvas2D support.

To that purpose, I landed partial support for Canvas2D in bug 1746750 [2], although it also remained turned off by default. There is more effort required to support text rendering from DOM worker threads -- we are working towards in 2022 so that we can ship the full feature to all users and domains.

In the meantime, we have been in contact with partners who are able to work within the current limitations of our OffscreenCanvas implementation. This will allow us to ship something sooner and impactful to users, similar to the origin trials done by Google with Chrome.

As such, I have turned on OffscreenCanvas for Zoom domains (*.zoom.us) as of bug 1751721 [3] in Firefox 99. You may notice the Zoom web client UI change as we now have access to gallery view with OffscreenCanvas. A few of us have been foxfooding it for the past few weeks, and I hope it is ready for a broader audience :).

If you encounter any problems, please block any bugs filed against bug 1390089 [4], the meta bug for OffscreenCanvas.

If you know of other potential partners who depend on WebGL and text-free Canvas2D, let the graphics team know!

Andrew Osmond

unread,
Feb 17, 2022, 11:29:09 AM2/17/22
to dev-pl...@lists.mozilla.org
Oh and I am remiss to not have noted the relevant prefs:

gfx.offscreencanvas.enabled: If true, force OffscreenCanvas on everywhere. Can be flipped without a restart.
gfx.offscreencanvas.domain-enabled: If true, allow OffscreenCanvas for domains on the allowlist. Can be flipped without a restart.
gfx.offscreencanvas.domain-allowlist: The set of domains (comma separated) that are allowed to use OffscreenCanvas. Requires a restart to update the list.
dom.workers.requestAnimationFrame: If true, allow request/cancelAnimationFrame to be used on DOM workers. While separate from OffscreenCanvas, it is a common dependency required to drive the rendering.
Reply all
Reply to author
Forward
0 new messages