gecko/netwerk/protocol
Patrick McManus f5c0c33db7 bug 603512 - large objects block pipelines r=honzab
the type and state patch tries hard not to form pipelines behind resources that
could become head of line blockers. But of course that requires the ability to
predict the future, and won't be perfect.

This patch reacts to a transaction that has a large response body (defined by
either a large content-length header or actually reading a large number of
chunked bytes) by cancelling any transactions that have been pipelined down the
same connection and rescheduling them elsewhere. It also changes the type of
the connection to "solo", which prevents new transactions from being pipelined
onto this one and provides class-specific negative feedback to the pipeline
manager so that near-future requests to the same host of the same type (e.g.
general) will not be pipelined but other types (e.g. img or js/css) can still
do that.

Content-Length is ideal, because it allows us to identify the problem so early.
But even actually reading the document for a fairly long time gives it a fairly
high probability of not ending soon. (i.e. long document sizes are spread over
a larger range than small ones. duh.)

The pref network.http.pipelining.maxsize controls the threshold. I set the
default at 300KB, which is roughly the bandwidth delay product of a 2mbit 120ms
rtt connection and 1 rtt is mostly what you are giving up by canceling it on
one connection and sending it on another. (modulo maybe needing a handshake).
2012-03-22 19:39:31 -04:00
..
about Bug 680327 - Use NS_LITERAL_CSTRING instead of nsDependentCString. r=honzab 2012-01-13 17:17:04 +01:00
data Bug 512566. Changes based on review comments. r=bz,jfkthame 2012-03-16 12:31:01 +09:00
device Bug 736778: Work around probable compiler bug breaking DEBUG builds of GonkCaptureProvider. r=fabrice (npotb) 2012-03-17 14:42:24 -07:00
file Bug 715045 - Remove old vc support code. r=jimm 2012-01-05 16:52:22 +09:00
ftp Bug 722033 - Invalidate cache entry in nsHttpChannel::DoInvalidateCacheEntry() asynchronously 2012-03-22 23:54:20 +01:00
http bug 603512 - large objects block pipelines r=honzab 2012-03-22 19:39:31 -04:00
res Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron 2011-10-17 10:59:28 -04:00
viewsource Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron 2011-10-17 10:59:28 -04:00
websocket Bug 696085: WebSocket connection opening across page loads r=smaug 2012-02-21 14:57:10 -08:00
wyciwyg Bug 722033 - Invalidate cache entry in nsHttpChannel::DoInvalidateCacheEntry() asynchronously 2012-03-22 23:54:20 +01:00
Makefile.in bugzilla 640003 websockets ietf-07 r=smaug r=biesi sr=bz 2011-05-21 21:27:52 -04:00