Index: net/base/network_delegate.h |
diff --git a/net/base/network_delegate.h b/net/base/network_delegate.h |
index 284728b40d6c5ab6352643c221e48945d6b11455..effc699ef5c8f8202a756c495b5ed035e535c9b1 100644 |
--- a/net/base/network_delegate.h |
+++ b/net/base/network_delegate.h |
@@ -31,12 +31,16 @@ class NetworkDelegate : public base::NonThreadSafe { |
// Notification interface called by the network stack. Note that these |
// functions mostly forward to the private virtuals. They also add some sanity |
- // checking on parameters. |
- bool NotifyBeforeURLRequest(URLRequest* request, |
+ // checking on parameters. See the corresponding virtuals for explanations of |
+ // the methods and their arguments. |
+ int NotifyBeforeURLRequest(URLRequest* request, |
+ CompletionCallback* callback); |
+ int NotifyBeforeSendHeaders(uint64 request_id, |
+ HttpRequestHeaders* headers, |
CompletionCallback* callback); |
- void NotifySendHttpRequest(HttpRequestHeaders* headers); |
void NotifyResponseStarted(URLRequest* request); |
void NotifyReadCompleted(URLRequest* request, int bytes_read); |
+ void NotifyURLRequestDestroyed(URLRequest* request); |
// Returns a URLRequestJob that will be used to handle the request if |
// non-null. |
@@ -51,13 +55,20 @@ class NetworkDelegate : public base::NonThreadSafe { |
// member functions will be called by the respective public notification |
// member function, which will perform basic sanity checking. |
- // Called before a request is sent. |
- virtual bool OnBeforeURLRequest(URLRequest* request, |
- CompletionCallback* callback) = 0; |
+ // Called before a request is sent. The callback can be called at any time, |
+ // but will have no effect if the request has already been cancelled or |
+ // deleted. Returns a net status code, generally either OK to continue with |
+ // the request or ERR_IO_PENDING if the result is not ready yet. |
+ virtual int OnBeforeURLRequest(URLRequest* request, |
+ CompletionCallback* callback) = 0; |
- // Called right before the HTTP headers are sent. Allows the delegate to |
- // read/write |headers| before they get sent out. |
- virtual void OnSendHttpRequest(HttpRequestHeaders* headers) = 0; |
+ // Called right before the HTTP headers are sent. Allows the delegate to |
+ // read/write |headers| before they get sent out. The callback can be called |
+ // at any time, but will have no effect if the transaction handling this |
+ // request has been cancelled. Returns a net status code. |
+ virtual int OnBeforeSendHeaders(uint64 request_id, |
+ HttpRequestHeaders* headers, |
+ CompletionCallback* callback) = 0; |
// This corresponds to URLRequestDelegate::OnResponseStarted. |
virtual void OnResponseStarted(URLRequest* request) = 0; |
@@ -65,9 +76,15 @@ class NetworkDelegate : public base::NonThreadSafe { |
// This corresponds to URLRequestDelegate::OnReadCompleted. |
virtual void OnReadCompleted(URLRequest* request, int bytes_read) = 0; |
+ // Called when an URLRequest is being destroyed. Note that the request is |
+ // being deleted, so it's not safe to call any methods that may result in |
+ // a virtual method call. |
+ virtual void OnURLRequestDestroyed(URLRequest* request) = 0; |
+ |
// Called before a request is sent and before a URLRequestJob is created to |
// handle the request. |
virtual URLRequestJob* OnMaybeCreateURLRequestJob(URLRequest* request) = 0; |
+ |
}; |
} // namespace net |