Adding support for storing webrtc logs locally with an extension supplied unique...
[chromium-blink-merge.git] / net / interfaces / host_resolver_service.mojom
blob249fa0707d3396f7dfdb412aed41b55fdb2401ae
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // WARNING! Do NOT use this mojom. It is intended as a temporary interface to
6 // implement out-of-process proxy resolution. If you wish to use a Mojo DNS
7 // service, contact amistry@/sammc@ and net-dev to discuss a permanent Mojo DNS
8 // interface.
10 // Put Mojo definitions into their own namespace to avoid collisions with C++
11 // definitions.
12 // TODO(amistry): Resolve the conflict between these two sets of definitions.
13 module net.interfaces;
15 // Mirror of net::AddressFamily.
16 enum AddressFamily {
17   UNSPECIFIED,
18   IPV4,
19   IPV6,
22 // Mirror of net::HostResolver::RequestInfo.
23 struct HostResolverRequestInfo {
24   string host;
25   uint16 port;
26   AddressFamily address_family;
27   bool is_my_ip_address;
30 // Mirror of net::IPEndPoint.
31 struct IPEndPoint {
32   // IP address as a numeric value from most to least significant byte.
33   // Will be of length 4 for IPv4 addresses and 16 for IPv6.
34   array<uint8> address;
35   uint16 port;
38 // Mirror of net::AddressList.
39 struct AddressList {
40   array<IPEndPoint> addresses;
43 interface HostResolver {
44   // Use a HostResolverRequestClient instead of returning a result so we can
45   // cancel in-flight requests by destroying the client.  IPC requests in Mojo
46   // cannot be cancelled directly.
47   // TODO(amistry): Add BoundNetLog.
48   Resolve(HostResolverRequestInfo request_info,
49           HostResolverRequestClient client);
52 interface HostResolverRequestClient {
53   // |error| is a value in net::Error.
54   ReportResult(int32 error, AddressList? result);