| 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..b4b44b805cad3dbecf3aa5982fda7003133eb37c
|
| --- /dev/null
|
| +++ b/extensions/common/api/networking_private.idl
|
| @@ -0,0 +1,286 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// 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
|
| +// API is only valid if called from a browser or app associated with the
|
| +// primary user. See the Open Network Configuration (ONC) documentation for
|
| +// descriptions of properties:
|
| +// <a href="https://code.google.com/p/chromium/codesearch#chromium/src/components/onc/docs/onc_spec.html">
|
| +// src/components/onc/docs/onc_spec.html</a>, or the
|
| +// <a href="http://www.chromium.org/chromium-os/chromiumos-design-docs/open-network-configuration">
|
| +// Open Network Configuration</a> page at chromium.org.
|
| +//
|
| +// TODO(stevenjb/pneubeck): Merge the ONC documentation with this document and
|
| +// use it as the ONC specification.
|
| +
|
| +namespace networkingPrivate {
|
| + enum CaptivePortalStatus {
|
| + Unknown, Offline, Online, Portal, ProxyAuthRequired
|
| + };
|
| +
|
| + enum NetworkType {
|
| + All, Bluetooth, Cellular, Ethernet, VPN, Wireless, WiFi, 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
|
| + // $(ref:verifyAndEncryptCredentials) and $(ref: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 if unspecified.
|
| + // 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(object result);
|
| + callback GetNetworksCallback = void(object[] result);
|
| + callback GetEnabledNetworkTypesCallback = 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 GUID of the network to get properties for.
|
| + // |callback|: Called with the network properties when received.
|
| + 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 GUID of the network to get properties for.
|
| + // |callback|: Called with the managed network properties when received.
|
| + 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
|
| + // $(ref: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 GUID of the network to get properties for.
|
| + // |callback|: Called immediately with the network state properties.
|
| + static void getState(DOMString networkGuid,
|
| + GetStatePropertiesCallback callback);
|
| +
|
| + // Sets the properties of the network with id networkGuid.
|
| + // |networkGuid|: The GUID of the network to set properties for.
|
| + // |properties|: The properties to set.
|
| + // |callback|: Called when the operation has completed.
|
| + static void setProperties(DOMString networkGuid,
|
| + object 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 properties to configure the new network with.
|
| + // |callback|: Called with the GUID for the new network configuration once
|
| + // the network has been created.
|
| + static void createNetwork(boolean shared,
|
| + object properties,
|
| + optional StringCallback callback);
|
| +
|
| + // Forgets a network configuration by clearing any configured properties for
|
| + // the network with GUID 'networkGuid'. This may also include any other
|
| + // networks with matching identifiers (e.g. WiFi SSID and Security). If no
|
| + // such configuration exists, an error will be set and the operation will
|
| + // fail.
|
| + // |networkGuid|: The GUID of the network to forget.
|
| + // |callback|: Called when the operation has completed.
|
| + static void forgetNetwork(DOMString networkGuid,
|
| + optional VoidCallback callback);
|
| +
|
| + // Returns a list of network objects with the same properties provided by
|
| + // $(ref:networkingPrivate.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.
|
| + // |filter|: Describes which networks to return.
|
| + // |callback|: Called with a dictionary of networks and their state
|
| + // properties when received.
|
| + static void getNetworks(NetworkFilter filter,
|
| + GetNetworksCallback callback);
|
| +
|
| + // Deprecated. Please use $(ref:networkingPrivate.getNetworks) with
|
| + // filter.visible = 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.
|
| + // |callback|: Called immediately with the enabled network types.
|
| + static void getEnabledNetworkTypes(GetEnabledNetworkTypesCallback callback);
|
| +
|
| + // Enable the specified network type. Note, the type might represent
|
| + // multiple network types (e.g. 'Wireless').
|
| + // |networkType|: The type of network to enable.
|
| + static void enableNetworkType(NetworkType networkType);
|
| +
|
| + // Disable the specified network type. See note for
|
| + // $(ref:networkingPrivate.enableNetworkType).
|
| + // |networkType|: The type of network to disable.
|
| + static void disableNetworkType(NetworkType networkType);
|
| +
|
| + // Requests that the networking subsystem scan for new networks and
|
| + // update the list returned by $(ref:getVisibleNetworks). This is only a
|
| + // request: the network subsystem can choose to ignore it. If the list
|
| + // is updated, then the $(ref:onNetworkListChanged) event will be fired.
|
| + static void requestNetworkScan();
|
| +
|
| + // Starts a connection to the network with networkGuid.
|
| + // |networkGuid|: The GUID of the network to connect to.
|
| + // |callback|: Called when the connect request has been sent. Note: the
|
| + // connection may not have completed. Observe $(ref:onNetworksChanged)
|
| + // to be notified when a network state changes.
|
| + static void startConnect(DOMString networkGuid,
|
| + optional VoidCallback callback);
|
| +
|
| + // Starts a disconnect from the network with networkGuid.
|
| + // |networkGuid|: The GUID of the network to disconnect from.
|
| + // |callback|: Called when the disconnect request has been sent. See note
|
| + // for $(ref:startConnect).
|
| + static void startDisconnect(DOMString networkGuid,
|
| + optional VoidCallback callback);
|
| +
|
| + // Starts activation of the Cellular network with networkGuid.
|
| + // |networkGuid|: The GUID of the Cellular network to activate.
|
| + // |carrier|: Optional name of carrier to activate.
|
| + // |callback|: Called when the activation request has been sent. See note
|
| + // for $(ref:startConnect).
|
| + 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 GUID 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.
|
| + // |callback|: 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
|
| + // $(ref:getWifiTDLSStatus)).
|
| + static void setWifiTDLSEnabledState(DOMString ip_or_mac_address,
|
| + boolean enabled,
|
| + optional StringCallback callback);
|
| +
|
| + // Returns the current TDLS status for the specified peer.
|
| + // |ip_or_mac_address|: The IP or MAC address of the peer.
|
| + // |callback|: 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 'networkGuid'.
|
| + // |networkGuid|: The GUID of the network to get captive portal status for.
|
| + // |callback|: A callback function that returns the 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
|
| + // GUIDs for networks whose properties have changed.
|
| + static void onNetworksChanged(DOMString[] changes);
|
| +
|
| + // Fired when the list of networks has changed. Sends a complete list of
|
| + // GUIDs 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);
|
| + };
|
| +};
|
|
|