// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module network.mojom;
import "services/network/public/mojom/address_family.mojom";
import "services/network/public/mojom/transferable_socket.mojom";
// Interface to broker socket creation in the browser.
// Used on Windows and Android as a sandboxed network service
// cannot directly create sockets.
interface SocketBroker {
// Creates an unconnected TCP socket. Returns the
// SocketDescriptor and the net::Error.
CreateTcpSocket(AddressFamily address_family)
=> (TransferableSocket created_socket, int32 rv);
// Creates a UDP socket. Returns the
// SocketDescriptor and the net::Error.
CreateUdpSocket(AddressFamily address_family)
=> (TransferableSocket created_socket, int32 rv);
};