summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/webtransport.idl
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/interfaces/webtransport.idl')
-rw-r--r--testing/web-platform/tests/interfaces/webtransport.idl151
1 files changed, 151 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/webtransport.idl b/testing/web-platform/tests/interfaces/webtransport.idl
new file mode 100644
index 0000000000..281c096d21
--- /dev/null
+++ b/testing/web-platform/tests/interfaces/webtransport.idl
@@ -0,0 +1,151 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: WebTransport (https://w3c.github.io/webtransport/)
+
+[Exposed=(Window,Worker), SecureContext]
+interface WebTransportDatagramDuplexStream {
+ readonly attribute ReadableStream readable;
+ readonly attribute WritableStream writable;
+
+ readonly attribute unsigned long maxDatagramSize;
+ attribute unrestricted double? incomingMaxAge;
+ attribute unrestricted double? outgoingMaxAge;
+ attribute unrestricted double incomingHighWaterMark;
+ attribute unrestricted double outgoingHighWaterMark;
+};
+
+[Exposed=(Window,Worker), SecureContext]
+interface WebTransport {
+ constructor(USVString url, optional WebTransportOptions options = {});
+
+ Promise<WebTransportConnectionStats> getStats();
+ readonly attribute Promise<undefined> ready;
+ readonly attribute WebTransportReliabilityMode reliability;
+ readonly attribute WebTransportCongestionControl congestionControl;
+ readonly attribute Promise<WebTransportCloseInfo> closed;
+ readonly attribute Promise<undefined> draining;
+ undefined close(optional WebTransportCloseInfo closeInfo = {});
+
+ readonly attribute WebTransportDatagramDuplexStream datagrams;
+
+ Promise<WebTransportBidirectionalStream> createBidirectionalStream(
+ optional WebTransportSendStreamOptions options = {});
+ /* a ReadableStream of WebTransportBidirectionalStream objects */
+ readonly attribute ReadableStream incomingBidirectionalStreams;
+
+ Promise<WebTransportSendStream> createUnidirectionalStream(
+ optional WebTransportSendStreamOptions options = {});
+ /* a ReadableStream of WebTransportReceiveStream objects */
+ readonly attribute ReadableStream incomingUnidirectionalStreams;
+ WebTransportSendGroup createSendGroup();
+
+ static readonly attribute boolean supportsReliableOnly;
+};
+
+enum WebTransportReliabilityMode {
+ "pending",
+ "reliable-only",
+ "supports-unreliable",
+};
+
+dictionary WebTransportHash {
+ DOMString algorithm;
+ BufferSource value;
+};
+
+dictionary WebTransportOptions {
+ boolean allowPooling = false;
+ boolean requireUnreliable = false;
+ sequence<WebTransportHash> serverCertificateHashes;
+ WebTransportCongestionControl congestionControl = "default";
+};
+
+enum WebTransportCongestionControl {
+ "default",
+ "throughput",
+ "low-latency",
+};
+
+dictionary WebTransportCloseInfo {
+ unsigned long closeCode = 0;
+ USVString reason = "";
+};
+
+dictionary WebTransportSendStreamOptions {
+ WebTransportSendGroup? sendGroup = null;
+ long long sendOrder = 0;
+ boolean waitUntilAvailable = false;
+};
+
+dictionary WebTransportConnectionStats {
+ unsigned long long bytesSent;
+ unsigned long long packetsSent;
+ unsigned long long bytesLost;
+ unsigned long long packetsLost;
+ unsigned long long bytesReceived;
+ unsigned long long packetsReceived;
+ DOMHighResTimeStamp smoothedRtt;
+ DOMHighResTimeStamp rttVariation;
+ DOMHighResTimeStamp minRtt;
+ WebTransportDatagramStats datagrams;
+ unsigned long long? estimatedSendRate;
+};
+
+dictionary WebTransportDatagramStats {
+ unsigned long long expiredOutgoing;
+ unsigned long long droppedIncoming;
+ unsigned long long lostOutgoing;
+};
+
+[Exposed=(Window,Worker), SecureContext, Transferable]
+interface WebTransportSendStream : WritableStream {
+ attribute WebTransportSendGroup? sendGroup;
+ attribute long long sendOrder;
+ Promise<WebTransportSendStreamStats> getStats();
+};
+
+dictionary WebTransportSendStreamStats {
+ unsigned long long bytesWritten;
+ unsigned long long bytesSent;
+ unsigned long long bytesAcknowledged;
+};
+
+[Exposed=(Window,Worker), SecureContext]
+interface WebTransportSendGroup {
+ Promise<WebTransportSendStreamStats> getStats();
+};
+
+[Exposed=(Window,Worker), SecureContext, Transferable]
+interface WebTransportReceiveStream : ReadableStream {
+ Promise<WebTransportReceiveStreamStats> getStats();
+};
+
+dictionary WebTransportReceiveStreamStats {
+ unsigned long long bytesReceived;
+ unsigned long long bytesRead;
+};
+
+[Exposed=(Window,Worker), SecureContext]
+interface WebTransportBidirectionalStream {
+ readonly attribute WebTransportReceiveStream readable;
+ readonly attribute WebTransportSendStream writable;
+};
+
+[Exposed=(Window,Worker), Serializable, SecureContext]
+interface WebTransportError : DOMException {
+ constructor(optional DOMString message = "", optional WebTransportErrorOptions options = {});
+
+ readonly attribute WebTransportErrorSource source;
+ readonly attribute unsigned long? streamErrorCode;
+};
+
+dictionary WebTransportErrorOptions {
+ WebTransportErrorSource source = "stream";
+ [Clamp] unsigned long? streamErrorCode = null;
+};
+
+enum WebTransportErrorSource {
+ "stream",
+ "session",
+};