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_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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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, |
67 const base::FilePath& file_path, | 67 const base::FilePath& file_path, |
68 uint64 range_offset, | 68 uint64 range_offset, |
69 uint64 range_length, | 69 uint64 range_length, |
70 scoped_refptr<base::TaskRunner> file_task_runner); | 70 scoped_refptr<base::TaskRunner> file_task_runner); |
| 71 void SetUploadStreamFactory( |
| 72 const std::string& upload_content_type, |
| 73 const URLFetcher::CreateUploadStreamCallback& callback); |
71 void SetChunkedUpload(const std::string& upload_content_type); | 74 void SetChunkedUpload(const std::string& upload_content_type); |
72 // Adds a block of data to be uploaded in a POST body. This can only be | 75 // Adds a block of data to be uploaded in a POST body. This can only be |
73 // called after Start(). | 76 // called after Start(). |
74 void AppendChunkToUpload(const std::string& data, bool is_last_chunk); | 77 void AppendChunkToUpload(const std::string& data, bool is_last_chunk); |
75 // |flags| are flags to apply to the load operation--these should be | 78 // |flags| are flags to apply to the load operation--these should be |
76 // one or more of the LOAD_* flags defined in net/base/load_flags.h. | 79 // one or more of the LOAD_* flags defined in net/base/load_flags.h. |
77 void SetLoadFlags(int load_flags); | 80 void SetLoadFlags(int load_flags); |
78 int GetLoadFlags() const; | 81 int GetLoadFlags() const; |
79 void SetReferrer(const std::string& referrer); | 82 void SetReferrer(const std::string& referrer); |
80 void SetReferrerPolicy(URLRequest::ReferrerPolicy referrer_policy); | 83 void SetReferrerPolicy(URLRequest::ReferrerPolicy referrer_policy); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 // Read response bytes from the request. | 199 // Read response bytes from the request. |
197 void ReadResponse(); | 200 void ReadResponse(); |
198 | 201 |
199 // Notify Delegate about the progress of upload/download. | 202 // Notify Delegate about the progress of upload/download. |
200 void InformDelegateUploadProgress(); | 203 void InformDelegateUploadProgress(); |
201 void InformDelegateUploadProgressInDelegateThread(int64 current, int64 total); | 204 void InformDelegateUploadProgressInDelegateThread(int64 current, int64 total); |
202 void InformDelegateDownloadProgress(); | 205 void InformDelegateDownloadProgress(); |
203 void InformDelegateDownloadProgressInDelegateThread(int64 current, | 206 void InformDelegateDownloadProgressInDelegateThread(int64 current, |
204 int64 total); | 207 int64 total); |
205 | 208 |
| 209 // Check if any upload data is set or not. |
| 210 void AssertHasNoUploadData() const; |
| 211 |
206 URLFetcher* fetcher_; // Corresponding fetcher object | 212 URLFetcher* fetcher_; // Corresponding fetcher object |
207 GURL original_url_; // The URL we were asked to fetch | 213 GURL original_url_; // The URL we were asked to fetch |
208 GURL url_; // The URL we eventually wound up at | 214 GURL url_; // The URL we eventually wound up at |
209 URLFetcher::RequestType request_type_; // What type of request is this? | 215 URLFetcher::RequestType request_type_; // What type of request is this? |
210 URLRequestStatus status_; // Status of the request | 216 URLRequestStatus status_; // Status of the request |
211 URLFetcherDelegate* delegate_; // Object to notify on completion | 217 URLFetcherDelegate* delegate_; // Object to notify on completion |
212 // Task runner for the creating thread. Used to interact with the delegate. | 218 // Task runner for the creating thread. Used to interact with the delegate. |
213 scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner_; | 219 scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner_; |
214 // Task runner for network operations. | 220 // Task runner for network operations. |
215 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; | 221 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; |
(...skipping 16 matching lines...) Expand all Loading... |
232 bool was_fetched_via_proxy_; | 238 bool was_fetched_via_proxy_; |
233 HostPortPair socket_address_; | 239 HostPortPair socket_address_; |
234 | 240 |
235 bool upload_content_set_; // SetUploadData has been called | 241 bool upload_content_set_; // SetUploadData has been called |
236 std::string upload_content_; // HTTP POST payload | 242 std::string upload_content_; // HTTP POST payload |
237 base::FilePath upload_file_path_; // Path to file containing POST payload | 243 base::FilePath upload_file_path_; // Path to file containing POST payload |
238 uint64 upload_range_offset_; // Offset from the beginning of the file | 244 uint64 upload_range_offset_; // Offset from the beginning of the file |
239 // to be uploaded. | 245 // to be uploaded. |
240 uint64 upload_range_length_; // The length of the part of file to be | 246 uint64 upload_range_length_; // The length of the part of file to be |
241 // uploaded. | 247 // uploaded. |
| 248 URLFetcher::CreateUploadStreamCallback |
| 249 upload_stream_factory_; // Callback to create HTTP POST payload. |
242 std::string upload_content_type_; // MIME type of POST payload | 250 std::string upload_content_type_; // MIME type of POST payload |
243 std::string referrer_; // HTTP Referer header value and policy | 251 std::string referrer_; // HTTP Referer header value and policy |
244 URLRequest::ReferrerPolicy referrer_policy_; | 252 URLRequest::ReferrerPolicy referrer_policy_; |
245 bool is_chunked_upload_; // True if using chunked transfer encoding | 253 bool is_chunked_upload_; // True if using chunked transfer encoding |
246 | 254 |
247 // Used to determine how long to wait before making a request or doing a | 255 // Used to determine how long to wait before making a request or doing a |
248 // retry. | 256 // retry. |
249 // | 257 // |
250 // Both of them can only be accessed on the IO thread. | 258 // Both of them can only be accessed on the IO thread. |
251 // | 259 // |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 base::debug::StackTrace stack_trace_; | 322 base::debug::StackTrace stack_trace_; |
315 | 323 |
316 static base::LazyInstance<Registry> g_registry; | 324 static base::LazyInstance<Registry> g_registry; |
317 | 325 |
318 DISALLOW_COPY_AND_ASSIGN(URLFetcherCore); | 326 DISALLOW_COPY_AND_ASSIGN(URLFetcherCore); |
319 }; | 327 }; |
320 | 328 |
321 } // namespace net | 329 } // namespace net |
322 | 330 |
323 #endif // NET_URL_REQUEST_URL_FETCHER_CORE_H_ | 331 #endif // NET_URL_REQUEST_URL_FETCHER_CORE_H_ |
OLD | NEW |