diff options
Diffstat (limited to 'dom/webidl/HTMLCanvasElement.webidl')
-rw-r--r-- | dom/webidl/HTMLCanvasElement.webidl | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/dom/webidl/HTMLCanvasElement.webidl b/dom/webidl/HTMLCanvasElement.webidl new file mode 100644 index 0000000000..3de8401cb8 --- /dev/null +++ b/dom/webidl/HTMLCanvasElement.webidl @@ -0,0 +1,69 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * The origin of this IDL file is + * http://www.whatwg.org/specs/web-apps/current-work/#the-canvas-element + * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and + * Opera Software ASA. You are granted a license to use, reproduce + * and create derivative works of this document. + */ + +interface nsISupports; + +typedef (HTMLCanvasElement or OffscreenCanvas) CanvasSource; + +[Exposed=Window] +interface HTMLCanvasElement : HTMLElement { + [HTMLConstructor] constructor(); + + [CEReactions, Pure, SetterThrows] + attribute unsigned long width; + [CEReactions, Pure, SetterThrows] + attribute unsigned long height; + + [Throws] + nsISupports? getContext(DOMString contextId, optional any contextOptions = null); + + [Throws, NeedsSubjectPrincipal] + DOMString toDataURL(optional DOMString type = "", + optional any encoderOptions); + [Throws, NeedsSubjectPrincipal] + undefined toBlob(BlobCallback callback, + optional DOMString type = "", + optional any encoderOptions); +}; + +// Mozilla specific bits +partial interface HTMLCanvasElement { + [Pure, SetterThrows] + attribute boolean mozOpaque; + + attribute PrintCallback? mozPrintCallback; + + [Throws, Pref="canvas.capturestream.enabled", NeedsSubjectPrincipal] + CanvasCaptureMediaStream captureStream(optional double frameRate); +}; + +// For OffscreenCanvas +// Reference: https://wiki.whatwg.org/wiki/OffscreenCanvas +partial interface HTMLCanvasElement { + [Pref="gfx.offscreencanvas.enabled", Throws] + OffscreenCanvas transferControlToOffscreen(); +}; + +[ChromeOnly, + Exposed=Window] +interface MozCanvasPrintState +{ + // A canvas rendering context. + readonly attribute nsISupports context; + + // To be called when rendering to the context is done. + undefined done(); +}; + +callback PrintCallback = undefined(MozCanvasPrintState ctx); + +callback BlobCallback = undefined(Blob? blob); |