Chromium Code Reviews| Index: net/url_request/url_request.cc |
| diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc |
| index 4c2e2c35385be5fd4baa4fe832b27a35bc6c1822..408e81235aa76b81942e30a9b49b715120ad3c2b 100644 |
| --- a/net/url_request/url_request.cc |
| +++ b/net/url_request/url_request.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/memory/singleton.h" |
| #include "base/message_loop.h" |
| #include "base/metrics/stats_counters.h" |
| +#include "base/stl_util.h" |
| #include "base/synchronization/lock.h" |
| #include "net/base/auth.h" |
| #include "net/base/host_port_pair.h" |
| @@ -49,6 +50,7 @@ void StripPostSpecificHeaders(HttpRequestHeaders* headers) { |
| headers->RemoveHeader(HttpRequestHeaders::kOrigin); |
| } |
|
wtc
2012/04/05 21:37:16
Nit: undo this blank line.
|
| + |
| // TODO(battre): Delete this, see http://crbug.com/89321: |
| // This counter keeps track of the identifiers used for URL requests so far. |
| // 0 is reserved to represent an invalid ID. |
| @@ -714,6 +716,19 @@ const URLRequestContext* URLRequest::context() const { |
| } |
| void URLRequest::set_context(const URLRequestContext* context) { |
| + // Update the URLRequest lists in the URLRequestContext. |
| + if (context_) { |
| + std::set<const URLRequest*>* url_requests = context_->url_requests(); |
| + CHECK(ContainsKey(*url_requests, this)); |
| + url_requests->erase(this); |
| + } |
| + |
| + if (context) { |
| + std::set<const URLRequest*>* url_requests = context->url_requests(); |
| + CHECK(!ContainsKey(*url_requests, this)); |
| + url_requests->insert(this); |
| + } |
| + |
| scoped_refptr<const URLRequestContext> prev_context = context_; |
| context_ = context; |