mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-08 14:03:49 +00:00
679b5e2db1
Backed out changeset b417c2d937e8 (bug 1485040) Backed out changeset c567c4c7438f (bug 1485040) Backed out changeset 806c36cb2c4c (bug 1485040) Backed out changeset 0fbb490ffc7f (bug 1485040) Backed out changeset a9622e7761eb (bug 1485040)
87 lines
3.6 KiB
Plaintext
87 lines
3.6 KiB
Plaintext
/* -*- 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
|
|
*/
|
|
|
|
[Constructor(DOMString url),
|
|
Constructor(sequence<DOMString> urls),
|
|
Pref="dom.presentation.controller.enabled"]
|
|
interface PresentationRequest : EventTarget {
|
|
/*
|
|
* 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);
|
|
};
|