summaryrefslogtreecommitdiffstats
path: root/net/http
Commit message (Collapse)AuthorAgeFilesLines
* Revert cl 24015rvargas@google.com2009-08-213-55/+39
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/174260 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24026 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Enable experimental support for byte range requests.rvargas@google.com2009-08-213-39/+55
| | | | | | | | | | | Requires --enable-byte-range-support BUG=12258 TEST=covered by unit tests. Review URL: http://codereview.chromium.org/173173 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24015 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanups for SSLConfigService and SSLConfigServiceManager.mattm@chromium.org2009-08-211-1/+1
| | | | | | | | | | | | | | | | | Make SSLConfig.rev_checking_enable default to true (which also affects the defaults set by SSLConfigServicePref.) Add static SSLConfigService::CreateSystemSSLConfigService which creates a standalone SSLConfigService (either SSLConfigServiceWin or SSLConfigServiceDefaults.) Use CreateSystemSSLConfigService in fetch_client and test_shell_request_context. Merge SSLConfigServiceManagerWin and SSLConfigServiceManagerDefaults into SSLConfigServiceManagerSystem, which uses CreateSystemSSLConfigService. BUG=11507,19290 TEST=only visible change should be linux defaults to having rev checking option enabled. Review URL: http://codereview.chromium.org/173097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23998 0039d316-1c4b-4281-b951-d872f2087c98
* Pulling new version of googleurl into the tree.cira@chromium.org2009-08-211-4/+2
| | | | | | | | | | Fixing a net_unittest case that wasn't updated when googleurl code was changed (but not down integrated to chrome). BUG=5490 Review URL: http://codereview.chromium.org/174093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23965 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Fix the code that handles 206s when revalidatingrvargas@google.com2009-08-203-22/+91
| | | | | | | | | | | a range from the cache. BUG=12258 TEST=unittests Review URL: http://codereview.chromium.org/174039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23881 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing break statement.jhawkins@chromium.org2009-08-191-3/+5
| | | | | | | | | CID=5724 BUG=none TEST=none Review URL: http://codereview.chromium.org/173078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23766 0039d316-1c4b-4281-b951-d872f2087c98
* Pref-backed SSLConfigService for Linux.mattm@chromium.org2009-08-199-29/+53
| | | | | | | | | | Makes SSLConfigService into a ref-counted interface, and makes Profile own an SSLConfigServiceFactory which is used to create the SSLConfigService and pass it through the URLRequestContext on down to where it is actually used. R=eroman,wtc BUG=11507,19290 Review URL: http://codereview.chromium.org/165003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23757 0039d316-1c4b-4281-b951-d872f2087c98
* Make ClientSocketHandle::Init() typesafe.willchan@chromium.org2009-08-196-18/+16
| | | | | | | | | | | Introduce a REGISTER_SOCKET_PARAMS_FOR_POOL macro to register valid SocketParams for a ClientSocketPool subtype. Update HttpNetworkSession's ClientSocketPool to return the concrete TCPClientSocketPool instead of the parent interface. Renamed the member variable&accessor. Updated tests. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/173018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23743 0039d316-1c4b-4281-b951-d872f2087c98
* Change ClientSocketHandle to take the pool as a parameter to Init() rather ↵willchan@chromium.org2009-08-182-3/+4
| | | | | | | | | | than the constructor. The purpose of this change is to allow ClientSocketHandle to be able to accept ClientSocketPools of different types, since we will want to pass a TCPClientSocketPool or an SSLClientSocketPool or whatever to it. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/171003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23629 0039d316-1c4b-4281-b951-d872f2087c98
* Remove an unused header from proxy_service.h.ericroman@google.com2009-08-181-0/+1
| | | | | | Review URL: http://codereview.chromium.org/164545 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23615 0039d316-1c4b-4281-b951-d872f2087c98
* Reference count ProxyService.eroman@chromium.org2009-08-185-32/+24
| | | | | | | | | | | | | This is necessary since ProxyService is getting shared between chrome's url request contexts (off the record, media), and the current way it is being shared could result in free memory read/writes during shutdown. This is a step towards fixing http://crbug.com/15289. BUG=http://crbug.com/15289 TEST=The existing tests should continue to pass following this refactor. Review URL: http://codereview.chromium.org/165430 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23612 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: Additional byte-range support.rvargas@google.com2009-08-184-53/+327
| | | | | | | | | | | | | | | | | | | | * Now we can serve byte range requests from cached 200s. * When we receive 304 we make sure that we were expecting it. * A range request that doesn't fit the currently stored entry only deletes the entry if the server confirms that it has changed. * Make sure that LOAD_ONLY_FROM_CACHE causes cache misses for byte range requests. BUG=12258 TEST=unittests Review URL: http://codereview.chromium.org/165479 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23601 0039d316-1c4b-4281-b951-d872f2087c98
* Add histograms for tracking the unused/unused_idle/reused socket states from ↵willchan@chromium.org2009-08-172-18/+76
| | | | | | | | | | | | TCPClientSocketPool. Tracks the number of each socket type returned by the TCPClientSocketPool. Also tracks the number of recoverable IO errors (resets, aborts, closes) per socket type. Also tracks the idle time of a socket before a recoverable IO happens. Review URL: http://codereview.chromium.org/171048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23570 0039d316-1c4b-4281-b951-d872f2087c98
* Make ClientSocketPool/ClientSocketPoolBase/ClientSocketHandle more generic.willchan@chromium.org2009-08-141-7/+7
| | | | | | | | | | | | | | | This is in preparation for creating an SSLClientSocketPool. ClientSocketPoolBase is now templated. Most of the implementation has moved to ClientSocketPoolBaseHelper which is not templated. In order to make this possible, ClientSocketPoolBaseHelper's internal data structures do not use the full concrete Request type, but rather use a pointer to Request. ClientSocketPoolBase takes a SocketParams as a template argument, primarily to allow RequestSocket to take a templated parameter that contains all the information necessary to connect the socket (be it TCP or SSL or whatever). ClientSocketPool::RequestSocket() and ClientSocketHandle::Init() have been templated as well to handle this case. I've left adding run-time type safety checks as a TODO. TEST=net_unittests BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/160621 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23427 0039d316-1c4b-4281-b951-d872f2087c98
* LoadLog is used as an output parameter, reorder it to the last parameter.willchan@chromium.org2009-08-148-91/+91
| | | | | | Review URL: http://codereview.chromium.org/164531 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23419 0039d316-1c4b-4281-b951-d872f2087c98
* Unescape username/passwords obtained from URLs before using them for HTTP auth.ericroman@google.com2009-08-143-7/+95
| | | | | | | | BUG=http://crbug.com/19200 Review URL: http://codereview.chromium.org/164504 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23403 0039d316-1c4b-4281-b951-d872f2087c98
* Implement SSL certificate error handling on the Mac. If the user giveswtc@chromium.org2009-08-131-1/+4
| | | | | | | | | | | | | | | | us bad certs to allow, we tell SecureTransport to not verify the server cert, and only allow the cert to be one of the bad certs the user allows. In the future we should figure out how to verify the server cert ourselves. R=avi,eroman BUG=http://crbug.com/11983 TEST=Visit https://www.ssl247.com/ and https://alioth.debian.org/. Clicking the "Proceed anyway" button should bring you to the site with a red "https" in the location bar. Review URL: http://codereview.chromium.org/165191 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23321 0039d316-1c4b-4281-b951-d872f2087c98
* Add a "LoadLog" parameter to transactions, hostresolver, clientsocketpool ↵ericroman@google.com2009-08-128-80/+94
| | | | | | | | and proyxservice.This dependency comes from the parent URLRequest, and is used as a container for per-request profiling data.This change is strictly a no-op refactor -- the parameter is unused, and LoadLog does nothing.BUG=http://crbug.com/14478TEST=none -- just needs to compile and pass existing tests.DESIGN=<http://docs.google.com/Doc?id=dfhcnb2v_21gbtrcpr3&hl=en> Review URL: http://codereview.chromium.org/126303 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23127 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: Extend support for byte range requests.rvargas@google.com2009-08-127-48/+374
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Now we handle regular requests (not byte range requests) that end up reading a cached entry that stores byte ranges. In this case we create a control object (partial_), but it's byte_range_ member is always invalid because the user is not requesting a range. * Given that we may find stored 206s that are not keeping sparse data, we detect that case and handle it. * Now we may end up reading 206 from disk (and the net) and having to change the returned status to be 200 (for regular requests). * We avoid performing re-validations for each piece of stored data. Instead, we consider the whole entry to be revalidated once, and read from the cache without asking the server (as far as we can). * When processing the received headers we now consider receiving 200 and 416 (instead of 206/304) and we handle inconsistencies in the range returned by the server (from what we expect). We also handle receiving 206 when we don't expect it. BUG=12258 TEST=unittests Review URL: http://codereview.chromium.org/164304 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23123 0039d316-1c4b-4281-b951-d872f2087c98
* Http Cache: Deactivate entries without having the key of thervargas@google.com2009-08-073-6/+77
| | | | | | | | | | | | | | | entry to delete. The disk cache may fail to provide the key for a given entry (if there is a disk error, for instance), so we fall back to enumerate the active entries to delete this one. BUG=9952 TEST=unittest Review URL: http://codereview.chromium.org/165089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22701 0039d316-1c4b-4281-b951-d872f2087c98
* Update a comment.ericroman@google.com2009-08-041-1/+2
| | | | | | | | | | (This change was supposed to be part of <http://codereview.chromium.org/159463> but I got confused on which client owned the CL, and ended up updating the wrong one!). TBR=darin Review URL: http://codereview.chromium.org/160567 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22432 0039d316-1c4b-4281-b951-d872f2087c98
* Split out HttpUtil::SpecForRequest() into a more generic function of net_util.h.eroman@chromium.org2009-08-041-5/+2
| | | | | | | | | | This was a TODO, since that function is useful outside of HTTP. In the process, I uncovered some test cases in proxy_service that are passing in invalid URLs (by virtue of the extra DCHECK). This doesn't make much sense to me to support that, so I have changed them. Review URL: http://codereview.chromium.org/160558 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22359 0039d316-1c4b-4281-b951-d872f2087c98
* Support user-constructed conditional requests to HttpCache updating the cache.ericroman@google.com2009-08-032-50/+425
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are requests where conditionalization is specified through |extra_headers| rather than through a load flag (LOAD_VALIDATE_CACHE). The previous behavior was that such requests would disable caching. So any more up-to-date response discovered by an "if-modifed-since" request was never written back to the cache. BUG=http://crbug.com/16199 TEST=HttpCache unit tes Overview for how these requests are dealt with: (1) When starting the request, check for an "if-modified-since" or "if-none-match" request header. If one is found: * let it be called |external_validation_header| * continue to (2). (2) Parse |external_validation_header| to obtain either an |etag| or a |last_modified_date|. (3) Read the HTTP cache entry for URL. Call the result |entry|. (4) Now that we have read the cache entry, check if |external_validation_header| defines a validation request for |entry|. We cannot assume that |external_validation_header| makes sense in the context of |entry|, since the headers are free-form text originating from WebCore, and could be unrelated to the cache entry. If any of the following are true, then |external_validation_header| does NOT define a validation request for |entry|: * |entry| is undefined (was not found in step (3)). * |entry| has no "etag" or "last-modified" headers. * |entry| has a "last-modified" header, but it is not equal to |external_validation_header|'s |last_modified_date|. * |entry| has an "etag" header, but it does not match |external_validation_header|'s |etag|. Let |is_validation_request| be the result of this test. If |is_validation_request|, then we can safely use the response from the subsequent network response to update |entry|. If |!is_validation_request|, then we disable caching before proceeding on to the network request. NOTE: we turned off writing back to cache in this case, since a 304 response received from the server doesn't tell us anything about our cache entry. And moreover trying to handle a non-304 response would be awkward to deal with since the transaction would have to enter a "maybe will write to cache" state. (5) Start the network transaction. (6) On completion of the network transaction: if we are doing an internal OR an external validation request: if |http_code == 304| update |entry|'s response headers with the new response headers. if it was externally conditionalized: return the received response (304) to the user else if it was internally conditionalized: return the cached response (200) to the user Review URL: http://codereview.chromium.org/159463 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22328 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: dump the transaction and active entry keyrvargas@google.com2009-07-291-2/+11
| | | | | | | | | | | to check that they are not the same. BUG=9952 TEST=none Review URL: http://codereview.chromium.org/159594 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21974 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: revert dumping the transaction key.rvargas@google.com2009-07-291-9/+2
| | | | | | | | | | TBR=darin TEST=none BUG=9952 Review URL: http://codereview.chromium.org/159591 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21967 0039d316-1c4b-4281-b951-d872f2087c98
* Http cache: dump the transaction and active entry keyrvargas@google.com2009-07-291-2/+9
| | | | | | | | | | | | to check that they are not the same. BUG=9952 TEST=none Review URL: http://codereview.chromium.org/159563 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21964 0039d316-1c4b-4281-b951-d872f2087c98
* Store the url into a stack variable for the CHECK when connection_group.empty().willchan@chromium.org2009-07-291-3/+11
| | | | | | | | BUG=http://crbug.com/15374. Review URL: http://codereview.chromium.org/160315 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21942 0039d316-1c4b-4281-b951-d872f2087c98
* 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