summaryrefslogtreecommitdiffstats
path: root/dom/system/gonk/nsINetworkInterface.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/gonk/nsINetworkInterface.idl')
-rw-r--r--dom/system/gonk/nsINetworkInterface.idl108
1 files changed, 108 insertions, 0 deletions
diff --git a/dom/system/gonk/nsINetworkInterface.idl b/dom/system/gonk/nsINetworkInterface.idl
new file mode 100644
index 000000000..bd40e751a
--- /dev/null
+++ b/dom/system/gonk/nsINetworkInterface.idl
@@ -0,0 +1,108 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISupports.idl"
+
+[scriptable, uuid(4816a559-5620-4cb5-8433-ff0b25e6622f)]
+interface nsINetworkInfo : nsISupports
+{
+ const long NETWORK_STATE_UNKNOWN = -1;
+ const long NETWORK_STATE_CONNECTING = 0;
+ const long NETWORK_STATE_CONNECTED = 1;
+ const long NETWORK_STATE_DISCONNECTING = 2;
+ const long NETWORK_STATE_DISCONNECTED = 3;
+ const long NETWORK_STATE_ENABLED = 4;
+ const long NETWORK_STATE_DISABLED = 5;
+
+ /**
+ * Current network state, one of the NETWORK_STATE_* constants.
+ *
+ * When this changes, network interface implementations notify with
+ * updateNetworkInterface() API.
+ */
+ readonly attribute long state;
+
+ const long NETWORK_TYPE_UNKNOWN = -1;
+ const long NETWORK_TYPE_WIFI = 0;
+ const long NETWORK_TYPE_MOBILE = 1;
+ const long NETWORK_TYPE_MOBILE_MMS = 2;
+ const long NETWORK_TYPE_MOBILE_SUPL = 3;
+ const long NETWORK_TYPE_WIFI_P2P = 4;
+ const long NETWORK_TYPE_MOBILE_IMS = 5;
+ const long NETWORK_TYPE_MOBILE_DUN = 6;
+ const long NETWORK_TYPE_MOBILE_FOTA = 7;
+ const long NETWORK_TYPE_ETHERNET = 8;
+
+ /**
+ * Network type. One of the NETWORK_TYPE_* constants.
+ */
+ readonly attribute long type;
+
+ /**
+ * Interface name of the network interface this network info belongs to.
+ */
+ readonly attribute DOMString name;
+
+ /**
+ * Get the list of ip addresses and prefix lengths, ip address could be IPv4
+ * or IPv6, typically 1 IPv4 or 1 IPv6 or one of each.
+ *
+ * @param ips
+ * The list of ip addresses retrieved.
+ * @param prefixLengths
+ * The list of prefix lengths retrieved.
+ *
+ * @returns the length of the lists.
+ */
+ void getAddresses([array, size_is(count)] out wstring ips,
+ [array, size_is(count)] out unsigned long prefixLengths,
+ [retval] out unsigned long count);
+
+ /**
+ * Get the list of gateways, could be IPv4 or IPv6, typically 1 IPv4 or 1
+ * IPv6 or one of each.
+ *
+ * @param count
+ * The length of the list of gateways
+ *
+ * @returns the list of gateways.
+ */
+ void getGateways([optional] out unsigned long count,
+ [array, size_is(count), retval] out wstring gateways);
+
+ /**
+ * Get the list of dnses, could be IPv4 or IPv6.
+ *
+ * @param count
+ * The length of the list of dnses.
+ *
+ * @returns the list of dnses.
+ */
+ void getDnses([optional] out unsigned long count,
+ [array, size_is(count), retval] out wstring dnses);
+};
+
+[scriptable, uuid(8b1345fa-b34c-41b3-8d21-09f961bf8887)]
+interface nsINetworkInterface : nsISupports
+{
+ /**
+ * The network information about this network interface.
+ */
+ readonly attribute nsINetworkInfo info;
+
+ /**
+ * The host name of the http proxy server.
+ */
+ readonly attribute DOMString httpProxyHost;
+
+ /*
+ * The port number of the http proxy server.
+ */
+ readonly attribute long httpProxyPort;
+
+ /*
+ * The Maximun Transmit Unit for this network interface, -1 if not set.
+ */
+ readonly attribute long mtu;
+};