Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1240)

Unified Diff: content/network/network_context.cc

Issue 2951293002: NetworkService: Destroy URLLoaders when a NetworkContext is destroyed. (Closed)
Patch Set: Response to comment, change why destruction is safe Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/network/network_context.h ('k') | content/network/url_loader_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/network/network_context.cc
diff --git a/content/network/network_context.cc b/content/network/network_context.cc
index cd58a39fdc512011d6ae0501c5f8cfa0814a4c54..5862ea67d5b17977c9f4bac18390441b8c77a485 100644
--- a/content/network/network_context.cc
+++ b/content/network/network_context.cc
@@ -89,18 +89,16 @@ std::unique_ptr<net::URLRequestContext> MakeURLRequestContext() {
NetworkContext::NetworkContext(mojom::NetworkContextRequest request,
mojom::NetworkContextParamsPtr params)
: url_request_context_(MakeURLRequestContext()),
- in_shutdown_(false),
params_(std::move(params)),
binding_(this, std::move(request)) {}
NetworkContext::~NetworkContext() {
- in_shutdown_ = true;
// Call each URLLoaderImpl and ask it to release its net::URLRequest, as the
// corresponding net::URLRequestContext is going away with this
// NetworkContext. The loaders can be deregistering themselves in Cleanup(),
- // so iterate over a copy.
- for (auto* url_loader : url_loaders_)
- url_loader->Cleanup();
+ // so have to be careful.
+ while (!url_loaders_.empty())
+ (*url_loaders_.begin())->Cleanup();
}
std::unique_ptr<NetworkContext> NetworkContext::CreateForTesting() {
@@ -113,10 +111,8 @@ void NetworkContext::RegisterURLLoader(URLLoaderImpl* url_loader) {
}
void NetworkContext::DeregisterURLLoader(URLLoaderImpl* url_loader) {
- if (!in_shutdown_) {
- size_t removed_count = url_loaders_.erase(url_loader);
- DCHECK(removed_count);
- }
+ size_t removed_count = url_loaders_.erase(url_loader);
+ DCHECK(removed_count);
}
void NetworkContext::CreateURLLoaderFactory(
@@ -134,7 +130,6 @@ void NetworkContext::HandleViewCacheRequest(const GURL& url,
NetworkContext::NetworkContext()
: url_request_context_(MakeURLRequestContext()),
- in_shutdown_(false),
binding_(this) {}
} // namespace content
« no previous file with comments | « content/network/network_context.h ('k') | content/network/url_loader_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698