diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/webidl/PresentationRequest.webidl | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | dom/webidl/PresentationRequest.webidl | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/dom/webidl/PresentationRequest.webidl b/dom/webidl/PresentationRequest.webidl new file mode 100644 index 0000000000..2a114cc3ba --- /dev/null +++ b/dom/webidl/PresentationRequest.webidl @@ -0,0 +1,90 @@ +/* -*- 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 + * https://w3c.github.io/presentation-api/#interface-presentationrequest + */ + +[Pref="dom.presentation.controller.enabled", + Exposed=Window] +interface PresentationRequest : EventTarget { + [Throws] + constructor(DOMString url); + [Throws] + constructor(sequence<DOMString> urls); + + /* + * A requesting page use start() to start a new connection, and it will be + * returned with the promise. UA may show a prompt box with a list of + * available devices and ask the user to grant permission, choose a device, or + * cancel the operation. + * + * The promise is resolved when the presenting page is successfully loaded and + * the communication channel is established, i.e., the connection state is + * "connected". + * + * The promise may be rejected duo to one of the following reasons: + * - "OperationError": Unexpected error occurs. + * - "NotFoundError": No available device. + * - "AbortError": User dismiss/cancel the device prompt box. + * - "NetworkError": Failed to establish the control channel or data channel. + * - "TimeoutError": Presenting page takes too long to load. + * - "SecurityError": This operation is insecure. + */ + [Throws] + Promise<PresentationConnection> start(); + + /* + * A requesting page can use reconnect(presentationId) to reopen a + * non-terminated presentation connection. + * + * The promise is resolved when a new presentation connection is created. + * The connection state is "connecting". + * + * The promise may be rejected duo to one of the following reasons: + * - "OperationError": Unexpected error occurs. + * - "NotFoundError": Can not find a presentation connection with the presentationId. + * - "SecurityError": This operation is insecure. + */ + [Throws] + Promise<PresentationConnection> reconnect(DOMString presentationId); + + /* + * UA triggers device discovery mechanism periodically and monitor device + * availability. + * + * The promise may be rejected duo to one of the following reasons: + * - "NotSupportedError": Unable to continuously monitor the availability. + * - "SecurityError": This operation is insecure. + */ + [Throws] + Promise<PresentationAvailability> getAvailability(); + + /* + * It is called when a connection associated with a PresentationRequest is created. + * The event is fired for all connections that are created for the controller. + */ + attribute EventHandler onconnectionavailable; + + /* + * A chrome page, or page which has presentation-device-manage permissiongs, + * uses startWithDevice() to start a new connection with specified device, + * and it will be returned with the promise. UA may show a prompt box with a + * list of available devices and ask the user to grant permission, choose a + * device, or cancel the operation. + * + * The promise is resolved when the presenting page is successfully loaded and + * the communication channel is established, i.e., the connection state is + * "connected". + * + * The promise may be rejected duo to one of the following reasons: + * - "OperationError": Unexpected error occurs. + * - "NotFoundError": No available device. + * - "NetworkError": Failed to establish the control channel or data channel. + * - "TimeoutError": Presenting page takes too long to load. + */ + [ChromeOnly, Throws] + Promise<PresentationConnection> startWithDevice(DOMString deviceId); +}; |