1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file was generated by:
6 // ./tools/json_schema_compiler/compiler.py.
7 // NOTE: The format of types has changed. 'FooType' is now
8 // 'chrome.networkingPrivate.FooType'.
9 // Please run the closure compiler before committing changes.
10 // See https://code.google.com/p/chromium/wiki/ClosureCompilation.
12 /** @fileoverview Externs generated from namespace: networkingPrivate */
17 chrome.networkingPrivate = {};
21 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ActivationStateType
23 chrome.networkingPrivate.ActivationStateType = {
24 ACTIVATED: 'Activated',
25 ACTIVATING: 'Activating',
26 NOT_ACTIVATED: 'NotActivated',
27 PARTIALLY_ACTIVATED: 'PartiallyActivated',
32 * @see https://developer.chrome.com/extensions/networkingPrivate#type-CaptivePortalStatus
34 chrome.networkingPrivate.CaptivePortalStatus = {
39 PROXY_AUTH_REQUIRED: 'ProxyAuthRequired',
44 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ConnectionStateType
46 chrome.networkingPrivate.ConnectionStateType = {
47 CONNECTED: 'Connected',
48 CONNECTING: 'Connecting',
49 NOT_CONNECTED: 'NotConnected',
54 * @see https://developer.chrome.com/extensions/networkingPrivate#type-DeviceStateType
56 chrome.networkingPrivate.DeviceStateType = {
57 UNINITIALIZED: 'Uninitialized',
65 * @see https://developer.chrome.com/extensions/networkingPrivate#type-IPConfigType
67 chrome.networkingPrivate.IPConfigType = {
74 * @see https://developer.chrome.com/extensions/networkingPrivate#type-NetworkType
76 chrome.networkingPrivate.NetworkType = {
88 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ProxySettingsType
90 chrome.networkingPrivate.ProxySettingsType = {
99 * AccessPointName: string,
100 * Language: (string|undefined),
101 * LocalizedName: (string|undefined),
102 * Name: (string|undefined),
103 * Password: (string|undefined),
104 * Username: (string|undefined)
106 * @see https://developer.chrome.com/extensions/networkingPrivate#type-APNProperties
108 chrome.networkingPrivate.APNProperties;
112 * AutoConnect: (boolean|undefined),
113 * APN: (!chrome.networkingPrivate.APNProperties|undefined),
114 * Carrier: (string|undefined)
116 * @see https://developer.chrome.com/extensions/networkingPrivate#type-CellularConfigProperties
118 chrome.networkingPrivate.CellularConfigProperties;
122 * requirePin: boolean,
123 * currentPin: string,
124 * newPin: (string|undefined)
126 * @see https://developer.chrome.com/extensions/networkingPrivate#type-CellularSimState
128 chrome.networkingPrivate.CellularSimState;
132 * ActivationState: (!chrome.networkingPrivate.ActivationStateType|undefined),
133 * NetworkTechnology: (string|undefined),
134 * RoamingState: (string|undefined),
135 * SIMPresent: (boolean|undefined),
136 * SignalStrength: (number|undefined)
138 * @see https://developer.chrome.com/extensions/networkingPrivate#type-CellularStateProperties
140 chrome.networkingPrivate.CellularStateProperties;
144 * Scanning: (boolean|undefined),
145 * SimLockType: (string|undefined),
146 * SimPresent: (boolean|undefined),
147 * State: !chrome.networkingPrivate.DeviceStateType,
148 * Type: !chrome.networkingPrivate.NetworkType
150 * @see https://developer.chrome.com/extensions/networkingPrivate#type-DeviceStateProperties
152 chrome.networkingPrivate.DeviceStateProperties;
156 * Authentication: string
158 * @see https://developer.chrome.com/extensions/networkingPrivate#type-EthernetStateProperties
160 chrome.networkingPrivate.EthernetStateProperties;
164 * Gateway: (string|undefined),
165 * IPAddress: (string|undefined),
166 * NameServers: (!Array<string>|undefined),
167 * RoutingPrefix: (number|undefined),
168 * Type: (string|undefined),
169 * WebProxyAutoDiscoveryUrl: (string|undefined)
171 * @see https://developer.chrome.com/extensions/networkingPrivate#type-IPConfigProperties
173 chrome.networkingPrivate.IPConfigProperties;
177 * AuthenticationType: string
179 * @see https://developer.chrome.com/extensions/networkingPrivate#type-IPSecProperties
181 chrome.networkingPrivate.IPSecProperties;
188 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ProxyLocation
190 chrome.networkingPrivate.ProxyLocation;
194 * HTTPProxy: (!chrome.networkingPrivate.ProxyLocation|undefined),
195 * SecureHTTPProxy: (!chrome.networkingPrivate.ProxyLocation|undefined),
196 * FTPProxy: (!chrome.networkingPrivate.ProxyLocation|undefined),
197 * SOCKS: (!chrome.networkingPrivate.ProxyLocation|undefined)
199 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ManualProxySettings
201 chrome.networkingPrivate.ManualProxySettings;
205 * Type: !chrome.networkingPrivate.ProxySettingsType,
206 * Manual: (!chrome.networkingPrivate.ManualProxySettings|undefined),
207 * ExcludeDomains: (!Array<string>|undefined),
208 * PAC: (string|undefined)
210 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ProxySettings
212 chrome.networkingPrivate.ProxySettings;
216 * OTP: (string|undefined),
217 * Password: (string|undefined),
218 * UserAuthenticationType: (string|undefined),
219 * Username: (string|undefined)
221 * @see https://developer.chrome.com/extensions/networkingPrivate#type-OpenVPNProperties
223 chrome.networkingPrivate.OpenVPNProperties;
227 * ExtensionID: string
229 * @see https://developer.chrome.com/extensions/networkingPrivate#type-ThirdPartyVPNProperties
231 chrome.networkingPrivate.ThirdPartyVPNProperties;
235 * AutoConnect: (boolean|undefined),
236 * Host: (string|undefined),
237 * OpenVPN: (!chrome.networkingPrivate.OpenVPNProperties|undefined),
238 * ThirdPartyVPN: (!chrome.networkingPrivate.ThirdPartyVPNProperties|undefined),
239 * Type: (string|undefined)
241 * @see https://developer.chrome.com/extensions/networkingPrivate#type-VPNConfigProperties
243 chrome.networkingPrivate.VPNConfigProperties;
248 * IPsec: (!chrome.networkingPrivate.IPSecProperties|undefined),
249 * ThirdPartyVPN: (!chrome.networkingPrivate.ThirdPartyVPNProperties|undefined)
251 * @see https://developer.chrome.com/extensions/networkingPrivate#type-VPNStateProperties
253 chrome.networkingPrivate.VPNStateProperties;
257 * AutoConnect: (boolean|undefined),
258 * HexSSID: (string|undefined),
259 * HiddenSSID: (boolean|undefined),
260 * Passphrase: (string|undefined),
261 * SSID: (string|undefined),
262 * Security: (string|undefined)
264 * @see https://developer.chrome.com/extensions/networkingPrivate#type-WiFiConfigProperties
266 chrome.networkingPrivate.WiFiConfigProperties;
271 * SignalStrength: (number|undefined)
273 * @see https://developer.chrome.com/extensions/networkingPrivate#type-WiFiStateProperties
275 chrome.networkingPrivate.WiFiStateProperties;
279 * AutoConnect: (boolean|undefined)
281 * @see https://developer.chrome.com/extensions/networkingPrivate#type-WiMaxConfigProperties
283 chrome.networkingPrivate.WiMaxConfigProperties;
287 * SignalStrength: (number|undefined)
289 * @see https://developer.chrome.com/extensions/networkingPrivate#type-WiMAXStateProperties
291 chrome.networkingPrivate.WiMAXStateProperties;
295 * Cellular: (!chrome.networkingPrivate.CellularConfigProperties|undefined),
296 * GUID: (string|undefined),
297 * IPAddressConfigType: (!chrome.networkingPrivate.IPConfigType|undefined),
298 * Name: (string|undefined),
299 * NameServersConfigType: (!chrome.networkingPrivate.IPConfigType|undefined),
300 * Priority: (number|undefined),
301 * ProxySettings: (!chrome.networkingPrivate.ProxySettings|undefined),
302 * StaticIPConfig: (!chrome.networkingPrivate.IPConfigProperties|undefined),
303 * Type: (!chrome.networkingPrivate.NetworkType|undefined),
304 * VPN: (!chrome.networkingPrivate.VPNConfigProperties|undefined),
305 * WiFi: (!chrome.networkingPrivate.WiFiConfigProperties|undefined),
306 * WiMAX: (!chrome.networkingPrivate.WiMaxConfigProperties|undefined)
308 * @see https://developer.chrome.com/extensions/networkingPrivate#type-NetworkConfigProperties
310 chrome.networkingPrivate.NetworkConfigProperties;
314 * Cellular: (!chrome.networkingPrivate.CellularStateProperties|undefined),
315 * Connectable: (boolean|undefined),
316 * ConnectionState: (!chrome.networkingPrivate.ConnectionStateType|undefined),
317 * Ethernet: (!chrome.networkingPrivate.EthernetStateProperties|undefined),
318 * ErrorState: (string|undefined),
320 * Name: (string|undefined),
321 * Priority: (number|undefined),
322 * Source: (string|undefined),
323 * Type: !chrome.networkingPrivate.NetworkType,
324 * VPN: (!chrome.networkingPrivate.VPNStateProperties|undefined),
325 * WiFi: (!chrome.networkingPrivate.WiFiStateProperties|undefined),
326 * WiMAX: (!chrome.networkingPrivate.WiMAXStateProperties|undefined)
328 * @see https://developer.chrome.com/extensions/networkingPrivate#type-NetworkStateProperties
330 chrome.networkingPrivate.NetworkStateProperties;
334 * certificate: string,
335 * intermediateCertificates: (!Array<string>|undefined),
338 * signedData: string,
339 * deviceSerial: string,
340 * deviceSsid: string,
341 * deviceBssid: string
343 * @see https://developer.chrome.com/extensions/networkingPrivate#type-VerificationProperties
345 chrome.networkingPrivate.VerificationProperties;
349 * networkType: !chrome.networkingPrivate.NetworkType,
350 * visible: (boolean|undefined),
351 * configured: (boolean|undefined),
352 * limit: (number|undefined)
354 * @see https://developer.chrome.com/extensions/networkingPrivate#type-NetworkFilter
356 chrome.networkingPrivate.NetworkFilter;
359 * Gets all the properties of the network with id networkGuid. Includes all
360 * properties of the network (read-only and read/write values).
361 * @param {string} networkGuid The GUID of the network to get properties for.
362 * @param {function(Object):void} callback Called with the network properties
364 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getProperties
366 chrome.networkingPrivate.getProperties = function(networkGuid, callback) {};
369 * Gets the merged properties of the network with id networkGuid from the
370 * sources: User settings, shared settings, user policy, device policy and the
371 * currently active settings.
372 * @param {string} networkGuid The GUID of the network to get properties for.
373 * @param {function(Object):void} callback Called with the managed network
374 * properties when received.
375 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getManagedProperties
377 chrome.networkingPrivate.getManagedProperties = function(networkGuid, callback) {};
380 * Gets the cached read-only properties of the network with id networkGuid. This
381 * is meant to be a higher performance function than $(ref:getProperties), which
382 * requires a round trip to query the networking subsystem. The following
383 * properties are returned for all networks: GUID, Type, Name, WiFi.Security.
384 * Additional properties are provided for visible networks: ConnectionState,
385 * ErrorState, WiFi.SignalStrength, Cellular.NetworkTechnology,
386 * Cellular.ActivationState, Cellular.RoamingState.
387 * @param {string} networkGuid The GUID of the network to get properties for.
388 * @param {function(!chrome.networkingPrivate.NetworkStateProperties):void} callback Called immediately with the network state
390 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getState
392 chrome.networkingPrivate.getState = function(networkGuid, callback) {};
395 * Sets the properties of the network with id networkGuid.
396 * @param {string} networkGuid The GUID of the network to set properties for.
397 * @param {!chrome.networkingPrivate.NetworkConfigProperties} properties The
399 * @param {function():void=} callback Called when the operation has completed.
400 * @see https://developer.chrome.com/extensions/networkingPrivate#method-setProperties
402 chrome.networkingPrivate.setProperties = function(networkGuid, properties, callback) {};
405 * Creates a new network configuration from properties. If a matching configured
406 * network already exists, this will fail. Otherwise returns the guid of the new
408 * @param {boolean} shared If true, share this network configuration with other
410 * @param {!chrome.networkingPrivate.NetworkConfigProperties} properties The
411 * properties to configure the new network with.
412 * @param {function(string):void=} callback Called with the GUID for the new
413 * network configuration once the network has been created.
414 * @see https://developer.chrome.com/extensions/networkingPrivate#method-createNetwork
416 chrome.networkingPrivate.createNetwork = function(shared, properties, callback) {};
419 * Forgets a network configuration by clearing any configured properties for the
420 * network with GUID 'networkGuid'. This may also include any other networks
421 * with matching identifiers (e.g. WiFi SSID and Security). If no such
422 * configuration exists, an error will be set and the operation will fail.
423 * @param {string} networkGuid The GUID of the network to forget.
424 * @param {function():void=} callback Called when the operation has completed.
425 * @see https://developer.chrome.com/extensions/networkingPrivate#method-forgetNetwork
427 chrome.networkingPrivate.forgetNetwork = function(networkGuid, callback) {};
430 * Returns a list of network objects with the same properties provided by
431 * $(ref:networkingPrivate.getState). A filter is provided to specify the type
432 * of networks returned and to limit the number of networks. Networks are
433 * ordered by the system based on their priority, with connected or connecting
434 * networks listed first.
435 * @param {!chrome.networkingPrivate.NetworkFilter} filter Describes which
436 * networks to return.
437 * @param {function(!Array<!chrome.networkingPrivate.NetworkStateProperties>):void} callback Called with a dictionary of networks and their state properties
439 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getNetworks
441 chrome.networkingPrivate.getNetworks = function(filter, callback) {};
444 * Deprecated. Please use $(ref:networkingPrivate.getNetworks) with
445 * filter.visible = true instead.
446 * @param {!chrome.networkingPrivate.NetworkType} networkType
447 * @param {function(!Array<!chrome.networkingPrivate.NetworkStateProperties>):void} callback
448 * @deprecated Use getNetworks.
449 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getVisibleNetworks
451 chrome.networkingPrivate.getVisibleNetworks = function(networkType, callback) {};
454 * Deprecated. Please use $(ref:networkingPrivate.getDeviceStates) instead.
455 * @param {function(!Array<!chrome.networkingPrivate.NetworkType>):void} callback
456 * @deprecated Use getDeviceStates.
457 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getEnabledNetworkTypes
459 chrome.networkingPrivate.getEnabledNetworkTypes = function(callback) {};
462 * Returns a list of $(ref:networkingPrivate.DeviceStateProperties) objects.
463 * @param {function(!Array<!chrome.networkingPrivate.DeviceStateProperties>):void} callback Called with a list of devices and
465 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getDeviceStates
467 chrome.networkingPrivate.getDeviceStates = function(callback) {};
470 * Enables any devices matching the specified network type. Note, the type might
471 * represent multiple network types (e.g. 'Wireless').
472 * @param {!chrome.networkingPrivate.NetworkType} networkType The type of
474 * @see https://developer.chrome.com/extensions/networkingPrivate#method-enableNetworkType
476 chrome.networkingPrivate.enableNetworkType = function(networkType) {};
479 * Disables any devices matching the specified network type. See note for
480 * $(ref:networkingPrivate.enableNetworkType).
481 * @param {!chrome.networkingPrivate.NetworkType} networkType The type of
482 * network to disable.
483 * @see https://developer.chrome.com/extensions/networkingPrivate#method-disableNetworkType
485 chrome.networkingPrivate.disableNetworkType = function(networkType) {};
488 * Requests that the networking subsystem scan for new networks and update the
489 * list returned by $(ref:getVisibleNetworks). This is only a request: the
490 * network subsystem can choose to ignore it. If the list is updated, then the
491 * $(ref:onNetworkListChanged) event will be fired.
492 * @see https://developer.chrome.com/extensions/networkingPrivate#method-requestNetworkScan
494 chrome.networkingPrivate.requestNetworkScan = function() {};
497 * Starts a connection to the network with networkGuid.
498 * @param {string} networkGuid The GUID of the network to connect to.
499 * @param {function():void=} callback Called when the connect request has been
500 * sent. Note: the connection may not have completed. Observe
501 * $(ref:onNetworksChanged) to be notified when a network state changes.
502 * @see https://developer.chrome.com/extensions/networkingPrivate#method-startConnect
504 chrome.networkingPrivate.startConnect = function(networkGuid, callback) {};
507 * Starts a disconnect from the network with networkGuid.
508 * @param {string} networkGuid The GUID of the network to disconnect from.
509 * @param {function():void=} callback Called when the disconnect request has
510 * been sent. See note for $(ref:startConnect).
511 * @see https://developer.chrome.com/extensions/networkingPrivate#method-startDisconnect
513 chrome.networkingPrivate.startDisconnect = function(networkGuid, callback) {};
516 * Starts activation of the Cellular network with networkGuid. If called for a
517 * network that is already activated, or for a network with a carrier that can
518 * not be directly activated, this will show the account details page for the
519 * carrier if possible.
520 * @param {string} networkGuid The GUID of the Cellular network to activate.
521 * @param {string=} carrier Optional name of carrier to activate.
522 * @param {function():void=} callback Called when the activation request has
523 * been sent. See note for $(ref:startConnect).
524 * @see https://developer.chrome.com/extensions/networkingPrivate#method-startActivate
526 chrome.networkingPrivate.startActivate = function(networkGuid, carrier, callback) {};
529 * Verifies that the device is a trusted device.
530 * @param {!chrome.networkingPrivate.VerificationProperties} properties
531 * Properties of the destination to use in verifying that it is a
533 * @param {function(boolean):void} callback A callback function that indicates
534 * whether or not the device is a trusted device.
535 * @see https://developer.chrome.com/extensions/networkingPrivate#method-verifyDestination
537 chrome.networkingPrivate.verifyDestination = function(properties, callback) {};
540 * Verifies that the device is a trusted device and retrieves encrypted network
542 * @param {!chrome.networkingPrivate.VerificationProperties} properties
543 * Properties of the destination to use in verifying that it is a
545 * @param {string} networkGuid The GUID of the Cellular network to activate.
546 * @param {function(string):void} callback A callback function that receives
547 * base64-encoded encrypted credential data to send to a trusted device.
548 * @see https://developer.chrome.com/extensions/networkingPrivate#method-verifyAndEncryptCredentials
550 chrome.networkingPrivate.verifyAndEncryptCredentials = function(properties, networkGuid, callback) {};
553 * Verifies that the device is a trusted device and encrypts supplied data with
555 * @param {!chrome.networkingPrivate.VerificationProperties} properties
556 * Properties of the destination to use in verifying that it is a
558 * @param {string} data A string containing the base64-encoded data to encrypt.
559 * @param {function(string):void} callback A callback function that receives
560 * base64-encoded encrypted data to send to a trusted device.
561 * @see https://developer.chrome.com/extensions/networkingPrivate#method-verifyAndEncryptData
563 chrome.networkingPrivate.verifyAndEncryptData = function(properties, data, callback) {};
566 * Enables TDLS for WiFi traffic with a specified peer if available.
567 * @param {string} ip_or_mac_address The IP or MAC address of the peer with
568 * which to enable a TDLS connection. |enabled| If true, enable TDLS,
569 * otherwise disable TDLS.
570 * @param {boolean} enabled
571 * @param {function(string):void=} callback A callback function that receives a
572 * string with an error or the current TDLS status. 'Failed' indicates
573 * that the request failed (e.g. MAC address lookup failed). 'Timeout'
574 * indicates that the lookup timed out. Otherwise a valid status is
575 * returned (see $(ref:getWifiTDLSStatus)).
576 * @see https://developer.chrome.com/extensions/networkingPrivate#method-setWifiTDLSEnabledState
578 chrome.networkingPrivate.setWifiTDLSEnabledState = function(ip_or_mac_address, enabled, callback) {};
581 * Returns the current TDLS status for the specified peer.
582 * @param {string} ip_or_mac_address The IP or MAC address of the peer.
583 * @param {function(string):void} callback A callback function that receives a
584 * string with the current TDLS status which can be 'Connected',
585 * 'Disabled', 'Disconnected', 'Nonexistent', or 'Unknown'.
586 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getWifiTDLSStatus
588 chrome.networkingPrivate.getWifiTDLSStatus = function(ip_or_mac_address, callback) {};
591 * Returns captive portal status for the network matching 'networkGuid'.
592 * @param {string} networkGuid The GUID of the network to get captive portal
594 * @param {function(!chrome.networkingPrivate.CaptivePortalStatus):void} callback A callback function that returns the results of the query for network captive portal status
596 * @see https://developer.chrome.com/extensions/networkingPrivate#method-getCaptivePortalStatus
598 chrome.networkingPrivate.getCaptivePortalStatus = function(networkGuid, callback) {};
601 * Unlocks a Cellular SIM card. * If the SIM is PIN locked, |pin| will be used
602 * to unlock the SIM and the |puk| argument will be ignored if provided. * If
603 * the SIM is PUK locked, |puk| and |pin| must be provided. If the operation
604 * succeds (|puk| is valid), the PIN will be set to |pin|. (If |pin| is empty
605 * or invalid the operation will fail).
606 * @param {string} networkGuid The GUID of the cellular network to unlock.
607 * @param {string} pin The current SIM PIN, or the new PIN if PUK is provided.
608 * @param {string=} puk The operator provided PUK for unblocking a blocked SIM.
609 * @param {function():void=} callback Called when the operation has completed.
610 * @see https://developer.chrome.com/extensions/networkingPrivate#method-unlockCellularSim
612 chrome.networkingPrivate.unlockCellularSim = function(networkGuid, pin, puk, callback) {};
615 * Sets whether or not SIM locking is enabled (i.e a PIN will be required when
616 * the device is powered) and changes the PIN if a new PIN is specified. If the
617 * new PIN is provided but not valid (e.g. too short) the operation will fail.
618 * This will not lock the SIM; that is handled automatically by the device.
619 * NOTE: If the SIM is locked, it must first be unlocked with
620 * unlockCellularSim() before this can be called (otherwise it will fail and
621 * chrome.runtime.lastError will be set to Error.SimLocked).
622 * @param {string} networkGuid The GUID of the cellular network to set the SIM
624 * @param {!chrome.networkingPrivate.CellularSimState} simState The SIM state to
626 * @param {function():void=} callback Called when the operation has completed.
627 * @see https://developer.chrome.com/extensions/networkingPrivate#method-setCellularSimState
629 chrome.networkingPrivate.setCellularSimState = function(networkGuid, simState, callback) {};
632 * Fired when the properties change on any of the networks. Sends a list of
633 * GUIDs for networks whose properties have changed.
634 * @type {!ChromeEvent}
635 * @see https://developer.chrome.com/extensions/networkingPrivate#event-onNetworksChanged
637 chrome.networkingPrivate.onNetworksChanged;
640 * Fired when the list of networks has changed. Sends a complete list of GUIDs
641 * for all the current networks.
642 * @type {!ChromeEvent}
643 * @see https://developer.chrome.com/extensions/networkingPrivate#event-onNetworkListChanged
645 chrome.networkingPrivate.onNetworkListChanged;
648 * Fired when the list of devices has changed or any device state properties
650 * @type {!ChromeEvent}
651 * @see https://developer.chrome.com/extensions/networkingPrivate#event-onDeviceStateListChanged
653 chrome.networkingPrivate.onDeviceStateListChanged;
656 * Fired when a portal detection for a network completes. Sends the guid of the
657 * network and the corresponding captive portal status.
658 * @type {!ChromeEvent}
659 * @see https://developer.chrome.com/extensions/networkingPrivate#event-onPortalDetectionCompleted
661 chrome.networkingPrivate.onPortalDetectionCompleted;