| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ | 5 #ifndef NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ | 
| 6 #define NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ | 6 #define NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ | 
| 7 | 7 | 
| 8 #include <string> | 8 #include <string> | 
| 9 #include <vector> | 9 #include <vector> | 
| 10 | 10 | 
| 11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" | 
| 12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" | 
| 13 #include "base/memory/weak_ptr.h" | 13 #include "base/memory/weak_ptr.h" | 
| 14 #include "base/time/time.h" | 14 #include "base/time/time.h" | 
| 15 #include "net/base/auth.h" | 15 #include "net/base/auth.h" | 
| 16 #include "net/base/completion_callback.h" | 16 #include "net/base/completion_callback.h" | 
| 17 #include "net/base/net_export.h" | 17 #include "net/base/net_export.h" | 
|  | 18 #include "net/base/sdch_manager.h" | 
| 18 #include "net/cookies/cookie_store.h" | 19 #include "net/cookies/cookie_store.h" | 
| 19 #include "net/filter/filter.h" | 20 #include "net/filter/filter.h" | 
| 20 #include "net/http/http_request_info.h" | 21 #include "net/http/http_request_info.h" | 
| 21 #include "net/url_request/url_request_job.h" | 22 #include "net/url_request/url_request_job.h" | 
| 22 #include "net/url_request/url_request_throttler_entry_interface.h" | 23 #include "net/url_request/url_request_throttler_entry_interface.h" | 
| 23 | 24 | 
| 24 namespace net { | 25 namespace net { | 
| 25 | 26 | 
| 26 class HttpRequestHeaders; | 27 class HttpRequestHeaders; | 
| 27 class HttpResponseHeaders; | 28 class HttpResponseHeaders; | 
| 28 class HttpResponseInfo; | 29 class HttpResponseInfo; | 
| 29 class HttpTransaction; | 30 class HttpTransaction; | 
| 30 class HttpUserAgentSettings; | 31 class HttpUserAgentSettings; | 
| 31 class ProxyInfo; | 32 class ProxyInfo; | 
| 32 class UploadDataStream; | 33 class UploadDataStream; | 
| 33 class URLRequestContext; | 34 class URLRequestContext; | 
| 34 | 35 | 
| 35 // A URLRequestJob subclass that is built on top of HttpTransaction.  It | 36 // A URLRequestJob subclass that is built on top of HttpTransaction. It | 
| 36 // provides an implementation for both HTTP and HTTPS. | 37 // provides an implementation for both HTTP and HTTPS. | 
| 37 class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob { | 38 class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob { | 
| 38  public: | 39  public: | 
| 39   static URLRequestJob* Factory(URLRequest* request, | 40   static URLRequestJob* Factory(URLRequest* request, | 
| 40                                 NetworkDelegate* network_delegate, | 41                                 NetworkDelegate* network_delegate, | 
| 41                                 const std::string& scheme); | 42                                 const std::string& scheme); | 
| 42 | 43 | 
| 43  protected: | 44  protected: | 
| 44   URLRequestHttpJob(URLRequest* request, | 45   URLRequestHttpJob(URLRequest* request, | 
| 45                     NetworkDelegate* network_delegate, | 46                     NetworkDelegate* network_delegate, | 
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 187   AuthCredentials auth_credentials_; | 188   AuthCredentials auth_credentials_; | 
| 188 | 189 | 
| 189   CompletionCallback start_callback_; | 190   CompletionCallback start_callback_; | 
| 190   CompletionCallback notify_before_headers_sent_callback_; | 191   CompletionCallback notify_before_headers_sent_callback_; | 
| 191 | 192 | 
| 192   bool read_in_progress_; | 193   bool read_in_progress_; | 
| 193 | 194 | 
| 194   scoped_ptr<HttpTransaction> transaction_; | 195   scoped_ptr<HttpTransaction> transaction_; | 
| 195 | 196 | 
| 196   // This is used to supervise traffic and enforce exponential | 197   // This is used to supervise traffic and enforce exponential | 
| 197   // back-off.  May be NULL. | 198   // back-off. May be NULL. | 
| 198   scoped_refptr<URLRequestThrottlerEntryInterface> throttling_entry_; | 199   scoped_refptr<URLRequestThrottlerEntryInterface> throttling_entry_; | 
| 199 | 200 | 
| 200   // Indicated if an SDCH dictionary was advertised, and hence an SDCH | 201   // A handle to the SDCH dictionaries that were advertised in this request. | 
| 201   // compressed response is expected.  We use this to help detect (accidental?) | 202   // May be null. | 
| 202   // proxy corruption of a response, which sometimes marks SDCH content as | 203   scoped_ptr<SdchManager::DictionarySet> dictionaries_advertised_; | 
| 203   // having no content encoding <oops>. |  | 
| 204   bool sdch_dictionary_advertised_; |  | 
| 205 | 204 | 
| 206   // For SDCH latency experiments, when we are able to do SDCH, we may enable | 205   // For SDCH latency experiments, when we are able to do SDCH, we may enable | 
| 207   // either an SDCH latency test xor a pass through test.  The following bools | 206   // either an SDCH latency test xor a pass through test. The following bools | 
| 208   // indicate what we decided on for this instance. | 207   // indicate what we decided on for this instance. | 
| 209   bool sdch_test_activated_;  // Advertising a dictionary for sdch. | 208   bool sdch_test_activated_;  // Advertising a dictionary for sdch. | 
| 210   bool sdch_test_control_;    // Not even accepting-content sdch. | 209   bool sdch_test_control_;    // Not even accepting-content sdch. | 
| 211 | 210 | 
| 212   // For recording of stats, we need to remember if this is cached content. | 211   // For recording of stats, we need to remember if this is cached content. | 
| 213   bool is_cached_content_; | 212   bool is_cached_content_; | 
| 214 | 213 | 
| 215   base::Time request_creation_time_; | 214   base::Time request_creation_time_; | 
| 216 | 215 | 
| 217   // Data used for statistics gathering. This data is only used for histograms | 216   // Data used for statistics gathering. This data is only used for histograms | 
| 218   // and is not required. It is only gathered if packet_timing_enabled_ == true. | 217   // and is not required. It is only gathered if packet_timing_enabled_ == true. | 
| 219   // | 218   // | 
| 220   // TODO(jar): improve the quality of the gathered info by gathering most times | 219   // TODO(jar): improve the quality of the gathered info by gathering most times | 
| 221   // at a lower point in the network stack, assuring we have actual packet | 220   // at a lower point in the network stack, assuring we have actual packet | 
| 222   // boundaries, rather than approximations.  Also note that input byte count | 221   // boundaries, rather than approximations. Also note that input byte count | 
| 223   // as gathered here is post-SSL, and post-cache-fetch, and does not reflect | 222   // as gathered here is post-SSL, and post-cache-fetch, and does not reflect | 
| 224   // true packet arrival times in such cases. | 223   // true packet arrival times in such cases. | 
| 225 | 224 | 
| 226   // Enable recording of packet arrival times for histogramming. | 225   // Enable recording of packet arrival times for histogramming. | 
| 227   bool packet_timing_enabled_; | 226   bool packet_timing_enabled_; | 
| 228   bool done_;  // True when we are done doing work. | 227   bool done_;  // True when we are done doing work. | 
| 229 | 228 | 
| 230   // The number of bytes that have been accounted for in packets (where some of | 229   // The number of bytes that have been accounted for in packets (where some of | 
| 231   // those packets may possibly have had their time of arrival recorded). | 230   // those packets may possibly have had their time of arrival recorded). | 
| 232   int64 bytes_observed_in_packets_; | 231   int64 bytes_observed_in_packets_; | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 269   const HttpUserAgentSettings* http_user_agent_settings_; | 268   const HttpUserAgentSettings* http_user_agent_settings_; | 
| 270 | 269 | 
| 271   base::WeakPtrFactory<URLRequestHttpJob> weak_factory_; | 270   base::WeakPtrFactory<URLRequestHttpJob> weak_factory_; | 
| 272 | 271 | 
| 273   DISALLOW_COPY_AND_ASSIGN(URLRequestHttpJob); | 272   DISALLOW_COPY_AND_ASSIGN(URLRequestHttpJob); | 
| 274 }; | 273 }; | 
| 275 | 274 | 
| 276 }  // namespace net | 275 }  // namespace net | 
| 277 | 276 | 
| 278 #endif  // NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ | 277 #endif  // NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ | 
| OLD | NEW | 
|---|