diff -r 000000000000 -r 6474c204b198 dom/system/gonk/nsINetworkService.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/system/gonk/nsINetworkService.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,348 @@ +/* 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" + +interface nsINetworkInterface; + +[scriptable, function, uuid(91824160-fb25-11e1-a21f-0800200c9a66)] +interface nsIWifiTetheringCallback : nsISupports +{ + /** + * Callback function used to report status to WifiManager. + * + * @param error + * An error message if the operation wasn't successful, + * or `null` if it was. + */ + void wifiTetheringEnabledChange(in jsval error); +}; + +[scriptable, function, uuid(e079aa2a-ec0a-4bbd-b1a4-d81a9faae464)] +interface nsINetworkStatsCallback : nsISupports +{ + void networkStatsAvailable(in boolean success, + in unsigned long rxBytes, + in unsigned long txBytes, + in jsval date); +}; + +[scriptable, function, uuid(0706bfa2-ac2d-11e2-9a8d-7b6d988d4767)] +interface nsINetworkUsageAlarmCallback : nsISupports +{ + void networkUsageAlarmResult(in jsval error); +}; + +[scriptable, function, uuid(9ede8720-f8bc-11e2-b778-0800200c9a66)] +interface nsIWifiOperationModeCallback : nsISupports +{ + /** + * Callback function used to report result to WifiManager. + * + * @param error + * An error message if the operation wasn't successful, + * or `null` if it was. + */ + void wifiOperationModeResult(in jsval error); +}; + +[scriptable, function, uuid(097878b0-19fc-11e3-8ffd-0800200c9a66)] +interface nsISetDhcpServerCallback : nsISupports +{ + /** + * Callback function used to report the DHCP server set result + * + * @param error + * An error message if the operation wasn't successful, + * or `null` if it was. + */ + void dhcpServerResult(in jsval error); +}; + +[scriptable, function, uuid(32407c50-46c7-11e3-8f96-0800200c9a66)] +interface nsIUsbTetheringCallback : nsISupports +{ + /** + * Callback function used to report status of enabling usb tethering. + * + * @param error + * An error message if the operation wasn't successful, + * or `null` if it was. + */ + void usbTetheringEnabledChange(in jsval error); +}; + +[scriptable, function, uuid(055fd560-46ad-11e3-8f96-0800200c9a66)] +interface nsIEnableUsbRndisCallback : nsISupports +{ + /** + * Callback function used to report the status of enabling/disabling usb rndis. + * + * @param success + * Boolean to indicate the operation is successful or not. + * @param enable + * Boolean to indicate if we are enabling or disabling usb rndis. + */ + void enableUsbRndisResult(in boolean success, in boolean enable); +}; + +[scriptable, function, uuid(4f08cc30-46ad-11e3-8f96-0800200c9a66)] +interface nsIUpdateUpStreamCallback : nsISupports +{ + /** + * Callback function used to report the result of updating upstream. + * + * @param success + * Boolean to indicate the operation is successful or not. + * @param externalIfname + * The external interface name. + */ + void updateUpStreamResult(in boolean success, in DOMString externalIfname); +}; + +/** + * Provide network services. + */ +[scriptable, uuid(f96461fa-e844-45d2-a6c3-8cd23ab0916b)] +interface nsINetworkService : nsISupports +{ + /** + * Enable or disable Wifi Tethering + * + * @param enabled + * Boolean that indicates whether tethering should be enabled (true) or disabled (false). + * @param config + * The Wifi Tethering configuration from settings db. + * @param callback + * Callback function used to report status to WifiManager. + */ + void setWifiTethering(in boolean enabled, + in jsval config, + in nsIWifiTetheringCallback callback); + + /** + * Enable or disable DHCP server + * + * @param enabled + * Boolean that indicates enabling or disabling DHCP server. + * + * @param config + * Config used to enable the DHCP server. It contains + * .startIp start of the ip lease range (string) + * .endIp end of the ip lease range (string) + * .serverIp ip of the DHCP server (string) + * .maskLength the length of the subnet mask + * .ifname the interface name + * + * As for disabling the DHCP server, put this value |null|. + * + * @param callback + * Callback function used to report status. + */ + void setDhcpServer(in boolean enabled, + in jsval config, + in nsISetDhcpServerCallback callback); + + + /** + * Retrieve network interface stats. + * + * @param networkName + * Select the Network interface to request estats. + * + * @param callback + * Callback to notify result and provide stats, connectionType + * and the date when stats are retrieved + */ + void getNetworkInterfaceStats(in DOMString networkName, in nsINetworkStatsCallback callback); + + /** + * Set Alarm of usage per interface + * + * @param networkName + * Select the Network interface to set an alarm. + * + * @param threshold + * Amount of data that will trigger the alarm. + * + * @param callback + * Callback to notify the result. + * + * @return false if there is no interface registered for the networkType param. + */ + boolean setNetworkInterfaceAlarm(in DOMString networkName, + in long threshold, + in nsINetworkUsageAlarmCallback callback); + + /** + * Reload Wifi firmware to specific operation mode. + * + * @param interfaceName + * Wifi Network interface name. + * + * @param mode + * AP - Access pointer mode. + * P2P - Peer to peer connection mode. + * STA - Station mode. + * + * @param callback + * Callback to notify Wifi firmware reload result. + */ + void setWifiOperationMode(in DOMString interfaceName, + in DOMString mode, + in nsIWifiOperationModeCallback callback); + + /** + * Set http proxy for specific network + * + * @param networkInterface + * The network interface which contains the http proxy host/port + * we want to set. + */ + void setNetworkProxy(in nsINetworkInterface networkInterface); + + /** + * Set USB tethering. + * + * @param enabled + * Boolean to indicate we are going to enable or disable usb tethering. + * @param config + * The usb tethering configuration. + * @param callback + * Callback function used to report the result enabling/disabling usb tethering. + */ + void setUSBTethering(in boolean enabled, + in jsval config, + in nsIUsbTetheringCallback callback); + + /** + * Reset routing table. + * + * @param networkInterface + * The network interface we want remove from the routing table. + */ + void resetRoutingTable(in nsINetworkInterface networkInterface); + + /** + * Set DNS. + * + * @param networkInterface + * The network interface which contains the DNS we want to set. + */ + void setDNS(in nsINetworkInterface networkInterface); + + /** + * Set default route and DNS. + * + * @param networkInterface + * The network interface we want to set to the default route and dns. + * @param oldInterface + * The previous network interface. + */ + void setDefaultRouteAndDNS(in nsINetworkInterface networkInterface, + in nsINetworkInterface oldInterface); + + /** + * Remove default route. + * + * @param networkInterface + * The network interface we want remove from the default route. + */ + void removeDefaultRoute(in nsINetworkInterface networkInterface); + + /** + * Add host route. + * + * @param networkInterface + * The network interface we want to add to the host route. + */ + void addHostRoute(in nsINetworkInterface networkInterface); + + /** + * Remove host route. + * + * @param network + * The network interface we want to remove from the host route. + */ + void removeHostRoute(in nsINetworkInterface network); + + /** + * Remove all host routes. + * + * @param interfaceName + * The interface name we want remove from the routing table. + */ + void removeHostRoutes(in DOMString interfaceName); + + /** + * Add host route with resolve. + * + * @param network + * The network interface we want to add to the host route. + * @param hosts + * The array of host names we want to add. + */ + void addHostRouteWithResolve(in nsINetworkInterface network, in jsval hosts); + + /** + * Remove host route with resolve. + * + * @param network + * The network interface we want to remove from the host route. + * @param hosts + * The array of host names we want to remove. + */ + void removeHostRouteWithResolve(in nsINetworkInterface network, in jsval hosts); + + /** + * Add route to secondary routing table. + * + * @param interfaceName + * The network interface for this route. + * @param route + * The route info should have the following fields: + * .ip: destination ip address + * .prefix: destination prefix + * .gateway: gateway ip address + */ + void addSecondaryRoute(in DOMString interfaceName, in jsval route); + + /** + * Remove route from secondary routing table. + * + * @param interfaceName + * The network interface for the route we want to remove. + * @param route + * The route info should have the following fields: + * .ip: destination ip address + * .prefix: destination prefix + * .gateway: gateway ip address + */ + void removeSecondaryRoute(in DOMString interfaceName, in jsval route); + + /** + * Enable or disable usb rndis. + * + * @param enable + * Boolean to indicate we want enable or disable usb rndis. + * @param callback + * Callback function to report the result. + */ + void enableUsbRndis(in boolean enable, + in nsIEnableUsbRndisCallback callback); + + /** + * Update upstream. + * + * @param previous + * The previous internal and external interface. + * @param current + * The current internal and external interface. + * @param callback + * Callback function to report the result. + */ + void updateUpStream(in jsval previous, + in jsval current, + in nsIUpdateUpStreamCallback callback); +};