Commit graph

133 commits

Author SHA1 Message Date
Nicholas Hurley
90183c451d Bug 1197847 - Disallow folded headers in h2. r=mcmanus
This also fixes a lot of situations in which we could get a compression
state out of sync with the server, which would be Very Bad.

--HG--
extra : rebase_source : 53b87c3cacd34c496f4c63cddda606d005a383e5
2015-09-22 19:58:14 -07:00
Patrick McManus
0027642c1e Bug 1205810 - telemetry for local h2 goaway code r=hurley 2015-09-17 15:26:59 -04:00
Patrick McManus
60d6db97ae bug 1204614 - use h2 per stream flow control to deal with suspended channels r=hurley 2015-09-11 15:53:27 -04:00
Patrick McManus
9a07c5f169 Bug 1204731 - telemetry for peer h2 goaway r=hurley 2015-09-14 21:55:06 -04:00
Patrick McManus
db9909beda bug 1194818 - h2 header priority handling r=hurley 2015-08-18 14:57:07 -04:00
Ryan VanderMeulen
d7989bc78a Backed out changeset af935eae9bed (bug 1194818) for Windows build bustage.
CLOSED TREE

--HG--
extra : histedit_source : 8dbea2416a40964e2879a86941ca2024bf82f972
2015-08-31 18:33:47 -04:00
Patrick McManus
3ed993ff6a bug 1194820 - h2 push promise padding handling r=hurley 2015-08-18 15:16:14 -04:00
Patrick McManus
4f2eaec422 bug 1194818 - h2 header priority handling r=hurley 2015-08-18 14:57:07 -04:00
Nicholas Hurley
16407ea724 Bug 1127618 - make push caches work in e10s. r=mcmanus r=froydnj IGNORE IDL
--HG--
extra : rebase_source : 24dd37c6eaec83a1776d77632b97106e8abb8015
2015-07-31 13:50:08 -07:00
Birunthan Mohanathas
a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Nicholas Hurley
e1ec45716a Bug 1132357 - remove h2-draft* support. r=mcmanus 2015-05-22 14:29:15 -07:00
Nicholas Hurley
ccd0c74313 Bug 1130822 - properly decode arbitrarily aligned data for non-tier1 platforms. r=mcmanus
Modified from original patch by Martin Husemann <martin@NetBSD.ORG>
2015-04-21 11:26:11 -07:00
Patrick McManus
965b4acedf Bug 1154068 - rename relaxed to insecure scheme and add more runtime checks r=hurley
we used the term relaxed for http:// over tls; but someitmes we also
enforced the authentication if alt-svc changed the host involved. That
was all done correctly but the term relaxed wasn't very accurate in
those cases.

For clarity rename "relaxed" to be "insecureScheme". Also add a
runtime check (with debug assert) to paths to enforce that bit isn't
set where it shouldn't be (it isn't known to be).
2015-04-06 17:30:29 -04:00
Ryan VanderMeulen
579da75a70 Backed out changeset e713ce8013eb (bug 1127618) for suspicion of causing semi-frequent B2G crashes.
CLOSED TREE
2015-04-09 20:05:49 -04:00
Nicholas Hurley
0b4c1de637 Bug 1127618 - make push caches work in e10s. r=mcmanus r=froydnj
--HG--
extra : rebase_source : 3da2229082ccd041a1ec47ba77d9f0940020f3c9
2015-04-08 14:42:00 +02:00
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Daniel Stenberg
2360040d37 Bug 1145050 - Fix uninitialized class members in Http2Session. r=hurley
--HG--
extra : rebase_source : c3b8fe4956bf03da8ab42b45de9fa9d9e56a2d83
2015-03-20 00:42:00 -04:00
Patrick McManus
0f9824c683 bug 1133177 - https tunnel of h1 without pconn inside h2 session stall r=hurley 2015-02-19 13:50:15 -05:00
Patrick McManus
bfa57d2872 bug 1130874 - update h2 alternate service extension to draft-06 r=hurley 2015-02-06 17:45:05 -05:00
Nicholas Hurley
881a7bed60 Bug 958712 part 2/3 - Allow CONTINUATIONs in PUSH_PROMISEs r=mcmanus
--HG--
extra : rebase_source : 1617bd7cd50a0310d2b50418e952f59c56ae5f2a
2015-01-30 11:35:20 -08:00
Nicholas Hurley
42bedd18ce Bug 1127568 - Don't assert in debug builds when receiving CONTINUATION on HEADERS. r=mcmanus
--HG--
extra : rebase_source : c561e1db4c383c39b19fe5215944f542d66bc492
2015-01-30 11:34:01 -08:00
Patrick McManus
1925b7da36 bug 1124717 - 3/4 make h2/spdy default peer max concurrent setting configurable r=hurley 2015-01-26 16:06:44 -05:00
Patrick McManus
175115e709 bug 1116867 - make nsIProgressEventSink and nsITransportEventSink safely scriptable r=mayhemer r=bz
These scriptable interfaces use uint_64 arguments with sentinel values
of UINT64_MAX. However, UINT64_MAX exceeds MAX_SAFE_INTEGER and cannot
be gatewayed to/from javascript - so they cannot be used
correctly. Change them to use signed 64 bit numbers and -1 as the
sentinnel. C++ implementations ought to be enough to audit as the
special value could never be used correctly in JS anyhow - also
audited OnProgressChange() uses for downstream use of this data.
---
 dom/base/nsXMLHttpRequest.cpp                      | 19 +++++++----
 dom/base/nsXMLHttpRequest.h                        | 10 +++---
 dom/plugins/base/nsPluginStreamListenerPeer.cpp    |  4 +--
 .../webbrowserpersist/nsWebBrowserPersist.cpp      | 14 ++++----
 image/src/imgLoader.cpp                            |  4 +--
 modules/libjar/nsJARChannel.cpp                    |  3 +-
 netwerk/base/public/nsIProgressEventSink.idl       |  8 ++---
 netwerk/base/public/nsITransport.idl               |  8 ++---
 netwerk/base/public/nsNetUtil.h                    | 24 ++++++++++++++
 netwerk/base/src/Dashboard.cpp                     |  2 +-
 netwerk/base/src/nsBaseChannel.cpp                 | 12 +++----
 netwerk/base/src/nsIncrementalDownload.cpp         |  4 +--
 netwerk/base/src/nsSocketTransport2.cpp            |  5 +--
 netwerk/base/src/nsStreamTransportService.cpp      | 38 +++++++++++++---------
 netwerk/base/src/nsTransportUtils.cpp              | 12 +++----
 netwerk/protocol/file/nsFileChannel.cpp            |  8 +++--
 netwerk/protocol/ftp/nsFtpConnectionThread.cpp     |  4 +--
 netwerk/protocol/http/Http2Push.cpp                |  2 +-
 netwerk/protocol/http/Http2Session.cpp             |  2 +-
 netwerk/protocol/http/HttpChannelChild.cpp         | 31 +++++++++---------
 netwerk/protocol/http/HttpChannelChild.h           |  6 ++--
 netwerk/protocol/http/HttpChannelParent.cpp        |  4 +--
 netwerk/protocol/http/HttpChannelParent.h          |  4 +--
 netwerk/protocol/http/NullHttpTransaction.cpp      |  2 +-
 netwerk/protocol/http/PHttpChannel.ipdl            |  2 +-
 netwerk/protocol/http/SpdyPush31.cpp               |  2 +-
 netwerk/protocol/http/SpdySession31.cpp            |  2 +-
 netwerk/protocol/http/TunnelUtils.cpp              |  2 +-
 netwerk/protocol/http/nsAHttpTransaction.h         |  4 +--
 netwerk/protocol/http/nsHttpChannel.cpp            | 30 +++++++++++------
 netwerk/protocol/http/nsHttpConnection.cpp         |  4 +--
 netwerk/protocol/http/nsHttpConnectionMgr.cpp      |  4 +--
 netwerk/protocol/http/nsHttpPipeline.cpp           |  4 +--
 netwerk/protocol/http/nsHttpPipeline.h             |  6 ++--
 netwerk/protocol/http/nsHttpResponseHead.cpp       |  2 +-
 netwerk/protocol/http/nsHttpResponseHead.h         |  2 +-
 netwerk/protocol/http/nsHttpTransaction.cpp        | 32 +++++++++---------
 netwerk/protocol/http/nsHttpTransaction.h          |  2 +-
 netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp   |  2 +-
 netwerk/protocol/wyciwyg/nsWyciwygChannel.cpp      |  3 +-
 netwerk/test/TestIncrementalDownload.cpp           |  7 ++--
 uriloader/base/nsDocLoader.cpp                     | 14 ++++----
 42 files changed, 203 insertions(+), 151 deletions(-)
2015-01-08 14:48:52 -05:00
Patrick McManus
d0d97ad7ef bug 1072478 - h2 push hit not subject to max_concurrent 2/2 r=hurley
--HG--
extra : rebase_source : 4c49f74dc4b7ed8cead65dc3c78a2c8ae5ddf5e3
2015-01-13 15:26:37 -05:00
Patrick McManus
dfe84c8ed8 bug 1121706 - don't offer h2 in alpn if w/out mandatory suite r=hurley
--HG--
extra : rebase_source : 6220a4ace1df2f6cc7f02c98f46b331b251a42d2
2015-01-15 22:11:14 -05:00
Patrick McManus
33e101f503 bug 1121058 - h2 assert stream id before cleanup r=hurley 2015-01-13 13:10:38 -05:00
Patrick McManus
b8b9d7491a bug 1072478 backout 28fff54451dd for 1119810 and 1119926 r=backout
--HG--
extra : rebase_source : 46e7ccae81bf27f468171c240a926d421366a33b
2015-01-09 15:33:27 -05:00
Patrick McManus
e7a182ce97 bug 1072478 - h2 push hit not subject to max_concurrent 2/2 r=hurley 2014-10-15 11:51:25 -04:00
Patrick McManus
bbf86bc8fc bug 1003450 - [3/3] Group Dependency Nodes require >= h2-16 r=hurley 2014-12-11 17:00:19 -05:00
Patrick McManus
7edbeec28f bug 1003450 - [2/3] Group Dependency nodes for HTTP/2 r=hurley 2014-12-06 14:26:50 -05:00
Patrick McManus
f7800dc7a7 bug 1099472 - nspr log argument mismatch h2::recvpushpromise r=hurley 2014-11-14 20:34:40 -05:00
Honza Bambas
23e519249d Bug 1081089 - Move spdy io logs to level 5, r=mcmanus 2014-11-10 16:10:41 +01:00
Nicholas Hurley
2b6d3a17ba Bug 1049814 - Retry REFUSED_STREAMs on the same session. r=mcmanus 2014-11-06 09:47:00 -05:00
Nicholas Hurley
e53d01ea81 Bug 1091263 - HTTP_1_1_REQUIRED support. r=mcmanus 2014-11-06 09:26:00 -05:00
Nicholas Hurley
3ba70bdea8 Bug 1055306 - Make h2 push origin check more correct. r=mcmanus 2014-11-03 16:19:00 +01:00
Patrick McManus
bc4244f5a9 bug 1024730 - nsIHttpPushListener r=hurley
co-author: ben brittain <ben@brittain.org>
2014-10-21 14:35:41 -04:00
Patrick McManus
f6d9299667 bug 1073825 - http2session::cleanupstream failure r=hurley 2014-10-13 11:02:08 -04:00
Patrick McManus
aec785a65a bug 1081341 - h2 1xx responses r=hurley 2014-09-27 09:06:38 -04:00
Patrick McManus
12115897d4 bug 1003448 - HTTP/2 Alternate Service and Opportunistic Security [2/2 necko] r=hurley 2014-08-21 10:50:17 -04:00
Daniel Stenberg
4626439304 Bug 939318 - Find and close HTTP connections without traffic after network change. r=mcmanus
SPDY/http2 connections get a ping and be allowed N seconds to respond.

Active HTTP connections will be allowed N seconds to get traffic, if they
don't afer N seconds they get closed to avoid risking stalled transfers.

N is 5 by default: pref is "network.http.network-changed.timeout"
2014-09-11 06:55:00 -04:00
Ed Morley
80ce7b3e12 Backed out changeset 0a066b7ffa46 (bug 939318) 2014-09-24 16:17:32 +01:00
Daniel Stenberg
5849257293 Bug 939318 - Find and close HTTP connections without traffic after network change, r=mcmanus
SPDY/http2 connections get a ping and be allowed N seconds to respond.

Active HTTP connections will be allowed N seconds to get traffic, if they
don't afer N seconds they get closed to avoid risking stalled transfers.

N is 5 by default: pref is "network.http.network-changed.timeout"
2014-09-11 06:55:00 -04:00
Nicholas Hurley
000ef68cf1 Bug 1046915 - Pref to advertise the latest HTTP/2 draft as "h2". r=mcmanus 2014-09-23 10:49:13 -07:00
Tom Tromey
e21e8e622e Bug 1069387 - Fix "Transaction" typos in netwerk/protocol/http. r=mcmanus 2014-09-18 08:13:00 -04:00
Patrick McManus
300766f367 bug 1050063 - consider tls client hello version in alpn/npn offer list r=hurley r=keeler 2014-08-15 09:39:53 -04:00
Nicholas Hurley
f19d15e618 Bug 1054173 - Do not fail connections when receiving request headers. r=mcmanus 2014-08-18 14:59:32 -07:00
Nicholas Hurley
8446acda81 Bug 1046892 part 1 - HTTP/2 draft 14 client implementation r=mcmanus 2014-08-05 08:41:09 -07:00
Patrick McManus
f8a14606da bug 1027720 - enforce h2 requirement that sever uses aead r=hurley r=dkeeler 2014-08-04 16:54:10 -04:00
Patrick McManus
29d2ce2ffe bug 1037082 - part 3/3 407 proxy auth for https over https r=hurley 2014-07-07 11:43:11 -04:00
Nicholas Hurley
3ec9845403 Bug 1014600 part 2 - Properly truncate buffers when processing new header blocks. r=mcmanus 2014-07-11 09:48:34 -07:00
Nicholas Hurley
ed1713d25f Bug 1030203 - Send PROTOCOL_ERROR when receiving PUSH_PROMISE with push disabled. r=mcmanus 2014-06-27 13:13:42 -07:00
Nicholas Hurley
77d6c29a3a Bug 1026609 - HTTP/2 draft 13 part 1 - client implementation. r=mcmanus 2014-06-25 17:33:15 -07:00
Patrick McManus
68ae085486 bug 1027364 - multiple http/2 header frames on same stream r=hurley 2014-06-19 23:42:29 -04:00
Daniel Stenberg
9a426539c5 Bug 1027353: avoid Http2Session NULL deref. r=hurley 2014-06-18 23:15:00 -04:00
Daniel Stenberg
43f0c8ec63 Bug 237623 - detect broken HTTP1.1 transfers. r=mcmanus,seth
Return error when the protocol layer detects a framing error. More data
was supposed to be delivered than what actually did arrive.

Error code returned for this: NS_ERROR_NET_PARTIAL_TRANSFER

In HTTP1.1 for Content-Length: and chunked-encoding underruns

In http2 and SPDY for framing errors when data has already been received.

imgRequest::OnStopRequest will keep partially loaded images shown but
remove them from cache.
2014-06-09 00:15:00 +02:00
Patrick McManus
93e8375c89 bug 1025075 - http2 CONNECT streams should have consistent priority r=hurley
---
 netwerk/protocol/http/Http2Session.cpp  | 3 ++-
 netwerk/protocol/http/SpdySession3.cpp  | 3 ++-
 netwerk/protocol/http/SpdySession31.cpp | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

---
 netwerk/protocol/http/Http2Session.cpp  | 3 ++-
 netwerk/protocol/http/SpdySession3.cpp  | 3 ++-
 netwerk/protocol/http/SpdySession31.cpp | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)
2014-06-13 09:29:00 -04:00
Nicholas Hurley
3c8da7e52c Bug 1019918 - Remove pushed stream from SpdyPushCache when cleaning it up. r=mcmanus
--HG--
extra : rebase_source : 2c1c23668adf041eb27c8f0509aebfbfab9497ca
2014-06-04 15:37:00 -04:00
Nicholas Hurley
e4e5a0e568 Bug 1019921 - [http/2] Don't change to discarding padding state when all padding has been processed. r=mcmanus 2014-06-03 19:41:26 -07:00
Patrick McManus
803055099a bug 1012825 - https proxying over http/2 connect stream r=hurley 2014-05-19 15:37:35 -04:00
Patrick McManus
d52c2946ac bug 378637 part 14 - https proxying for spdy31 and http2 r=hurley
--HG--
extra : rebase_source : 03a62d69b08f725c85f092b182a95de9c4eb7288
2014-05-16 11:46:13 -04:00
Patrick McManus
173d1dc1d2 bug 378637 part 12 - proxy over TLS (i.e. https proxying) r=hurley
--HG--
extra : rebase_source : 85b4f6b3eb1a3977ff888fa70214055a41f72da5
2014-04-16 09:52:43 -04:00
Patrick McManus
b48b19cab3 bug 378637 part 10 - implement nsAHttpTransaction::ConnectionInfo r=hurley
--HG--
extra : rebase_source : b4b955c652b14e750013130428b71e2e308fead3
2014-04-20 12:01:35 -04:00
Patrick McManus
4438318a70 bug 378637 part 7 - new spdysession() no longer takes first transaction r=hurley
--HG--
extra : rebase_source : af83fcffa83f1da4250b0a9528e148619f9e3838
2014-05-16 11:46:11 -04:00
Patrick McManus
d267633487 bug 378637 part 5 - move Spdy*::EnsureBuffer to nsHttp r=hurley
--HG--
extra : rebase_source : 147ffb4842069ac7531e99d7decb9362a2566556
2014-04-15 17:06:59 -04:00
Patrick McManus
c72c71a34e bug 378637 part 3 - fix http style: comments, whitespace, formatters r=hurley
--HG--
extra : rebase_source : 9d2b0692298fca2655023b3bc6295386a96625e6
2014-04-17 19:55:04 -04:00
Nicholas Hurley
4f66bb13b6 Bug 1006804 - Enforce TLS key type and size restrictions in HTTP/2. r=mcmanus. 2014-05-14 10:37:05 -07:00
Daniel Stenberg
5f64f2d036 Bug 1007024 - CopyAsNetwork32 inserts 32bit network byte order values. r=mcmanus
CopyAsNetwork32 is a convenience function to make the PR_htonl() +
memcpy use in the code less repetitive.
2014-05-14 01:01:00 +02:00
Ryan VanderMeulen
db079aae32 Backed out 11 changesets (bug 378637) for Android crashes.
Backed out changeset 2a607cddc4cb (bug 378637)
Backed out changeset e416503aea99 (bug 378637)
Backed out changeset b2257226899f (bug 378637)
Backed out changeset dafd618c3f52 (bug 378637)
Backed out changeset dfde9d47d8c4 (bug 378637)
Backed out changeset cf9de5c367a5 (bug 378637)
Backed out changeset 62aa68e8b499 (bug 378637)
Backed out changeset 38efa8f2e56e (bug 378637)
Backed out changeset 2b5753e09a92 (bug 378637)
Backed out changeset 7a73873e133d (bug 378637)
Backed out changeset f58ce7ac1c7f (bug 378637)
2014-05-09 15:25:55 -04:00
Patrick McManus
f685e08634 bug 378637 part 11 - proxy over TLS (i.e. https proxying) r=hurley
--HG--
extra : rebase_source : 8962538247666781e30eaa3b9673b857ec150204
2014-04-16 09:52:43 -04:00
Patrick McManus
1ed50ab723 bug 378637 part 9 - implement nsAHttpTransaction::ConnectionInfo r=hurley
--HG--
extra : rebase_source : d69a64d0320c8b0d8a61fe4b6b127b1daa2d2c4d
2014-04-20 12:01:35 -04:00
Patrick McManus
5356f30408 bug 378637 part 6 - implement nsAHttpTransaction::QueryHttpTransaction r=hurley
--HG--
extra : rebase_source : 9e08e2f136b217d62e69da2cb2bb1c16422be520
2014-04-15 17:40:23 -04:00
Patrick McManus
33cd538fd5 bug 378637 part 5 - move Spdy*::EnsureBuffer to nsHttp r=hurley
--HG--
extra : rebase_source : 015e1e73261153a747dc5430f377ed29858903d1
2014-04-15 17:06:59 -04:00
Patrick McManus
1e80fe1e92 bug 378637 part 3 - fix http style: comments, whitespace, formatters r=hurley
--HG--
extra : rebase_source : 9c9af71e086422ee3dbb5b2f6cf08611252ae456
2014-04-17 19:55:04 -04:00
Daniel Stenberg
9b3002ffb1 Bug 1007029 - GenerateGoAway: Remove pointless memset(). r=mcmanus 2014-05-08 09:27:00 -04:00
Daniel Stenberg
620f55a660 Bug 1005821 - http2: store streamID on correct index within frame. r=hurley
Http2Session::GenerateGoAway() inserts the 'mOutgoingGoAwayID' at index
7 while the comment (and the current http2 spec draft-12) says it should
be at index 8.
2014-05-05 10:58:00 +02:00
Nicholas Hurley
f0e5a8c1c1 Bug 1001022 part 1 - http/2 draft 12 client implementation. r=mcmanus 2014-04-29 18:46:03 -07:00
Nicholas Hurley
b75cd1cf68 Bug 993037 (part 1) - http/2 draft 11 client implementation. r=mcmanus 2014-04-29 18:45:59 -07:00
Nicholas Hurley
33cbd38dd5 Bug 965869 (part 1) - HTTP/2 draft10 client implementation. r=mcmanus 2014-03-26 10:58:09 -07:00
Patrick McManus
748d773593 bug 974932 - spdy large upload chunk sizes, and fewer TLS application data records r=hurley 2014-02-24 16:27:27 -05:00
Honza Bambas
76d4ebed1e Bug 965031 - Improve usage of levels of nsHttp log module, r=mcmanus 2014-02-07 22:15:24 +01:00
Patrick McManus
f0d11b753b bug 965348 - control SocketTransportService::Poll tick during spdy idle r=hurley 2014-01-30 02:29:20 -05:00
Patrick McManus
2311cd485e bug 959172 - double SpdySession::CleanupStream r=hurley 2014-01-13 10:10:10 -05:00
Patrick McManus
bc50e81c07 bug 950768 - http/2-draft08 pref off r=hurley r=mcmanus 2013-10-09 17:21:49 -07:00