| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "net/url_request/url_request.h" | 5 #include "net/url_request/url_request.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/metrics/stats_counters.h" | 9 #include "base/metrics/stats_counters.h" |
| 10 #include "base/singleton.h" | 10 #include "base/singleton.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 // Discard headers which have meaning in POST (Content-Length, Content-Type, | 36 // Discard headers which have meaning in POST (Content-Length, Content-Type, |
| 37 // Origin). | 37 // Origin). |
| 38 void StripPostSpecificHeaders(net::HttpRequestHeaders* headers) { | 38 void StripPostSpecificHeaders(net::HttpRequestHeaders* headers) { |
| 39 // These are headers that may be attached to a POST. | 39 // These are headers that may be attached to a POST. |
| 40 headers->RemoveHeader(net::HttpRequestHeaders::kContentLength); | 40 headers->RemoveHeader(net::HttpRequestHeaders::kContentLength); |
| 41 headers->RemoveHeader(net::HttpRequestHeaders::kContentType); | 41 headers->RemoveHeader(net::HttpRequestHeaders::kContentType); |
| 42 headers->RemoveHeader(net::HttpRequestHeaders::kOrigin); | 42 headers->RemoveHeader(net::HttpRequestHeaders::kOrigin); |
| 43 } | 43 } |
| 44 | 44 |
| 45 // This counter keeps track of the identifiers used for URL requests so far. | 45 // This counter keeps track of the identifiers used for URL requests so far. |
| 46 uint64 g_next_url_request_identifier = 0; | 46 // 0 is reserved to represent an invalid ID. |
| 47 uint64 g_next_url_request_identifier = 1; |
| 47 | 48 |
| 48 // This lock protects g_next_url_request_identifier. | 49 // This lock protects g_next_url_request_identifier. |
| 49 base::Lock g_next_url_request_identifier_lock; | 50 base::Lock g_next_url_request_identifier_lock; |
| 50 | 51 |
| 51 // Returns an prior unused identifier for URL requests. | 52 // Returns an prior unused identifier for URL requests. |
| 52 uint64 GenerateURLRequestIdentifier() { | 53 uint64 GenerateURLRequestIdentifier() { |
| 53 base::AutoLock lock(g_next_url_request_identifier_lock); | 54 base::AutoLock lock(g_next_url_request_identifier_lock); |
| 54 return g_next_url_request_identifier++; | 55 return g_next_url_request_identifier++; |
| 55 } | 56 } |
| 56 | 57 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 SIMPLE_STATS_COUNTER("URLRequestCount"); | 125 SIMPLE_STATS_COUNTER("URLRequestCount"); |
| 125 | 126 |
| 126 // Sanity check out environment. | 127 // Sanity check out environment. |
| 127 DCHECK(MessageLoop::current()) << | 128 DCHECK(MessageLoop::current()) << |
| 128 "The current MessageLoop must exist"; | 129 "The current MessageLoop must exist"; |
| 129 DCHECK_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()) << | 130 DCHECK_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()) << |
| 130 "The current MessageLoop must be TYPE_IO"; | 131 "The current MessageLoop must be TYPE_IO"; |
| 131 } | 132 } |
| 132 | 133 |
| 133 URLRequest::~URLRequest() { | 134 URLRequest::~URLRequest() { |
| 135 if (context_ && context_->network_delegate()) |
| 136 context_->network_delegate()->NotifyURLRequestDestroyed(this); |
| 137 |
| 134 if (before_request_callback_) | 138 if (before_request_callback_) |
| 135 before_request_callback_->Cancel(); | 139 before_request_callback_->Cancel(); |
| 136 | 140 |
| 137 Cancel(); | 141 Cancel(); |
| 138 | 142 |
| 139 if (job_) | 143 if (job_) |
| 140 OrphanJob(); | 144 OrphanJob(); |
| 141 | 145 |
| 142 set_context(NULL); | 146 set_context(NULL); |
| 143 } | 147 } |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 664 if (found != user_data_.end()) | 668 if (found != user_data_.end()) |
| 665 return found->second.get(); | 669 return found->second.get(); |
| 666 return NULL; | 670 return NULL; |
| 667 } | 671 } |
| 668 | 672 |
| 669 void URLRequest::SetUserData(const void* key, UserData* data) { | 673 void URLRequest::SetUserData(const void* key, UserData* data) { |
| 670 user_data_[key] = linked_ptr<UserData>(data); | 674 user_data_[key] = linked_ptr<UserData>(data); |
| 671 } | 675 } |
| 672 | 676 |
| 673 } // namespace net | 677 } // namespace net |
| OLD | NEW |