1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 // This file defines dictionaries used by about:networking page.
8 dictionary SocketElement {
10 unsigned long port = 0;
11 boolean active = false;
17 [GenerateConversionToJS]
18 dictionary SocketsDict {
19 sequence<SocketElement> sockets;
24 dictionary HttpConnInfo {
25 unsigned long rtt = 0;
26 unsigned long ttl = 0;
27 DOMString protocolVersion = "";
30 dictionary DnsAndSockInfoDict {
31 boolean speculative = false;
34 dictionary HttpConnectionElement {
36 unsigned long port = 0;
37 DOMString httpVersion = "";
39 sequence<HttpConnInfo> active;
40 sequence<HttpConnInfo> idle;
41 sequence<DnsAndSockInfoDict> dnsAndSocks;
44 [GenerateConversionToJS]
45 dictionary HttpConnDict {
46 sequence<HttpConnectionElement> connections;
49 dictionary WebSocketElement {
50 DOMString hostport = "";
51 unsigned long msgsent = 0;
52 unsigned long msgreceived = 0;
54 double receivedsize = 0;
55 boolean encrypted = false;
58 [GenerateConversionToJS]
59 dictionary WebSocketDict {
60 sequence<WebSocketElement> websockets;
63 dictionary DnsCacheEntry {
64 DOMString hostname = "";
65 sequence<DOMString> hostaddr;
66 DOMString family = "";
67 double expiration = 0;
69 DOMString originAttributesSuffix = "";
73 [GenerateConversionToJS]
74 dictionary DNSCacheDict {
75 sequence<DnsCacheEntry> entries;
78 [GenerateConversionToJS]
79 dictionary DNSLookupDict {
80 sequence<DOMString> address;
82 boolean answer = false;
86 unsigned short type = 0;
89 dictionary SVCParamAlpn : SVCParam {
93 dictionary SVCParamNoDefaultAlpn : SVCParam {
96 dictionary SVCParamPort : SVCParam {
97 unsigned short port = 0;
100 dictionary SVCParamIPv4Hint : SVCParam {
101 sequence<DOMString> address;
104 dictionary SVCParamIPv6Hint : SVCParam {
105 sequence<DOMString> address;
108 dictionary SVCParamEchConfig : SVCParam {
109 DOMString echConfig = "";
112 dictionary SVCParamODoHConfig : SVCParam {
113 DOMString ODoHConfig = "";
116 dictionary HTTPSRecord {
117 unsigned short priority = 0;
118 DOMString targetName = "";
120 SVCParamNoDefaultAlpn noDefaultAlpn;
122 SVCParamIPv4Hint ipv4Hint;
123 SVCParamIPv6Hint ipv6Hint;
124 SVCParamEchConfig echConfig;
125 SVCParamODoHConfig ODoHConfig;
128 [GenerateConversionToJS]
129 dictionary HTTPSRRLookupDict {
130 DOMString error = "";
131 boolean answer = false;
132 sequence<HTTPSRecord> records;
135 [GenerateConversionToJS]
136 dictionary ConnStatusDict {
137 DOMString status = "";
140 dictionary RcwnPerfStats {
141 unsigned long avgShort = 0;
142 unsigned long avgLong = 0;
143 unsigned long stddevLong = 0;
146 [GenerateConversionToJS]
147 dictionary RcwnStatus {
148 unsigned long totalNetworkRequests = 0;
149 unsigned long rcwnCacheWonCount = 0;
150 unsigned long rcwnNetWonCount = 0;
151 unsigned long cacheSlowCount = 0;
152 unsigned long cacheNotSlowCount = 0;
153 // Sequence is indexed by CachePerfStats::EDataType
154 sequence<RcwnPerfStats> perfStats;