mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
e5d3226694
Provides an optional resolver mechanism for Firefox that allows running together with or instead of the native resolver. TRR offers resolving of host names using a dedicated DNS-over-HTTPS server (HTTPS is required, HTTP/2 is preferable). DNS-over-HTTPS (DOH) allows DNS resolves with enhanced privacy, secure transfers and improved performance. To keep the failure rate at a minimum, the TRR system manages a dynamic persistent blacklist for host names that can't be resolved with DOH but works with the native resolver. Blacklisted entries will not be retried over DOH for a couple of days. "localhost" and names in the ".local" TLD will not be resolved via DOH. TRR is preffed OFF by default and you need to set a URI for an available DOH server to be able to use it. Since the URI for DOH is set with a name itself, it may have to use the native resolver for bootstrapping. (Optionally, the user can set the IP address of the DOH server in a pref to avoid the required initial native resolve.) When TRR starts up, it will first verify that it works by checking a "confirmation" domain name. This confirmation domain is a pref by default set to "example.com". TRR will also by default await the captive-portal detection to raise its green flag before getting activated. All prefs for TRR are under the "network.trr" hierarchy. The DNS-over-HTTPS spec: https://tools.ietf.org/html/draft-ietf-doh-dns-over-https-03 MozReview-Commit-ID: GuuU6vjTjlm --HG-- extra : rebase_source : 53fcca757334090ac05fec540ef29d109d5ceed3
79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# 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/.
|
|
|
|
with Files('**'):
|
|
BUG_COMPONENT = ('Core', 'Networking: DNS')
|
|
|
|
DIRS += [
|
|
'mdns',
|
|
]
|
|
|
|
XPIDL_SOURCES += [
|
|
'nsIDNSListener.idl',
|
|
'nsIDNSRecord.idl',
|
|
'nsIDNSService.idl',
|
|
'nsIEffectiveTLDService.idl',
|
|
'nsIIDNService.idl',
|
|
'nsPIDNSService.idl',
|
|
]
|
|
|
|
XPIDL_MODULE = 'necko_dns'
|
|
|
|
EXPORTS.mozilla.net += [
|
|
'ChildDNSService.h',
|
|
'DNS.h',
|
|
'DNSListenerProxy.h',
|
|
'DNSRequestChild.h',
|
|
'DNSRequestParent.h',
|
|
'PDNSParams.h',
|
|
'TRRService.h',
|
|
]
|
|
|
|
SOURCES += [
|
|
'nsEffectiveTLDService.cpp', # Excluded from UNIFIED_SOURCES due to special build flags.
|
|
'nsHostResolver.cpp', # Redefines LOG
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'ChildDNSService.cpp',
|
|
'DNS.cpp',
|
|
'DNSListenerProxy.cpp',
|
|
'DNSRequestChild.cpp',
|
|
'DNSRequestParent.cpp',
|
|
'GetAddrInfo.cpp',
|
|
'nsDNSService2.cpp',
|
|
'nsIDNService.cpp',
|
|
'punycode.c',
|
|
'TRR.cpp',
|
|
'TRRService.cpp',
|
|
]
|
|
|
|
IPDL_SOURCES = [
|
|
'PDNSRequest.ipdl',
|
|
'PDNSRequestParams.ipdlh',
|
|
]
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
GENERATED_FILES = [
|
|
'etld_data.inc',
|
|
]
|
|
etld_data = GENERATED_FILES['etld_data.inc']
|
|
etld_data.script = 'prepare_tlds.py'
|
|
etld_data.inputs = ['effective_tld_names.dat']
|
|
|
|
# need to include etld_data.inc
|
|
LOCAL_INCLUDES += [
|
|
'/netwerk/base',
|
|
]
|
|
|
|
USE_LIBS += ['icu']
|
|
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
|
CXXFLAGS += ['-Wno-error=shadow']
|