diff options
author | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 17:37:01 +0000 |
---|---|---|
committer | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-06 17:37:01 +0000 |
commit | 9de72dce47a208835335229ef359c8825f7280dc (patch) | |
tree | ed172770d9b942a402355ca73afc492a423e9e7b /android_webview/browser | |
parent | dcbcd1523126ef6e0224c361e8523ad85277b8ee (diff) | |
download | chromium_src-9de72dce47a208835335229ef359c8825f7280dc.zip chromium_src-9de72dce47a208835335229ef359c8825f7280dc.tar.gz chromium_src-9de72dce47a208835335229ef359c8825f7280dc.tar.bz2 |
[Android] Fix AwSettingsTest AppCache test crashes.
The problem was due to usage of a second cache thread.
R=boliu@chromium.org
BUG=163383
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/11440036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171520 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/browser')
-rw-r--r-- | android_webview/browser/net/aw_url_request_context_getter.cc | 36 | ||||
-rw-r--r-- | android_webview/browser/net/aw_url_request_context_getter.h | 5 |
2 files changed, 34 insertions, 7 deletions
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 9b51826..45cd11e 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_) diff --git a/android_webview/browser/net/aw_url_request_context_getter.h b/android_webview/browser/net/aw_url_request_context_getter.h index 888ac08..c5b9ecf 100644 --- a/android_webview/browser/net/aw_url_request_context_getter.h +++ b/android_webview/browser/net/aw_url_request_context_getter.h @@ -8,6 +8,7 @@ #include "content/public/browser/browser_thread_delegate.h" #include "base/memory/scoped_ptr.h" +#include "net/http/http_network_session.h" #include "net/url_request/url_request_context_getter.h" namespace content { @@ -15,6 +16,7 @@ class ResourceContext; } namespace net { +class HttpTransactionFactory; class ProxyConfigService; class URLRequestContext; class URLRequestJobFactory; @@ -46,11 +48,14 @@ class AwURLRequestContextGetter : public net::URLRequestContextGetter, private: virtual ~AwURLRequestContextGetter(); + void PopulateNetworkSessionParams(net::HttpNetworkSession::Params* params); + AwBrowserContext* browser_context_; // weak scoped_ptr<net::URLRequestContext> url_request_context_; scoped_ptr<net::ProxyConfigService> proxy_config_service_; scoped_ptr<content::ResourceContext> resource_context_; scoped_ptr<net::URLRequestJobFactory> job_factory_; + scoped_ptr<net::HttpTransactionFactory> main_http_factory_; DISALLOW_COPY_AND_ASSIGN(AwURLRequestContextGetter); }; |