// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // https://github.com/WICG/direct-sockets/blob/main/docs/explainer.md#tcp enum SocketDnsQueryType { "ipv4", "ipv6" }; dictionary SocketOptions { [EnforceRange] unsigned long sendBufferSize; [EnforceRange] unsigned long receiveBufferSize; }; dictionary TCPSocketOptions : SocketOptions { boolean noDelay = false; [EnforceRange] unsigned long keepAliveDelay; SocketDnsQueryType dnsQueryType; }; dictionary UDPSocketOptions : SocketOptions { DOMString remoteAddress; [EnforceRange] unsigned short remotePort; DOMString localAddress; [EnforceRange] unsigned short localPort; SocketDnsQueryType dnsQueryType; // TODO(crbug.com/1413161): Implement ipv6Only support. boolean ipv6Only; boolean multicastAllowAddressSharing; [EnforceRange] octet multicastTimeToLive; boolean multicastLoopback; }; dictionary TCPServerSocketOptions { [EnforceRange] unsigned short localPort; [EnforceRange] unsigned long backlog; // TODO(crbug.com/1413161): Implement ipv6Only support. boolean ipv6Only; };