diff options
author | simonjam@chromium.org <simonjam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-19 20:14:29 +0000 |
---|---|---|
committer | simonjam@chromium.org <simonjam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-19 20:14:29 +0000 |
commit | 5a60c8bb002e4573dd0809f4a78d56b4c9720add (patch) | |
tree | 4be91c33213b0e7ab66dfed7ced978e8a16b3cdc /net/http/http_stream_factory_impl_job.h | |
parent | 8053408224c37ade07452972e01de6126d074d27 (diff) | |
download | chromium_src-5a60c8bb002e4573dd0809f4a78d56b4c9720add.zip chromium_src-5a60c8bb002e4573dd0809f4a78d56b4c9720add.tar.gz chromium_src-5a60c8bb002e4573dd0809f4a78d56b4c9720add.tar.bz2 |
Basic HTTP pipelining support.
This must be enabled in about:flags. It is naive and assumes all servers correctly implement pipelining. Proxies are not supported.
Immediate future work:
- Integration tests.
- Additional NetLog logging.
- Refactor HttpPipelinedConnectionImpl.
Long term:
- Detect broken transparent proxies.
- Detect and/or mitigate broken servers.
- Buffer HttpPipelinedStream.
- Optimize number of pipelines and their depth.
- Support proxies.
BUG=8991
TEST=net_unittests
Review URL: http://codereview.chromium.org/7289006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106364 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_stream_factory_impl_job.h')
-rw-r--r-- | net/http/http_stream_factory_impl_job.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/http/http_stream_factory_impl_job.h b/net/http/http_stream_factory_impl_job.h index b3d4175..50da574 100644 --- a/net/http/http_stream_factory_impl_job.h +++ b/net/http/http_stream_factory_impl_job.h @@ -23,6 +23,7 @@ namespace net { class ClientSocketHandle; class HttpAuthController; class HttpNetworkSession; +class HttpPipelinedConnection; class HttpProxySocketParams; class HttpStream; class SOCKSSocketParams; @@ -197,11 +198,11 @@ class HttpStreamFactoryImpl::Job { // Should we force SPDY to run without SSL for this stream request. bool ShouldForceSpdyWithoutSSL() const; + bool IsRequestEligibleForPipelining() const; + // Record histograms of latency until Connect() completes. static void LogHttpConnectedMetrics(const ClientSocketHandle& handle); - void HACKCrashHereToDebug80095(); - Request* request_; const HttpRequestInfo request_info_; @@ -276,6 +277,9 @@ class HttpStreamFactoryImpl::Job { // Only used if |new_spdy_session_| is non-NULL. bool spdy_session_direct_; + // True if an existing pipeline can handle this job's request. + bool existing_available_pipeline_; + ScopedRunnableMethodFactory<Job> method_factory_; DISALLOW_COPY_AND_ASSIGN(Job); |