|  | // Copyright 2017 The Chromium Authors | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | // <p> | 
|  | //   The <code>chrome.networking.onc</code> API is used for configuring | 
|  | //   network connections (Cellular, Ethernet, VPN or WiFi). | 
|  | //   This API is available in auto-launched Chrome OS kiosk sessions. | 
|  | // </p> | 
|  | // <p> | 
|  | //   Network connection configurations are specified following | 
|  | //   <a href="https://chromium.googlesource.com/chromium/src/+/main/components/onc/docs/onc_spec.md"> | 
|  | //   Open Network Configuration (ONC)</a> specification. | 
|  | // </p> | 
|  | // <p> | 
|  | //   <b>NOTE</b>: Most dictionary properties and enum values use UpperCamelCase | 
|  | //   to match the ONC specification instead of the JavaScript lowerCamelCase | 
|  | //   convention. | 
|  | // </p> | 
|  | namespace networking.onc { | 
|  | enum ActivationStateType { | 
|  | Activated, Activating, NotActivated, PartiallyActivated | 
|  | }; | 
|  |  | 
|  | enum CaptivePortalStatus { | 
|  | Unknown, Offline, Online, Portal, ProxyAuthRequired | 
|  | }; | 
|  |  | 
|  | enum ClientCertificateType { | 
|  | Ref, Pattern | 
|  | }; | 
|  |  | 
|  | enum ConnectionStateType { | 
|  | Connected, Connecting, NotConnected | 
|  | }; | 
|  |  | 
|  | enum DeviceStateType { | 
|  | // Device is available but not initialized. | 
|  | Uninitialized, | 
|  | // Device is initialized but not enabled. | 
|  | Disabled, | 
|  | // Enabled state has been requested but has not completed. | 
|  | Enabling, | 
|  | // Device is enabled. | 
|  | Enabled, | 
|  | // Device is prohibited. | 
|  | Prohibited | 
|  | }; | 
|  |  | 
|  | enum IPConfigType { | 
|  | DHCP, Static | 
|  | }; | 
|  |  | 
|  | enum NetworkType { | 
|  | All, Cellular, Ethernet, Tether, VPN, Wireless, WiFi | 
|  | }; | 
|  |  | 
|  | enum ProxySettingsType { | 
|  | Direct, Manual, PAC, WPAD | 
|  | }; | 
|  |  | 
|  | dictionary ManagedBoolean { | 
|  | // The active value currently used by the network configuration manager | 
|  | // (e.g. Shill). | 
|  | boolean? Active; | 
|  | // The source from which the effective property value was determined. | 
|  | DOMString? Effective; | 
|  | // The property value provided by the user policy. | 
|  | boolean? UserPolicy; | 
|  | // The property value provided by the device policy. | 
|  | boolean? DevicePolicy; | 
|  | // The property value set by the logged in user. Only provided if | 
|  | // |UserEditable| is <code>true</code>. | 
|  | boolean? UserSetting; | 
|  | // The value set for all users of the device. Only provided if | 
|  | // |DeviceEditiable| is <code>true</code>. | 
|  | boolean? SharedSetting; | 
|  | // Whether a UserPolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? UserEditable; | 
|  | // Whether a DevicePolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? DeviceEditable; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedLong { | 
|  | // The active value currently used by the network configuration manager | 
|  | // (e.g. Shill). | 
|  | long? Active; | 
|  | // The source from which the effective property value was determined. | 
|  | DOMString? Effective; | 
|  | // The property value provided by the user policy. | 
|  | long? UserPolicy; | 
|  | // The property value provided by the device policy. | 
|  | long? DevicePolicy; | 
|  | // The property value set by the logged in user. Only provided if | 
|  | // |UserEditable| is <code>true</code>. | 
|  | long? UserSetting; | 
|  | // The value set for all users of the device. Only provided if | 
|  | // |DeviceEditiable| is <code>true</code>. | 
|  | long? SharedSetting; | 
|  | // Whether a UserPolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? UserEditable; | 
|  | // Whether a DevicePolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? DeviceEditable; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedDOMString { | 
|  | // The active value currently used by the network configuration manager | 
|  | // (e.g. Shill). | 
|  | DOMString? Active; | 
|  | // The source from which the effective property value was determined. | 
|  | DOMString? Effective; | 
|  | // The property value provided by the user policy. | 
|  | DOMString? UserPolicy; | 
|  | // The property value provided by the device policy. | 
|  | DOMString? DevicePolicy; | 
|  | // The property value set by the logged in user. Only provided if | 
|  | // |UserEditable| is <code>true</code>. | 
|  | DOMString? UserSetting; | 
|  | // The value set for all users of the device. Only provided if | 
|  | // |DeviceEditiable| is <code>true</code>. | 
|  | DOMString? SharedSetting; | 
|  | // Whether a UserPolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? UserEditable; | 
|  | // Whether a DevicePolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? DeviceEditable; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedDOMStringList { | 
|  | // The active value currently used by the network configuration manager | 
|  | // (e.g. Shill). | 
|  | DOMString[]? Active; | 
|  | // The source from which the effective property value was determined. | 
|  | DOMString? Effective; | 
|  | // The property value provided by the user policy. | 
|  | DOMString[]? UserPolicy; | 
|  | // The property value provided by the device policy. | 
|  | DOMString[]? DevicePolicy; | 
|  | // The property value set by the logged in user. Only provided if | 
|  | // |UserEditable| is <code>true</code>. | 
|  | DOMString[]? UserSetting; | 
|  | // The value set for all users of the device. Only provided if | 
|  | // |DeviceEditiable| is <code>true</code>. | 
|  | DOMString[]? SharedSetting; | 
|  | // Whether a UserPolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? UserEditable; | 
|  | // Whether a DevicePolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? DeviceEditable; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedIPConfigType { | 
|  | // The active value currently used by the network configuration manager | 
|  | // (e.g. Shill). | 
|  | IPConfigType? Active; | 
|  | // The source from which the effective property value was determined. | 
|  | DOMString? Effective; | 
|  | // The property value provided by the user policy. | 
|  | IPConfigType? UserPolicy; | 
|  | // The property value provided by the device policy. | 
|  | IPConfigType? DevicePolicy; | 
|  | // The property value set by the logged in user. Only provided if | 
|  | // |UserEditable| is <code>true</code>. | 
|  | IPConfigType? UserSetting; | 
|  | // The value set for all users of the device. Only provided if | 
|  | // |DeviceEditiable| is <code>true</code>. | 
|  | IPConfigType? SharedSetting; | 
|  | // Whether a UserPolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? UserEditable; | 
|  | // Whether a DevicePolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? DeviceEditable; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedProxySettingsType { | 
|  | // The active value currently used by the network configuration manager | 
|  | // (e.g. Shill). | 
|  | ProxySettingsType? Active; | 
|  | // The source from which the effective property value was determined. | 
|  | DOMString? Effective; | 
|  | // The property value provided by the user policy. | 
|  | ProxySettingsType? UserPolicy; | 
|  | // The property value provided by the device policy. | 
|  | ProxySettingsType? DevicePolicy; | 
|  | // The property value set by the logged in user. Only provided if | 
|  | // |UserEditable| is <code>true</code>. | 
|  | ProxySettingsType? UserSetting; | 
|  | // The value set for all users of the device. Only provided if | 
|  | // |DeviceEditiable| is <code>true</code>. | 
|  | ProxySettingsType? SharedSetting; | 
|  | // Whether a UserPolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? UserEditable; | 
|  | // Whether a DevicePolicy for the property exists and allows the property to | 
|  | // be edited (i.e. the policy set recommended property value). | 
|  | // Defaults to <code>false</code>. | 
|  | boolean? DeviceEditable; | 
|  | }; | 
|  |  | 
|  | // Sub-dictionary types. | 
|  |  | 
|  | dictionary CellularProviderProperties { | 
|  | // The operator name. | 
|  | DOMString Name; | 
|  | // Cellular network ID as a simple concatenation of the network's | 
|  | // MCC (Mobile Country Code) and MNC (Mobile Network Code). | 
|  | DOMString Code; | 
|  | // The two-letter country code. | 
|  | DOMString? Country; | 
|  | }; | 
|  |  | 
|  | dictionary IssuerSubjectPattern { | 
|  | // If set, the value against which to match the certificate subject's | 
|  | // common name. | 
|  | DOMString? CommonName; | 
|  | // If set, the value against which to match the certificate subject's | 
|  | // common location. | 
|  | DOMString? Locality; | 
|  | // If set, the value against which to match the certificate subject's | 
|  | // organizations. At least one organization should match the value. | 
|  | DOMString? Organization; | 
|  | // If set, the value against which to match the certificate subject's | 
|  | // organizational units. At least one organizational unit should match the | 
|  | // value. | 
|  | DOMString? OrganizationalUnit; | 
|  | }; | 
|  |  | 
|  | dictionary CertificatePattern { | 
|  | // List of URIs to which the user can be directed in case no certificates | 
|  | // that match this pattern are found. | 
|  | DOMString[]? EnrollmentURI; | 
|  | // If set, pattern against which X.509 issuer settings should be matched. | 
|  | IssuerSubjectPattern? Issuer; | 
|  | // List of certificate issuer CA certificates. A certificate must be signed | 
|  | // by one of them in order to match this pattern. | 
|  | DOMString[]? IssuerCARef; | 
|  | // If set, pattern against which X.509 subject settings should be matched. | 
|  | IssuerSubjectPattern? Subject; | 
|  | }; | 
|  |  | 
|  | dictionary EAPProperties { | 
|  | DOMString? AnonymousIdentity; | 
|  | CertificatePattern? ClientCertPattern; | 
|  | DOMString? ClientCertPKCS11Id; | 
|  | DOMString? ClientCertProvisioningProfileId; | 
|  | DOMString? ClientCertRef; | 
|  | ClientCertificateType ClientCertType; | 
|  | DOMString? Identity; | 
|  | DOMString? Inner; | 
|  | // The outer EAP type. Required by ONC, but may not be provided when | 
|  | // translating from Shill. | 
|  | DOMString? Outer; | 
|  | DOMString? Password; | 
|  | boolean? SaveCredentials; | 
|  | DOMString[]? ServerCAPEMs; | 
|  | DOMString[]? ServerCARefs; | 
|  | ManagedDOMString? SubjectMatch; | 
|  | boolean? UseProactiveKeyCaching; | 
|  | boolean? UseSystemCAs; | 
|  | }; | 
|  |  | 
|  | dictionary FoundNetworkProperties { | 
|  | // Network availability. | 
|  | DOMString Status; | 
|  | // Network ID. | 
|  | DOMString NetworkId; | 
|  | // Access technology used by the network. | 
|  | DOMString Technology; | 
|  | // The network operator's short-format name. | 
|  | DOMString? ShortName; | 
|  | // The network operator's long-format name. | 
|  | DOMString? LongName; | 
|  | }; | 
|  |  | 
|  | dictionary IPConfigProperties { | 
|  | // Gateway address used for the IP configuration. | 
|  | DOMString? Gateway; | 
|  | // The IP address for a connection. Can be IPv4 or IPv6 address, depending | 
|  | // on value of <code>Type</code>. | 
|  | DOMString? IPAddress; | 
|  | // Array of IP blocks in CIDR notation, see onc_spec.md for details. | 
|  | DOMString[]? ExcludedRoutes; | 
|  | // Array of IP blocks in CIDR notation, see onc_spec.md for details. | 
|  | DOMString[]? IncludedRoutes; | 
|  | // Array of addresses used for name servers. | 
|  | DOMString[]? NameServers; | 
|  | // Array of strings for name resolution, see onc_spec.md for details. | 
|  | DOMString[]? SearchDomains; | 
|  | // The routing prefix. | 
|  | long? RoutingPrefix; | 
|  | // The IP configuration type. Can be <code>IPv4</code> or <code>IPv6</code>. | 
|  | DOMString? Type; | 
|  | // The URL for WEb Proxy Auto-Discovery, as reported over DHCP. | 
|  | DOMString? WebProxyAutoDiscoveryUrl; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedIPConfigProperties { | 
|  | // See $(ref:IPConfigProperties.Gateway). | 
|  | ManagedDOMString? Gateway; | 
|  | // See $(ref:IPConfigProperties.IPAddress). | 
|  | ManagedDOMString? IPAddress; | 
|  | // See $(ref:IPConfigProperties.NameServers). | 
|  | ManagedDOMStringList? NameServers; | 
|  | // See $(ref:IPConfigProperties.RoutingPrefix). | 
|  | ManagedLong? RoutingPrefix; | 
|  | // See $(ref:IPConfigProperties.Type). | 
|  | ManagedDOMString? Type; | 
|  | // See $(ref:IPConfigProperties.WebProxyAutoDiscoveryUrl). | 
|  | ManagedDOMString? WebProxyAutoDiscoveryUrl; | 
|  | }; | 
|  |  | 
|  | dictionary PaymentPortal { | 
|  | // The HTTP method to use for the payment portal. | 
|  | DOMString Method; | 
|  | // The post data to send to the payment portal. Ignored unless | 
|  | // <code>Method</code> is <code>POST</code>. | 
|  | DOMString? PostData; | 
|  | // The payment portal URL. | 
|  | DOMString? Url; | 
|  | }; | 
|  |  | 
|  | dictionary ProxyLocation { | 
|  | // The proxy IP address host. | 
|  | DOMString Host; | 
|  | // The port to use for the proxy. | 
|  | long Port; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedProxyLocation { | 
|  | // See $(ref:ProxyLocation.Host). | 
|  | ManagedDOMString Host; | 
|  | // See $(ref:ProxyLocation.Port). | 
|  | ManagedLong Port; | 
|  | }; | 
|  |  | 
|  | dictionary ManualProxySettings { | 
|  | // Settings for HTTP proxy. | 
|  | ProxyLocation? HTTPProxy; | 
|  | // Settings for secure HTTP proxy. | 
|  | ProxyLocation? SecureHTTPProxy; | 
|  | // Settings for FTP proxy. | 
|  | ProxyLocation? FTPProxy; | 
|  | // Settings for SOCKS proxy. | 
|  | ProxyLocation? SOCKS; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedManualProxySettings { | 
|  | // See $(ref:ManualProxySettings.HTTPProxy). | 
|  | ManagedProxyLocation? HTTPProxy; | 
|  | // See $(ref:ManualProxySettings.SecureHTTPProxy). | 
|  | ManagedProxyLocation? SecureHTTPProxy; | 
|  | // See $(ref:ManualProxySettings.FTPProxy). | 
|  | ManagedProxyLocation? FTPProxy; | 
|  | // See $(ref:ManualProxySettings.SOCKS). | 
|  | ManagedProxyLocation? SOCKS; | 
|  | }; | 
|  |  | 
|  | dictionary ProxySettings { | 
|  | // The type of proxy settings. | 
|  | ProxySettingsType Type; | 
|  | // Manual proxy settings - used only for <code>Manual</code> proxy settings. | 
|  | ManualProxySettings? Manual; | 
|  | // Domains and hosts for which manual proxy settings are excluded. | 
|  | DOMString[]? ExcludeDomains; | 
|  | // URL for proxy auto-configuration file. | 
|  | DOMString? PAC; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedProxySettings { | 
|  | // See $(ref:ProxySettings.Type). | 
|  | ManagedProxySettingsType Type; | 
|  | // See $(ref:ProxySettings.Manual). | 
|  | ManagedManualProxySettings? Manual; | 
|  | // See $(ref:ProxySettings.ExcludeDomains). | 
|  | ManagedDOMStringList? ExcludeDomains; | 
|  | // See $(ref:ProxySettings.PAC). | 
|  | ManagedDOMString? PAC; | 
|  | }; | 
|  |  | 
|  | dictionary SIMLockStatus { | 
|  | // The status of SIM lock - possible values are <code>'sim-pin'</code>, | 
|  | // <code>'sim-puk'</code> and <code>''</code>. | 
|  | DOMString LockType; | 
|  | // Whether SIM lock is enabled. | 
|  | boolean LockEnabled; | 
|  | // Number of PIN lock tries allowed before PUK is required to unlock the | 
|  | // SIM. | 
|  | long? RetriesLeft; | 
|  | }; | 
|  |  | 
|  | dictionary ThirdPartyVPNProperties { | 
|  | // ID of the third-party VPN provider extension. | 
|  | DOMString ExtensionID; | 
|  | // The VPN provider name. | 
|  | DOMString? ProviderName; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedThirdPartyVPNProperties { | 
|  | // See $(ref:ThirdPartyVPNProperties.ExtensionID). | 
|  | ManagedDOMString ExtensionID; | 
|  | // See $(ref:ThirdPartyVPNProperties.ProviderName). | 
|  | DOMString? ProviderName; | 
|  | }; | 
|  |  | 
|  | // Network type dictionary types. | 
|  |  | 
|  | dictionary CellularProperties { | 
|  | // Whether the cellular network should be connected automatically (when | 
|  | // in range). | 
|  | boolean? AutoConnect; | 
|  | // The cellular network activation type. | 
|  | DOMString? ActivationType; | 
|  | // Carrier account activation state. | 
|  | ActivationStateType? ActivationState; | 
|  | // Whether roaming is allowed for the network. | 
|  | boolean? AllowRoaming; | 
|  | // Cellular device technology family - <code>CDMA</code> or | 
|  | // <code>GSM</code>. | 
|  | DOMString? Family; | 
|  | // The firmware revision loaded in the cellular modem. | 
|  | DOMString? FirmwareRevision; | 
|  | // The list of networks found during the most recent network scan. | 
|  | FoundNetworkProperties[]? FoundNetworks; | 
|  | // The cellular modem hardware revision. | 
|  | DOMString? HardwareRevision; | 
|  | // Information about the operator that issued the SIM card currently | 
|  | // installed in the modem. | 
|  | CellularProviderProperties? HomeProvider; | 
|  | // The cellular modem manufacturer. | 
|  | DOMString? Manufacturer; | 
|  | // The cellular modem model ID. | 
|  | DOMString? ModelID; | 
|  | // If the modem is registered on a network, the network technology | 
|  | // currently in use. | 
|  | DOMString? NetworkTechnology; | 
|  | // Online payment portal a user can use to sign-up for or modify a mobile | 
|  | // data plan. | 
|  | PaymentPortal? PaymentPortal; | 
|  | // The roaming state of the cellular modem on the current network. | 
|  | DOMString? RoamingState; | 
|  | // True when a cellular network scan is in progress. | 
|  | boolean? Scanning; | 
|  | // Information about the operator on whose network the modem is currently | 
|  | // registered. | 
|  | CellularProviderProperties? ServingOperator; | 
|  | // The state of SIM lock for GSM family networks. | 
|  | SIMLockStatus? SIMLockStatus; | 
|  | // Whether a SIM card is present. | 
|  | boolean? SIMPresent; | 
|  | // The current network signal strength. | 
|  | long? SignalStrength; | 
|  | // Whether the cellular network supports scanning. | 
|  | boolean? SupportNetworkScan; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedCellularProperties { | 
|  | // See $(ref:CellularProperties.AutoConnect). | 
|  | ManagedBoolean? AutoConnect; | 
|  | // See $(ref:CellularProperties.ActivationType). | 
|  | DOMString? ActivationType; | 
|  | // See $(ref:CellularProperties.ActivationState). | 
|  | ActivationStateType? ActivationState; | 
|  | // See $(ref:CellularProperties.AllowRoaming). | 
|  | boolean? AllowRoaming; | 
|  | // See $(ref:CellularProperties.Family). | 
|  | DOMString? Family; | 
|  | // See $(ref:CellularProperties.FirmwareRevision). | 
|  | DOMString? FirmwareRevision; | 
|  | // See $(ref:CellularProperties.FoundNetworks). | 
|  | FoundNetworkProperties[]? FoundNetworks; | 
|  | // See $(ref:CellularProperties.HardwareRevision). | 
|  | DOMString? HardwareRevision; | 
|  | // See $(ref:CellularProperties.HomeProvider). | 
|  | CellularProviderProperties[]? HomeProvider; | 
|  | // See $(ref:CellularProperties.Manufacturer). | 
|  | DOMString? Manufacturer; | 
|  | // See $(ref:CellularProperties.ModelID). | 
|  | DOMString? ModelID; | 
|  | // See $(ref:CellularProperties.NetworkTechnology). | 
|  | DOMString? NetworkTechnology; | 
|  | // See $(ref:CellularProperties.PaymentPortal). | 
|  | PaymentPortal? PaymentPortal; | 
|  | // See $(ref:CellularProperties.RoamingState). | 
|  | DOMString? RoamingState; | 
|  | // See $(ref:CellularProperties.Scanning). | 
|  | boolean? Scanning; | 
|  | // See $(ref:CellularProperties.ServingOperator). | 
|  | CellularProviderProperties? ServingOperator; | 
|  | // See $(ref:CellularProperties.SIMLockStatus). | 
|  | SIMLockStatus? SIMLockStatus; | 
|  | // See $(ref:CellularProperties.SIMPresent). | 
|  | boolean? SIMPresent; | 
|  | // See $(ref:CellularProperties.SignalStrength). | 
|  | long? SignalStrength; | 
|  | // See $(ref:CellularProperties.SupportNetworkScan). | 
|  | boolean? SupportNetworkScan; | 
|  | }; | 
|  |  | 
|  | dictionary CellularStateProperties { | 
|  | // See $(ref:CellularProperties.ActivationState). | 
|  | ActivationStateType? ActivationState; | 
|  | // See $(ref:CellularProperties.NetworkTechnology). | 
|  | DOMString? NetworkTechnology; | 
|  | // See $(ref:CellularProperties.RoamingState). | 
|  | DOMString? RoamingState; | 
|  | // See $(ref:CellularProperties.SIMPresent). | 
|  | boolean? SIMPresent; | 
|  | // See $(ref:CellularProperties.SignalStrength). | 
|  | long? SignalStrength; | 
|  | }; | 
|  |  | 
|  | dictionary EthernetProperties { | 
|  | // Whether the Ethernet network should be connected automatically. | 
|  | boolean? AutoConnect; | 
|  | // The authentication used by the Ethernet network. Possible values are | 
|  | // <code>None</code> and <code>8021X</code>. | 
|  | DOMString? Authentication; | 
|  | // Network's EAP settings. Required for 8021X authentication. | 
|  | EAPProperties? EAP; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedEthernetProperties { | 
|  | // See $(ref:EthernetProperties.AutoConnect). | 
|  | ManagedBoolean? AutoConnect; | 
|  | // See $(ref:EthernetProperties.Authentication). | 
|  | ManagedDOMString? Authentication; | 
|  | }; | 
|  |  | 
|  | dictionary EthernetStateProperties { | 
|  | // See $(ref:EthernetProperties.Authentication). | 
|  | DOMString Authentication; | 
|  | }; | 
|  |  | 
|  | dictionary VPNProperties { | 
|  | // Whether the VPN network should be connected automatically. | 
|  | boolean? AutoConnect; | 
|  | // The VPN host. | 
|  | DOMString? Host; | 
|  | // The VPN type. This cannot be an enum because of 'L2TP-IPSec'. | 
|  | // This is optional for NetworkConfigProperties which is passed to | 
|  | // setProperties which may be used to set only specific properties. | 
|  | DOMString? Type; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedVPNProperties { | 
|  | // See $(ref:VPNProperties.AutoConnect). | 
|  | ManagedBoolean? AutoConnect; | 
|  | // See $(ref:VPNProperties.Host). | 
|  | ManagedDOMString? Host; | 
|  | // See $(ref:VPNProperties.Type). | 
|  | ManagedDOMString? Type; | 
|  | }; | 
|  |  | 
|  | dictionary VPNStateProperties { | 
|  | // See $(ref:VPNProperties.Type). | 
|  | DOMString Type; | 
|  | }; | 
|  |  | 
|  | dictionary WiFiProperties { | 
|  | [deprecated="Removed in M131. There is no active ARP polling now."] | 
|  | boolean? AllowGatewayARPPolling; | 
|  | // Whether the WiFi network should be connected automatically when in range. | 
|  | boolean? AutoConnect; | 
|  | // The BSSID of the associated access point.. | 
|  | DOMString? BSSID; | 
|  | // The network EAP properties. Required for <code>WEP-8021X</code> and | 
|  | // <code>WPA-EAP</code> networks. | 
|  | EAPProperties? EAP; | 
|  | // The WiFi service operating frequency in MHz. For connected networks, the | 
|  | // current frequency on which the network is connected. Otherwise, the | 
|  | // frequency of the best available BSS. | 
|  | long? Frequency; | 
|  | // Contains all operating frequency recently seen for the WiFi network. | 
|  | long[]? FrequencyList; | 
|  | // HEX-encoded copy of the network SSID. | 
|  | DOMString? HexSSID; | 
|  | // Whether the network SSID will be broadcast. | 
|  | boolean? HiddenSSID; | 
|  | // The passphrase for WEP/WPA/WPA2 connections. This property can only be | 
|  | // set - properties returned by $(ref:getProperties) will not contain this | 
|  | // value. | 
|  | DOMString? Passphrase; | 
|  | // Deprecated, ignored. | 
|  | long? RoamThreshold; | 
|  | // The network SSID. | 
|  | DOMString? SSID; | 
|  | // The network security type. | 
|  | DOMString? Security; | 
|  | // The network signal strength. | 
|  | long? SignalStrength; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedWiFiProperties { | 
|  | // See $(ref:WiFiProperties.AllowGatewayARPPolling). | 
|  | ManagedBoolean? AllowGatewayARPPolling; | 
|  | // See $(ref:WiFiProperties.AutoConnect). | 
|  | ManagedBoolean? AutoConnect; | 
|  | // See $(ref:WiFiProperties.BSSID). | 
|  | DOMString? BSSID; | 
|  | // See $(ref:WiFiProperties.Frequency). | 
|  | long? Frequency; | 
|  | // See $(ref:WiFiProperties.FrequencyList). | 
|  | long[]? FrequencyList; | 
|  | // See $(ref:WiFiProperties.HexSSID). | 
|  | ManagedDOMString? HexSSID; | 
|  | // See $(ref:WiFiProperties.HiddenSSID). | 
|  | ManagedBoolean? HiddenSSID; | 
|  | // Deprecated, ignored. See $(ref:WiFiProperties.RoamThreshold). | 
|  | ManagedLong? RoamThreshold; | 
|  | // See $(ref:WiFiProperties.SSID). | 
|  | ManagedDOMString? SSID; | 
|  | // See $(ref:WiFiProperties.Security). | 
|  | ManagedDOMString Security; | 
|  | // See $(ref:WiFiProperties.SignalStrength). | 
|  | long? SignalStrength; | 
|  | }; | 
|  |  | 
|  | dictionary WiFiStateProperties { | 
|  | // See $(ref:WiFiProperties.BSSID). | 
|  | DOMString? BSSID; | 
|  | // See $(ref:WiFiProperties.Frequency). | 
|  | long? Frequency; | 
|  | // See $(ref:WiFiProperties.HexSSID). | 
|  | DOMString? HexSSID; | 
|  | // See $(ref:WiFiProperties.Security). | 
|  | DOMString Security; | 
|  | // See $(ref:WiFiProperties.SignalStrength). | 
|  | long? SignalStrength; | 
|  | // See $(ref:WiFiProperties.SSID). | 
|  | DOMString? SSID; | 
|  | }; | 
|  |  | 
|  | // Deprecated | 
|  | dictionary WiMAXProperties { | 
|  | // Whether the network should be connected automatically. | 
|  | boolean? AutoConnect; | 
|  | // The network EAP properties. | 
|  | EAPProperties? EAP; | 
|  | }; | 
|  |  | 
|  | dictionary NetworkConfigProperties { | 
|  | // See $(ref:NetworkProperties.Cellular). | 
|  | CellularProperties? Cellular; | 
|  | // See $(ref:NetworkProperties.Ethernet). | 
|  | EthernetProperties? Ethernet; | 
|  | // See $(ref:NetworkProperties.GUID). | 
|  | DOMString? GUID; | 
|  | // See $(ref:NetworkProperties.IPAddressConfigType). | 
|  | IPConfigType? IPAddressConfigType; | 
|  | // See $(ref:NetworkProperties.Name). | 
|  | DOMString? Name; | 
|  | // See $(ref:NetworkProperties.NameServersConfigType). | 
|  | IPConfigType? NameServersConfigType; | 
|  | // See $(ref:NetworkProperties.Priority). | 
|  | long? Priority; | 
|  | // See $(ref:NetworkProperties.Type). | 
|  | NetworkType? Type; | 
|  | // See $(ref:NetworkProperties.VPN). | 
|  | VPNProperties? VPN; | 
|  | // See $(ref:NetworkProperties.WiFi). | 
|  | WiFiProperties? WiFi; | 
|  | // Deprecated. | 
|  | WiMAXProperties? WiMAX; | 
|  | }; | 
|  |  | 
|  | dictionary NetworkProperties { | 
|  | // For cellular networks, cellular network properties. | 
|  | CellularProperties? Cellular; | 
|  | // Whether the network is connectable. | 
|  | boolean? Connectable; | 
|  | // The network's current connection state. | 
|  | ConnectionStateType? ConnectionState; | 
|  | // The last recorded network error state. | 
|  | DOMString? ErrorState; | 
|  | // For Ethernet networks, the Ethernet network properties. | 
|  | EthernetProperties? Ethernet; | 
|  | // The network GUID. | 
|  | DOMString GUID; | 
|  | // The network's IP address configuration type. | 
|  | IPConfigType? IPAddressConfigType; | 
|  | // The network's IP configuration. | 
|  | IPConfigProperties[]? IPConfigs; | 
|  | // The network's MAC address. | 
|  | DOMString? MacAddress; | 
|  | // Whether the network is metered. | 
|  | boolean? Metered; | 
|  | // A user friendly network name. | 
|  | DOMString? Name; | 
|  | // The IP configuration type for the name servers used by the network. | 
|  | IPConfigType? NameServersConfigType; | 
|  | // The network priority. | 
|  | long? Priority; | 
|  | // The network's proxy settings. | 
|  | ProxySettings? ProxySettings; | 
|  | // For a connected network, whether the network connectivity to the | 
|  | // Internet is limited, e.g. if the network is behind a portal, or a | 
|  | // cellular network is not activated. | 
|  | boolean? RestrictedConnectivity; | 
|  | // The network's static IP configuration. | 
|  | IPConfigProperties? StaticIPConfig; | 
|  | // IP configuration that was received from the DHCP server before applying | 
|  | // static IP configuration. | 
|  | IPConfigProperties? SavedIPConfig; | 
|  | // Indicates whether and how the network is configured. Possible values are: | 
|  | // <ul> | 
|  | //    <li><code>Device</code></li> | 
|  | //    <li><code>DevicePolicy</code></li> | 
|  | //    <li><code>User</code></li> | 
|  | //    <li><code>UserPolicy</code></li> | 
|  | //    <li><code>None</code></li> | 
|  | // </ul> | 
|  | // 'None' conflicts with extension code generation so we must use a string | 
|  | // for 'Source' instead of a SourceType enum. | 
|  | DOMString? Source; | 
|  | // When traffic counters were last reset. | 
|  | double? TrafficCounterResetTime; | 
|  | // The network type. | 
|  | NetworkType Type; | 
|  | // For VPN networks, the network VPN properties. | 
|  | VPNProperties? VPN; | 
|  | // For WiFi networks, the network WiFi properties. | 
|  | WiFiProperties? WiFi; | 
|  | }; | 
|  |  | 
|  | dictionary ManagedProperties { | 
|  | // See $(ref:NetworkProperties.Cellular). | 
|  | ManagedCellularProperties? Cellular; | 
|  | // See $(ref:NetworkProperties.Connectable). | 
|  | boolean? Connectable; | 
|  | // See $(ref:NetworkProperties.ConnectionState). | 
|  | ConnectionStateType? ConnectionState; | 
|  | // See $(ref:NetworkProperties.ErrorState). | 
|  | DOMString? ErrorState; | 
|  | // See $(ref:NetworkProperties.Ethernet). | 
|  | ManagedEthernetProperties? Ethernet; | 
|  | // See $(ref:NetworkProperties.GUID). | 
|  | DOMString GUID; | 
|  | // See $(ref:NetworkProperties.IPAddressConfigType). | 
|  | ManagedIPConfigType? IPAddressConfigType; | 
|  | // See $(ref:NetworkProperties.IPConfigs). | 
|  | IPConfigProperties[]? IPConfigs; | 
|  | // See $(ref:NetworkProperties.MacAddress). | 
|  | DOMString? MacAddress; | 
|  | // See $(ref:NetworkProperties.Metered). | 
|  | ManagedBoolean? Metered; | 
|  | // See $(ref:NetworkProperties.Name). | 
|  | ManagedDOMString? Name; | 
|  | // See $(ref:NetworkProperties.NameServersConfigType). | 
|  | ManagedIPConfigType? NameServersConfigType; | 
|  | // See $(ref:NetworkProperties.Priority). | 
|  | ManagedLong? Priority; | 
|  | // See $(ref:NetworkProperties.ProxySettings). | 
|  | ManagedProxySettings? ProxySettings; | 
|  | // See $(ref:NetworkProperties.RestrictedConnectivity). | 
|  | boolean? RestrictedConnectivity; | 
|  | // See $(ref:NetworkProperties.StaticIPConfig). | 
|  | ManagedIPConfigProperties? StaticIPConfig; | 
|  | // See $(ref:NetworkProperties.SavedIPConfig). | 
|  | IPConfigProperties? SavedIPConfig; | 
|  | // See $(ref:NetworkProperties.Source). | 
|  | DOMString? Source; | 
|  | // See $(ref:NetworkProperties.TrafficCounterResetTime). | 
|  | double? TrafficCounterResetTime; | 
|  | // See $(ref:NetworkProperties.Type). | 
|  | NetworkType Type; | 
|  | // See $(ref:NetworkProperties.VPN). | 
|  | ManagedVPNProperties? VPN; | 
|  | // See $(ref:NetworkProperties.WiFi). | 
|  | ManagedWiFiProperties? WiFi; | 
|  | }; | 
|  |  | 
|  | dictionary NetworkStateProperties { | 
|  | // See $(ref:NetworkProperties.Cellular). | 
|  | CellularStateProperties? Cellular; | 
|  | // See $(ref:NetworkProperties.Connectable). | 
|  | boolean? Connectable; | 
|  | // See $(ref:NetworkProperties.ConnectionState). | 
|  | ConnectionStateType? ConnectionState; | 
|  | // See $(ref:NetworkProperties.Ethernet). | 
|  | EthernetStateProperties? Ethernet; | 
|  | // See $(ref:NetworkProperties.ErrorState). | 
|  | DOMString? ErrorState; | 
|  | // See $(ref:NetworkProperties.GUID). | 
|  | DOMString GUID; | 
|  | // See $(ref:NetworkProperties.Name). | 
|  | DOMString? Name; | 
|  | // See $(ref:NetworkProperties.Priority). | 
|  | long? Priority; | 
|  | // See $(ref:NetworkProperties.Source). | 
|  | DOMString? Source; | 
|  | // See $(ref:NetworkProperties.Type). | 
|  | NetworkType Type; | 
|  | // See $(ref:NetworkProperties.VPN). | 
|  | VPNStateProperties? VPN; | 
|  | // See $(ref:NetworkProperties.WiFi). | 
|  | WiFiStateProperties? WiFi; | 
|  | }; | 
|  |  | 
|  | dictionary DeviceStateProperties { | 
|  | // Set if the device is enabled. True if the device is currently scanning. | 
|  | boolean? Scanning; | 
|  |  | 
|  | // The SIM lock status if Type = Cellular and SIMPresent = True. | 
|  | SIMLockStatus? SIMLockStatus; | 
|  |  | 
|  | // Set to the SIM present state if the device type is Cellular. | 
|  | boolean? SIMPresent; | 
|  |  | 
|  | // The current state of the device. | 
|  | DeviceStateType State; | 
|  |  | 
|  | // The network type associated with the device (Cellular, Ethernet or WiFi). | 
|  | NetworkType Type; | 
|  | }; | 
|  |  | 
|  | 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; | 
|  | }; | 
|  |  | 
|  | dictionary GlobalPolicy { | 
|  | // If true, only policy networks may auto connect. Defaults to false. | 
|  | boolean? AllowOnlyPolicyNetworksToAutoconnect; | 
|  |  | 
|  | // If true, only policy networks may be connected to and no new networks may | 
|  | // be added or configured. Defaults to false. | 
|  | boolean? AllowOnlyPolicyNetworksToConnect; | 
|  |  | 
|  | // If true and a managed network is available in the visible network list, | 
|  | // only policy networks may be connected to and no new networks may be added | 
|  | // or configured. Defaults to false. | 
|  | boolean? AllowOnlyPolicyNetworksToConnectIfAvailable; | 
|  |  | 
|  | // List of blocked networks. Connections to blocked networks are | 
|  | // prohibited. Networks can be unblocked again by specifying an explicit | 
|  | // network configuration. Defaults to an empty list. | 
|  | DOMString[]? BlockedHexSSIDs; | 
|  | }; | 
|  |  | 
|  | callback VoidCallback = void(); | 
|  | callback BooleanCallback = void(boolean result); | 
|  | callback StringCallback = void(DOMString result); | 
|  | callback GetPropertiesCallback = void(NetworkProperties result); | 
|  | callback GetManagedPropertiesCallback = void(ManagedProperties result); | 
|  | callback GetStatePropertiesCallback = void(NetworkStateProperties result); | 
|  | callback GetNetworksCallback = void(NetworkStateProperties[] result); | 
|  | callback GetDeviceStatesCallback = void(DeviceStateProperties[] result); | 
|  | callback GetEnabledNetworkTypesCallback = void(NetworkType[] result); | 
|  | callback CaptivePortalStatusCallback = void(CaptivePortalStatus result); | 
|  | callback GetGlobalPolicyCallback = void(GlobalPolicy result); | 
|  |  | 
|  | 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. | 
|  | // |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|. This is only | 
|  | // valid for configured networks (Source != None). Unconfigured visible | 
|  | // networks should use $(ref:createNetwork) instead. | 
|  | // <b> | 
|  | //   In kiosk sessions, calling this method on a shared network will fail. | 
|  | // </b> | 
|  | // |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, | 
|  | 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|: <p> | 
|  | //     If <code>true</code>, share this network configuration with | 
|  | //     other users. | 
|  | //     </p> | 
|  | //     <p> | 
|  | //       <b>This option is exposed only to Chrome's Web UI.</b> | 
|  | //       When called by apps, <code>false</code> is the only allowed value. | 
|  | //     </p> | 
|  | // |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, | 
|  | NetworkConfigProperties properties, | 
|  | optional StringCallback callback); | 
|  |  | 
|  | // <p> | 
|  | //   Forgets a network configuration by clearing any configured properties | 
|  | //   for the network with GUID <code>networkGuid</code>. 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. | 
|  | // </p> | 
|  | // <p> | 
|  | //   <b>In kiosk sessions, this method will not be able to forget shared | 
|  | //      network configurations.</b> | 
|  | // </p> | 
|  | // |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: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); | 
|  |  | 
|  | // Returns states of available networking devices. | 
|  | // |callback|: Called with a list of devices and their state. | 
|  | static void getDeviceStates(GetDeviceStatesCallback callback); | 
|  |  | 
|  | // Enables any devices matching 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); | 
|  |  | 
|  | // Disables any devices matching the specified network type. See note for | 
|  | // $(ref: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. | 
|  | // |networkType|: If provided, requests a scan specific to the type. | 
|  | //     For Cellular a mobile network scan will be requested if supported. | 
|  | static void requestNetworkScan(optional NetworkType networkType); | 
|  |  | 
|  | // 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. If the connect request | 
|  | //     immediately failed (e.g. the network is unconfigured), | 
|  | //     $(ref:runtime.lastError) will be set with a failure reason. | 
|  | 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); | 
|  |  | 
|  | // 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); | 
|  |  | 
|  | // Gets the global policy properties. These properties are not expected to | 
|  | // change during a session. | 
|  | static void getGlobalPolicy(GetGlobalPolicyCallback 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 the list of devices has changed or any device state properties | 
|  | // have changed. | 
|  | static void onDeviceStateListChanged(); | 
|  |  | 
|  | // 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); | 
|  | }; | 
|  | }; |