Index: android_webview/browser/net/aw_url_request_context_getter.cc |
diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc |
index 9b51826dd5e52a775a8fd33d8ad8a298a1d60722..45cd11e7ba607654c048c989835047810483ea3c 100644 |
--- a/android_webview/browser/net/aw_url_request_context_getter.cc |
+++ b/android_webview/browser/net/aw_url_request_context_getter.cc |
@@ -14,6 +14,7 @@ |
#include "content/public/browser/resource_context.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/url_constants.h" |
+#include "net/http/http_cache.h" |
#include "net/proxy/proxy_service.h" |
#include "net/url_request/data_protocol_handler.h" |
#include "net/url_request/file_protocol_handler.h" |
@@ -92,13 +93,6 @@ void AwURLRequestContextGetter::Init() { |
builder.set_accept_charset( |
net::HttpUtil::GenerateAcceptCharsetHeader("ISO-8859-1")); |
- net::URLRequestContextBuilder::HttpCacheParams cache_params; |
- cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK; |
- cache_params.max_size = 10 * 1024 * 1024; // 10M |
- cache_params.path = |
- browser_context_->GetPath().Append(FILE_PATH_LITERAL("Cache")), |
- builder.EnableHttpCache(cache_params); |
- |
url_request_context_.reset(builder.Build()); |
job_factory_.reset(new AwURLRequestJobFactory); |
@@ -111,10 +105,38 @@ void AwURLRequestContextGetter::Init() { |
job_factory_->AddInterceptor(new AwRequestInterceptor()); |
url_request_context_->set_job_factory(job_factory_.get()); |
+ // TODO(mnaganov): Fix URLRequestContextBuilder to use proper threads. |
+ net::HttpNetworkSession::Params network_session_params; |
+ PopulateNetworkSessionParams(&network_session_params); |
+ net::HttpCache* main_cache = new net::HttpCache( |
+ network_session_params, |
+ new net::HttpCache::DefaultBackend( |
+ net::DISK_CACHE, |
+ browser_context_->GetPath().Append(FILE_PATH_LITERAL("Cache")), |
+ 10 * 1024 * 1024, // 10M |
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE))); |
+ main_http_factory_.reset(main_cache); |
+ url_request_context_->set_http_transaction_factory(main_cache); |
+ |
OnNetworkStackInitialized(url_request_context_.get(), |
job_factory_.get()); |
} |
+void AwURLRequestContextGetter::PopulateNetworkSessionParams( |
+ net::HttpNetworkSession::Params* params) { |
+ net::URLRequestContext* context = url_request_context_.get(); |
+ params->host_resolver = context->host_resolver(); |
+ params->cert_verifier = context->cert_verifier(); |
+ params->server_bound_cert_service = context->server_bound_cert_service(); |
+ params->transport_security_state = context->transport_security_state(); |
+ params->proxy_service = context->proxy_service(); |
+ params->ssl_config_service = context->ssl_config_service(); |
+ params->http_auth_handler_factory = context->http_auth_handler_factory(); |
+ params->network_delegate = context->network_delegate(); |
+ params->http_server_properties = context->http_server_properties(); |
+ params->net_log = context->net_log(); |
+} |
+ |
content::ResourceContext* AwURLRequestContextGetter::GetResourceContext() { |
DCHECK(url_request_context_); |
if (!resource_context_) |