Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  nsITRRSkipReason.idl   Sprache: unbekannt

 
/* 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, uuid(e61b5d39-f6d6-4ed3-aead-1213b24c6f27)]
interface nsITRRSkipReason: nsISupports
{
  // IMPORTANT: when adding new values, always add them to the end, otherwise
  // it will mess up telemetry.
  // When adding a reason here, make sure it is documented in
  // netwerk/docs/dns/trr-skip-reasons.md
  cenum value: 32 {
    TRR_UNSET = 0,
    TRR_OK = 1,           // Only set when we actually got a positive TRR result
    TRR_NO_GSERVICE = 2,  // no gService
    TRR_PARENTAL_CONTROL = 3,         // parental control is on
    TRR_OFF_EXPLICIT = 4,             // user has set mode5
    TRR_REQ_MODE_DISABLED = 5,        // request  has disabled flags set
    TRR_MODE_NOT_ENABLED = 6,         // mode0
    TRR_FAILED = 7,                   // unknown failure
    TRR_MODE_UNHANDLED_DEFAULT = 8,   // Unhandled case in ComputeEffectiveMode
    TRR_MODE_UNHANDLED_DISABLED = 9,  // Unhandled case in ComputeEffectiveMode
    TRR_DISABLED_FLAG = 10,           // the DISABLE_TRR flag was set
    TRR_TIMEOUT = 11,                 // the TRR channel timed out
    TRR_CHANNEL_DNS_FAIL = 12,        // DoH server name failed to resolve
    TRR_BROWSER_IS_OFFLINE = 13,      // The browser is offline/no interfaces up
    TRR_NOT_CONFIRMED = 14,           // TRR confirmation is not done yet
    TRR_DID_NOT_MAKE_QUERY = 15,  // TrrLookup exited without doing a TRR query
    TRR_UNKNOWN_CHANNEL_FAILURE = 16,  // unknown channel failure reason
    TRR_HOST_BLOCKED_TEMPORARY = 17,   // host blocklisted
    TRR_SEND_FAILED = 18,              // The call to TRR::SendHTTPRequest failed
    TRR_NET_RESET = 19,                // NS_ERROR_NET_RESET
    TRR_NET_TIMEOUT = 20,              // NS_ERROR_NET_TIMEOUT
    TRR_NET_REFUSED = 21,              // NS_ERROR_CONNECTION_REFUSED
    TRR_NET_INTERRUPT = 22,            // NS_ERROR_NET_INTERRUPT
    TRR_NET_INADEQ_SEQURITY = 23,      // NS_ERROR_NET_INADEQUATE_SECURITY
    TRR_NO_ANSWERS = 24,               // TRR returned no answers
    TRR_DECODE_FAILED = 25,            // DohDecode failed
    TRR_EXCLUDED = 26,                 // ExcludedFromTRR
    TRR_SERVER_RESPONSE_ERR = 27,      // Server responded with non-200 code
    TRR_RCODE_FAIL = 28,          // DNS response contains a non-NOERROR rcode
    TRR_NO_CONNECTIVITY = 29,     // Not confirmed because of no connectivity
    TRR_NXDOMAIN = 30,            // DNS response contains NXDOMAIN rcode (0x03)
    TRR_REQ_CANCELLED = 31,       // The request has been cancelled
    ODOH_KEY_NOT_USABLE = 32,     // We don't have a valid ODoHConfig to use.
    ODOH_UPDATE_KEY_FAILED = 33,  // Failed to update the ODoHConfigs.
    ODOH_KEY_NOT_AVAILABLE = 34,  // ODoH requests timeout because of no key.
    ODOH_ENCRYPTION_FAILED = 35,  // Failed to encrypt DNS packets.
    ODOH_DECRYPTION_FAILED = 36,  // Failed to decrypt DNS packets.
    TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH = 37,  // The google safesearch heuristic was tripped
    TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH = 38, // The youtube safesearch heuristic was tripped
    TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY = 39,     // The zscaler canary heuristic was tripped
    TRR_HEURISTIC_TRIPPED_CANARY = 40,             // The global canary heuristic was tripped
    TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS = 41,     // The modified roots (enterprise_roots cert pref) heuristic was tripped
    TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS = 42,  // The parental controls heuristic was tripped
    TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS = 43,  // The third party roots heuristic was tripped
    TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY = 44,  // The enterprise policy heuristic was tripped
    TRR_HEURISTIC_TRIPPED_VPN = 45,                // The heuristic was tripped due to a vpn being detected
    TRR_HEURISTIC_TRIPPED_PROXY = 46,              // The heuristic was tripped due to a proxy being detected
    TRR_HEURISTIC_TRIPPED_NRPT = 47,               // The heuristic was tripped due to a NRPT being detected
    TRR_BAD_URL = 48,           // We attempted to use a bad URL (doesn't parse or is not https).
    TRR_SYSTEM_SLEEP_MODE = 49, // The system is in sleep mode.
    eLAST_VALUE = TRR_SYSTEM_SLEEP_MODE, // This entry should always hold the last and largest value in the enum
  };
};

%{ C++
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);
}

extern nsresult GetTRRSkipReasonName(TRRSkippedReason aReason, nsACString& aName);

} // net
} // mozilla
%}

[ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge