summaryrefslogtreecommitdiffstats
path: root/dom/network/interfaces/nsIEthernetManager.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/network/interfaces/nsIEthernetManager.idl')
-rw-r--r--dom/network/interfaces/nsIEthernetManager.idl137
1 files changed, 137 insertions, 0 deletions
diff --git a/dom/network/interfaces/nsIEthernetManager.idl b/dom/network/interfaces/nsIEthernetManager.idl
new file mode 100644
index 000000000..2b92dc88f
--- /dev/null
+++ b/dom/network/interfaces/nsIEthernetManager.idl
@@ -0,0 +1,137 @@
+/* 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, function, uuid(2a3ad56c-edc0-439f-8aae-900b331ddf49)]
+interface nsIEthernetManagerCallback : nsISupports
+{
+ /**
+ * Callback function used to report the success of different operations.
+ *
+ * @param success
+ * Boolean value indicates the success of an operation.
+ * @prarm message
+ * Message reported in the end of operation.
+ */
+ void notify(in boolean success, in DOMString message);
+};
+
+[scriptable, function, uuid(1746e7dd-92d4-43fa-8ef4-bc13d0b60353)]
+interface nsIEthernetManagerScanCallback : nsISupports
+{
+ /**
+ * Callback function used to report the result of scan function.
+ *
+ * @param list
+ * List of available ethernet interfaces.
+ */
+ void notify(in jsval list);
+};
+
+/**
+ * An internal idl provides control to ethernet interfaces.
+ */
+[scriptable, uuid(81750c87-bb3b-4724-b955-834eafa53fd1)]
+interface nsIEthernetManager : nsISupports
+{
+ /**
+ * List of exisiting interface name.
+ */
+ readonly attribute jsval interfaceList;
+
+ /**
+ * Scan available ethernet interfaces on device.
+ *
+ * @param callback
+ * Callback function.
+ */
+ void scan(in nsIEthernetManagerScanCallback callback);
+
+ /**
+ * Add a new interface to the interface list.
+ *
+ * @param ifname
+ * Interface name. Should be the form of "eth*".
+ * @param callback
+ * Callback function.
+ */
+ void addInterface(in DOMString ifname,
+ in nsIEthernetManagerCallback callback);
+
+ /**
+ * Remove an existing interface from the interface list.
+ *
+ * @param ifname
+ * Interface name.
+ * @param Callback
+ * Callback function.
+ */
+ void removeInterface(in DOMString ifname,
+ in nsIEthernetManagerCallback callback);
+
+ /**
+ * Update a conifg of an existing interface in the interface list.
+ *
+ * @param ifname
+ * Interface name.
+ * @param config
+ * .ip: IP address.
+ * .prefixLength: Mask length.
+ * .gateway: Gateway.
+ * .dnses: DNS addresses.
+ * .httpProxyHost: HTTP proxy host.
+ * .httpProxyPort: HTTP proxy port.
+ * .ipMode: IP mode, can be 'dhcp' or 'static'.
+ * @param callback
+ * Callback function.
+ */
+ void updateInterfaceConfig(in DOMString ifname,
+ in jsval config,
+ in nsIEthernetManagerCallback callback);
+
+ /**
+ * Enable networking of an existing interface in the interface list.
+ *
+ * @param ifname
+ * Interface name.
+ * @param callback
+ * Callback function.
+ */
+ void enable(in DOMString ifname,
+ in nsIEthernetManagerCallback callback);
+
+ /**
+ * Disable networking of an existing interface in the interface list.
+ *
+ * @param ifname
+ * Interface name.
+ * @param callback
+ * Callback function.
+ */
+ void disable(in DOMString ifname,
+ in nsIEthernetManagerCallback callback);
+
+ /**
+ * Make an existing interface connect to network.
+ *
+ * @param ifname
+ * Interface name.
+ * @param callback
+ * Callback function.
+ */
+ void connect(in DOMString ifname,
+ in nsIEthernetManagerCallback callback);
+
+ /**
+ * Disconnect a connected interface in the interface list.
+ *
+ * @param ifname
+ * Interface name.
+ * @param callback
+ * Callback function.
+ */
+ void disconnect(in DOMString ifname,
+ in nsIEthernetManagerCallback callback);
+};