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

Unified Diff: android_webview/browser/net/aw_url_request_context_getter.cc

Issue 11440036: [Android] Fix AwSettingsTest AppCache test crashes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 8 years 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
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_)

Powered by Google App Engine
This is Rietveld 408576698