Index: extensions/common/api/networking_private.idl |
diff --git a/extensions/common/api/networking_private.idl b/extensions/common/api/networking_private.idl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8e83c49a73f0d73a6c471152a8d9d1da6cae60fb |
--- /dev/null |
+++ b/extensions/common/api/networking_private.idl |
@@ -0,0 +1,363 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
pneubeck (no reviews)
2015/03/26 16:56:47
you should run chrome/common/extensions/docs/serve
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// The <code>chrome.networkingPrivate</code> API is used for configuring |
+// network connections (Cellular, Ethernet, VPN, WiFi" or WiMAX). This private |
pneubeck (no reviews)
2015/03/26 16:56:47
nit: remove orphaned "
|
+// API is only valid if called from a browser or app associated with the |
+// primary user. See the ONC documentation for descriptions of properties. |
+// TODO(stevenjb/pneubeck): Merge the ONC documentation with this document and |
+// use it as the ONC specification. |
+ |
+namespace networkingPrivate { |
+ enum ActivationStateType { |
+ Activated, Activating, NotActivated, PartiallyActivated |
+ }; |
+ |
+ enum CaptivePortalStatus { |
+ Unknown, Offline, Online, Portal, ProxyAuthRequired |
+ }; |
+ |
+ enum ConnectionStateType { |
+ Connected, Connecting, NotConnected |
+ }; |
+ |
+ enum IPConfigType { |
+ DHCP, Static |
+ }; |
+ |
+ enum NetworkType { |
+ All, Bluetooth, Cellular, Ethernet, VPN, Wireless, WiFi, WiMAX |
+ }; |
+ |
+ dictionary APNProperties { |
pneubeck (no reviews)
2015/03/26 16:56:47
if you don't need for any of these the generated C
|
+ DOMString? AccessPointName; |
+ DOMString? Name; |
+ DOMString? Username; |
+ DOMString? Password; |
+ }; |
+ |
+ dictionary CellularConfigProperties { |
+ boolean? AutoConnect; |
+ APNProperties? APN; |
+ }; |
+ |
+ dictionary CellularStateProperties { |
+ long? SignalStrength; |
+ boolean? OutOfCredits; |
+ DOMString? RoamingState; |
+ ActivationStateType? ActivationState; |
+ DOMString? NetworkTechnology; |
+ }; |
+ |
+ dictionary EthernetStateProperties { |
+ DOMString? Authentication; |
+ }; |
+ |
+ dictionary IPConfigProperties { |
+ DOMString? Gateway; |
+ DOMString? IPAddress; |
+ DOMString[]? NameServers; |
+ DOMString? Type; |
+ long? RoutingPrefix; |
+ }; |
+ |
+ dictionary IPSecProperties { |
+ DOMString? AuthenticationType; |
+ }; |
+ |
+ dictionary VPNConfigProperties { |
+ boolean? AutoConnect; |
+ DOMString? Type; |
+ DOMString? Host; |
+ }; |
+ |
+ dictionary VPNStateProperties { |
+ DOMString? Type; |
+ IPSecProperties? IPsec; |
+ }; |
+ |
+ dictionary WiFiConfigProperties { |
+ boolean? AutoConnect; |
+ }; |
+ |
+ dictionary WiFiStateProperties { |
+ DOMString? Security; |
+ long? SignalStrength; |
+ }; |
+ |
+ dictionary WiMaxConfigProperties { |
+ boolean? AutoConnect; |
+ }; |
+ |
+ dictionary WiMAXStateProperties { |
+ long? SignalStrength; |
+ }; |
+ |
+ dictionary NetworkConfigProperties { |
+ CellularConfigProperties? Cellular; |
+ DOMString? GUID; |
+ IPConfigType? IPAddressConfigType; |
+ DOMString? Name; |
+ IPConfigType? NameServersConfigType; |
+ long? Priority; |
+ IPConfigProperties? StaticIPConfig; |
+ NetworkType? Type; |
+ VPNConfigProperties? VPN; |
+ WiFiConfigProperties? WiFi; |
+ WiMaxConfigProperties? WiMAX; |
+ }; |
+ |
+ dictionary NetworkStateProperties { |
+ CellularStateProperties? Cellular; |
+ boolean? Connectable; |
+ ConnectionStateType? ConnectionState; |
+ EthernetStateProperties? Ethernet; |
+ DOMString? ErrorState; |
+ DOMString GUID; |
+ DOMString? Name; |
+ long? Priority; |
+ DOMString? Source; |
+ NetworkType Type; |
+ VPNStateProperties? VPN; |
+ WiFiStateProperties? WiFi; |
+ WiMAXStateProperties? WiMAX; |
+ }; |
+ |
+ dictionary VerificationProperties { |
+ // A string containing a PEM-encoded (including the 'BEGIN CERTIFICATE' |
+ // header and 'END CERTIFICATE' footer) X.509 certificate for use in |
+ // verifying the signed data. |
+ DOMString certificate; |
+ |
+ // An array of PEM-encoded X.509 intermediate certificate authority |
+ // certificates. Each PEM-encoded certificate is expected to have the |
+ // 'BEGIN CERTIFICATE' header and 'END CERTIFICATE' footer. |
+ DOMString[]? intermediateCertificates; |
+ |
+ // A string containing a Base64-encoded RSAPublicKey ASN.1 structure, |
+ // representing the public key to be used by verifyAndEncryptCredentials and |
+ // verifyAndEncryptData methods. |
+ DOMString publicKey; |
+ |
+ // A string containing a base64-encoded random binary data for use in |
+ // verifying the signed data. |
+ DOMString nonce; |
+ |
+ // A string containing the identifying data string signed by the device. |
+ DOMString signedData; |
+ |
+ // A string containing the serial number of the device. |
+ DOMString deviceSerial; |
+ |
+ // A string containing the SSID of the device. Should be empty for new |
+ // configurations. |
+ DOMString deviceSsid; |
+ |
+ // A string containing the BSSID of the device. Should be empty for new |
+ // configurations. |
+ DOMString deviceBssid; |
+ }; |
+ |
+ dictionary NetworkFilter { |
+ // The type of networks to return. |
+ NetworkType networkType; |
+ |
+ // If true, only include visible (physically connected or in-range) |
+ // networks. Defaults to 'false'. |
+ boolean? visible; |
+ |
+ // If true, only include configured (saved) networks. Defaults to 'false'. |
+ boolean? configured; |
+ |
+ // Maximum number of networks to return. Defaults to 1000. Use 0 for no |
+ // limit. |
+ long? limit; |
+ }; |
+ |
+ callback VoidCallback = void(); |
+ callback BooleanCallback = void(boolean result); |
+ callback StringCallback = void(DOMString result); |
+ // TODO(stevenjb): Use NetworkProperties for |result| once defined. |
+ callback GetPropertiesCallback = void(object result); |
+ // TODO(stevenjb): Use ManagedNetworkProperties for |result| once defined. |
+ callback GetManagedPropertiesCallback = void(object result); |
+ callback GetStatePropertiesCallback = void(NetworkStateProperties result); |
+ callback GetNetworksCallback = void(NetworkStateProperties[] result); |
+ callback GetEnabledNetwrokTypesCallback = void(NetworkType[] result); |
+ callback CaptivePortalStatusCallback = void(CaptivePortalStatus result); |
+ |
+ // These functions all report failures via chrome.runtime.lastError. |
+ interface Functions { |
+ // Gets all the properties of the network with id networkGuid. Includes all |
+ // properties of the network (read-only and read/write values). |
+ // |networkGuid|: The identifier of the network to get properties for. |
+ // |callback|: Returns the properties of the network. |
+ static void getProperties(DOMString networkGuid, |
+ GetPropertiesCallback callback); |
+ |
+ // Gets the merged properties of the network with id networkGuid from the |
+ // sources: User settings, shared settings, user policy, device policy and |
+ // the currently active settings. |
+ // |networkGuid|: The identifier of the network to get properties for. |
+ // |callback|: Returns the managed properties of the network. |
+ static void getManagedProperties(DOMString networkGuid, |
+ GetManagedPropertiesCallback callback); |
+ |
+ // Gets the cached read-only properties of the network with id networkGuid. |
+ // This is meant to be a higher performance function than getProperties, |
+ // which requires a round trip to query the networking subsystem. The |
+ // following properties are returned for all networks: GUID, Type, Name, |
+ // WiFi.Security. Additional properties are provided for visible networks: |
+ // ConnectionState, ErrorState, WiFi.SignalStrength, |
+ // Cellular.NetworkTechnology, Cellular.ActivationState, |
+ // Cellular.RoamingState, Cellular.OutOfCredits. |
+ // |networkGuid|: The identifier of the network to get properties for. |
+ // |callback|: Returns the managed properties of the network. |
+ static void getState(DOMString networkGuid, |
+ GetStatePropertiesCallback callback); |
+ |
+ // Sets the properties of the network with id networkGuid. |
+ // |networkGuid|: The identifier of the network to set properties for. |
+ // |properties|: The ONC properties to set. |
+ // |callback|: Called when the operation has completed. |
+ static void setProperties(DOMString networkGuid, |
+ NetworkConfigProperties properties, |
+ optional VoidCallback callback); |
+ |
+ // Creates a new network configuration from properties. If a matching |
+ // configured network already exists, this will fail. Otherwise returns the |
+ // guid of the new network. |
+ // |shared|: If true, share this network configuration with other users. |
+ // |properties|: The ONC properties to configure the new network with. |
+ // |callback|: Returns the identifier of the created network. |
+ static void createNetwork(boolean shared, |
+ NetworkConfigProperties properties, |
+ optional StringCallback callback); |
+ |
+ // Returns a list of network objects with the same properties provided by |
+ // getState. A filter is provided to specify the type of networks returned |
+ // and to limit the number of networks. Networks are ordered by the system |
+ // based on their priority, with connected or connecting networks listed |
+ // first. static void getNetworks(); |
+ // |filter|: Describes which networks to return. |
+ // |callback|: Returns the network state properties. |
+ static void getNetworks(NetworkFilter filter, |
+ GetNetworksCallback callback); |
+ |
+ // Deprecated. Please use $(ref:networkingPrivate.getNetworks) with |
+ // filter.visble = true instead. |
+ [deprecated="Use getNetworks."] static void getVisibleNetworks( |
+ NetworkType networkType, |
+ GetNetworksCallback callback); |
+ |
+ // Returns a list of the enabled network types. Note: this only returns |
+ // discrete types that can be enabled or disabled: Cellular, Ethernet, WiFi, |
+ // Wimax. |
+ static void getEnabledNetworkTypes(GetEnabledNetwrokTypesCallback callback); |
+ |
+ // Enable the specified network type. Note, the type might represent |
+ // multiple network types (e.g. 'Wireless'). |
+ static void enableNetworkType(NetworkType networkType); |
+ |
+ // Disable the specified network type. See note for |
+ // $(ref:networkingPrivate.enableNetworkType). |
+ static void disableNetworkType(NetworkType networkType); |
+ |
+ // Requests that the networking subsystem scan for new networks and |
+ // update the list returned by getVisibleNetworks. This is only a |
+ // request: the network subsystem can choose to ignore it. If the list |
+ // is updated, then the onNetworkListChanged event will be fired. |
+ static void requestNetworkScan(); |
+ |
+ // Starts a connection to the network with networkGuid. |
+ // |networkGuid|: The identifier of the network to connect to. |
+ static void startConnect(DOMString networkGuid, |
+ optional VoidCallback callback); |
+ |
+ // Starts a disconnect from the network with networkGuid. |
+ // |networkGuid|: The identifier of the network to disconnect from. |
+ static void startDisconnect(DOMString networkGuid, |
+ optional VoidCallback callback); |
+ |
+ // Starts activation of the Cellular network with networkGuid. |
+ // |networkGuid|: The identifier of the Cellular network to activate. |
+ // |carrier|: Optional name of carrier to activate. |
+ static void startActivate(DOMString networkGuid, |
+ optional DOMString carrier, |
+ optional VoidCallback callback); |
+ |
+ // Verifies that the device is a trusted device. |
+ // |properties|: Properties of the destination to use in verifying that it |
+ // is a trusted device. |
+ // |callback|: A callback function that indicates whether or not the device |
+ // is a trusted device. |
+ static void verifyDestination(VerificationProperties properties, |
+ BooleanCallback callback); |
+ |
+ // Verifies that the device is a trusted device and retrieves encrypted |
+ // network credentials. |
+ // |properties|: Properties of the destination to use in verifying that it |
+ // is a trusted device. |
+ // |networkGuid|: The identifier of the Cellular network to activate. |
+ // |callback|: A callback function that receives base64-encoded encrypted |
+ // credential data to send to a trusted device. |
+ static void verifyAndEncryptCredentials(VerificationProperties properties, |
+ DOMString networkGuid, |
+ StringCallback callback); |
+ |
+ // Verifies that the device is a trusted device and encrypts supplied |
+ // data with device public key. |
+ // |properties|: Properties of the destination to use in verifying that it |
+ // is a trusted device. |
+ // |data|: A string containing the base64-encoded data to encrypt. |
+ // |callback|: A callback function that receives base64-encoded encrypted |
+ // data to send to a trusted device. |
+ static void verifyAndEncryptData(VerificationProperties properties, |
+ DOMString data, |
+ StringCallback callback); |
+ |
+ // Enables TDLS for wifi traffic with a specified peer if available. |
+ // |ip_or_mac_address|: The IP or MAC address of the peer with which to |
+ // enable a TDLS connection. |
+ // |enabled| If true, enable TDLS, otherwise disable TDLS. |
+ // |calback|: A callback function that receives a string with an error or |
+ // the current TDLS status. 'Failed' indicates that the request failed |
+ // (e.g. MAC address lookup failed). 'Timeout' indicates that the lookup |
+ // timed out. Otherwise a valid status is returned (see |
+ // getWifiTDLSStatus). |
+ static void setWifiTDLSEnabledState(DOMString ip_or_mac_address, |
+ boolean enabled, |
+ StringCallback callback); |
+ |
+ // Returns the current TDLS status for the specified peer. |
+ // |ip_or_mac_address|: The IP or MAC address of the peer. |
+ // |calback|: A callback function that receives a string with the current |
+ // TDLS status which can be 'Connected', 'Disabled', 'Disconnected', |
+ // 'Nonexistent', or 'Unknown'. |
+ static void getWifiTDLSStatus(DOMString ip_or_mac_address, |
+ StringCallback callback); |
+ |
+ // Returns captive portal status for the network matching 'guid'. |
+ // |networkGuid|: The identifier of the network to get the captive portal |
+ // status for. |
+ // |calback|: Results of the query for network captive portal status. |
+ static void getCaptivePortalStatus(DOMString networkGuid, |
+ CaptivePortalStatusCallback callback); |
+ }; |
+ |
+ interface Events { |
+ // Fired when the properties change on any of the networks. Sends a list of |
+ // identifiers for networks whose properties have changed. |
+ static void onNetworksChanged(DOMString[] changes); |
+ |
+ // Fired when the list of networks has changed. Sends a complete list of |
+ // identifiers for all the current networks. |
+ static void onNetworkListChanged(DOMString[] changes); |
+ |
+ // Fired when a portal detection for a network completes. Sends the guid of |
+ // the network and the corresponding captive portal status. |
+ static void onPortalDetectionCompleted(DOMString networkGuid, |
+ CaptivePortalStatus status); |
+ }; |
+}; |