Commit Graph

732 Commits

Author SHA1 Message Date
Valentin Gosu
4f42cbdcad Bug 1520062 - Also release listeners in HttpChannelChild::ActorDestroy r=kershaw
Differential Revision: https://phabricator.services.mozilla.com/D16549
2019-02-20 16:06:08 +00:00
Cosmin Sabou
99989bdc66 Merge mozilla-inbound to mozilla-central. a=merge 2019-02-21 05:42:03 +02:00
Christoph Kerschbaumer
1a72eb2a6b Bug 1528677: Remove nullchecks for loadinfo since we have loadinfo on all channels. r=baku 2019-02-20 13:27:25 +01:00
Andrea Marchesini
d34f163c27 Bug 1487113 - nsICacheInfoChannel.preferAlternativeDataType() should expose alt-data as optional if required, r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20200
2019-02-20 10:05:42 +00:00
Ciure Andrei
802d0480fd Backed out 3 changesets (bug 1487113) for perma failing test_alt-data_stream_wrap.js CLOSED TREE
Backed out changeset 831ac8c662c0 (bug 1487113)
Backed out changeset a8406df01e95 (bug 1487113)
Backed out changeset 1e97c3573ce6 (bug 1487113)
2019-02-19 11:43:13 +02:00
Andrea Marchesini
dbce6a100e Bug 1487113 - nsICacheInfoChannel.preferAlternativeDataType() should expose alt-data as optional if required, r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D20200
2019-02-19 07:38:31 +00:00
Valentin Gosu
f433743414 Bug 1521808 - Use topWindowPrincipal for CrossOriginOpenerPolicy check r=mayhemer,nika
- Adds nsIHttpChannelInternal.setTopWindowPrincipal used to pass the principal from the child to the parent

Differential Revision: https://phabricator.services.mozilla.com/D18391
2019-02-15 22:28:56 +00:00
Valentin Gosu
2db8ccd5ca Bug 1521808 - Implement Cross-Origin-Opener-Policy header r=nika,mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D18119
2019-02-15 22:02:58 +00:00
Cosmin Sabou
dc5b7a11e5 Backed out 4 changesets (bug 1521808) for causing merge conflicts.
Backed out changeset 42641f88d7da (bug 1521808)
Backed out changeset 32ce09b2c33a (bug 1521808)
Backed out changeset 94e513102b53 (bug 1521808)
Backed out changeset a08553c07886 (bug 1521808)
2019-02-15 20:34:07 +02:00
Valentin Gosu
0b939bb082 Bug 1521808 - Use topWindowPrincipal for CrossOriginOpenerPolicy check r=mayhemer,nika
- Adds nsIHttpChannelInternal.setTopWindowPrincipal used to pass the principal from the child to the parent

Differential Revision: https://phabricator.services.mozilla.com/D18391
2019-02-15 12:15:21 +00:00
Valentin Gosu
c927c79c62 Bug 1521808 - Implement Cross-Origin-Opener-Policy header r=nika,mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D18119
2019-02-15 12:15:39 +00:00
Jonathan Kingston
58708e007c Bug 1520868 - Replacing AsyncOpen2 with AsyncOpen always r=valentin
Replacing js and text occurences of asyncOpen2
Replacing open2 with open

Differential Revision: https://phabricator.services.mozilla.com/D16885
2019-02-12 16:08:25 +00:00
Dorel Luca
e3bc01d732 Backed out 4 changesets (bug 1521808) for build bustage. CLOSED TREE
Backed out changeset 80aeea5f7abe (bug 1521808)
Backed out changeset c8c151d92c03 (bug 1521808)
Backed out changeset cc0a5c7dabb4 (bug 1521808)
Backed out changeset 8d5174a560fa (bug 1521808)
2019-02-12 14:54:45 +02:00
Valentin Gosu
a4cf08d827 Bug 1521808 - Use topWindowPrincipal for CrossOriginOpenerPolicy check r=mayhemer,nika
- Adds nsIHttpChannelInternal.setTopWindowPrincipal used to pass the principal from the child to the parent

Differential Revision: https://phabricator.services.mozilla.com/D18391
2019-02-12 12:16:16 +00:00
Valentin Gosu
8b553dfcb8 Bug 1521808 - Implement Cross-Origin-Opener-Policy header r=nika,mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D18119
2019-02-12 12:15:54 +00:00
Sylvestre Ledru
0ac7481368 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D18488
2019-02-04 19:10:18 +00:00
Andrea Marchesini
44e5dd1503 Bug 1522210 - Fingerprinting and cryptomining classifiers must have separate nsIWebProgressListener blocking state codes - part 3 - Canceling nsIChannel with error code, r=ehsan
Differential Revision: https://phabricator.services.mozilla.com/D17638
2019-01-25 14:50:26 +01:00
Nika Layzell
412de5c4b3 Bug 1467223 - Part 3: Support uncached resources by using a redirectTo-like API for process swaps in necko, r=valentin,mayhemer
With the old process selector service implementation, non-cached loads
would skip the call into the process selector.

This implementation piggybacks atop the existing 'redirectTo' mechanism.
This is unfortunately not the perfect system for catching these loads,
as it doesn't provide an opportunity for performing a final process
switch before redirecting to a non-http channel. In addition, it doesn't
provide indication that a redirect is going to happen, causing
potentially unnecessary process switches.

Not all places where 'redirectTo' is supported use this mechanism. This
process switching mechanism is only checked in situations after
http-on-examine-response.

Potential future changes include:

 1. Moving these checks closer to the real 'OnStartRequest' call (e.g.
    in ContinueProcessNormal + ContinueOnStartRequest3). This would mean
    that loads other than the final load will not cause process swaps.

 2. Adding a callback before a redirect is performed, passing in the new
    channel, and allowing modifications to be made. This would allow
    performing a process swap before redirecting to a non-http(s)
    channel.

Depends on D15609

Differential Revision: https://phabricator.services.mozilla.com/D15610
2019-01-23 21:19:39 +00:00
Ehsan Akhgari
5119fb0fff Bug 1509112 - Consider the content frame sitting directly beneath a moz-extension frame that has a host permission granting access to that frame as a top-level frame; r=kmag,baku
Differential Revision: https://phabricator.services.mozilla.com/D14832
2019-01-23 14:55:49 +00:00
Andrea Marchesini
ed127c17b0 Bug 1417463 - Default accept header should follow the fetch spec, r=mayhemer
For navigation: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
For images: image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5
for style: text/css,*/*;q=0.1
Anything else: */*
2019-01-08 23:36:16 +01:00
Andrea Marchesini
1eb4df4dfe Bug 1514202 - Port flash url-classifier to nsIUrlClassifierFeature - part 1 - Flash feature, r=dimi, r=edgar, r=valentin 2019-01-04 14:45:42 +01:00
Emilio Cobos Álvarez
dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Dragana Damjanovic
41b27f0022 Bug 1415625 - Use Telemetry::CanRecordPreReleaseData instead of toolkit.telemetry.enabled. Remove network.allow-experiments because it is not used. r=michal
Differential Revision: https://phabricator.services.mozilla.com/D12745
2018-12-18 17:19:29 +00:00
Cosmin Sabou
9bdb87bec4 Bug 1507467 - Make sure mAfterOnStartRequestBegun is true for channels loaded with LOAD_ONLY_IF_MODIFIED, r=valentin
This patch ensures that mAfterOnStartRequestBegun is set to true before notifying stream listener.
2018-12-12 21:02:18 +02:00
Valentin Gosu
fd5ce8ff59 Bug 1502025 - Add NS_HTTP_DISABLE_IPV4 and NS_HTTP_DISABLE_IPV6 flags r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D13332
2018-12-02 23:28:52 +00:00
shindli
e65cd1bb1b Backed out 4 changesets (bug 1502025) for X failures in netwerk/test/unit/test_network_connectivity_service.js CLOSED TREE
Backed out changeset bf4254adcdfe (bug 1502025)
Backed out changeset 731cbca9930d (bug 1502025)
Backed out changeset 9bfdb64bf81e (bug 1502025)
Backed out changeset 99eed75874f1 (bug 1502025)
2018-12-01 01:14:34 +02:00
Valentin Gosu
285150417a Bug 1502025 - Add NS_HTTP_DISABLE_IPV4 and NS_HTTP_DISABLE_IPV6 flags r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D13332
2018-11-30 17:25:15 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Andrea Marchesini
229a9b0927 Bug 1510580 - Use nsIURIFixup in netwerk/protocol/http, r=valentin 2018-11-28 18:05:52 +01:00
Ehsan Akhgari
bb560f5484 Bug 1509555 - Part 3: Remove reporting of tracker statistics to docshell which was added for fastblock r=valentin,baku
Depends on D12829

Differential Revision: https://phabricator.services.mozilla.com/D12830
2018-11-27 08:55:36 +00:00
Dragana Damjanovic
ebc0d0a797 Bug 1481947 - When getting eTLD+1 fails, check if uri is an ip literal or localhost. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D12739
2018-11-26 19:43:57 +00:00
Valentin Gosu
50bbf8a0fd Bug 1487964 - Do not report resource-timing subdocument loads triggered by that subdocument r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D9503
2018-11-21 16:28:20 +00:00
Cosmin Sabou
b241cff35e Backed out changeset 395b95afd795 (bug 1487964) for mochitest failures on test_resource_timing_nocors. 2018-11-21 17:14:29 +02:00
Valentin Gosu
162d769ecb Bug 1487964 - Do not report resource-timing subdocument loads triggered by that subdocument r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D9503
2018-11-17 19:30:36 +00:00
Kershaw Chang
075c7a9065 Bug 1452535 - Move some logs to level 1 r=mayhemer
WPT parses HTTP log and create a HAR file. To reduce the overhead of logging, this patch moves some logs that are used by WPT parser to level 1.

Differential Revision: https://phabricator.services.mozilla.com/D8986
2018-11-16 16:35:52 +00:00
Paul Vitale
631f9a9e71 Bug 1203503 - part 1. change necko to allow CONNECT-only requests r+mayhemer
Necko does not allow for a CONNECT only request to happen.  This adds a flag
to signal an http channel should only CONNECT if proxied.  This flag can only be
set if an HTTPUpgrade handler has been assigned.  As proposed by rfc7639, an
alpn header will be included in the CONNECT request.  Its value is determined by
the upgrade protocol passed to HTTPUpgrade.

The flag is added as part of nsIHttpChannelInternal because it is dependent on
HTTPUpgrade.  It exists as a capability flag since the channel's transaction
needs to know to complete after a successful CONNECT.  Also the transaction's
connection needs to know to stop writing transaction data after it CONNECTs or
if there's no proxy, and to not tell the transaction to reset.

If an nsHttpChannel has this flag set then the upgrade handler will receive the
socket after the CONNECT succeeds without doing tls if https.

In order to support xpcshell-test for this change, nsHttpConnectionMgr does a
little check to see if HTTPUpgrade callback is in JavaScript.  If it is then
the callback is invoked on the main thread.
2018-07-19 11:41:57 -05:00
Daniel Stenberg
1334347ac8 bug 1505752 - fix whitespace trim of Timing-Allow-Origin header value r=dragana
StripWhitespace() is not suitable for HTTP whitespace trimming.

Differential Revision: https://phabricator.services.mozilla.com/D11317
2018-11-08 13:14:43 +00:00
Andrea Marchesini
d31d18594e Bug 1496581 - Split nsISeekableStream in 2 classes: nsISeekableStream and nsITellableStream, f=mayhemer, r=froydnj
In the current code there are 3 main issues:

1. nsFileStream is not really thread-safe. There is nothing to protect the
internal members and we see crashes.

2. nsPipeInputStream doesn't implement ::Seek() method and that caused issues
in devtools when a nsHttpChannel sends POST data using a pipe. In order to fix
this, bug 1494176 added a check in nsHttpChannel: if the stream doesn't
implement ::Seek(), let's clone it. This was an hack around nsPipeInputStream,
and it's bad.

3. When nsHttpChannel sends POST data using a file stream, nsFileStream does
I/O on main-thread because of the issue 2. Plus, ::Seek() is called on the
main-thread causing issue 1.

Note that nsPipeInputStream implements only ::Tell(), of the nsISeekableStream
methods. It doesn't implement ::Seek() and it doesn't implement ::SetEOF().

With this patch I want to fix point 2 and point 3 (and consequentially issue 1
- but we need a separate fix for it - follow up). The patch does:

1. it splits nsISeekableStream in 2 interfaces: nsITellableStream and
nsISeekableStream.
2. nsPipeInputStream implements only nsITellableStream.  Doing this, we don't
need the ::Seek() check for point 2 in nsHttpChannel: a simple QI check is
enough.
3. Because we don't call ::Seek() in nsHttpChannel, nsFileStream doesn't do I/O
on the main-thread, and we don't crash doing so.
2018-10-18 13:35:35 +02:00
Valentin Gosu
c5da4687a9 Bug 1487100 - Allow calling nsICacheInfoChannel.preferAlternativeDataType(altDataType, contentType) multiple times r=michal,luke
This patch changes the way we set and handle the preferred alternate data type.
It is no longer just one choice, but a set of preferences, each conditional
on the contentType of the resource.

For example:
  var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
  cc.preferAlternativeDataType("js-bytecode", "text/javascript");
  cc.preferAlternativeDataType("ammended-text", "text/plain");
  cc.preferAlternativeDataType("something-else", "");

When loaded from the cache, the available alt-data type will be checked against
"js-bytecode" if the contentType is "text/javascript", "ammended-text" if the contentType is "text/plain" or "something-else" for all contentTypes.
Note that the alt-data type could be "something-else" even if the contentType is "text/javascript".

The preferences are saved as an nsTArray<mozilla::Tuple<nsCString, nsCString>>.

Differential Revision: https://phabricator.services.mozilla.com/D8071
2018-10-17 13:58:30 +00:00
Dorel Luca
c3aaaf326f Backed out 2 changesets (bug 1487100) for XPCShell failures in netwerk/test/unit_ipc/test_alt-data_simple_wrap.js
Backed out changeset 7f9d03c29a6f (bug 1487100)
Backed out changeset dd1c31ea78c2 (bug 1487100)
2018-10-18 05:51:42 +03:00
Valentin Gosu
6c76c8f00e Bug 1487100 - Allow calling nsICacheInfoChannel.preferAlternativeDataType(altDataType, contentType) multiple times r=michal,luke
This patch changes the way we set and handle the preferred alternate data type.
It is no longer just one choice, but a set of preferences, each conditional
on the contentType of the resource.

For example:
  var cc = chan.QueryInterface(Ci.nsICacheInfoChannel);
  cc.preferAlternativeDataType("js-bytecode", "text/javascript");
  cc.preferAlternativeDataType("ammended-text", "text/plain");
  cc.preferAlternativeDataType("something-else", "");

When loaded from the cache, the available alt-data type will be checked against
"js-bytecode" if the contentType is "text/javascript", "ammended-text" if the contentType is "text/plain" or "something-else" for all contentTypes.
Note that the alt-data type could be "something-else" even if the contentType is "text/javascript".

The preferences are saved as an nsTArray<mozilla::Tuple<nsCString, nsCString>>.

Differential Revision: https://phabricator.services.mozilla.com/D8071
2018-10-17 13:58:30 +00:00
Andrea Marchesini
6c2e17f604 Bug 1494176 - nsHttpChannel must clone the upload stream if it doesn't implement ::Seek(), r=mayhemer 2018-10-03 22:51:55 +02:00
Christoph Kerschbaumer
619aeb7fa1 Bug 1490874: Log Principal based Security Errors to the Security pane in the console. r=smaug 2018-09-25 07:25:05 +02:00
shindli
23c0be1304 Backed out changeset 510e95767aeb (bug 1490874) for security failures in browser/components/payments/test/mochitest/test_basic_card_form.html CLOSED TREE 2018-09-24 11:43:30 +03:00
Christoph Kerschbaumer
72e1ad4898 Bug 1490874: Log Principal based Security Errors to the Security pane in the console. r=smaug 2018-09-24 09:34:04 +02:00
Kris Maglione
7037556b49 Bug 1486147: Follow-up: Fix missing QueryInterface entries. r=bustage 2018-09-19 17:34:10 -07:00
Liang-Heng Chen
ff9aac2508 Bug 1485400 - Part 1: fix tracker found/blocked counter; r=mayhemer
make counter increased when trackers are found

Differential Revision: https://phabricator.services.mozilla.com/D4068
2018-08-31 15:13:30 +00:00
Coroiu Cristina
d39b5fbb78 Backed out 2 changesets (bug 1485400) for build bustage at build/src/netwerk/base/nsChannelClassifier.cpp on a CLOSED TREE
Backed out changeset c476aa79a8ca (bug 1485400)
Backed out changeset 9370432b26ad (bug 1485400)
2018-08-31 18:57:58 +03:00
Liang-Heng Chen
e762e0a42a Bug 1485400 - Part 1: fix tracker found/blocked counter; r=mayhemer
make counter increased when trackers are found

Differential Revision: https://phabricator.services.mozilla.com/D4068
2018-08-31 15:13:30 +00:00
Ehsan Akhgari
994177d2fc Bug 1485182 - Part 1: Run http-on-modify-request observers when tracking protection cancels an HTTP channel; r=mayhemer 2018-08-22 14:00:01 -04:00