diff options
Diffstat (limited to 'src/core/url_request_context_getter_qt.cpp')
-rw-r--r-- | src/core/url_request_context_getter_qt.cpp | 76 |
1 files changed, 33 insertions, 43 deletions
diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp index 10a6cfe7a..fd0f24735 100644 --- a/src/core/url_request_context_getter_qt.cpp +++ b/src/core/url_request_context_getter_qt.cpp @@ -42,8 +42,10 @@ #include "base/command_line.h" #include "base/memory/ptr_util.h" #include "base/strings/string_util.h" -#include "base/threading/worker_pool.h" +#include "base/task_scheduler/post_task.h" #include "base/threading/sequenced_worker_pool.h" +#include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h" +#include "content/network/proxy_service_mojo.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/cookie_store_factory.h" #include "content/public/common/content_features.h" @@ -66,8 +68,6 @@ #include "net/proxy/dhcp_proxy_script_fetcher_factory.h" #include "net/proxy/proxy_script_fetcher_impl.h" #include "net/proxy/proxy_service.h" -#include "net/proxy/proxy_service_v8.h" -#include "net/proxy/proxy_resolver_v8.h" #include "net/ssl/channel_id_service.h" #include "net/ssl/default_channel_id_store.h" #include "net/ssl/ssl_config_service_defaults.h" @@ -224,12 +224,15 @@ void URLRequestContextGetterQt::generateStorage() // We must stop all requests before deleting their backends. if (m_storage) { + m_cookieDelegate->setCookieMonster(0); + m_storage->set_cookie_store(0); cancelAllUrlRequests(); // we need to get rid of dangling pointer due to coming storage deletion m_urlRequestContext->set_http_transaction_factory(0); m_httpNetworkSession.reset(); } + m_storage.reset(new net::URLRequestContextStorage(m_urlRequestContext.get())); net::ProxyConfigService *proxyConfigService = m_proxyConfigService.fetchAndStoreAcquire(0); @@ -248,12 +251,13 @@ void URLRequestContextGetterQt::generateStorage() if (!m_dhcpProxyScriptFetcherFactory) m_dhcpProxyScriptFetcherFactory.reset(new net::DhcpProxyScriptFetcherFactory); - m_storage->set_proxy_service(net::CreateProxyServiceUsingV8ProxyResolver( + m_storage->set_proxy_service(content::CreateProxyServiceUsingMojoFactory( + ChromeMojoProxyResolverFactory::GetInstance(), std::unique_ptr<net::ProxyConfigService>(proxyConfigService), new net::ProxyScriptFetcherImpl(m_urlRequestContext.get()), m_dhcpProxyScriptFetcherFactory->Create(m_urlRequestContext.get()), host_resolver.get(), - NULL /* NetLog */, + nullptr /* NetLog */, m_networkDelegate.get())); m_storage->set_ssl_config_service(new net::SSLConfigServiceDefaults); @@ -303,8 +307,8 @@ void URLRequestContextGetterQt::generateCookieStore() if (!m_channelIdPath.isEmpty() && m_persistentCookiesPolicy != BrowserContextAdapter::NoPersistentCookies) { channel_id_db = new net::SQLiteChannelIDStore( toFilePath(m_channelIdPath), - BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( - BrowserThread::GetBlockingPool()->GetSequenceToken())); + base::CreateSequencedTaskRunnerWithTraits( + {base::MayBlock(), base::TaskPriority::BACKGROUND})); } m_storage->set_channel_id_service( @@ -312,47 +316,44 @@ void URLRequestContextGetterQt::generateCookieStore() new net::DefaultChannelIDStore(channel_id_db.get())))); // Unset it first to get a chance to destroy and flush the old cookie store before opening a new on possibly the same file. - m_storage->set_cookie_store(0); m_cookieDelegate->setCookieMonster(0); + m_storage->set_cookie_store(0); std::unique_ptr<net::CookieStore> cookieStore; switch (m_persistentCookiesPolicy) { case BrowserContextAdapter::NoPersistentCookies: - cookieStore = - content::CreateCookieStore(content::CookieStoreConfig( + cookieStore = content::CreateCookieStore( + content::CookieStoreConfig( base::FilePath(), content::CookieStoreConfig::EPHEMERAL_SESSION_COOKIES, - NULL, - m_cookieDelegate.get()) - ); + nullptr) + ); break; case BrowserContextAdapter::AllowPersistentCookies: - cookieStore = - content::CreateCookieStore(content::CookieStoreConfig( + cookieStore = content::CreateCookieStore( + content::CookieStoreConfig( toFilePath(m_cookiesPath), content::CookieStoreConfig::PERSISTANT_SESSION_COOKIES, - NULL, - m_cookieDelegate.get()) + nullptr) ); break; case BrowserContextAdapter::ForcePersistentCookies: - cookieStore = - content::CreateCookieStore(content::CookieStoreConfig( + cookieStore = content::CreateCookieStore( + content::CookieStoreConfig( toFilePath(m_cookiesPath), content::CookieStoreConfig::RESTORED_SESSION_COOKIES, - NULL, - m_cookieDelegate.get()) + nullptr) ); break; } net::CookieMonster * const cookieMonster = static_cast<net::CookieMonster*>(cookieStore.get()); cookieStore->SetChannelIDServiceID(m_urlRequestContext->channel_id_service()->GetUniqueID()); + m_cookieDelegate->setCookieMonster(cookieMonster); m_storage->set_cookie_store(std::move(cookieStore)); const std::vector<std::string> cookieableSchemes(kCookieableSchemes, kCookieableSchemes + arraysize(kCookieableSchemes)); cookieMonster->SetCookieableSchemes(cookieableSchemes); - m_cookieDelegate->setCookieMonster(cookieMonster); if (!m_updateAllStorage && m_updateHttpCache) { // HttpCache needs to be regenerated when we generate a new channel id service @@ -509,8 +510,7 @@ void URLRequestContextGetterQt::generateHttpCache() net::MEMORY_CACHE, net::CACHE_BACKEND_DEFAULT, base::FilePath(), - m_httpCacheMaxSize, - BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE) + m_httpCacheMaxSize ); break; case BrowserContextAdapter::DiskHttpCache: @@ -519,8 +519,7 @@ void URLRequestContextGetterQt::generateHttpCache() net::DISK_CACHE, net::CACHE_BACKEND_DEFAULT, toFilePath(m_httpCachePath), - m_httpCacheMaxSize, - BrowserThread::GetTaskRunnerForThread(BrowserThread::CACHE) + m_httpCacheMaxSize ); break; case BrowserContextAdapter::NoCache: @@ -554,25 +553,16 @@ void URLRequestContextGetterQt::generateJobFactory() m_updateJobFactory = false; std::unique_ptr<net::URLRequestJobFactoryImpl> jobFactory(new net::URLRequestJobFactoryImpl()); - - { - // Chromium has transferred a few protocol handlers to us, only pick blob:, chrome: and filesystem:. - content::ProtocolHandlerMap::iterator it = m_protocolHandlers.find(url::kBlobScheme); - Q_ASSERT(it != m_protocolHandlers.end()); - jobFactory->SetProtocolHandler(it->first, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(it->second.release())); - it = m_protocolHandlers.find(content::kChromeUIScheme); - Q_ASSERT(it != m_protocolHandlers.end()); - jobFactory->SetProtocolHandler(it->first, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(it->second.release())); - it = m_protocolHandlers.find(url::kFileSystemScheme); - Q_ASSERT(it != m_protocolHandlers.end()); - jobFactory->SetProtocolHandler(it->first, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(it->second.release())); - m_protocolHandlers.clear(); - } + for (auto &it : m_protocolHandlers) + jobFactory->SetProtocolHandler(it.first, base::WrapUnique(it.second.release())); + m_protocolHandlers.clear(); jobFactory->SetProtocolHandler(url::kDataScheme, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(new net::DataProtocolHandler())); - jobFactory->SetProtocolHandler(url::kFileScheme, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(new net::FileProtocolHandler( - content::BrowserThread::GetBlockingPool()->GetTaskRunnerWithShutdownBehavior( - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)))); + jobFactory->SetProtocolHandler(url::kFileScheme, + std::make_unique<net::FileProtocolHandler>( + base::CreateTaskRunnerWithTraits({base::MayBlock(), + base::TaskPriority::BACKGROUND, + base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}))); jobFactory->SetProtocolHandler(kQrcSchemeQt, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(new QrcProtocolHandlerQt())); jobFactory->SetProtocolHandler(url::kFtpScheme, net::FtpProtocolHandler::Create(m_urlRequestContext->host_resolver())); |