Commit Graph

443 Commits

Author SHA1 Message Date
Daniel Stenberg
cba42619ee 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
2018-02-01 10:20:49 +01:00
Ben Kelly
3cba3ceceb Bug 1437080 P3 Make SetFetchCacheMode() to clear other cache flags and assert the final value. r=valentin 2018-02-09 13:17:14 -08:00
Ben Kelly
7ec9aa0661 Bug 1437080 P2 Remove the HttpBaseChannel::mFetchCacheMode override to avoid possibility it can get out of sync with load flags. r=valentin 2018-02-09 13:17:14 -08:00
Ben Kelly
ae274bec1c Bug 1437080 P1 Correctly check cache related bit flags on HttpBaseChannel::mLoadFlags. r=valentin 2018-02-09 13:17:14 -08:00
Nicholas Hurley
ab5e911ddb Bug 1436517 - Limit access to the server-timing header to HTTPS contexts. r=mcmanus
This also introduces a hidden pref to allow server-timing access from
HTTP contexts for the purposes of our xpcshell tests. We'll remove that
once we get h2 (and therefore tls test) support for server-timing
trailers (https://bugzilla.mozilla.org/show_bug.cgi?id=1436601).

This does not reject or otherwise error when receiving server-timing
headers or trailers on non-HTTPS contexts, it just makes it unavailable
outside the channel.

MozReview-Commit-ID: qi4h0VQknE
2018-02-07 16:05:38 -08:00
Andrea Marchesini
ef724e34fd Bug 1425458 - Resource timing entries Workers - part 1 - PerformanceStorage on main-thread, r=smaug 2018-01-24 17:17:31 +01:00
Brindusan Cristian
1153f2c09e Backed out 12 changesets (bug 1425458) for mochitest failures on WorkerPrivate.cpp on a CLOSED TREE
Backed out changeset 11997de13778 (bug 1425458)
Backed out changeset 100b9d4f36bc (bug 1425458)
Backed out changeset a29e9dbb8c42 (bug 1425458)
Backed out changeset b96d58fd945c (bug 1425458)
Backed out changeset f140da44ba68 (bug 1425458)
Backed out changeset af56400233d9 (bug 1425458)
Backed out changeset 7034af4332e4 (bug 1425458)
Backed out changeset f70500179140 (bug 1425458)
Backed out changeset 793bbfc23257 (bug 1425458)
Backed out changeset 2efb375a8ffc (bug 1425458)
Backed out changeset 07e781e37451 (bug 1425458)
Backed out changeset e875f3702a5f (bug 1425458)
2018-01-24 20:47:48 +02:00
Andrea Marchesini
f676942138 Bug 1425458 - Resource timing entries Workers - part 1 - PerformanceStorage on main-thread, r=smaug 2018-01-24 17:17:31 +01:00
Ben Kelly
a3c12d713d Bug 1231211 P7 Pass the nsIChannel to ShouldPrepareForIntercept(). r=asuth 2018-01-23 10:38:53 -05:00
Luke Crouch
0602c1922a Bug 587523: remove branching logic; comment fixups r=valentin
MozReview-Commit-ID: J8LGTUMehZA
2018-01-18 09:57:14 -06:00
Luke Crouch
897111ec1f Bug 587523: update test_referrer.js to include pbmode tests r=valentin
MozReview-Commit-ID: FXUMi9Q3S3P
2018-01-16 15:25:09 -06:00
Luke Crouch
8f3bdcf2d3 Bug 587523 - strict-origin-when-cross-origin referer policy in pbmode r=valentin
Adds new network.http.referer.defaultPolicy.pbmode pref which defaults to 2.

When setting referrer from default policy, checks mLoadInfo OriginAttributes
for mPrivateBrowsingId > 0 to detect PBM.

MozReview-Commit-ID: 7SfNk0dO1rW
2018-01-10 16:33:52 -06:00
Ben Kelly
a8b13aca95 Bug 1425965 P2 Add nsIConsoleReportCollector::FlushReportsToConsoleForServiceWorkerScope(). r=baku 2018-01-12 12:16:04 -05:00
Kershaw Chang
b71a95c3c9 Bug 1413999 Part2: Take http trailers from chunk decoder and add serverTiming attribute in nsITimedChannel r=dragana
This patch includes:
1. Save http trailers in the header array in chunk decoder.
2. Take trailers from chunk decoder in OnStopRequest().
3. Add serverTiming attribute in nsITimedChannel.
4. Parse server timing header when GetServerTiming() is called.
2018-01-03 02:04:00 +02:00
Andrea Marchesini
5dcee0e89e Bug 1421094 - nsIUploadChannel2.cloneUploadStream returns the length of the stream, r=smaug 2017-12-12 18:38:19 -06:00
Tom Tung
36fa5f7406 Bug 1420672 - P1: Propagate the uri reference to the redirect uri if the redirect uri doesn't have one. r=beklly 2017-12-08 15:42:30 +08:00
Shane Caraveo
616ecb3d39 Bug 1149250 add support for https upgrades from webextensions, r=bz,mayhemer,rpl
MozReview-Commit-ID: ChIs2Q6bgEn
2017-12-08 12:12:37 -08:00
Jonathan Watt
6004574cca Bug 1180145, part 1 - Add a 'reportResourceTiming' member to the nsITimedChannel interface. r=mayhemer
MozReview-Commit-ID: 3poTmHWKs4K
2017-11-07 15:58:31 +00:00
Francois Marier
dfbb532bd9 Bug 446344 - Implement Origin header CSRF mitigation. r=ckerschb,dragana
MozReview-Commit-ID: EZpGo0UfmUP
2017-11-24 17:35:05 -08:00
Thomas Nguyen
02680b8f67 Bug 1416344 - refactor computing referrer policy and remove uninitilized maybe value r=valentin
MozReview-Commit-ID: 7VoRaUSE096
2017-11-13 19:23:47 +08:00
Chris Peterson
53e4b50e41 Bug 1416164 - Replace NS_NOTYETIMPLEMENTED with MOZ_ASSERT_UNREACHABLE. r=froydnj
MozReview-Commit-ID: B5TZB3v52wY
2017-10-25 00:37:02 -07:00
Ben Kelly
f9a5abb5a9 Bug 1412015 P2 Create a shared method in HttpBaseChannel to check the redirection limit. r=valentin 2017-10-30 10:30:01 -04:00
Ben Kelly
44074b2999 Bug 1412015 P1 Propagate mRedirectCount and mInternalRedirectCount across all redirects. r=valentin 2017-10-30 10:30:01 -04:00
Valentin Gosu
8cc1f62f5a Bug 1408990 - Only add the entry to the performance object if the loading document's principal is the same as the triggering principal. r=bz, r=dragana
MozReview-Commit-ID: 7o8XKHioP1p
2017-10-28 00:15:01 +02:00
Ben Kelly
a700494863 Bug 1400655 P1 Respect LOAD_CALL_CONTENT_SNIFFERS when a channel is intercepted by a ServiceWorker. r=valentin 2017-10-26 11:08:25 -04:00
Sebastian Hengst
5592663de3 Backed out changeset 84cb594525ad (bug 1400655) for eslint failure in devtools/client/jsonview/test/browser_jsonview_serviceworker.js. r=backout 2017-10-26 00:24:57 +02:00
Ben Kelly
5456694ccc Bug 1400655 P1 Respect LOAD_CALL_CONTENT_SNIFFERS when a channel is intercepted by a ServiceWorker. r=valentin 2017-10-25 17:32:04 -04:00
Andrea Marchesini
304820957d Bug 1409327 - NS_NewBufferedInputStream should take the ownership of the inputStream, r=smaug 2017-10-19 11:39:30 +02:00
Dragana Damjanovic
5d2b7d09a7 Bug 1384679 - Fix timing for TFO. r=mcmanus r=honza 2017-10-17 15:28:33 +02:00
Andrea Marchesini
c01fe6c82b Bug 1405976 - PartiallySeekableInputStream must take the ownership of the underlying stream, r=qdot 2017-10-13 10:07:32 +02:00
Ben Kelly
86f7864e06 Bug 1191943 P2 Copy service worker timing information across redirects. r=asuth 2017-10-06 09:04:54 -07:00
Ben Kelly
7e55863da4 Bug 1405739 P1 Don't expose internal redirect start/end/count through performance timing API. r=valentin 2017-10-06 09:04:54 -07:00
Thomas Nguyen
4c384705a8 Bug 1351147 - Use fullhash instead of prefix in OnClassifyComplete r=francois
In order to optionally report the full hash back to Google, we need to keep it
around in the callback. While a prefix is not the same as a full hash (multiple
full hashes can map to the same prefix), in this case, the callback will only be
called when the full hash matches.

MozReview-Commit-ID: F4WSLZpYrXB
2017-08-04 18:20:13 +08:00
Chris Peterson
ce551e51b9 Bug 870698 - Part 4: Replace Equals("") with EqualsLiteral(""). r=erahm
MozReview-Commit-ID: G1GhyvD29WK
2017-09-06 01:13:45 -07:00
Andrea Marchesini
e1f76e7bb9 Bug 1397635 - Support for non-seekable stream in HTTP connection, r=bagder 2017-09-08 16:06:26 +02:00
Andrea Marchesini
18a163e830 Bug 1395140 - Implement "http-on-stop-request" notification, r=mayhemer 2017-09-01 11:55:37 +02:00
Honza Bambas
559460ce73 Bug 1358060 - Allow postponing of unimportant resources opening during page load, class-of-service Tail flag. r=dragana 2017-08-30 09:32:00 -04:00
Honza Bambas
f502c5ab25 Bug 1388448 - Logs for better network requests and context tracking. r=mcmanus 2017-08-17 12:16:00 -04:00
Valentin Gosu
c35b18dc64 Bug 1306646 - Match updated Timing-Allow-Origin definition for resource timing r=nwgh
MozReview-Commit-ID: GQDhISc9WRD
2017-08-22 22:33:03 +02:00
Michael Layzell
48af097ea8 Bug 1379345 - Transmit permissions for view-source URIs, r=ehsan 2017-08-18 12:38:04 -04:00
Nicholas Nethercote
b7346a7502 Bug 1390428 (part 1) - Remove many nsXPIDLCString local variables. r=erahm.
These are all easy cases where an nsXPIDLCString local variable is set via
getter_Copies() and then is only used in ways that nsCStrings can also be used
(i.e. no null checks or implicit conversions to |char*|).

In every case the patch trivially replaces the nsXPIDLCString with an
nsCString. (Also, there are a couple of unused nsXPIDLCString variables that
the patch simply removes.)
2017-08-16 13:58:35 +10:00
Sajjad Arshad
fcbd21c188 Bug 1388925 - Add an opaque flags to have a fine-grained control over TLS configurations. r=mcmanus, r=keeler
This flags is added in the http channel interface by which developers can control the TLS
connections from JavaScript code (e.g. Add-ons). Basically, all the changes accounted for
plumbing this TLS flags from JavaScript level to C++ code responsible for calling NSS
module. We also added a unit test to make sure that separate connections are created if we
use different tlsFlags. Basically we used a concrete set of flag values that covers the
edge cases and check the hashkey generated in the connection info.
2017-08-16 12:41:16 -07:00
db76da33f3 Bug 1381282 - Change nsScriptErrorBase::InitWithWindowID so that it does not call GetSensitiveInfoHiddenSpec as much as now. r=bz r=valentin 2017-08-07 15:56:30 +02:00
Nicholas Nethercote
723f585d9c Bug 1386600 - Change nsIStringBundle methods to return |AString| instead of |wstring|. r=emk,sr=dbaron.
This removes about 2/3 of the occurrences of nsXPIDLString in the tree. The
places where nsXPIDLStrings are null-checked are replaced with |rv| checks.

The patch also removes a couple of unused declarations from
nsIStringBundle.idl.

Note that nsStringBundle::GetStringFromNameHelper() was merged into
GetStringFromName(), because they both would have had the same signature.
2017-08-04 14:40:52 +10:00
Masatoshi Kimura
635109ab9c Bug 1361579 - Remove nsISimpleContentPolicy. r=Ehsan
MozReview-Commit-ID: BsjkGpTpe8I
2017-08-03 17:50:00 +09:00
Masatoshi Kimura
a9e30eaec8 Bug 1322874 - Get rid of nsIURI.originCharset. r=valentin.gosu
nsIURI.originCharset had two use cases:
 1) Dealing with the spec-incompliant feature of escapes in the hash
    (reference) part of the URL.
 2) For UI display of non-UTF-8 URLs.

For hash part handling, we use the document charset instead. For pretty
display of query strings on legacy-encoded pages, we no longer care to them
(see bug 817374 comment 18).

Also, the URL Standard has no concept of "origin charset". This patch
removes nsIURI.originCharset for reducing complexity and spec compliance.

MozReview-Commit-ID: 3tHd0VCWSqF
2017-08-02 20:43:30 +09:00
Masatoshi Kimura
c0943e4f30 Bug 1326520 - Rename nsIURI.path to pathQueryRef. r=valentin.gosu
MozReview-Commit-ID: DqJdTGopR9G
2017-07-29 20:50:21 +09:00
Shih-Chiang Chien
46c7569f25 Bug 1382380 - ensure mListener/mListenerContext/mCompressListener is released on main thread. r=dragana
During abnormal shutdown, HttpChannelChild might be released on STS thread. However, not all stream listener
that attached to the HTTP channel is thread-safe to be released on non-main thread. By following
HttpBaseChannel::ReleaseListener, we should ensure mListener/mListenerContext/mCompressListener is released on
main thread for both normal channel close and abnormal shutdown scenario.

MozReview-Commit-ID: Gqbk7dUOIcI
2017-07-21 09:51:04 +08:00
Patrick McManus
f75e6f88c2 Bug 772589 - Implement the secureConnectionStart property for the PerformanceTiming interface r=bkelly,dragana,francois,Honza
Implements PerformanceTiming, nsITimedChannel, and devtools 'tls setup'

Also captures telemetry on this as we do for all other attributes of timedChannel

Also propogates some null transaction timings onto first real
transaction of a connection

MozReview-Commit-ID: 47TQJYVHnKC
2017-07-10 15:01:35 -04:00
Bill McCloskey
ce42826bdf Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00