/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM $SRCDIR/netwerk/dns/nsITRRSkipReason.idl
*/
#ifndef __gen_nsITRRSkipReason_h__
#define __gen_nsITRRSkipReason_h__
#include "nsISupports.h"
/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* starting interface: nsITRRSkipReason */
#define NS_ITRRSKIPREASON_IID_STR "e61b5d39-f6d6-4ed3-aead-1213b24c6f27"
#define NS_ITRRSKIPREASON_IID \
{0xe61b5d39, 0xf6d6, 0x4ed3, \
{ 0xae, 0xad, 0x12, 0x13, 0xb2, 0x4c, 0x6f, 0x27 }}
class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsITRRSkipReason) nsITRRSkipReason : public nsISupports {
public:
NS_INLINE_DECL_STATIC_IID(NS_ITRRSKIPREASON_IID)
/* Used by ToJSValue to check which scriptable interface is implemented. */
using ScriptableInterfaceType = nsITRRSkipReason;
enum MOZ_BINDING(binding_to, idl, class, XPIDL_nsITRRSkipReason_value) value : uint32_t {
TRR_UNSET MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_UNSET) = 0,
TRR_OK MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_OK) = 1,
TRR_NO_GSERVICE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NO_GSERVICE) = 2,
TRR_PARENTAL_CONTROL MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_PARENTAL_CONTROL) = 3,
TRR_OFF_EXPLICIT MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_OFF_EXPLICIT) = 4,
TRR_REQ_MODE_DISABLED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_REQ_MODE_DISABLED) = 5,
TRR_MODE_NOT_ENABLED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_MODE_NOT_ENABLED) = 6,
TRR_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_FAILED) = 7,
TRR_MODE_UNHANDLED_DEFAULT MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_MODE_UNHANDLED_DEFAULT) = 8,
TRR_MODE_UNHANDLED_DISABLED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_MODE_UNHANDLED_DISABLED) = 9,
TRR_DISABLED_FLAG MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_DISABLED_FLAG) = 10,
TRR_TIMEOUT MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_TIMEOUT) = 11,
TRR_CHANNEL_DNS_FAIL MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_CHANNEL_DNS_FAIL) = 12,
TRR_BROWSER_IS_OFFLINE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_BROWSER_IS_OFFLINE) = 13,
TRR_NOT_CONFIRMED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NOT_CONFIRMED) = 14,
TRR_DID_NOT_MAKE_QUERY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_DID_NOT_MAKE_QUERY) = 15,
TRR_UNKNOWN_CHANNEL_FAILURE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_UNKNOWN_CHANNEL_FAILURE) = 16,
TRR_HOST_BLOCKED_TEMPORARY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HOST_BLOCKED_TEMPORARY) = 17,
TRR_SEND_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_SEND_FAILED) = 18,
TRR_NET_RESET MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NET_RESET) = 19,
TRR_NET_TIMEOUT MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NET_TIMEOUT) = 20,
TRR_NET_REFUSED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NET_REFUSED) = 21,
TRR_NET_INTERRUPT MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NET_INTERRUPT) = 22,
TRR_NET_INADEQ_SEQURITY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NET_INADEQ_SEQURITY) = 23,
TRR_NO_ANSWERS MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NO_ANSWERS) = 24,
TRR_DECODE_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_DECODE_FAILED) = 25,
TRR_EXCLUDED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_EXCLUDED) = 26,
TRR_SERVER_RESPONSE_ERR MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_SERVER_RESPONSE_ERR) = 27,
TRR_RCODE_FAIL MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_RCODE_FAIL) = 28,
TRR_NO_CONNECTIVITY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NO_CONNECTIVITY) = 29,
TRR_NXDOMAIN MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_NXDOMAIN) = 30,
TRR_REQ_CANCELLED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_REQ_CANCELLED) = 31,
ODOH_KEY_NOT_USABLE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_ODOH_KEY_NOT_USABLE) = 32,
ODOH_UPDATE_KEY_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_ODOH_UPDATE_KEY_FAILED) = 33,
ODOH_KEY_NOT_AVAILABLE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_ODOH_KEY_NOT_AVAILABLE) = 34,
ODOH_ENCRYPTION_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_ODOH_ENCRYPTION_FAILED) = 35,
ODOH_DECRYPTION_FAILED MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_ODOH_DECRYPTION_FAILED) = 36,
TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH) = 37,
TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH) = 38,
TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY) = 39,
TRR_HEURISTIC_TRIPPED_CANARY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_CANARY) = 40,
TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS) = 41,
TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS) = 42,
TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS) = 43,
TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY) = 44,
TRR_HEURISTIC_TRIPPED_VPN MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_VPN) = 45,
TRR_HEURISTIC_TRIPPED_PROXY MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_PROXY) = 46,
TRR_HEURISTIC_TRIPPED_NRPT MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_NRPT) = 47,
TRR_BAD_URL MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_BAD_URL) = 48,
TRR_SYSTEM_SLEEP_MODE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_SYSTEM_SLEEP_MODE) = 49,
TRR_HEURISTIC_TRIPPED_PRIVATE_DNS MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_TRR_HEURISTIC_TRIPPED_PRIVATE_DNS) = 50,
eLAST_VALUE MOZ_BINDING(binding_to, idl, const, XPIDL_nsITRRSkipReason_value_eLAST_VALUE) = 50,
};
};
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSITRRSKIPREASON \
/* Use this macro when declaring the members of this interface when the
class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSITRRSKIPREASON \
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSITRRSKIPREASON(_to) \
/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSITRRSKIPREASON(_to) \
// %{C++:71-140
namespace mozilla {
namespace net {
using TRRSkippedReason = nsITRRSkipReason::value;
inline bool IsRelevantTRRSkipReason(TRRSkippedReason aReason) {
// - TRR_REQ_MODE_DISABLED - these requests are intentionally skipping TRR.
// These include DNS queries used to bootstrap the TRR connection,
// captive portal checks, connectivity checks, etc.
// Since we don't want to use TRR for these connections, we don't need
// to include them with other relevant skip reasons.
// - TRR_DISABLED_FLAG - This reason is used when retrying failed connections,
// sync DNS resolves on the main thread, or requests coming from
// webextensions that choose to skip TRR
// - TRR_EXCLUDED - This reason is used when a certain domain is excluded
// from TRR because it is explicitly set by the user, or because it
// is part of the user's DNS suffix list, indicating a host that is likely
// to be on the local network.
if (aReason == TRRSkippedReason::TRR_REQ_MODE_DISABLED ||
aReason == TRRSkippedReason::TRR_DISABLED_FLAG ||
aReason == TRRSkippedReason::TRR_EXCLUDED) {
return false;
}
return true;
}
inline bool IsBlockedTRRRequest(TRRSkippedReason aReason) {
// See TRR::MaybeBlockRequest. These are the reasons that could block sending
// TRR requests.
return (aReason == TRRSkippedReason::TRR_EXCLUDED ||
aReason == TRRSkippedReason::TRR_MODE_NOT_ENABLED ||
aReason == TRRSkippedReason::TRR_HOST_BLOCKED_TEMPORARY);
}
inline bool IsNonRecoverableTRRSkipReason(TRRSkippedReason aReason) {
// These are non-recoverable reasons and we'll fallback to native without
// retrying.
return (aReason == TRRSkippedReason::TRR_NXDOMAIN ||
aReason == TRRSkippedReason::TRR_NO_ANSWERS ||
aReason == TRRSkippedReason::TRR_DISABLED_FLAG ||
aReason == TRRSkippedReason::TRR_RCODE_FAIL);
}
inline bool IsFailedConfirmationOrNoConnectivity(TRRSkippedReason aReason) {
// TRR is in non-confirmed state now, so we don't try to use TRR at all.
return (aReason == TRRSkippedReason::TRR_NOT_CONFIRMED ||
aReason == TRRSkippedReason::TRR_NO_CONNECTIVITY);
}
inline bool IsConnectionFailedTRRSkipReason(TRRSkippedReason aReason) {
// These indicate a problem reaching or talking to the DoH server rather than
// an authoritative DNS answer, so the lookup should be allowed to fall back
// to the native resolver.
return (aReason == TRRSkippedReason::TRR_FAILED ||
aReason == TRRSkippedReason::TRR_TIMEOUT ||
aReason == TRRSkippedReason::TRR_CHANNEL_DNS_FAIL ||
aReason == TRRSkippedReason::TRR_UNKNOWN_CHANNEL_FAILURE ||
aReason == TRRSkippedReason::TRR_SEND_FAILED ||
aReason == TRRSkippedReason::TRR_NET_RESET ||
aReason == TRRSkippedReason::TRR_NET_TIMEOUT ||
aReason == TRRSkippedReason::TRR_NET_REFUSED ||
aReason == TRRSkippedReason::TRR_NET_INTERRUPT ||
aReason == TRRSkippedReason::TRR_NET_INADEQ_SEQURITY ||
aReason == TRRSkippedReason::TRR_SERVER_RESPONSE_ERR);
}
extern nsresult GetTRRSkipReasonName(TRRSkippedReason aReason, nsACString& aName);
} // net
} // mozilla
// %}
#endif /* __gen_nsITRRSkipReason_h__ */