summaryrefslogtreecommitdiffstats
path: root/android_webview/browser
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-06 17:37:01 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-06 17:37:01 +0000
commit9de72dce47a208835335229ef359c8825f7280dc (patch)
treeed172770d9b942a402355ca73afc492a423e9e7b /android_webview/browser
parentdcbcd1523126ef6e0224c361e8523ad85277b8ee (diff)
downloadchromium_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.cc36
-rw-r--r--android_webview/browser/net/aw_url_request_context_getter.h5
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);
};