summaryrefslogtreecommitdiffstats
path: root/src/core/url_request_context_getter_qt.cpp
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@theqtcompany.com>2015-05-11 11:42:08 +0200
committerAndras Becsi <andras.becsi@theqtcompany.com>2015-05-11 17:02:43 +0200
commita1b6a4c9edab853f06b870d9ef60a50b28ca36a6 (patch)
treeabcdf44e8cb1bed6339de3fd4d28b86e0a7dba4d /src/core/url_request_context_getter_qt.cpp
parent18cc8aa2893e62f2b2679e67ed4747243e25da35 (diff)
parent76a990cfa3409214530e77d132cdefd9e96685f9 (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Diffstat (limited to 'src/core/url_request_context_getter_qt.cpp')
-rw-r--r--src/core/url_request_context_getter_qt.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp
index dec6b4dbb..4f893175a 100644
--- a/src/core/url_request_context_getter_qt.cpp
+++ b/src/core/url_request_context_getter_qt.cpp
@@ -124,6 +124,18 @@ void URLRequestContextGetterQt::generateStorage()
{
Q_ASSERT(m_urlRequestContext);
+ if (m_storage) {
+ // We must stop all requests before deleting their backends.
+ std::set<const net::URLRequest*>* url_requests = m_urlRequestContext->url_requests();
+ std::set<const net::URLRequest*>::const_iterator it = url_requests->begin();
+ std::set<const net::URLRequest*>::const_iterator end = url_requests->end();
+ for ( ; it != end; ++it) {
+ net::URLRequest* request = const_cast<net::URLRequest*>(*it);
+ if (request)
+ request->Cancel();
+ }
+ }
+
m_storage.reset(new net::URLRequestContextStorage(m_urlRequestContext.get()));
net::ProxyConfigService *proxyConfigService = m_proxyConfigService.fetchAndStoreAcquire(0);