summaryrefslogtreecommitdiff
path: root/dom/webidl/PresentationConnection.webidl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webidl/PresentationConnection.webidl')
-rw-r--r--dom/webidl/PresentationConnection.webidl96
1 files changed, 96 insertions, 0 deletions
diff --git a/dom/webidl/PresentationConnection.webidl b/dom/webidl/PresentationConnection.webidl
new file mode 100644
index 0000000000..9676d20692
--- /dev/null
+++ b/dom/webidl/PresentationConnection.webidl
@@ -0,0 +1,96 @@
+/* -*- 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-presentationconnection
+ */
+
+enum PresentationConnectionState
+{
+ // The initial state when a PresentationConnection is ceated.
+ "connecting",
+
+ // Existing presentation, and the communication channel is active.
+ "connected",
+
+ // Existing presentation, but the communication channel is inactive.
+ "closed",
+
+ // The presentation is nonexistent anymore. It could be terminated manually,
+ // or either controlling or receiving browsing context is no longer available.
+ "terminated"
+};
+
+enum PresentationConnectionBinaryType
+{
+ "blob",
+ "arraybuffer"
+};
+
+[Pref="dom.presentation.enabled"]
+interface PresentationConnection : EventTarget {
+ /*
+ * Unique id for all existing connections.
+ */
+ [Constant]
+ readonly attribute DOMString id;
+
+ /*
+ * Specifies the connection's presentation URL.
+ */
+ readonly attribute DOMString url;
+
+ /*
+ * @value "connected", "closed", or "terminated".
+ */
+ readonly attribute PresentationConnectionState state;
+
+ attribute EventHandler onconnect;
+ attribute EventHandler onclose;
+ attribute EventHandler onterminate;
+ attribute PresentationConnectionBinaryType binaryType;
+
+ /*
+ * After a communication channel has been established between the controlling
+ * and receiving context, this function is called to send message out, and the
+ * event handler "onmessage" will be invoked at the remote side.
+ *
+ * This function only works when the state is "connected".
+ */
+ [Throws]
+ void send(DOMString data);
+
+ [Throws]
+ void send(Blob data);
+
+ [Throws]
+ void send(ArrayBuffer data);
+
+ [Throws]
+ void send(ArrayBufferView data);
+
+ /*
+ * It is triggered when receiving messages.
+ */
+ attribute EventHandler onmessage;
+
+ /*
+ * Both the controlling and receiving browsing context can close the
+ * connection. Then the connection state should turn into "closed".
+ *
+ * This function only works when the state is "connected" or "connecting".
+ */
+ [Throws]
+ void close();
+
+ /*
+ * Both the controlling and receiving browsing context can terminate the
+ * connection. Then the connection state should turn into "terminated".
+ *
+ * This function only works when the state is not "connected".
+ */
+ [Throws]
+ void terminate();
+};