| Index: net/url_request/url_request.h
|
| diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
|
| index 73e02d99c8710171d0c83c780eafabdcd1097645..86e5a0361ab53b0c0694bd71d99bd09edb8a42c0 100644
|
| --- a/net/url_request/url_request.h
|
| +++ b/net/url_request/url_request.h
|
| @@ -196,20 +196,22 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| bool fatal);
|
|
|
| // After calling Start(), the delegate will receive an OnResponseStarted
|
| - // callback when the request has completed. If an error occurred, the
|
| - // request->status() will be set. On success, all redirects have been
|
| + // callback when the request has completed. |net_error| will be set to OK
|
| + // or an actual net error. On success, all redirects have been
|
| // followed and the final response is beginning to arrive. At this point,
|
| // meta data about the response is available, including for example HTTP
|
| // response headers if this is a request for a HTTP resource.
|
| - virtual void OnResponseStarted(URLRequest* request) = 0;
|
| + virtual void OnResponseStarted(URLRequest* request, int net_error);
|
| + // Deprecated.
|
| + // TODO(maksims): Remove this;
|
| + virtual void OnResponseStarted(URLRequest* request);
|
|
|
| // Called when the a Read of the response body is completed after an
|
| // IO_PENDING status from a Read() call.
|
| // The data read is filled into the buffer which the caller passed
|
| // to Read() previously.
|
| //
|
| - // If an error occurred, request->status() will contain the error,
|
| - // and bytes read will be -1.
|
| + // If an error occurred, |bytes_read| will be set to the error.
|
| virtual void OnReadCompleted(URLRequest* request, int bytes_read) = 0;
|
|
|
| protected:
|
| @@ -524,9 +526,6 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| // URL but has not yet initiated the new request.
|
| bool is_redirecting() const { return is_redirecting_; }
|
|
|
| - // Returns the error status of the request.
|
| - const URLRequestStatus& status() const { return status_; }
|
| -
|
| // Returns a globally unique identifier for this request.
|
| uint64_t identifier() const { return identifier_; }
|
|
|
| @@ -540,12 +539,14 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| // no effect once the response has completed. It is guaranteed that no
|
| // methods of the delegate will be called after the request has been
|
| // cancelled, except that this may call the delegate's OnReadCompleted()
|
| - // during the call to Cancel itself.
|
| - void Cancel();
|
| + // during the call to Cancel itself. Returns |ERR_ABORTED| or other net error
|
| + // if there was one.
|
| + int Cancel();
|
|
|
| - // Cancels the request and sets the error to |error| (see net_error_list.h
|
| - // for values).
|
| - void CancelWithError(int error);
|
| + // Cancels the request and sets the error to |error|, unless the request
|
| + // already failed with another error code (see net_error_list.h). Returns
|
| + // final network error code.
|
| + int CancelWithError(int error);
|
|
|
| // Cancels the request and sets the error to |error| (see net_error_list.h
|
| // for values) and attaches |ssl_info| as the SSLInfo for that request. This
|
| @@ -553,28 +554,23 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| // request.
|
| void CancelWithSSLError(int error, const SSLInfo& ssl_info);
|
|
|
| - // Read initiates an asynchronous read from the response, and must only
|
| - // be called after the OnResponseStarted callback is received with a
|
| - // successful status.
|
| - // If data is available, Read will return true, and the data and length will
|
| - // be returned immediately. If data is not available, Read returns false,
|
| - // and an asynchronous Read is initiated. The Read is finished when
|
| - // the caller receives the OnReadComplete callback. Unless the request was
|
| - // cancelled, OnReadComplete will always be called, even if the read failed.
|
| + // Read initiates an asynchronous read from the response, and must only be
|
| + // called after the OnResponseStarted callback is received with a net::OK. If
|
| + // data is available, length and the data will be returned immediately. If the
|
| + // request has failed, an error code will be returned. If data is not yet
|
| + // available, Read returns net::ERR_IO_PENDING, and the Delegate's
|
| + // OnReadComplete method will be called asynchronously with the result of the
|
| + // read, unless the URLRequest is canceled.
|
| //
|
| - // The buf parameter is a buffer to receive the data. If the operation
|
| + // The |buf| parameter is a buffer to receive the data. If the operation
|
| // completes asynchronously, the implementation will reference the buffer
|
| - // until OnReadComplete is called. The buffer must be at least max_bytes in
|
| + // until OnReadComplete is called. The buffer must be at least |max_bytes| in
|
| // length.
|
| //
|
| - // The max_bytes parameter is the maximum number of bytes to read.
|
| - //
|
| - // The bytes_read parameter is an output parameter containing the
|
| - // the number of bytes read. A value of 0 indicates that there is no
|
| - // more data available to read from the stream.
|
| - //
|
| - // If a read error occurs, Read returns false and the request->status
|
| - // will be set to an error.
|
| + // The |max_bytes| parameter is the maximum number of bytes to read.
|
| + int Read(IOBuffer* buf, int max_bytes);
|
| + // Deprecated.
|
| + // TODO(maksims): Remove this.
|
| bool Read(IOBuffer* buf, int max_bytes, int* bytes_read);
|
|
|
| // If this request is being cached by the HTTP cache, stop subsequent caching.
|
| @@ -648,6 +644,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| // or after the response headers are received.
|
| void GetConnectionAttempts(ConnectionAttempts* out) const;
|
|
|
| + // Returns the error status of the request.
|
| + // Do not use! Going to be protected!
|
| + const URLRequestStatus& status() const { return status_; }
|
| +
|
| protected:
|
| // Allow the URLRequestJob class to control the is_pending() flag.
|
| void set_is_pending(bool value) { is_pending_ = value; }
|
| @@ -671,6 +671,10 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| friend class URLRequestJob;
|
| friend class URLRequestContext;
|
|
|
| + // For testing purposes.
|
| + // TODO(maksims): Remove this.
|
| + friend class TestNetworkDelegate;
|
| +
|
| // URLRequests are always created by calling URLRequestContext::CreateRequest.
|
| //
|
| // If no network delegate is passed in, will use the ones from the
|
| @@ -702,8 +706,8 @@ class NET_EXPORT URLRequest : NON_EXPORTED_BASE(public base::NonThreadSafe),
|
| void OrphanJob();
|
|
|
| // Cancels the request and set the error and ssl info for this request to the
|
| - // passed values.
|
| - void DoCancel(int error, const SSLInfo& ssl_info);
|
| + // passed values. Returns the error that was set.
|
| + int DoCancel(int error, const SSLInfo& ssl_info);
|
|
|
| // Called by the URLRequestJob when the headers are received, before any other
|
| // method, to allow caching of load timing information.
|
|
|