Index: content/network/url_loader_impl.cc |
diff --git a/content/network/url_loader_impl.cc b/content/network/url_loader_impl.cc |
index 2d97833926da1ea0f887b1a4392ae70baa3b0799..6cf3b407363c967399df56ac2d3ab25ef0218a4b 100644 |
--- a/content/network/url_loader_impl.cc |
+++ b/content/network/url_loader_impl.cc |
@@ -170,6 +170,7 @@ URLLoaderImpl::URLLoaderImpl( |
peer_closed_handle_watcher_(FROM_HERE, |
mojo::SimpleWatcher::ArmingPolicy::MANUAL), |
weak_ptr_factory_(this) { |
+ context_->RegisterURLLoader(this); |
binding_.set_connection_error_handler( |
base::Bind(&URLLoaderImpl::OnConnectionError, base::Unretained(this))); |
@@ -201,11 +202,13 @@ URLLoaderImpl::URLLoaderImpl( |
url_request_->Start(); |
} |
-URLLoaderImpl::~URLLoaderImpl() {} |
+URLLoaderImpl::~URLLoaderImpl() { |
+ context_->DeregisterURLLoader(this); |
+} |
void URLLoaderImpl::Cleanup() { |
// The associated network context is going away and we have to destroy |
- // net::URLRequest hold by this loader. |
+ // net::URLRequest held by this loader. |
delete this; |
} |
@@ -354,6 +357,10 @@ void URLLoaderImpl::OnReadCompleted(net::URLRequest* url_request, |
DidRead(static_cast<uint32_t>(bytes_read), false); |
} |
+base::WeakPtr<URLLoaderImpl> URLLoaderImpl::GetWeakPtrForTests() { |
+ return weak_ptr_factory_.GetWeakPtr(); |
+} |
+ |
void URLLoaderImpl::NotifyCompleted(int error_code) { |
ResourceRequestCompletionStatus request_complete_data; |
request_complete_data.error_code = error_code; |