diff options
Diffstat (limited to 'dom/webidl/MozWifiManager.webidl')
-rw-r--r-- | dom/webidl/MozWifiManager.webidl | 347 |
1 files changed, 347 insertions, 0 deletions
diff --git a/dom/webidl/MozWifiManager.webidl b/dom/webidl/MozWifiManager.webidl new file mode 100644 index 000000000..dd5aa5932 --- /dev/null +++ b/dom/webidl/MozWifiManager.webidl @@ -0,0 +1,347 @@ +/* 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/. */ + +enum WifiWPSMethod { + "pbc", + "pin", + "cancel" +}; + +enum ConnectionStatus { + "connecting", + "authenticating", + "associated", + "connected", + "disconnected", + "wps-timedout", + "wps-failed", + "wps-overlapped", + "connectingfailed" +}; + +dictionary WifiWPSInfo { + WifiWPSMethod method; + DOMString? pin; + DOMString? bssid; +}; + +dictionary NetworkProperties { + DOMString ssid; + long mode; + long frequency; + sequence<DOMString>? security; + sequence<DOMString>? capabilities; + boolean known; + boolean connected; + boolean hidden; + DOMString bssid; + DOMString signalStrength; + long relSignalStrength; + DOMString psk; + DOMString wep; + DOMString wep_key0; + DOMString wep_key1; + DOMString wep_key2; + DOMString wep_key3; + long wep_tx_keyidx; + long priority; + long scan_ssid; + DOMString keyManagement; + DOMString identity; + DOMString password; + DOMString auth_alg; + DOMString phase1; + DOMString phase2; + DOMString eap; + DOMString pin; + boolean dontConnect; + DOMString serverCertificate; + DOMString subjectMatch; + DOMString userCertificate; +}; + +[Constructor(optional NetworkProperties properties), + JSImplementation="@mozilla.org/mozwifinetwork;1", + Func="Navigator::HasWifiManagerSupport"] +interface MozWifiNetwork { + readonly attribute DOMString ssid; + readonly attribute long mode; + readonly attribute long frequency; + [Constant, Cached] readonly attribute sequence<DOMString>? security; + [Constant, Cached] readonly attribute sequence<DOMString>? capabilities; + readonly attribute boolean known; + readonly attribute boolean connected; + readonly attribute boolean hidden; + + attribute DOMString? bssid; + attribute DOMString? signalStrength; + attribute long? relSignalStrength; + attribute DOMString? psk; + attribute DOMString? wep; + attribute DOMString? wep_key0; + attribute DOMString? wep_key1; + attribute DOMString? wep_key2; + attribute DOMString? wep_key3; + attribute long? wep_tx_keyidx; + attribute long? priority; + attribute long? scan_ssid; + attribute DOMString? keyManagement; + attribute DOMString? identity; + attribute DOMString? password; + attribute DOMString? auth_alg; + attribute DOMString? phase1; + attribute DOMString? phase2; + attribute DOMString? eap; + attribute DOMString? pin; + attribute boolean? dontConnect; + attribute DOMString? serverCertificate; + attribute DOMString? subjectMatch; + attribute DOMString? userCertificate; +}; + +[JSImplementation="@mozilla.org/mozwificonnection;1", + ChromeOnly] +interface MozWifiConnection { + readonly attribute ConnectionStatus status; + readonly attribute MozWifiNetwork? network; +}; + +[JSImplementation="@mozilla.org/mozwificonnectioninfo;1", + ChromeOnly] +interface MozWifiConnectionInfo { + readonly attribute short signalStrength; + readonly attribute short relSignalStrength; + readonly attribute long linkSpeed; + readonly attribute DOMString? ipAddress; +}; + +dictionary IPConfiguration { + boolean enabled; + DOMString ipaddr; + DOMString proxy; + short maskLength; + DOMString gateway; + DOMString dns1; + DOMString dns2; +}; + +[JSImplementation="@mozilla.org/wifimanager;1", + NavigatorProperty="mozWifiManager", + Func="Navigator::HasWifiManagerSupport", + UnsafeInPrerendering] +interface MozWifiManager : EventTarget { + /** + * Turn on/off wifi functionality. + * @param enable true for enable, false for disable. + * onsuccess: Wifi enable/disable successfully, including no status change. + * onerror: Wifi enable/disable failed or prohibited. + */ + DOMRequest setWifiEnabled(boolean enabled); + + /** + * Returns the list of currently available networks. + * onsuccess: We have obtained the current list of networks. request.value + * is an object whose property names are SSIDs and values are + * network objects. + * onerror: We were unable to obtain a list of property names. + */ + DOMRequest getNetworks(); + + /** + * Returns the list of networks known to the system that will be + * automatically connected to if they're in range. + * onsuccess: request.value is an object whose property names are + * SSIDs and values are network objects. + * onerror: We were unable to obtain a list of known networks. + */ + DOMRequest getKnownNetworks(); + + /** + * Takes one of the networks returned from getNetworks and tries to + * connect to it. + * @param network A network object with information about the network, + * such as the SSID, key management desired, etc. + * onsuccess: We have started attempting to associate with the network. + * request.value is true. + * onerror: We were unable to select the network. This most likely means a + * configuration error. + */ + DOMRequest associate(MozWifiNetwork network); + + /** + * Given a network, removes it from the list of networks that we'll + * automatically connect to. In order to re-connect to the network, it is + * necessary to call associate on it. + * @param network A network object with the SSID of the network to remove. + * onsuccess: We have removed this network. If we were previously + * connected to it, we have started reconnecting to the next + * network in the list. + * onerror: We were unable to remove the network. + */ + DOMRequest forget(MozWifiNetwork network); + + /** + * Wi-Fi Protected Setup functionality. + * @param detail WPS detail which has 'method' and 'pin' field. + * The possible method field values are: + * - pbc: The Push Button Configuration. + * - pin: The PIN configuration. + * - cancel: Request to cancel WPS in progress. + * If method field is 'pin', 'pin' field can exist and has + * a PIN number. + * If method field is 'pin', 'bssid' field can exist and has + * a opposite BSSID. + * onsuccess: We have successfully started/canceled wps. + * onerror: We have failed to start/cancel wps. + */ + DOMRequest wps(optional WifiWPSInfo detail); + + /** + * Turn on/off wifi power saving mode. + * @param enabled true or false. + * onsuccess: We have successfully turn on/off wifi power saving mode. + * onerror: We have failed to turn on/off wifi power saving mode. + */ + DOMRequest setPowerSavingMode(boolean enabled); + + /** + * Given a network, configure using static IP instead of running DHCP + * @param network A network object with the SSID of the network to set static ip. + * @param info info should have following field: + * - enabled True to enable static IP, false to use DHCP + * - ipaddr configured static IP address + * - proxy configured proxy server address + * - maskLength configured mask length + * - gateway configured gateway address + * - dns1 configured first DNS server address + * - dns2 configured seconf DNS server address + * onsuccess: We have successfully configure the static ip mode. + * onerror: We have failed to configure the static ip mode. + */ + DOMRequest setStaticIpMode(MozWifiNetwork network, optional IPConfiguration info); + + /** + * Given a network, configure http proxy when using wifi. + * @param network A network object with the SSID of the network to set http proxy. + * @param info info should have following field: + * - httpProxyHost ip address of http proxy. + * - httpProxyPort port of http proxy, set 0 to use default port 8080. + * set info to null to clear http proxy. + * onsuccess: We have successfully configure http proxy. + * onerror: We have failed to configure http proxy. + */ + DOMRequest setHttpProxy(MozWifiNetwork network, any info); + + /** + * Import a certificate file, only support CA certificate now. + * @param certBlob A Blob object containing raw data of certificate to be imported. + * Supported format: binary/base64 encoded DER certificates. + * (.der/.crt/.cer/.pem) + * Cause error if importing certificates already imported. + * @param certPassword Password of certificate. + * @param certNickname User assigned nickname for imported certificate. + * Nickname must be unique, it causes error on redundant nickname. + * onsuccess: We have successfully imported certificate. request.result is an + * object, containing information of imported CA: + * { + * nickname: Nickname of imported CA, String. + * usage: Supported usage of imported CA, Array of String, + * includes: "ServerCert". + * } + * onerror: We have failed to import certificate. + */ + DOMRequest importCert(Blob certBlob, + DOMString certPassword, + DOMString certNickname); + + /** + * Get list of imported WIFI certificates. + * onsuccess: We have successfully gotten imported certificate list. + * request.result is an object using nickname as key, array of usage + * string as value. + * request.result[USAGE] = [CA_NICKNAME1, CA_NICKNAME2, ...] + * USAGE string includes: "ServerCert". + * onerror: We have failed to list certificate. + */ + DOMRequest getImportedCerts(); + + /** + * Delete an imported certificate. + * @param certNickname Nickname of imported to be deleted. + * onsuccess: We have successfully deleted certificate. + * onerror: We have failed to delete certificate. + */ + DOMRequest deleteCert(DOMString certNickname); + + /** + * Returns whether or not wifi is currently enabled. + */ + readonly attribute boolean enabled; + + /** + * Returns the MAC address of the wifi adapter. + */ + readonly attribute DOMString macAddress; + + /** + * An non-null object containing the following information: + * - status ("disconnected", "connecting", "associated", "connected") + * - network + * + * Note that the object returned is read only. Any changes required must + * be done by calling other APIs. + */ + readonly attribute MozWifiConnection connection; + + /** + * A connectionInformation object with the same information found in an + * MozWifiConnectionInfoEvent (but without the network). + * If we are not currently connected to a network, this will be null. + */ + readonly attribute MozWifiConnectionInfo? connectionInformation; + + /** + * Capabilities of Wifi. + */ + readonly attribute MozWifiCapabilities? capabilities; + + /** + * State notification listeners. These all take an + * MozWifiStatusChangeEvent with the new status and a network (which may be + * null). + * + * The possible statuses are: + * - connecting: Fires when we start the process of connecting to a + * network. + * - associated: Fires when we have connected to an access point but do + * not yet have an IP address. + * - connected: Fires once we are fully connected to an access point and + * can access the internet. + * - disconnected: Fires when we either fail to connect to an access + * point (transition: associated -> disconnected) or + * when we were connected to a network but have + * disconnected for any reason (transition: connected -> + * disconnected). + */ + attribute EventHandler onstatuschange; + + /** + * An event listener that is called with information about the signal + * strength and link speed every 5 seconds. + */ + attribute EventHandler onconnectioninfoupdate; + + /** + * These two events fire when the wifi system is brought online or taken + * offline. + */ + attribute EventHandler onenabled; + attribute EventHandler ondisabled; + + /** + * An event listener that is called with information about the number + * of wifi stations connected to wifi hotspot every 5 seconds. + */ + attribute EventHandler onstationinfoupdate; +}; |