Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
[scriptable, builtinclass, uuid(2693457e-3ba5-4455-991f-5350946adb12)]
interface nsINetworkConnectivityService : nsISupports
{
/**
* Each tested feature may be in one of 3 states:
* UNKNOWN, if a check hasn't been performed.
* OK, if the feature was successfully tested
* NOT_AVAILABLE, if the feature is blocked by the network.
* Note that the endpoints are guaranteed to support the features.
*/
cenum ConnectivityState: 32 {
UNKNOWN = 0,
OK = 1,
NOT_AVAILABLE = 2
};
/* If DNS v4/v6 queries actually work on the current network */
[infallible]
readonly attribute nsINetworkConnectivityService_ConnectivityState DNSv4;
[infallible]
readonly attribute nsINetworkConnectivityService_ConnectivityState DNSv6;
[infallible]
readonly attribute nsINetworkConnectivityService_ConnectivityState DNS_HTTPS;
/* If connecting to IPv4/v6 works on the current network */
[infallible]
readonly attribute nsINetworkConnectivityService_ConnectivityState IPv4;
[infallible]
readonly attribute nsINetworkConnectivityService_ConnectivityState IPv6;
/* If a NAT64 gateway was detected on the current network */
[infallible]
readonly attribute nsINetworkConnectivityService_ConnectivityState NAT64;
/* Starts the DNS request to check for DNS v4/v6 availability */
void recheckDNS();
/* Starts HTTP requests over IPv4 and IPv6, and checks if they work */
void recheckIPConnectivity();
};