Index: net/url_request/url_request.cc |
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc |
index 17e23a5a90f5a1e9614e16656a0461c203ee01ac..5c437c28c02a1150668d3a97eeb42189015b566f 100644 |
--- a/net/url_request/url_request.cc |
+++ b/net/url_request/url_request.cc |
@@ -44,7 +44,8 @@ void StripPostSpecificHeaders(HttpRequestHeaders* headers) { |
} |
// This counter keeps track of the identifiers used for URL requests so far. |
-uint64 g_next_url_request_identifier = 0; |
+// 0 is reserved to represent an invalid ID. |
+uint64 g_next_url_request_identifier = 1; |
// This lock protects g_next_url_request_identifier. |
base::Lock g_next_url_request_identifier_lock; |
@@ -130,6 +131,9 @@ URLRequest::URLRequest(const GURL& url, Delegate* delegate) |
} |
URLRequest::~URLRequest() { |
+ if (context_ && context_->network_delegate()) |
+ context_->network_delegate()->NotifyURLRequestDestroyed(this); |
+ |
if (before_request_callback_) |
before_request_callback_->Cancel(); |
@@ -362,7 +366,7 @@ void URLRequest::Start() { |
before_request_callback_ = new CancelableCompletionCallback<URLRequest>( |
this, &URLRequest::BeforeRequestComplete); |
if (context_->network_delegate()->NotifyBeforeURLRequest( |
- this, before_request_callback_)) { |
+ this, before_request_callback_) == net::ERR_IO_PENDING) { |
before_request_callback_->AddRef(); // balanced in BeforeRequestComplete |
net_log_.BeginEvent(NetLog::TYPE_URL_REQUEST_BLOCKED_ON_EXTENSION, NULL); |
return; // paused |