Commit Graph

15690 Commits

Author SHA1 Message Date
Dragana Damjanovic dd.mozilla@gmail.com
88d0518368 Bug 1429426 - Disable TFO if pmls64.dll and rlls64.dll are detected. r=valentin 2018-01-11 15:10:12 +01:00
Ciure Andrei
93d5417e33 Merge mozilla-central to mozilla-inbound. r=merge a=merge CLOSED TREE 2018-01-11 12:08:47 +02:00
Ciure Andrei
f7400ad72e Merge inbound to mozilla-central r=merge a=merge 2018-01-11 11:54:56 +02:00
Kate McKinley
e97980a95e Bug 1424917 - Remove support for HSTS Priming. r=mayhemer, r=ckerschb
This patch removes support and tests for HSTS priming from the tree.
2018-01-10 11:07:00 -05:00
Emilio Cobos Álvarez
671dccb84a Bug 1428589: Correctly handle expiring all the cookies in an entry. r=jdm
MozReview-Commit-ID: 6qaC9yclvP2
2018-01-11 06:07:38 +01:00
Andrew Swan
63c732760f Bug 1396399 - Clarify rules for applying activeTab permission to content scripts. r=kmag, r=bz
MozReview-Commit-ID: 9xPDX8Qk2iR
2017-11-04 21:06:20 -07:00
Dorel Luca
ccebfc1873 Merge mozilla-central to autoland r=merge 2018-01-11 00:03:38 +02:00
Shane Caraveo
29b0901e54 Bug 1418275 Fix timing of STS header processing for webextensions r=mayhemer
STS header checking was happening before http-on-examine-response which prevents
an observer from adding the STS headers to enforce STS.  This moves the header
processing to after the notification occurs.  In a webextension,
WebRequest.onHeadersReceived can now be used to inject STS and have that
recognized by HttpChannel.

MozReview-Commit-ID: KYZCSTBnZL7

--HG--
extra : rebase_source : 7a36fab9361e1da0223a4e63fe770228ea99538f
2018-01-10 13:21:08 -08:00
Valentin Gosu
c4e59fe243 Bug 1427373 - Convert nsHostResolver.mDB from PLDHashTable to nsRefPtrHashtable r=mayhemer
* Converts PLDHashTable mDB to nsRefPtrHashtable<nsGenericHashKey<nsHostKey>, nsHostRecord> mRecordDB
* Removes nsHostDBEnt and associated PLDHashTableOps

This patch makes the code a lot easier to understand, by simplifying the
ownership model. Now the hashtable holds RefPtr<nsHostRecord>, so it's
easier to follow the lifetime of each record.

MozReview-Commit-ID: IMavN8YSPSn

--HG--
extra : rebase_source : 3ff3135e2d9610577f15aaf307a62eec5ed3b47a
2018-01-07 23:22:01 +01:00
Valentin Gosu
c0d1211c67 Bug 1427373 - Use a refPtr for rec so that CompleteLookup doesn't need to release it r=mayhemer
MozReview-Commit-ID: 4LUxxJ13Bg3

--HG--
extra : rebase_source : d0e9316b9ee911f3d4a62a8de407176a50415cb2
2018-01-07 23:00:07 +01:00
Dragana Damjanovic
205fa0bf38 Bug 1429106 - Fix TFO telemetry. r=nwgh 2018-01-10 12:39:55 +01:00
Margareta Eliza Balazs
fe2caaa266 Merge inbound to mozilla-central r=merge a=merge 2018-01-09 11:52:55 +02:00
Bogdan Tara
cd1c3cc5dd Merge mozilla-central to autoland, r=merge a=merge on a CLOSED TREE 2018-01-09 00:16:46 +02:00
Honza Bambas
95b32effe1 Bug 1423550 - Lookup regula HTTP cache on appcache NETWORK namespace match, r=michal 2018-01-08 07:26:00 +02:00
Honza Bambas
d53e911aed Bug 1425301 - Progressively decrease the 6 seconds maximum quantum delay of tracker script tailing, r=dragana 2018-01-08 06:01:00 +02:00
Shih-Chiang Chien
e6a79fe88f Bug 1426751 - Prevent FlushQueue to be invoked on multiple threads simultaneously. r=mayhemer
This issue is triggered by off-main-thread ODA listener that return error cause from OnDataAvailable callback.
A CancelEvent will be prepend to event queue and trigger race condition between CompleteResume and EndForceEnqueueing.

The `mFlushing` is checked and set in separate critical sections, therefore two threads that executing MayFlushQueue
might both pass the `mFlushing` check and trying to call FlushQueue simultaneously.

The solution is to check and set `mFlushing` in single critical section, so we can guarantee that only one FlushQueue
can be executed at anytime.

In addition, resumption is postponed until no AutoEventEnqueuer is activated. Therefore, CompleteResume will only be
triggered while all the suspension requests and auto enqueue requests are finished.

MozReview-Commit-ID: HpxzgUqYm8C

--HG--
extra : rebase_source : 9be0d37bb4475a0817dafb6270585263160a9da1
2018-01-04 18:53:02 +08:00
Brindusan Cristian
f42618c99d Backed out 6 changesets (bug 1416879) for bc permafailures on windows on browser_multie10s_update.js r=backout a=backout
Backed out changeset 840a6e04bcea (bug 1416879)
Backed out changeset 994dc643a2ab (bug 1416879)
Backed out changeset 8e4fd74e7f5e (bug 1416879)
Backed out changeset 5453b8a58f0c (bug 1416879)
Backed out changeset d156f6b687e1 (bug 1416879)
Backed out changeset 714d3942fb10 (bug 1416879)
2018-01-07 11:55:44 +02:00
Andrew Sutherland
35d9749e9b Bug 1416879 - Part 3: (Also Bug 1418795) SyntheticDiversionListener should handle !mIPCOpen. r=bkelly
The SyntheticDiversionListener needs to handle the case where the IPC
connection is gone.  This patch avoids calling Send* methods which will
crash the content process if the actor has already been destroyed.
Additionally, OnDataAvailable will return an error in such a case so
that the caller can properly handle the error rather than continuing to
attempt to send data to a listener that doesn't care.  This latter
change is an artifact of a previous hack attempt to fix a related
diversion issue that is probably not required for this stack, but makes
sense as a fix, so I've left it in.

--HG--
extra : rebase_source : 824d4ab64e92ebb04d8d1ecd4df6d03a2cb37d2f
2018-01-04 13:59:13 -05:00
Andrew Sutherland
5272d9c40a Bug 1416879 - Part 2: Allow for diversion cancellation and trigger for intercepted channels. r=bkelly, r=mayhemer
The diversion mechanism never expected to be dealing with data sourced
from the content process, but that's exactly what happens with
ServiceWorker-intercepted channels with the current child-intercept
situation (which is being fixed).

In order to allow timely cancellation of diverted intercepted
channels, there needs to be a way to relay to the HttpChannelChild
that it needs to be canceled so that the synthesized pump can be
canceled and diversion can be marked as complete.  This patch adds
such a mechanism to ADivertableParentChannel and PHttpChannel for the
exclusive use of InterceptedHttpChannel and then uses it.

--HG--
extra : rebase_source : 59d3aa5e541d2a404c6320ae9fce03e7c9cd8b81
2018-01-04 18:38:07 -05:00
Andrew Sutherland
7f86d0ce4a Bug 1416879 - Part 1: DivertComplete should only be sent at OnStopRequest for synthesized responses. r=bkelly
Diversion for intercepted channels with a synthesized response is a
special case.  It is not appropriate to send DivertComplete when
mEventQ has been drained, because we are not dealing with the usual
mEventQ-enqueued OnDataAvailable payloads that had been received over
the network and sent down to the child.  In this case, all the data
originates in the child and does not go through mEventQ.  As such,
the correct place to send DivertComplete is at OnStopComplete for the
synthesized response.

--HG--
extra : rebase_source : 2209c25ad6f2b5655728d8dc07ef7f8b64df6ea6
2018-01-04 18:56:46 -05:00
Dragana Damjanovic
4b6b71262b Bug 1426710 - The telemetry on how often a backup connection wins should be histogram. r=mayhemer 2018-01-08 19:28:10 +01:00
Honza Bambas
bc1c741e25 Bug 1405446 - Connections created for urgent-start requests are of limits for non-urgent-start ones, r=dragana 2018-01-09 07:58:00 -05:00
Ben Kelly
41a01f019b Bug 1429542 Make HttpChannelChild::OverrideRunnable check for nullptr before using mNewChannel. r=asuth 2018-01-10 14:45:17 -05:00
Valentin Gosu
0203cc4abd Bug 1426501 - Change C++ code to use NS_MutateURI when changing URI r=mayhemer
MozReview-Commit-ID: 4VzZlhWrtSJ

--HG--
extra : rebase_source : 9c872dc14c8e5f03e6354ab76c8bf750a7e10260
2018-01-08 15:20:35 +01:00
Valentin Gosu
f943b98a02 Bug 1426501 - Change JS code to use nsIURIMutator instead of the nsIURI.spec setter r=mayhemer
MozReview-Commit-ID: FI6WrsQT2ke

--HG--
extra : rebase_source : 2b286c47c19ebd112a0c47fbe0a4c23bdb04755f
2018-01-08 15:20:29 +01:00
Valentin Gosu
7b63575817 Bug 1426501 - Change nsIURIMutator to call set spec on cloned URI if available r=mayhemer
Calling SetSpec on an nsIURI object doesn't reinitialize the object, meaning
it's not equivalent with creating a new URI with the same spec. While this
might be counter-intuitive we want to preserve existing behaviour for
the moment.
This change makes BaseURIMutator::InitFromSpec call SetSpec on the existing
cloned URI if available. Otherwise it creates a new one.

MozReview-Commit-ID: LuHVRhBItiP

--HG--
extra : rebase_source : fc7b64d01adcb7f2ac5bbd9cfc16dadb3c4939c9
2018-01-08 11:23:59 +01:00
Valentin Gosu
b2e06a6d9b Bug 1426501 - Add nsINetUtil.notImplemented() method that always throws r=mayhemer
MozReview-Commit-ID: Ij3M5Ydtlac

--HG--
extra : rebase_source : f95ea333bad7eeacf7fd753028ac4ead18e70eef
2018-01-08 11:23:53 +01:00
Kershaw Chang
318287a62a Bug 1413999 - Part4: Test case r=dragana
--HG--
extra : rebase_source : 748ccbc8a2d03be61a4ed9ac21187d044b0e81f2
2018-01-03 18:59:00 +02:00
Kershaw Chang
62a41d6974 Bug 1413999 - Part3: IPC part, send trailers to child process r=dragana
The aim of this patch is to send trailers to child process via SendOnStopRequest.

--HG--
extra : rebase_source : 1a5e16e140ef20cfe2e723c3800d7feeebd9a5af
2018-01-03 02:05:00 +02:00
Kershaw Chang
73d9823e67 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.

--HG--
extra : rebase_source : 77c92b8a31d3d7eebb33aea266888f944af33327
2018-01-03 02:04:00 +02:00
Kershaw Chang
39f697a80b Bug 1413999 - Part1: Parse Serve-Timing header r=dragana
1. Add a helper function Tokenize() which is able to handle quoted-string and quoted-pair.
2. Modify ParsedHeaderValueListList
 - Use Tokenize() to split string by ','.
3. Modify ParsedHeaderValueList
 - Use Tokenize() to split string by ';'.
 - Function ParseNameAndValue() is for getting name and value from the string containing '='.
4. Handle backslash escapes for quoted string.
5. Reuse ParsedHeaderValueListList to parse server-timing header.

--HG--
extra : rebase_source : 7802a1ae9a6410c4ea992b1197018c5a3f994fa0
2018-01-03 02:04:00 +02:00
Andrea Marchesini
a5bdaa8cf2 Bug 1421678 - Get rid of nsFileInputStream::Tell warning message when nsFileInputStream is destroyed, r=qdot 2018-01-03 14:02:43 +01:00
Amy Chung
1bca7e374d Bug 1425292 - Add test for being unable to use document.cookie to access cookie after the non-httponly cookie modifies to httponly cookie. r=jdm 2017-12-22 16:08:53 +08:00
Jeff Hemphill
73c0663aec Bug 1425807 - Convert nsHostKey members to nsCString r=valentin
MozReview-Commit-ID: 8tZUukA8Rrk

--HG--
extra : rebase_source : 4877c8eef1c2fd3a630316641d492189663acc61
2017-12-22 14:08:17 -08:00
Masatoshi Kimura
8b05ff3704 Bug 1427023 - Remove nsCRT::strncmp. r=erahm 2018-01-09 23:49:37 +09:00
Honza Bambas
d7dde42948 Bug 1422467. r=michal 2017-12-21 14:39:42 -05:00
Dragana Damjanovic
7149091b44 Bug 1426474 - Turn on TFO only for Darwin 17.3 and later. r=hurley 2017-12-21 18:59:05 +01:00
Dragana Damjanovic
93626c6bec Bug 1426367 - Turn on TFO for Windows. r=hurley 2017-12-21 18:43:57 +01:00
Dragana Damjanovic
66a1074054 Bug 1426366 - Detect http transaction stalls with TFO. r=hurley 2017-12-21 18:32:28 +01:00
Florian Quèze
22c55eb7b7 Bug 1421992 - Hand written cleanup patch to make tests pass after removing obsolete xpcshell functions. r=Gijs,ochameau a=Aryx 2017-12-21 11:11:57 +01:00
Florian Quèze
0f55cd45be Bug 1421992 - script-generated patch to replace do_execute_soon, do_print and do_register_cleanup with executeSoon, info and registerCleanupFunction, rs=Gijs. 2017-12-21 11:10:23 +01:00
Florian Quèze
032c961e0a Bug 1421992 - script-generated patch to replace do_check_* functions with their Assert.* equivalents, rs=Gijs. 2017-12-21 11:08:17 +01:00
Eden Chuang
3fd3115e94 Bug 1423623 - Add telemetry for alternate data stream on service worker synthesized channels. r=bkelly, data-r=francois
1. Create a new telemetry scalar SW_ALTERNATIVE_BODY_USED_COUNT to count the
       number of the alternative body used in service worker synthesized channels.

    2. To report values of fetching related time of InterceptChannel according to
       the detail subresource type. Now subresource/script, subresource/other,
       subresource/image and subresource/stylesheet are provided, and keep using
       subresource for other types.
2017-12-15 14:35:44 +08:00
Ben Kelly
7c2e00408e Bug 1426253 P2 Use nsIDocument::GetClientInfo() where possible. r=asuth 2017-12-20 10:53:18 -05:00
Dragana Damjanovic
45d67964d6 Bug 1422895 - TFO should be possible only on Windows 10 Fall Creators Update or later. r=mcmanus 2017-12-20 16:45:30 +01:00
Dragana Damjanovic
00a47a6f30 Bug 1422545 - Do not close connection between a httpChannelChild and its httpChannelParent if we need to divert to parent.r=mayhemer
If UnknowDecoder is involved and the received content is short we will know whether we need to divert to parent only after OnStartRequest of the listener chain is called. Therefore do not do cleanup if we detect diversion.
2017-12-20 16:13:36 +01:00
Dragana Damjanovic
34afbed5d9 Bug 1402811 - Collect telemetry on how often a backup connection wins. r=mcmanus 2017-12-20 15:56:28 +01:00
Dragana Damjanovic
266c2b2aea Bug 1402879 - Make small changes to TFO: telemetry and use of backup socket that already has started. r-mcmanus 2017-12-20 15:40:07 +01:00
Kershaw Chang
df53d0fe58 Bug 1425512 - Make the sequence of requests more determinate, r=mayhemer
This test is aimed to check whether the order that http server gets requests is the same as the order in the client's pending queue.
However, even if the transactions are dispatched according to the order in pending queue, it doesn't mean the server can get the request in the same order.
This is because the transaction is really dispatched to a connection when nsHalfOpenSocket::OnOutputStreamReady() is called. The order may not be always the same as the pending queue.
Hence, this patch processes the dummy http request once at the time when the previous request's OnStopRequest() is called. This can force the client dispatch only one transaction at the time and make the behavior of this test more predictable.

--HG--
extra : rebase_source : 5f4631ecabdf1f36352a80fbe1939b54348ab682
2017-12-20 00:08:00 +02:00
Margareta Eliza Balazs
060948a574 Merge inbound to mozilla-central r=merge a=merge 2017-12-20 11:47:11 +02:00