summaryrefslogtreecommitdiffstats
path: root/net/http
Commit message (Collapse)AuthorAgeFilesLines
* Fix LogTCPConnectedMetrics. Add FieldTrials for late binding (enable for ↵willchan@chromium.org2009-07-272-13/+48
| | | | | | | | 50% of dev channel). Review URL: http://codereview.chromium.org/159038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21727 0039d316-1c4b-4281-b951-d872f2087c98
* Strip embedded "#" in URLs when constructing HTTP cache key.ericroman@google.com2009-07-232-5/+28
| | | | | | | | | BUG=http://crbug.com/17493 TEST=HttpCache.UrlContainingHash Review URL: http://codereview.chromium.org/155972 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21408 0039d316-1c4b-4281-b951-d872f2087c98
* Add unit-test for 16199, to check caching behavior of conditonalized cache ↵ericroman@google.com2009-07-231-3/+132
| | | | | | | | | | | | requests (if-modified-since). This test does not pass, and is currently disabled -- it will be enabled once 16199 is fixed. BUG=http://crbug.com/16199 Review URL: http://codereview.chromium.org/159220 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21359 0039d316-1c4b-4281-b951-d872f2087c98
* Limit total number of sockets in the system.phajdan.jr@chromium.org2009-07-222-8/+19
| | | | | | | | | | Based on Eric Roman's patch at http://codereview.chromium.org/62181 http://crbug.com/15093 Review URL: http://codereview.chromium.org/149027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21276 0039d316-1c4b-4281-b951-d872f2087c98
* Add synchronous-mode operation to MockHostResolver; this helps clarify some ↵ericroman@google.com2009-07-181-3/+3
| | | | | | | | tests, which were using caching to get synchronous resolutions.TEST=existingBUG=NONE (addresses a TODO however). Review URL: http://codereview.chromium.org/155620 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21052 0039d316-1c4b-4281-b951-d872f2087c98
* Refactorings surrounding HostResolver:ericroman@google.com2009-07-152-16/+17
| | | | | | | | | | | | | | | | | | | | | | (1) Extract HostResolver to an interface. The existing concrete implementation is now named HostResolverImpl. This makes it possible to create mocks with more complex behavior (i.e. choose via rules if response will be sync vs async). (2) Transform HostMapper into HostResolverProc. Conceptually HostResolverProc maps a hostname to a socket address, whereas HostMapper mapped a hostname to another hostname (so you were still at the mercy of the system's host resolver). With HostResolverProc you can specify the exact AddressList, making it possible to run tests requiring IPv6 socketaddrs on systems (like WinXP) that don't actually support it. (3) Add a MockHostResolver implementation of HostResolver. This replaces the [ScopedHostMapper + RuleBasedHostMapper + HostResolver] combo. It is less clunky and a bit more expressive. BUG=http://crbug.com/16452 R=willchan TEST=existing Review URL: http://codereview.chromium.org/149511 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20795 0039d316-1c4b-4281-b951-d872f2087c98
* SOCKS v5 implementationarindam@chromium.org2009-07-152-9/+137
| | | | | | | | | | | The implementation is incomplete as it does not support any authentication methods and does not have a UDP layer. BUG=469 TEST=unittests (included) Review URL: http://codereview.chromium.org/150187 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20724 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 20626.arindam@chromium.org2009-07-142-137/+9
| | | | | | | | TBR=eroman Review URL: http://codereview.chromium.org/155505 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20628 0039d316-1c4b-4281-b951-d872f2087c98
* SOCKS v5 implementationarindam@chromium.org2009-07-142-9/+137
| | | | | | | | | | | The implementation is incomplete as it does not support any authentication methods and does not have a UDP layer. BUG=469 TEST=unittests (included) Review URL: http://codereview.chromium.org/150187 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20626 0039d316-1c4b-4281-b951-d872f2087c98
* Add some CHECKs to track down the source of a NULL deref in the ↵willchan@chromium.org2009-07-101-0/+9
| | | | | | | | | | | SSLClientSocketWin code. BUG=http://crbug.com/16371 TEST=none Review URL: http://codereview.chromium.org/155359 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20415 0039d316-1c4b-4281-b951-d872f2087c98
* Fix some coverity warnings in src/net.willchan@chromium.org2009-07-101-1/+1
| | | | | | Review URL: http://codereview.chromium.org/155315 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20352 0039d316-1c4b-4281-b951-d872f2087c98
* Validate offset / length of extra field in the message. Note these fields arecevans@chromium.org2009-07-091-2/+9
| | | | | | | | | | | | | decoded and set in a structure but unsused, so this is not a current security issue. This change just future-proofs the area in case these fields are used one day. BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/155311 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20315 0039d316-1c4b-4281-b951-d872f2087c98
* CHECK to make sure connection_group is never empty.willchan@chromium.org2009-07-071-1/+5
| | | | | | | | | | Testing to see if this is the reason we hit the CHECK(!group_name_.empty()) in ClientSocketHandle::GetLoadState(). BUG=http://crbug.com/15374 TEST=none Review URL: http://codereview.chromium.org/155150 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20076 0039d316-1c4b-4281-b951-d872f2087c98
* Add more code to debug a crash inside HttpCache::DeactivateEntryrvargas@google.com2009-07-062-5/+34
| | | | | | | | | BUG=9952 TEST=none Review URL: http://codereview.chromium.org/155018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19981 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a browser crash during cache validation.rvargas@google.com2009-06-302-0/+34
| | | | | | | | | | | | | | | It is possible for a crazy server to return 206 even though we are not making a range request. In that case, we should not allow the stored response to go through the logic for range support (which right now is disabled). We've always stored those 206s though. BUG=15617 TEST=unittest Review URL: http://codereview.chromium.org/150090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19621 0039d316-1c4b-4281-b951-d872f2087c98
* Make net::HostResolver refcounted.ericroman@google.com2009-06-274-15/+15
| | | | | | | | | | | This way it can be properly shared between the url request contexts, and the dns prefetcher, and dns observer. BUG=http://crbug.com/14664 TEST=existing unit tests. Review URL: http://codereview.chromium.org/149053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19451 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 19425.ericroman@google.com2009-06-264-15/+15
| | | | | | Review URL: http://codereview.chromium.org/147242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19432 0039d316-1c4b-4281-b951-d872f2087c98
* Make net::HostResolver refcounted.ericroman@google.com2009-06-264-15/+15
| | | | | | | | | | | This way it can be properly shared between the url request contexts, and the dns prefetcher, and dns observer. BUG=http://crbug.com/14664 TEST=existing unit tests. Review URL: http://codereview.chromium.org/149053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19425 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring using_proxy_, using_tunnel_, using_socks_proxy_ into a single ↵arindam@chromium.org2009-06-264-23/+145
| | | | | | | | | | | | | | enum ProxyConfig in HttpNetworkTransaction. Fixing http://crbug.com/14982 In case of SOCKS proxies we set the url to append to the group name so that the socks endpoint is at the target server and not the socks proxy server and so can be effectively reused by the socket pool. BUG=14982 TEST=unittests Review URL: http://codereview.chromium.org/146026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19404 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash in net::SSLClientSocketWin::OnIOComplete(int) whenwtc@chromium.org2009-06-251-2/+2
| | | | | | | | | | | | | | | | | | | | | an HttpNetworkTransaction is destroyed while its SSLClientSocket is verifying a certificate. Document that ClientSocket::Disconnect aborts any pending IO and prevents completion callback from running, like a cancel method. Change the verifier_ member of SSLClientSocket to a scoped_ptr so that we can destroy the CertVerifier object in the Disconnect method. (CertVerifier doesn't have a cancel method, so we cancel pending certificate verification by destroying the CertVerifier object.) R=willchan BUG=http://crbug.com/13981 TEST=none. I can only reproduce this crash by modifying the source code to create that condition. Review URL: http://codereview.chromium.org/147159 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19307 0039d316-1c4b-4281-b951-d872f2087c98
* Add some checks to make sure header_buf_body_offset_ is never used when ↵ericroman@google.com2009-06-252-6/+10
| | | | | | | | | negative. BUG=b/1483703 Review URL: http://codereview.chromium.org/132051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19284 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Add support for ranges with an unknown start or end.rvargas@google.com2009-06-244-23/+112
| | | | | | | | | BUG=12258 TEST=unittest Review URL: http://codereview.chromium.org/147042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19142 0039d316-1c4b-4281-b951-d872f2087c98
* Following the style guide, replace the overloaded operator==wtc@chromium.org2009-06-231-1/+1
| | | | | | | | | | | with the Equals method. R=eroman BUG=http://crbug.com/318 TEST=none Review URL: http://codereview.chromium.org/146040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19056 0039d316-1c4b-4281-b951-d872f2087c98
* Define the == operator for X509Certificate::Fingerprint.wtc@chromium.org2009-06-231-3/+1
| | | | | | | | | R=eroman BUG=http://crbug.com/318 TEST=none Review URL: http://codereview.chromium.org/140034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19029 0039d316-1c4b-4281-b951-d872f2087c98
* Use LOAD_VERIFY_EV_CERT to verify EV-ness in Verify().ukai@chromium.org2009-06-231-0/+3
| | | | | | | | | | | | | | | | | If LOAD_VERIFY_EV_CERT is requested on load_flags and revokation checking is performed, Verify() peforms EV certificate verification as well, and sets CERT_STATUS_IS_EV in verify_result. Eliminate X509Certificate::IsEV() BUG=3592 TEST=net_unittests with ALLOW_EXTERNAL_ACCESS=1, \ visit https://www.thawte.com/ and shows EV info. Review URL: http://codereview.chromium.org/125120 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19011 0039d316-1c4b-4281-b951-d872f2087c98
* Adding socks4 support for chromium. tested for windows and linux.arindam@chromium.org2009-06-233-9/+172
| | | | | | | | | | | | | | | includes socks4, socks4a TEST=change proxy settings to use proxy and set only the socks proxy fields (others must remain blank). Use CCProxy for windows or 'ssh -D' for linux / cygwin if trying it via localhost. Browser should successfully open both http and https URLs. tests are also at HttpNetworkTransactionTest.SOCKS* BUG=none Review URL: http://codereview.chromium.org/113811 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19005 0039d316-1c4b-4281-b951-d872f2087c98
* Move socket related files from net/base to net/socket.willchan@chromium.org2009-06-227-11/+12
| | | | | | Review URL: http://codereview.chromium.org/144009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18985 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Return valid Content-Range headers for a byte range request.rvargas@google.com2009-06-227-20/+312
| | | | | | | | | BUG=12258 TEST=unittests Review URL: http://codereview.chromium.org/140015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18961 0039d316-1c4b-4281-b951-d872f2087c98
* Implement the backend of SSL client authentication forwtc@chromium.org2009-06-192-4/+49
| | | | | | | | | | | | | | | | | Windows. Create Schannel SSPI CredHandles with certificates for SSL client authentication. Remember the client certificates that the user selected so that we don't ask the user again and again. R=rvargas,eroman BUG=http://crbug.com/318 TEST=none Review URL: http://codereview.chromium.org/131086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18841 0039d316-1c4b-4281-b951-d872f2087c98
* Fix problem with how HttpResponseHeaders::Update() copies headers -- it ↵ericroman@google.com2009-06-192-2/+15
| | | | | | | | | | | assumed the value range ended in a '\0'. BUG=14220 TEST=HttpResponseHeadersTest.Update Review URL: http://codereview.chromium.org/132042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18774 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor so checking for number error is done by ParseChunkSize() rather ↵ericroman@google.com2009-06-182-6/+12
| | | | | | | | than the caller of ParseChunkSize(). Review URL: http://codereview.chromium.org/132037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18768 0039d316-1c4b-4281-b951-d872f2087c98
* Add a simple cache of certificates for SSL client authentication.wtc@chromium.org2009-06-181-1/+6
| | | | | | | | | | | | | It is based on FtpAuthCache and will be used in similar ways. The the only difference is that the authentication data is a certificate rather than username and password. R=eroman BUG=http://crbug.com/318 TEST=new unit tests. Review URL: http://codereview.chromium.org/132004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18735 0039d316-1c4b-4281-b951-d872f2087c98
* Improve chunked encoding parsing.abarth@chromium.org2009-06-182-1/+9
| | | | | | | | | | | | R=abarth BUG=14508 TEST=HttpChunkedDecoderTest.ExcessiveChunkLen Patch contributed by Chris Evans. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18687 0039d316-1c4b-4281-b951-d872f2087c98
* Move most of the code for TCPClientSocketPool into ClientSocketPoolBase for ↵willchan@chromium.org2009-06-171-6/+6
| | | | | | | | | | | sharing. Also rename idle_socket_count() to IdleSocketCount in ClientSocketPool and derived classes, since it's virtual. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/125238 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18622 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land another subset of r18520.ericroman@google.com2009-06-171-0/+5
| | | | | | | | | | | | This particular subset should be a no-op: It adds an unused interface method (OnResolutionCancelled), and an unused test (CancelObserver), and lastly renames Cancel --> MarkAsCanceled(). The code in "dns_global.cc" is also unused since it is unreachable. The original code review that this belongs to is:<http://codereview.chromium.org/125171>. (BUG=14138) The original was backed out because of a valgrind linux error (BUG=14218), so I am now re-landing in smaller chunks to identify where the problem resides. Review URL: http://codereview.chromium.org/126253 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18581 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 18520.ericroman@google.com2009-06-171-5/+0
| | | | | | | | | | | | | | The original code review for this change was: <http://codereview.chromium.org/125171> It is being reverted because it seems to have caused a valgrind on linux regression: <http://crbug.com14218> BUG=14218,14138,14188 Review URL: http://codereview.chromium.org/126248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18574 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing a bug in HttpResponseHeaders.GetContentRangehclam@chromium.org2009-06-162-3/+14
| | | | | | | | | The code has a glitch in handling LWS near to the "bytes" token. BUG=14216 Review URL: http://codereview.chromium.org/126229 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18556 0039d316-1c4b-4281-b951-d872f2087c98
* * Add an OnCancelResolution() notifier to HostResolver::Observer, so ↵ericroman@google.com2009-06-161-0/+5
| | | | | | | | | | | | | | | observers can tell when a request has been cancelled. * Use OnCancelResolution() in DNS prefetcher observer, to avoid leaking entries in the |resolution| table when requests are cancelled. (BUG=14138) * Fix a bug where completion notification wasn't being sent when the response was cached. (BUG=14188) BUG=14138,14188 TEST=HostResolverTest.CancellationObserver, HostResolverTest.Observer Review URL: http://codereview.chromium.org/125171 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18520 0039d316-1c4b-4281-b951-d872f2087c98
* Make HttpNetworkLayer tests network-independent.phajdan.jr@chromium.org2009-06-163-28/+44
| | | | | | | | | | | | This includes a small refactoring which allows using a different socket factory. TEST=Covered by net_unittests. BUG=http://crbug.com/14107 Review URL: http://codereview.chromium.org/126147 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18499 0039d316-1c4b-4281-b951-d872f2087c98
* Bypass the host cache when you refresh a page.ericroman@google.com2009-06-162-6/+53
| | | | | | | | | BUG=13163 TEST=HttpNetworkTransactionTest.BypassHostCacheOnRefresh, HostResolverTest.BypassCache Review URL: http://codereview.chromium.org/125154 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18474 0039d316-1c4b-4281-b951-d872f2087c98
* Add a regression test for 14056. This verifies that HttpNetworkTransaction ↵ericroman@google.com2009-06-151-0/+73
| | | | | | | | | | sets the "referrer" field expected by the DNS prefetch observer. BUG=14056 Review URL: http://codereview.chromium.org/126112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18434 0039d316-1c4b-4281-b951-d872f2087c98
* Fix segfault in HttpNetworkLayerTest.GoogleGET when network connection fails.phajdan.jr@chromium.org2009-06-151-1/+1
| | | | | | | | | | | | | | | This is rather a workaround for the root cause (test touches the network), but it should not crash anyway. After this patch the test will fail, not segfault. TEST=Covered by net_unittest. Check with network connection disabled. BUG=http://crbug.com/13195 Review URL: http://codereview.chromium.org/125128 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18398 0039d316-1c4b-4281-b951-d872f2087c98
* Add unit tests for new FTP network transaction.phajdan.jr@chromium.org2009-06-151-145/+54
| | | | | | | | | | TEST=Covered by net_unittests. http://crbug.com/12409 Review URL: http://codereview.chromium.org/115779 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18375 0039d316-1c4b-4281-b951-d872f2087c98
* [Refactor] Rename DnsResolutionObserver --> HostResolver::Observer.ericroman@google.com2009-06-151-1/+0
| | | | | | | | | | TEST=this is striclty a refactoring; just needs to compile and pass existing tests. BUG=14056 Review URL: http://codereview.chromium.org/126110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18372 0039d316-1c4b-4281-b951-d872f2087c98
* * Move the global "DnsResolutionObserver" code depended on by DNS ↵ericroman@google.com2009-06-151-1/+20
| | | | | | | | | | | | | | prefetcher, into HostResolver. This has the advantage that consumers of DNS no longer have to remember to call "DidFinishDnsResolutionWithStatus()" followed by "DidStartDnsResolution()" in order for the prefetcher to observe the resolution. Instead it just happens automatically, and subscribers register via HostResolver::AddObserver() on a particular resolver instance. * To accomodate the prefetcher's observer, HostResolver::Resolve() needs an additional "referrer" parameter. This is slightly awkward since "referrer" has nothing to do with the actual resolve request. To simplify plumbing through this and other optional parameters, Resolve() was changed to take a "RequestInfo&" parameter in place of say {hostname, port, flags}. * Added an option to HostResolver::Resolve() for disallowing cached responses (RequestInfo::allow_cached_response). This will be used when you refresh a page, to bypass the host cache. The code to do this has been added to HttpNetworkTransaction, but is commented out pending an appropriate unit-test to verify it. BUG=14056 Review URL: http://codereview.chromium.org/125107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18371 0039d316-1c4b-4281-b951-d872f2087c98
* Specify new methods for supporting SSL client authentication.wtc@chromium.org2009-06-127-14/+118
| | | | | | | | | | | | | | | | | See the changes to url_request.h and ssl_cert_request_info.h. They are similar to the methods for handling SSL certificate errors and HTTP authentication. The handling of servers that request but don't require SSL client authentication is reimplemented using the new methods. R=rvargas,eroman BUG=http://crbug.com/318 TEST=none Review URL: http://codereview.chromium.org/118039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18322 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: First pass of byte-range requests support.rvargas@google.com2009-06-126-64/+645
| | | | | | | | | | | | | | | | | | | | | | This is the first pass to implement support for range requests and the asociated sparse cache entry. It is disabled by default, and requires ENABLE_RANGE_SUPPORT to be defined in order to activate the code: all the code is compiled in, but Start() bypasses the cache for range requests, and OnNetworkInfoAvailable ignores 206. Big parts are still not implemented. Most notably we are not modifying the response headers that we send to the user, so the content-range and content-length info are not correct. BUG=12258 TEST=Unit tests. Review URL: http://codereview.chromium.org/118345 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18289 0039d316-1c4b-4281-b951-d872f2087c98
* Remove most field trial uses of DNS impact testjar@chromium.org2009-06-121-24/+10
| | | | | | | | | | | | | | | | | The focus on DNS prefetching has moved to optimize primarilly the RequestToFinish time in the renderer. As a result, I've removed most of the modulations of the histogram names other than that focal histogram. I've also extended the duration for RequestToFinish, and enhanced its granularity, changing the name to RequestToFinish_L. Dave: Please review the renderer histogram changes. Will: Please review the network histogram changes. You can also suggest any histograms that you think would be removed at this point. r=davemoore,willchan Review URL: http://codereview.chromium.org/126023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18283 0039d316-1c4b-4281-b951-d872f2087c98
* * Avoid doing concurrent DNS resolves of the same hostname in HostResolver.ericroman@google.com2009-06-129-23/+48
| | | | | | | | | | | | | | | | * Add a 1 minute cache for host resolves. * Refactor HostResolver to handle multiple requests. * Make HostResolver a dependency of URLRequestContext. operate the HostResolver in async mode for proxy resolver (bridging to IO thread). TEST=unittests BUG=13163 Review URL: http://codereview.chromium.org/118100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18236 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce HttpStream and HttpBasicStream.willchan@chromium.org2009-06-114-5/+113
| | | | | | | | | | | | This is the beginning of the http pipelining work. Introduce HttpStream, an interface for reading and writing to http streams. Provide a basic implementation with HttpBasicStream. Switch HttpNetworkTransaction to reading/writing via HttpStream rather than directly to the socket. Note that the interface will have to change later on. Read/Write() is the wrong interface, since a pipelining HttpStream implementation will have to detect the end of an http response, rather than having the client (HttpNetworkTransaction) do that. This is just the first step. For information of the general roadmap for http pipelining, please refer to the bug. BUG=http://crbug.com/8991 TEST=none Review URL: http://codereview.chromium.org/119346 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18199 0039d316-1c4b-4281-b951-d872f2087c98