chromium/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_module.idl

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://html.spec.whatwg.org/C/#the-offscreencanvas-interface

typedef (OffscreenCanvasRenderingContext2D or
         WebGLRenderingContext or
         WebGL2RenderingContext or
         ImageBitmapRenderingContext or
         GPUCanvasContext) OffscreenRenderingContext;
enum OffscreenRenderingContextType { "2d", "webgl", "webgl2", "bitmaprenderer", "webgpu" };

[
    ImplementedAs=OffscreenCanvasModule
] partial interface OffscreenCanvas {
    [CallWith=ScriptState, RaisesException] OffscreenRenderingContext? getContext(OffscreenRenderingContextType contextType, optional CanvasContextCreationAttributesModule attributes = {});
};