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

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

Issue 10872044: Retry failed network requests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix bug Created 8 years, 4 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/http/http_transaction_unittest.cc ('k') | net/url_request/url_request_http_job.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_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
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 void ProcessPublicKeyPinsHeader(); 57 void ProcessPublicKeyPinsHeader();
58 58
59 // |result| should be net::OK, or the request is canceled. 59 // |result| should be net::OK, or the request is canceled.
60 void OnHeadersReceivedCallback(int result); 60 void OnHeadersReceivedCallback(int result);
61 void OnStartCompleted(int result); 61 void OnStartCompleted(int result);
62 void OnReadCompleted(int result); 62 void OnReadCompleted(int result);
63 void NotifyBeforeSendHeadersCallback(int result); 63 void NotifyBeforeSendHeadersCallback(int result);
64 64
65 void RestartTransactionWithAuth(const AuthCredentials& credentials); 65 void RestartTransactionWithAuth(const AuthCredentials& credentials);
66 66
67 void RetryRequestOnError(int result);
68
69 // Returns true if this request should be retried after receiving the given
70 // error as a result of a call to Start.
71 bool ShouldRetryRequest(int result) const;
72
67 // Overridden from URLRequestJob: 73 // Overridden from URLRequestJob:
68 virtual void SetUpload(UploadData* upload) OVERRIDE; 74 virtual void SetUpload(UploadData* upload) OVERRIDE;
69 virtual void SetExtraRequestHeaders( 75 virtual void SetExtraRequestHeaders(
70 const HttpRequestHeaders& headers) OVERRIDE; 76 const HttpRequestHeaders& headers) OVERRIDE;
71 virtual void Start() OVERRIDE; 77 virtual void Start() OVERRIDE;
72 virtual void Kill() OVERRIDE; 78 virtual void Kill() OVERRIDE;
73 virtual LoadState GetLoadState() const OVERRIDE; 79 virtual LoadState GetLoadState() const OVERRIDE;
74 virtual uint64 GetUploadProgress() const OVERRIDE; 80 virtual uint64 GetUploadProgress() const OVERRIDE;
75 virtual bool GetMimeType(std::string* mime_type) const OVERRIDE; 81 virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
76 virtual bool GetCharset(std::string* charset) OVERRIDE; 82 virtual bool GetCharset(std::string* charset) OVERRIDE;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 typedef base::RefCountedData<bool> SharedBoolean; 148 typedef base::RefCountedData<bool> SharedBoolean;
143 149
144 class HttpFilterContext; 150 class HttpFilterContext;
145 class HttpTransactionDelegateImpl; 151 class HttpTransactionDelegateImpl;
146 152
147 virtual ~URLRequestHttpJob(); 153 virtual ~URLRequestHttpJob();
148 154
149 void RecordTimer(); 155 void RecordTimer();
150 void ResetTimer(); 156 void ResetTimer();
151 157
158 void RecordRetryResult(int result) const;
159
152 virtual void UpdatePacketReadTimes() OVERRIDE; 160 virtual void UpdatePacketReadTimes() OVERRIDE;
153 void RecordPacketStats(FilterContext::StatisticSelector statistic) const; 161 void RecordPacketStats(FilterContext::StatisticSelector statistic) const;
154 162
155 void RecordCompressionHistograms(); 163 void RecordCompressionHistograms();
156 bool IsCompressibleContent() const; 164 bool IsCompressibleContent() const;
157 165
158 // Starts the transaction if extensions using the webrequest API do not 166 // Starts the transaction if extensions using the webrequest API do not
159 // object. 167 // object.
160 void StartTransaction(); 168 void StartTransaction();
161 void StartTransactionInternal(); 169 void StartTransactionInternal();
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 241
234 // Flag used to verify that |this| is not deleted while we are awaiting 242 // Flag used to verify that |this| is not deleted while we are awaiting
235 // a callback from the NetworkDelegate. Used as a fail-fast mechanism. 243 // a callback from the NetworkDelegate. Used as a fail-fast mechanism.
236 // True if we are waiting a callback and 244 // True if we are waiting a callback and
237 // NetworkDelegate::NotifyURLRequestDestroyed has not been called, yet, 245 // NetworkDelegate::NotifyURLRequestDestroyed has not been called, yet,
238 // to inform the NetworkDelegate that it may not call back. 246 // to inform the NetworkDelegate that it may not call back.
239 bool awaiting_callback_; 247 bool awaiting_callback_;
240 248
241 scoped_ptr<HttpTransactionDelegateImpl> http_transaction_delegate_; 249 scoped_ptr<HttpTransactionDelegateImpl> http_transaction_delegate_;
242 250
251 // True if the request job has automatically retried the request as a result
252 // of an error.
253 bool has_retried_;
254
255 // The network error code error that |this| was automatically retried as a
256 // result of, if any. If this request has not been retried, must be 0.
257 // Reset once it's been used to log histograms.
258 int error_before_retry_;
259
243 DISALLOW_COPY_AND_ASSIGN(URLRequestHttpJob); 260 DISALLOW_COPY_AND_ASSIGN(URLRequestHttpJob);
244 }; 261 };
245 262
246 } // namespace net 263 } // namespace net
247 264
248 #endif // NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_ 265 #endif // NET_URL_REQUEST_URL_REQUEST_HTTP_JOB_H_
OLDNEW
« no previous file with comments | « net/http/http_transaction_unittest.cc ('k') | net/url_request/url_request_http_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698