Commit Graph

1130 Commits

Author SHA1 Message Date
Daniel Stenberg
c128322997 bug 1457005 - TRR: reset confirmation state machine on prefs update r=mcmanus
If the confirmation state machine has gone into FAILED mode, updated
prefs is reason enough to try again and possibly get TRR verified
proper.

MozReview-Commit-ID: ALRbNJdvxdn

--HG--
extra : rebase_source : 8ad0a7d74d570228db17d91c1f5127b0524117a8
2018-04-26 00:07:31 +02:00
Daniel Stenberg
af8824af35 bug 1455972 - make TRR prefer address responses to CNAME r=mcmanus
In a DOH response to a query asking for an A or AAAA record, a CNAME
response is often accompanied by A/AAAA resources as well. With this
change, TRR now rather use those address records than following the
CNAME record. This saves name resolver round-trips.

MozReview-Commit-ID: GcjZj5Ehz68

--HG--
extra : rebase_source : b80d9818cb8fa6139feeeec3d2fb11a5b800ee48
2018-04-23 11:26:04 +02:00
Daniel Stenberg
8d35551b70 bug 1454941 - revert CP wait fix from bug 1451150 r=valentin
... but keep the logic that avoids re-initialization.

MozReview-Commit-ID: 2XQCRaM6U4B

--HG--
extra : rebase_source : e7291b3c7b26d39dcfde445212dd4f10b63ec98d
2018-04-18 15:21:14 +02:00
Daniel Stenberg
c0dc0efdd6 bug 1454307 - revert TRR telemetry histogram label addition r=mcmanus
It isn't supported server side, so make the TRRoff mode instead count
as nativeonly.

MozReview-Commit-ID: 73si3kam6xU

--HG--
extra : rebase_source : 2869fc515ffb23303bdf2fc5e231d0edc62193e7
2018-04-16 09:49:34 +02:00
Daniel Stenberg
01a7750519 bug 1453825 - add telemetry for TRR NS confirmation checks r=mcmanus
MozReview-Commit-ID: 3FAdEhlH5VI

--HG--
extra : rebase_source : fb1762a5b1863da0cbe568c087543384b2aba14a
2018-04-13 00:47:45 +02:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Daniel Stenberg
9ad6beb28d bug 1453822 - TRR: add a mode for "explicitly turned off" r=mcmanus
... as opposed to off by default.

MozReview-Commit-ID: EClrW33xGkb

--HG--
extra : rebase_source : aa8de07950f0da41eb8136894b119308b0450319
2018-04-13 00:32:04 +02:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Nathan Froyd
7bb7ffd8c9 Bug 1453134 - part 1 - add a string input stream constructor that accepts move references; r=baku
This method is more efficient when we know we're not going to need the
string afterwards, and should cut down on intermediate allocations.
2018-04-11 10:06:17 -04:00
Nika Layzell
0c3ba13e4c Bug 1437167 - Part 1: Stop using PRIntervalTime as the argument to CondVar::Wait and Monitor::Wait, r=mstange, r=froydnj 2018-04-10 17:49:47 -04:00
Daniel Stenberg
d8d095de79 bug 1451883 - fix pointer handling in the DOH response decoding r=mcmanus
In the section of the response body parser that just skips over the
answer section, the code wrongly assumed there could only be a pointer
at the start, while in fact every label can be made as a pointer. Just
turned out to not be used very often.

MozReview-Commit-ID: 8ZYtlq8HDPw

--HG--
extra : rebase_source : cc790caf36b4d4e77b113f89ed427ee537a539d8
2018-04-05 23:28:26 +02:00
Daniel Stenberg
c9bc3d9398 bug 1452568 - inhibit cache use when doing TRR in PB r=valentin
MozReview-Commit-ID: MmdSMBdH4v

--HG--
extra : rebase_source : 7e4c2ed2b38d2255d24e5e67ace22a3fe1ec9a3c
2018-04-09 12:14:28 +02:00
Daniel Stenberg
11c34a5b83 bug 1451928 - loop detection added for the TRR CNAME parser r=valentin
MozReview-Commit-ID: 8vLjS7hOYKU

--HG--
extra : rebase_source : 69b82c3df7db7d19f0667e9de0c6c67b7c7794fe
2018-04-06 00:47:15 +02:00
Daniel Stenberg
7ca074617e bug 1451750 - treat rrsets from different resolvers as different r=mcmanus
... even if all the addresses are identical.

Otherwise the IsTRR() bit would be dropped, resulting in
about:networking showing false for this entry while in reality being
TRR. Or vice versa.

MozReview-Commit-ID: JABLm09iCnn

--HG--
extra : rebase_source : 24f9ff8b6818c00359069add23d1354ab2f1b1f9
2018-04-05 16:30:10 +02:00
Daniel Stenberg
695dbf5db9 bug 1451150 - make TRRService wait for the correct CP event r=valentin
MozReview-Commit-ID: LwBjw7EKBhR

--HG--
extra : rebase_source : 404f132e48b1c57a3b93cc1efcd64a16a425f32b
2018-04-04 00:16:55 +02:00
Daniel Stenberg
e443c66c37 bug 1447642 - no more DNSService restarts r=valentin
The DNS service was shutdown and restarted again in several scenarios,
for example when one of its prefs changed and by nsIOService when going
offline/online. The DNSService restart dragged the resolver, TRRService
and others with it and they too were thus restarted.

Most notably this hurt TRR resolving, as the restart caused short gaps
in time when there was no TRRService available and nsHostResolver
defaults to TRR Mode "native" if there's no TRRservice up, causing the
name resolver to occasionally use the wrong or unexpected resolver even
though TRR is enabled.

The resolver restart also flushed the DNS cache which is now avoided.

It is also a performance gain.

MozReview-Commit-ID: pp4Y8bNQJk

--HG--
extra : rebase_source : 9e3b3e6c0df16b8ca6287d8045f594026ae9ad6d
2018-03-21 14:35:53 +01:00
Daniel Stenberg
144d65c4d6 bug 1446749 - make resolver keep TRR status when cherry-picking adddresses r=mcmanus
... as they otherwise appear in the about:networking list as "false"
while having been resolved by TRR.

MozReview-Commit-ID: 9g9fUExvyjS

--HG--
extra : rebase_source : 3098b7c3f7d01e55f5a8c031fc6a73e53f7edb05
2018-03-18 15:39:56 +01:00
Daniel Stenberg
75ba9a2870 bug 1446352 TRR: make "only mode" not wait for CP confirmation r=mcmanus
... to avoid a catch-22 as CP needs name resolve to work.

MozReview-Commit-ID: DC1CjlUy4cJ

--HG--
extra : rebase_source : 3bc0f146071f04757d44b76f352e48b2abb4dad0
2018-03-17 19:56:12 +01:00
Daniel Stenberg
cc208144a3 bug 1445183 store TRR duration when the response is used r=valentin
Previously it would store the time even for early AAAA responses that
weren't used until the A response came in, thus getting the timing
wrong.

MozReview-Commit-ID: KctUjMjH5FR

--HG--
extra : rebase_source : fafd7ad25cd1b7a43d4b4a5653600cad830b471d
2018-03-13 10:37:50 +01:00
Daniel Stenberg
c999b36f90 bug 1441131 - TRR: proxy storage removal to the mainthread r=valentin
MozReview-Commit-ID: K4Ar0RbSRzS

--HG--
extra : rebase_source : 6cefcc668f6004a59c09b065f2152250dbc83879
2018-03-12 15:57:13 +01:00
Daniel Stenberg
de5b0bf154 bug 1444887 TRR: get captive portal state in init r=valentin
To prevent it from sitting waiting for an event that was sent before the
TRRService started.

MozReview-Commit-ID: 9F0IlWGdA9O

--HG--
extra : rebase_source : 6a70210a4e538d8a1b240684a0b3ed5fed38e6ad
2018-03-12 14:48:49 +01:00
Daniel Stenberg
51e2dbf071 bug 1444858 - TRR: respect network.dns.disableIPv6 r=valentin
MozReview-Commit-ID: 18STac9ASIB

--HG--
extra : rebase_source : e3e8956feee2ec9e4dfe438e1b6c20dc0c478ab9
2018-03-12 13:19:22 +01:00
Daniel Stenberg
f0caae2f7c bug 1441391 - TRR: restart failed NS confirms in TRR-only mode r=valentin
MozReview-Commit-ID: FHw3Zx07iFG

--HG--
extra : rebase_source : 55a09920127aa54e542ed736b92ca6fda63f889c
2018-03-09 09:05:48 +01:00
Dorel Luca
150521bb4b Backed out changeset 798a47cd74d5 (bug 1441391) for build bustages. CLOSED TREE 2018-03-09 14:49:02 +02:00
Daniel Stenberg
fd2336dfd3 bug 1441391 - TRR: restart failed NS confirms in TRR-only mode r=valentin
MozReview-Commit-ID: FHw3Zx07iFG

--HG--
extra : rebase_source : baa674f1a488c6ee5383a4f72c66bb595285db60
2018-03-09 09:05:48 +01:00
Daniel Stenberg
20d398643b bug 1441256 - bypass cache when retrying connection without TRR r=mcmanus,valentin
Otherwise it will just load back the same (problematic) addresses from the
cache again the second time. This introduces a new resolver bit
(REFRESH_CACHE) that also invalidates the existing cache entry while doing the
new resolve.

MozReview-Commit-ID: 5Bc2KiAGYYA

--HG--
extra : rebase_source : ae368c88a5db27f0980b9928439d27588bc84815
2018-03-06 14:50:21 +01:00
Nathan Froyd
19a0b532bc Bug 1443613 - don't allocate temporary strings for DNSRequestChild; r=mayhemer
DNSRequestChild's constructor takes `const nsCString&` parameters.  If
you have a `const nsACString&` argument to pass in to the constructor,
you're forced to construct a temporary nsCString object to satisfy the
prototype.  But the temporary string will just get copied inside the
constructor and you'll have to destroy the temporary string object you
created.

Let's skip all this, and just have DNSRequestChild take `const
nsACString&` arguments instead, and avoid the temporary object.
2018-03-07 12:22:03 -05:00
Daniel Stenberg
80c6547919 bug 1443489 - TRR: require a pref set to allow early AAAA responses r=valentin
Early AAAA responses might cause issues on hosts without working native
IPv6 connectivity, of course especially notable in TRR-only mode.

MozReview-Commit-ID: 6ZqE6AKnucH

--HG--
extra : rebase_source : ff42cb8daf941a3fa1f7e783c76d823e879024c3
2018-03-06 16:07:29 +01:00
Daniel Stenberg
76003c2ab0 bug 1440563 - set the RD bit in DOH requests r=valentin
RFC 1035 section 4.1.1 documents this bit as:

RD - Recursion Desired - this bit may be set in a query and is copied
into the response.  If RD is set, it directs the name server to pursue
the query recursively.  Recursive query support is optional.

MozReview-Commit-ID: 8iHDgNtA1L1

--HG--
extra : rebase_source : a29010a2894fd00ebfbfb869f5938cf507345a2f
2018-03-05 08:47:52 +01:00
Florian Quèze
c714053d73 Bug 1433175 - scripted patch to replace Components.classes[, Components.interfaces.nsI, Components.utils. and Components.results. with Cc, Ci, Cu and Cr, r=Mossop. 2018-02-28 18:51:33 +01:00
Florian Quèze
682b1ec3b2 Bug 1440284 - change this.EXPORTED_SYMBOLS back to var EXPORTED_SYMBOLS in JS modules, r=mccr8. 2018-02-23 20:50:01 +01:00
Ciure Andrei
852a0c8890 Merge inbound to mozilla-central. a=merge 2018-02-22 23:55:25 +02:00
Daniel Stenberg
14fc881f71 bug 1438947 - mutex nsHostRecord::mTrrA[AAA] accesses r=valentin
... and remove Cancel() from nsHostRecord::RemoveOrRefresh since we
don't need to cancel TRR resolves due to network changes.

MozReview-Commit-ID: Akuhpzgg4N5
2018-02-22 04:22:00 +02:00
Daniel Stenberg
9165893084 bug 1440234 - show TRR column in about:networking for DNS names r=baku,valentin
MozReview-Commit-ID: LtAHJj4BMqQ

--HG--
extra : rebase_source : 089544e53e652aa8d43f0927e6d140568f68e93f
2018-02-22 09:57:22 +01:00
Valentin Gosu
55a7a824c6 Bug 1435671 - Reduce binary size by making NS_MutateURI.Apply not be a templated method r=mayhemer
We instead add a templated method NS_MutatorMethod that returns a std::function<nsresult(nsIURIMutator*)> which Apply then calls with mMutator as an argument.
The function returned by NS_MutatorMethod performs a QueryInterface, then calls the passed method with arguments on the result.

MozReview-Commit-ID: Jjqp7gGLG1D

--HG--
extra : rebase_source : f2a17aee7bb66a7ba8652817d43b9aa7ec7ef710
2018-02-21 01:00:54 +01:00
Valentin Gosu
98e8686b20 Bug 1439538 - Convert nsHostResolver::m{High,Medium,Low,Eviction}Q to LinkedList<RefPtr<nsHostRecord>> r=bagder
MozReview-Commit-ID: CDMadOtmDHQ

--HG--
extra : rebase_source : aa366237886c7d07cb3d83a15c50a54c08606848
2018-02-20 17:41:50 +01:00
nbeleuzu@mozilla.com
01eef6aff1 Backed out changeset c9dcce0a1068 (bug 1435671) for build bustages on nsIURIMutator.h. CLOSED TREE 2018-02-21 00:06:46 +02:00
Valentin Gosu
f1850e9354 Bug 1435671 - Reduce binary size by making NS_MutateURI.Apply not be a templated method r=mayhemer
We instead add a templated method NS_MutatorMethod that returns a std::function<nsresult(nsIURIMutator*)> which Apply then calls with mMutator as an argument.
The function returned by NS_MutatorMethod performs a QueryInterface, then calls the passed method with arguments on the result.

MozReview-Commit-ID: Jjqp7gGLG1D

--HG--
extra : rebase_source : 592d13349a8c4627c7ce3146ec592f577b39f3cc
2018-02-20 22:39:40 +01:00
Daniel Stenberg
27d3309d96 bug 1439067 - let TRR access TRRService through the null-checked global. r=valentin
... and also store allow-rfc1918 bool locally to remove later accesses
to TRRservice.

MozReview-Commit-ID: KkO4u2N9gfE

--HG--
extra : rebase_source : 2fdfecb127987cdbfdccd0e77f7b4bb65f6f5f5d
2018-02-19 22:54:14 +01:00
Daniel Stenberg
30ccb2d14c bug 1439302 - repair the *RESOLVEAGAIN logic in nsHostResolver::CompleteLookup r=valentin
When the native resolve needs to run again, the rec->mResolving counter
must not be decreased, as otherwise it triggers an assert when the next
resolve completes.

MozReview-Commit-ID: 3UQGkDSOmGi

--HG--
extra : rebase_source : 1caf047070a95b451acf0ddca6b5986f4e4d7c69
2018-02-19 23:33:40 +01:00
Daniel Stenberg
c8bcf8f7e5 bug 1439340 - lock addr_info in nsHostRecord::RemoveOrRefresh r=valentin
MozReview-Commit-ID: 6h4Sk1NjAJT

--HG--
extra : rebase_source : a8d54768f7493d8e2e1f435fe5a1e5c6e245ffb7
2018-02-19 09:03:09 +01:00
Daniel Stenberg
74167930bd bug 1438947 - avoid unnecessary timer cancels + clears r=valentin
To avoid race risk.

MozReview-Commit-ID: 2h8xkmgjPP7

--HG--
extra : rebase_source : 31e0fef119862343467049347b012cc6e3056f2c
2018-02-17 00:35:14 +01:00
Daniel Stenberg
e5d3226694 bug 1434852 - introducing TRR (DOH); r=mcmanus,valentin
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
2018-02-01 10:20:49 +01:00
Andrew McCreight
5dec0e0beb Bug 1432992, part 1 - Remove definitions of Ci, Cr, Cc, and Cu. r=florian
This patch was autogenerated by my decomponents.py

It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.

It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.

It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)

MozReview-Commit-ID: DeSHcClQ7cG

--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
2018-02-06 09:36:57 -08:00
Florian Quèze
2b1c8dccb6 Bug 1339461 - script-generated patch to convert foo.indexOf(...) == -1 to foo.includes(), r=Mossop. 2018-02-01 20:45:22 +01:00
Kris Maglione
918ed6c474 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
2018-01-29 15:20:18 -08:00
Cosmin Sabou
9a65a40178 Backed out 3 changesets (bug 1431533) for Android mochitest failures on testEventDispatcher on a CLOSED TREE
Backed out changeset a1eca62826a1 (bug 1431533)
Backed out changeset 34c999fa006b (bug 1431533)
Backed out changeset e2674287e57f (bug 1431533)
2018-01-30 07:17:48 +02:00
Kris Maglione
6476f95b13 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
2018-01-29 15:20:18 -08:00
Brindusan Cristian
af8879d1eb Backed out 2 changesets (bug 1431533) for ESlint failures on a CLOSED TREE
Backed out changeset 6e56f4c8843e (bug 1431533)
Backed out changeset 12fc4dee861c (bug 1431533)
2018-01-30 02:32:43 +02:00
Kris Maglione
c276bb9375 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
2018-01-29 15:20:18 -08:00