dom/system/gonk/nsINetworkService.idl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #include "nsISupports.idl"
     7 interface nsINetworkInterface;
     9 [scriptable, function, uuid(91824160-fb25-11e1-a21f-0800200c9a66)]
    10 interface nsIWifiTetheringCallback : nsISupports
    11 {
    12   /**
    13    * Callback function used to report status to WifiManager.
    14    *
    15    * @param error
    16    *        An error message if the operation wasn't successful,
    17    *        or `null` if it was.
    18    */
    19   void wifiTetheringEnabledChange(in jsval error);
    20 };
    22 [scriptable, function, uuid(e079aa2a-ec0a-4bbd-b1a4-d81a9faae464)]
    23 interface nsINetworkStatsCallback : nsISupports
    24 {
    25   void networkStatsAvailable(in boolean success,
    26                              in unsigned long rxBytes,
    27                              in unsigned long txBytes,
    28                              in jsval date);
    29 };
    31 [scriptable, function, uuid(0706bfa2-ac2d-11e2-9a8d-7b6d988d4767)]
    32 interface nsINetworkUsageAlarmCallback : nsISupports
    33 {
    34   void networkUsageAlarmResult(in jsval error);
    35 };
    37 [scriptable, function, uuid(9ede8720-f8bc-11e2-b778-0800200c9a66)]
    38 interface nsIWifiOperationModeCallback : nsISupports
    39 {
    40   /**
    41    * Callback function used to report result to WifiManager.
    42    *
    43    * @param error
    44    *        An error message if the operation wasn't successful,
    45    *        or `null` if it was.
    46    */
    47   void wifiOperationModeResult(in jsval error);
    48 };
    50 [scriptable, function, uuid(097878b0-19fc-11e3-8ffd-0800200c9a66)]
    51 interface nsISetDhcpServerCallback : nsISupports
    52 {
    53   /**
    54    * Callback function used to report the DHCP server set result
    55    *
    56    * @param error
    57    *        An error message if the operation wasn't successful,
    58    *        or `null` if it was.
    59    */
    60   void dhcpServerResult(in jsval error);
    61 };
    63 [scriptable, function, uuid(32407c50-46c7-11e3-8f96-0800200c9a66)]
    64 interface nsIUsbTetheringCallback : nsISupports
    65 {
    66   /**
    67    * Callback function used to report status of enabling usb tethering.
    68    *
    69    * @param error
    70    *        An error message if the operation wasn't successful,
    71    *        or `null` if it was.
    72    */
    73   void usbTetheringEnabledChange(in jsval error);
    74 };
    76 [scriptable, function, uuid(055fd560-46ad-11e3-8f96-0800200c9a66)]
    77 interface nsIEnableUsbRndisCallback : nsISupports
    78 {
    79   /**
    80    * Callback function used to report the status of enabling/disabling usb rndis.
    81    *
    82    * @param success
    83    *        Boolean to indicate the operation is successful or not.
    84    * @param enable
    85    *        Boolean to indicate if we are enabling or disabling usb rndis.
    86    */
    87   void enableUsbRndisResult(in boolean success, in boolean enable);
    88 };
    90 [scriptable, function, uuid(4f08cc30-46ad-11e3-8f96-0800200c9a66)]
    91 interface nsIUpdateUpStreamCallback : nsISupports
    92 {
    93   /**
    94    * Callback function used to report the result of updating upstream.
    95    *
    96    * @param success
    97    *        Boolean to indicate the operation is successful or not.
    98    * @param externalIfname
    99    *        The external interface name.
   100    */
   101   void updateUpStreamResult(in boolean success, in DOMString externalIfname);
   102 };
   104 /**
   105  * Provide network services.
   106  */
   107 [scriptable, uuid(f96461fa-e844-45d2-a6c3-8cd23ab0916b)]
   108 interface nsINetworkService : nsISupports
   109 {
   110   /**
   111    * Enable or disable Wifi Tethering
   112    *
   113    * @param enabled
   114    *        Boolean that indicates whether tethering should be enabled (true) or disabled (false).
   115    * @param config
   116    *        The Wifi Tethering configuration from settings db.
   117    * @param callback
   118    *        Callback function used to report status to WifiManager.
   119    */
   120   void setWifiTethering(in boolean enabled,
   121                         in jsval config,
   122                         in nsIWifiTetheringCallback callback);
   124   /**
   125    * Enable or disable DHCP server
   126    *
   127    * @param enabled
   128    *        Boolean that indicates enabling or disabling DHCP server.
   129    *
   130    * @param config
   131    *        Config used to enable the DHCP server. It contains
   132    *        .startIp    start of the ip lease range (string)
   133    *        .endIp      end of the ip lease range (string)
   134    *        .serverIp   ip of the DHCP server (string)
   135    *        .maskLength the length of the subnet mask
   136    *        .ifname     the interface name
   137    *
   138    *        As for disabling the DHCP server, put this value |null|.
   139    *
   140    * @param callback
   141    *        Callback function used to report status.
   142    */
   143   void setDhcpServer(in boolean enabled,
   144                      in jsval config,
   145                      in nsISetDhcpServerCallback callback);
   148   /**
   149    * Retrieve network interface stats.
   150    *
   151    * @param networkName
   152    *        Select the Network interface to request estats.
   153    *
   154    * @param callback
   155    *        Callback to notify result and provide stats, connectionType
   156    *        and the date when stats are retrieved
   157    */
   158   void getNetworkInterfaceStats(in DOMString networkName, in nsINetworkStatsCallback callback);
   160   /**
   161    * Set Alarm of usage per interface
   162    *
   163    * @param networkName
   164    *        Select the Network interface to set an alarm.
   165    *
   166    * @param threshold
   167    *        Amount of data that will trigger the alarm.
   168    *
   169    * @param callback
   170    *        Callback to notify the result.
   171    *
   172    * @return false if there is no interface registered for the networkType param.
   173    */
   174   boolean setNetworkInterfaceAlarm(in DOMString networkName,
   175                                    in long threshold,
   176                                    in nsINetworkUsageAlarmCallback callback);
   178   /**
   179    * Reload Wifi firmware to specific operation mode.
   180    *
   181    * @param interfaceName
   182    *        Wifi Network interface name.
   183    *
   184    * @param mode
   185    *        AP  - Access pointer mode.
   186    *        P2P - Peer to peer connection mode.
   187    *        STA - Station mode.
   188    *
   189    * @param callback
   190    *        Callback to notify Wifi firmware reload result.
   191    */
   192   void setWifiOperationMode(in DOMString interfaceName,
   193                             in DOMString mode,
   194                             in nsIWifiOperationModeCallback callback);
   196   /**
   197    * Set http proxy for specific network
   198    *
   199    * @param networkInterface
   200    *        The network interface which contains the http proxy host/port
   201    *        we want to set.
   202    */
   203   void setNetworkProxy(in nsINetworkInterface networkInterface);
   205   /**
   206    * Set USB tethering.
   207    *
   208    * @param enabled
   209    *        Boolean to indicate we are going to enable or disable usb tethering.
   210    * @param config
   211    *        The usb tethering configuration.
   212    * @param callback
   213    *        Callback function used to report the result enabling/disabling usb tethering.
   214    */
   215   void setUSBTethering(in boolean enabled,
   216                        in jsval config,
   217                        in nsIUsbTetheringCallback callback);
   219   /**
   220    * Reset routing table.
   221    *
   222    * @param networkInterface
   223    *        The network interface we want remove from the routing table.
   224    */
   225   void resetRoutingTable(in nsINetworkInterface networkInterface);
   227   /**
   228    * Set DNS.
   229    *
   230    * @param networkInterface
   231    *        The network interface which contains the DNS we want to set.
   232    */
   233   void setDNS(in nsINetworkInterface networkInterface);
   235   /**
   236    * Set default route and DNS.
   237    *
   238    * @param networkInterface
   239    *        The network interface we want to set to the default route and dns.
   240    * @param oldInterface
   241    *        The previous network interface.
   242    */
   243   void setDefaultRouteAndDNS(in nsINetworkInterface networkInterface,
   244                              in nsINetworkInterface oldInterface);
   246   /**
   247    * Remove default route.
   248    *
   249    * @param networkInterface
   250    *        The network interface we want remove from the default route.
   251    */
   252   void removeDefaultRoute(in nsINetworkInterface networkInterface);
   254   /**
   255    * Add host route.
   256    *
   257    * @param networkInterface
   258    *        The network interface we want to add to the host route.
   259    */
   260   void addHostRoute(in nsINetworkInterface networkInterface);
   262   /**
   263    * Remove host route.
   264    *
   265    * @param network
   266    *        The network interface we want to remove from the host route.
   267    */
   268   void removeHostRoute(in nsINetworkInterface network);
   270   /**
   271    * Remove all host routes.
   272    *
   273    * @param interfaceName
   274    *        The interface name we want remove from the routing table.
   275    */
   276   void removeHostRoutes(in DOMString interfaceName);
   278   /**
   279    * Add host route with resolve.
   280    *
   281    * @param network
   282    *        The network interface we want to add to the host route.
   283    * @param hosts
   284    *        The array of host names we want to add.
   285    */
   286   void addHostRouteWithResolve(in nsINetworkInterface network, in jsval hosts);
   288   /**
   289    * Remove host route with resolve.
   290    *
   291    * @param network
   292    *        The network interface we want to remove from the host route.
   293    * @param hosts
   294    *        The array of host names we want to remove.
   295    */
   296   void removeHostRouteWithResolve(in nsINetworkInterface network, in jsval hosts);
   298   /**
   299    * Add route to secondary routing table.
   300    *
   301    * @param interfaceName
   302    *        The network interface for this route.
   303    * @param route
   304    *        The route info should have the following fields:
   305    *        .ip: destination ip address
   306    *        .prefix: destination prefix
   307    *        .gateway: gateway ip address
   308    */
   309   void addSecondaryRoute(in DOMString interfaceName, in jsval route);
   311   /**
   312    * Remove route from secondary routing table.
   313    *
   314    * @param interfaceName
   315    *        The network interface for the route we want to remove.
   316    * @param route
   317    *        The route info should have the following fields:
   318    *        .ip: destination ip address
   319    *        .prefix: destination prefix
   320    *        .gateway: gateway ip address
   321    */
   322   void removeSecondaryRoute(in DOMString interfaceName, in jsval route);
   324   /**
   325    * Enable or disable usb rndis.
   326    *
   327    * @param enable
   328    *        Boolean to indicate we want enable or disable usb rndis.
   329    * @param callback
   330    *        Callback function to report the result.
   331    */
   332   void enableUsbRndis(in boolean enable,
   333                       in nsIEnableUsbRndisCallback callback);
   335   /**
   336    * Update upstream.
   337    *
   338    * @param previous
   339    *        The previous internal and external interface.
   340    * @param current
   341    *        The current internal and external interface.
   342    * @param callback
   343    *        Callback function to report the result.
   344    */
   345   void updateUpStream(in jsval previous,
   346                       in jsval current,
   347                       in nsIUpdateUpStreamCallback callback);
   348 };

mercurial