#import
#import
#import
// FIXME: This should be in OffscreenCanvasBase.idl but then it is not exported
// https://html.spec.whatwg.org/multipage/canvas.html#imageencodeoptions
dictionary ImageEncodeOptions {
DOMString type = "image/png";
unrestricted double quality;
};
// FIXME: This should be in OffscreenCanvasBase.idl but then it is not exported
// https://html.spec.whatwg.org/multipage/canvas.html#offscreenrenderingcontextid
enum OffscreenRenderingContextId { "2d", "bitmaprenderer", "webgl", "webgl2", "webgpu" };
// https://html.spec.whatwg.org/multipage/canvas.html#offscreencanvas
[Exposed=(Window,Worker), Transferable]
interface OffscreenCanvas : EventTarget {
constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height);
attribute unsigned long long width;
attribute unsigned long long height;
OffscreenRenderingContext? getContext(OffscreenRenderingContextId contextId, optional any options = null);
ImageBitmap transferToImageBitmap();
Promise convertToBlob(optional ImageEncodeOptions options = {});
attribute EventHandler oncontextlost;
attribute EventHandler oncontextrestored;
};