Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: net/url_request/url_fetcher_core.h

Issue 495523003: Change SDCHDictionaryFetcher to use URLRequest instead of URLFetcher. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed try job failures. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/net.gypi ('k') | net/url_request/url_fetcher_core.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_FETCHER_CORE_H_ 5 #ifndef NET_URL_REQUEST_URL_FETCHER_CORE_H_
6 #define NET_URL_REQUEST_URL_FETCHER_CORE_H_ 6 #define NET_URL_REQUEST_URL_FETCHER_CORE_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 27 matching lines...) Expand all
38 38
39 class URLFetcherCore 39 class URLFetcherCore
40 : public base::RefCountedThreadSafe<URLFetcherCore>, 40 : public base::RefCountedThreadSafe<URLFetcherCore>,
41 public URLRequest::Delegate { 41 public URLRequest::Delegate {
42 public: 42 public:
43 URLFetcherCore(URLFetcher* fetcher, 43 URLFetcherCore(URLFetcher* fetcher,
44 const GURL& original_url, 44 const GURL& original_url,
45 URLFetcher::RequestType request_type, 45 URLFetcher::RequestType request_type,
46 URLFetcherDelegate* d); 46 URLFetcherDelegate* d);
47 47
48 // Starts the load. It's important that this not happen in the constructor 48 // Starts the load. It's important that this not happen in the constructor
49 // because it causes the IO thread to begin AddRef()ing and Release()ing 49 // because it causes the IO thread to begin AddRef()ing and Release()ing
50 // us. If our caller hasn't had time to fully construct us and take a 50 // us. If our caller hasn't had time to fully construct us and take a
51 // reference, the IO thread could interrupt things, run a task, Release() 51 // reference, the IO thread could interrupt things, run a task, Release()
52 // us, and destroy us, leaving the caller with an already-destroyed object 52 // us, and destroy us, leaving the caller with an already-destroyed object
53 // when construction finishes. 53 // when construction finishes.
54 void Start(); 54 void Start();
55 55
56 // Stops any in-progress load and ensures no callback will happen. It is 56 // Stops any in-progress load and ensures no callback will happen. It is
57 // safe to call this multiple times. 57 // safe to call this multiple times.
58 void Stop(); 58 void Stop();
59 59
60 // URLFetcher-like functions. 60 // URLFetcher-like functions.
61 61
62 // For POST requests, set |content_type| to the MIME type of the 62 // For POST requests, set |content_type| to the MIME type of the
63 // content and set |content| to the data to upload. 63 // content and set |content| to the data to upload.
64 void SetUploadData(const std::string& upload_content_type, 64 void SetUploadData(const std::string& upload_content_type,
65 const std::string& upload_content); 65 const std::string& upload_content);
66 void SetUploadFilePath(const std::string& upload_content_type, 66 void SetUploadFilePath(const std::string& upload_content_type,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 scoped_ptr<URLFetcherResponseWriter> response_writer); 104 scoped_ptr<URLFetcherResponseWriter> response_writer);
105 HttpResponseHeaders* GetResponseHeaders() const; 105 HttpResponseHeaders* GetResponseHeaders() const;
106 HostPortPair GetSocketAddress() const; 106 HostPortPair GetSocketAddress() const;
107 bool WasFetchedViaProxy() const; 107 bool WasFetchedViaProxy() const;
108 const GURL& GetOriginalURL() const; 108 const GURL& GetOriginalURL() const;
109 const GURL& GetURL() const; 109 const GURL& GetURL() const;
110 const URLRequestStatus& GetStatus() const; 110 const URLRequestStatus& GetStatus() const;
111 int GetResponseCode() const; 111 int GetResponseCode() const;
112 const ResponseCookies& GetCookies() const; 112 const ResponseCookies& GetCookies() const;
113 // Reports that the received content was malformed (i.e. failed parsing 113 // Reports that the received content was malformed (i.e. failed parsing
114 // or validation). This makes the throttling logic that does exponential 114 // or validation). This makes the throttling logic that does exponential
115 // back-off when servers are having problems treat the current request as 115 // back-off when servers are having problems treat the current request as
116 // a failure. Your call to this method will be ignored if your request is 116 // a failure. Your call to this method will be ignored if your request is
117 // already considered a failure based on the HTTP response code or response 117 // already considered a failure based on the HTTP response code or response
118 // headers. 118 // headers.
119 void ReceivedContentWasMalformed(); 119 void ReceivedContentWasMalformed();
120 bool GetResponseAsString(std::string* out_response_string) const; 120 bool GetResponseAsString(std::string* out_response_string) const;
121 bool GetResponseAsFilePath(bool take_ownership, 121 bool GetResponseAsFilePath(bool take_ownership,
122 base::FilePath* out_response_path); 122 base::FilePath* out_response_path);
123 123
124 // Overridden from URLRequest::Delegate: 124 // Overridden from URLRequest::Delegate:
125 virtual void OnReceivedRedirect(URLRequest* request, 125 virtual void OnReceivedRedirect(URLRequest* request,
126 const RedirectInfo& redirect_info, 126 const RedirectInfo& redirect_info,
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 std::string upload_content_type_; // MIME type of POST payload 244 std::string upload_content_type_; // MIME type of POST payload
245 std::string referrer_; // HTTP Referer header value and policy 245 std::string referrer_; // HTTP Referer header value and policy
246 URLRequest::ReferrerPolicy referrer_policy_; 246 URLRequest::ReferrerPolicy referrer_policy_;
247 bool is_chunked_upload_; // True if using chunked transfer encoding 247 bool is_chunked_upload_; // True if using chunked transfer encoding
248 248
249 // Used to determine how long to wait before making a request or doing a 249 // Used to determine how long to wait before making a request or doing a
250 // retry. 250 // retry.
251 // 251 //
252 // Both of them can only be accessed on the IO thread. 252 // Both of them can only be accessed on the IO thread.
253 // 253 //
254 // We need not only the throttler entry for |original_URL|, but also 254 // To determine the proper backoff timing, throttler entries for
255 // the one for |url|. For example, consider the case that URL A 255 // both |original_URL| and |url| are needed. For example, consider
256 // redirects to URL B, for which the server returns a 500 256 // the case that URL A redirects to URL B, for which the server
257 // response. In this case, the exponential back-off release time of 257 // returns a 500 response. In this case, the exponential back-off
258 // URL A won't increase. If we retry without considering the 258 // release time of URL A won't increase. If only the backoff
259 // back-off constraint of URL B, we may send out too many requests 259 // constraints for URL A are considered, too many requests for URL A
260 // for URL A in a short period of time. 260 // may be sent in a short period of time.
261 // 261 //
262 // Both of these will be NULL if 262 // Both of these will be NULL if
263 // URLRequestContext::throttler_manager() is NULL. 263 // URLRequestContext::throttler_manager() is NULL.
264 scoped_refptr<URLRequestThrottlerEntryInterface> 264 scoped_refptr<URLRequestThrottlerEntryInterface>
265 original_url_throttler_entry_; 265 original_url_throttler_entry_;
266 scoped_refptr<URLRequestThrottlerEntryInterface> url_throttler_entry_; 266 scoped_refptr<URLRequestThrottlerEntryInterface> url_throttler_entry_;
267 267
268 // True if the URLFetcher has been cancelled. 268 // True if the URLFetcher has been cancelled.
269 bool was_cancelled_; 269 bool was_cancelled_;
270 270
271 // Writer object to write response to the destination like file and string. 271 // Writer object to write response to the destination like file and string.
272 scoped_ptr<URLFetcherResponseWriter> response_writer_; 272 scoped_ptr<URLFetcherResponseWriter> response_writer_;
273 273
274 // By default any server-initiated redirects are automatically followed. If 274 // By default any server-initiated redirects are automatically followed. If
275 // this flag is set to true, however, a redirect will halt the fetch and call 275 // this flag is set to true, however, a redirect will halt the fetch and call
276 // back to to the delegate immediately. 276 // back to to the delegate immediately.
277 bool stop_on_redirect_; 277 bool stop_on_redirect_;
278 // True when we're actually stopped due to a redirect halted by the above. We 278 // True when we're actually stopped due to a redirect halted by the above. We
279 // use this to ensure that |url_| is set to the redirect destination rather 279 // use this to ensure that |url_| is set to the redirect destination rather
280 // than the originally-fetched URL. 280 // than the originally-fetched URL.
281 bool stopped_on_redirect_; 281 bool stopped_on_redirect_;
282 282
283 // If |automatically_retry_on_5xx_| is false, 5xx responses will be 283 // If |automatically_retry_on_5xx_| is false, 5xx responses will be
284 // propagated to the observer, if it is true URLFetcher will automatically 284 // propagated to the observer, if it is true URLFetcher will automatically
285 // re-execute the request, after the back-off delay has expired. 285 // re-execute the request, after the back-off delay has expired.
286 // true by default. 286 // true by default.
287 bool automatically_retry_on_5xx_; 287 bool automatically_retry_on_5xx_;
288 // |num_retries_on_5xx_| indicates how many times we've failed to successfully 288 // |num_retries_on_5xx_| indicates how many times we've failed to successfully
289 // fetch this URL due to 5xx responses. Once this value exceeds the maximum 289 // fetch this URL due to 5xx responses. Once this value exceeds the maximum
290 // number of retries specified by the owner URLFetcher instance, 290 // number of retries specified by the owner URLFetcher instance,
291 // we'll give up. 291 // we'll give up.
292 int num_retries_on_5xx_; 292 int num_retries_on_5xx_;
293 // Maximum retries allowed when 5xx responses are received. 293 // Maximum retries allowed when 5xx responses are received.
294 int max_retries_on_5xx_; 294 int max_retries_on_5xx_;
295 // Back-off time delay. 0 by default. 295 // Back-off time delay. 0 by default.
296 base::TimeDelta backoff_delay_; 296 base::TimeDelta backoff_delay_;
297 297
298 // The number of retries that have been attempted due to ERR_NETWORK_CHANGED. 298 // The number of retries that have been attempted due to ERR_NETWORK_CHANGED.
299 int num_retries_on_network_changes_; 299 int num_retries_on_network_changes_;
(...skipping 16 matching lines...) Expand all
316 base::debug::StackTrace stack_trace_; 316 base::debug::StackTrace stack_trace_;
317 317
318 static base::LazyInstance<Registry> g_registry; 318 static base::LazyInstance<Registry> g_registry;
319 319
320 DISALLOW_COPY_AND_ASSIGN(URLFetcherCore); 320 DISALLOW_COPY_AND_ASSIGN(URLFetcherCore);
321 }; 321 };
322 322
323 } // namespace net 323 } // namespace net
324 324
325 #endif // NET_URL_REQUEST_URL_FETCHER_CORE_H_ 325 #endif // NET_URL_REQUEST_URL_FETCHER_CORE_H_
OLDNEW
« no previous file with comments | « net/net.gypi ('k') | net/url_request/url_fetcher_core.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698