summaryrefslogtreecommitdiffstats
path: root/content/shell
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-27 01:08:03 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-27 01:08:03 +0000
commitc5f1e3380f1e1b904420d6072f92484daf497a65 (patch)
treefd41400cc8ac32b90d1817bcd36cb6aa47842af7 /content/shell
parent5a3432f63636a3d05d73da60c54e83d2c77b57a3 (diff)
downloadchromium_src-c5f1e3380f1e1b904420d6072f92484daf497a65.zip
chromium_src-c5f1e3380f1e1b904420d6072f92484daf497a65.tar.gz
chromium_src-c5f1e3380f1e1b904420d6072f92484daf497a65.tar.bz2
Split off content_shell's ResourceContext and URLRequestContextGetter implementations into separate files to improve readability.BUG=90445
Review URL: http://codereview.chromium.org/8037037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102851 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/shell')
-rw-r--r--content/shell/shell_browser_context.cc165
-rw-r--r--content/shell/shell_resource_context.cc32
-rw-r--r--content/shell/shell_resource_context.h38
-rw-r--r--content/shell/shell_url_request_context_getter.cc131
-rw-r--r--content/shell/shell_url_request_context_getter.h69
5 files changed, 272 insertions, 163 deletions
diff --git a/content/shell/shell_browser_context.cc b/content/shell/shell_browser_context.cc
index b49f758..91c51c8 100644
--- a/content/shell/shell_browser_context.cc
+++ b/content/shell/shell_browser_context.cc
@@ -7,7 +7,6 @@
#include "base/file_util.h"
#include "base/logging.h"
#include "base/path_service.h"
-#include "base/string_split.h"
#include "content/browser/appcache/chrome_appcache_service.h"
#include "content/browser/browser_thread.h"
#include "content/browser/chrome_blob_storage_context.h"
@@ -18,22 +17,10 @@
#include "content/browser/geolocation/geolocation_permission_context.h"
#include "content/browser/host_zoom_map.h"
#include "content/browser/in_process_webkit/webkit_context.h"
-#include "content/browser/resource_context.h"
#include "content/browser/ssl/ssl_host_state.h"
#include "content/shell/shell_browser_main.h"
-#include "net/base/cert_verifier.h"
-#include "net/base/cookie_monster.h"
-#include "net/base/default_origin_bound_cert_store.h"
-#include "net/base/dnsrr_resolver.h"
-#include "net/base/host_resolver.h"
-#include "net/http/http_auth_handler_factory.h"
-#include "net/http/http_cache.h"
-#include "net/base/origin_bound_cert_service.h"
-#include "net/base/ssl_config_service_defaults.h"
-#include "net/proxy/proxy_service.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "net/url_request/url_request_job_factory.h"
+#include "content/shell/shell_resource_context.h"
+#include "content/shell/shell_url_request_context_getter.h"
#include "webkit/database/database_tracker.h"
#include "webkit/quota/quota_manager.h"
@@ -43,154 +30,6 @@
namespace {
-class ShellURLRequestContextGetter : public net::URLRequestContextGetter {
- public:
- ShellURLRequestContextGetter(
- const FilePath& base_path_,
- MessageLoop* io_loop,
- MessageLoop* file_loop)
- : io_loop_(io_loop),
- file_loop_(file_loop) {
- }
-
- // net::URLRequestContextGetter implementation.
- virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
-
- if (!url_request_context_) {
- FilePath cache_path = base_path_.Append(FILE_PATH_LITERAL("Cache"));
- net::HttpCache::DefaultBackend* main_backend =
- new net::HttpCache::DefaultBackend(
- net::DISK_CACHE,
- cache_path,
- 0,
- BrowserThread::GetMessageLoopProxyForThread(
- BrowserThread::CACHE));
-
- net::NetLog* net_log = NULL;
- host_resolver_.reset(net::CreateSystemHostResolver(
- net::HostResolver::kDefaultParallelism,
- net::HostResolver::kDefaultRetryAttempts,
- net_log));
-
- cert_verifier_.reset(new net::CertVerifier());
-
- origin_bound_cert_service_.reset(new net::OriginBoundCertService(
- new net::DefaultOriginBoundCertStore(NULL)));
-
- dnsrr_resolver_.reset(new net::DnsRRResolver());
-
- net::ProxyConfigService* proxy_config_service =
- net::ProxyService::CreateSystemProxyConfigService(
- io_loop_,
- file_loop_);
-
- // TODO(jam): use v8 if possible, look at chrome code.
- proxy_service_.reset(
- net::ProxyService::CreateUsingSystemProxyResolver(
- proxy_config_service,
- 0,
- net_log));
-
- url_security_manager_.reset(net::URLSecurityManager::Create(NULL, NULL));
-
- std::vector<std::string> supported_schemes;
- base::SplitString("basic,digest,ntlm,negotiate", ',', &supported_schemes);
- http_auth_handler_factory_.reset(
- net::HttpAuthHandlerRegistryFactory::Create(
- supported_schemes,
- url_security_manager_.get(),
- host_resolver_.get(),
- std::string(), // gssapi_library_name
- false, // negotiate_disable_cname_lookup
- false)); // negotiate_enable_port
-
- net::HttpCache* main_cache = new net::HttpCache(
- host_resolver_.get(),
- cert_verifier_.get(),
- origin_bound_cert_service_.get(),
- dnsrr_resolver_.get(),
- NULL, //dns_cert_checker
- proxy_service_.get(),
- new net::SSLConfigServiceDefaults(),
- http_auth_handler_factory_.get(),
- NULL, // network_delegate
- net_log,
- main_backend);
- main_http_factory_.reset(main_cache);
-
- scoped_refptr<net::CookieStore> cookie_store =
- new net::CookieMonster(NULL, NULL);
-
- url_request_context_ = new net::URLRequestContext();
- job_factory_.reset(new net::URLRequestJobFactory);
- url_request_context_->set_job_factory(job_factory_.get());
- url_request_context_->set_http_transaction_factory(main_cache);
- url_request_context_->set_origin_bound_cert_service(
- origin_bound_cert_service_.get());
- url_request_context_->set_dnsrr_resolver(dnsrr_resolver_.get());
- url_request_context_->set_proxy_service(proxy_service_.get());
- url_request_context_->set_cookie_store(cookie_store);
- }
-
- return url_request_context_;
- }
-
- virtual net::CookieStore* DONTUSEME_GetCookieStore() OVERRIDE {
- if (BrowserThread::CurrentlyOn(BrowserThread::IO))
- return GetURLRequestContext()->cookie_store();
- NOTIMPLEMENTED();
- return NULL;
- }
-
- virtual scoped_refptr<base::MessageLoopProxy>
- GetIOMessageLoopProxy() const OVERRIDE {
- return BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO);
- }
-
- net::HostResolver* host_resolver() { return host_resolver_.get(); }
-
- private:
- FilePath base_path_;
- MessageLoop* io_loop_;
- MessageLoop* file_loop_;
-
- scoped_ptr<net::URLRequestJobFactory> job_factory_;
- scoped_refptr<net::URLRequestContext> url_request_context_;
-
- scoped_ptr<net::HttpTransactionFactory> main_http_factory_;
- scoped_ptr<net::HostResolver> host_resolver_;
- scoped_ptr<net::CertVerifier> cert_verifier_;
- scoped_ptr<net::OriginBoundCertService> origin_bound_cert_service_;
- scoped_ptr<net::DnsRRResolver> dnsrr_resolver_;
- scoped_ptr<net::ProxyService> proxy_service_;
- scoped_ptr<net::HttpAuthHandlerFactory> http_auth_handler_factory_;
- scoped_ptr<net::URLSecurityManager> url_security_manager_;
-};
-
-class ShellResourceContext : public content::ResourceContext {
- public:
- ShellResourceContext(ShellURLRequestContextGetter* getter,
- ChromeBlobStorageContext* blob_storage_context)
- : getter_(getter),
- blob_storage_context_(blob_storage_context) {
- }
-
- private:
- virtual void EnsureInitialized() const OVERRIDE {
- const_cast<ShellResourceContext*>(this)->InitializeInternal();
- }
-
- void InitializeInternal() {
- set_request_context(getter_->GetURLRequestContext());
- set_host_resolver(getter_->host_resolver());
- set_blob_storage_context(blob_storage_context_);
- }
-
- scoped_refptr<ShellURLRequestContextGetter> getter_;
- scoped_refptr<ChromeBlobStorageContext> blob_storage_context_;
-};
-
class ShellGeolocationPermissionContext : public GeolocationPermissionContext {
public:
ShellGeolocationPermissionContext() {
diff --git a/content/shell/shell_resource_context.cc b/content/shell/shell_resource_context.cc
new file mode 100644
index 0000000..fa725cf
--- /dev/null
+++ b/content/shell/shell_resource_context.cc
@@ -0,0 +1,32 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/shell/shell_resource_context.h"
+
+#include "content/browser/chrome_blob_storage_context.h"
+#include "content/shell/shell_url_request_context_getter.h"
+
+namespace content {
+
+ShellResourceContext::ShellResourceContext(
+ ShellURLRequestContextGetter* getter,
+ ChromeBlobStorageContext* blob_storage_context)
+ : getter_(getter),
+ blob_storage_context_(blob_storage_context) {
+}
+
+ShellResourceContext::~ShellResourceContext() {
+}
+
+void ShellResourceContext::EnsureInitialized() const {
+ const_cast<ShellResourceContext*>(this)->InitializeInternal();
+}
+
+void ShellResourceContext::InitializeInternal() {
+ set_request_context(getter_->GetURLRequestContext());
+ set_host_resolver(getter_->host_resolver());
+ set_blob_storage_context(blob_storage_context_);
+}
+
+} // namespace content
diff --git a/content/shell/shell_resource_context.h b/content/shell/shell_resource_context.h
new file mode 100644
index 0000000..a05eb40
--- /dev/null
+++ b/content/shell/shell_resource_context.h
@@ -0,0 +1,38 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_SHELL_SHELL_RESOURCE_CONTEXT_H_
+#define CONTENT_SHELL_SHELL_RESOURCE_CONTEXT_H_
+#pragma once
+
+#include "base/compiler_specific.h"
+#include "base/memory/ref_counted.h"
+#include "content/browser/resource_context.h"
+
+class ChromeBlobStorageContext;
+
+namespace content {
+
+class ShellURLRequestContextGetter;
+
+class ShellResourceContext : public content::ResourceContext {
+ public:
+ ShellResourceContext(ShellURLRequestContextGetter* getter,
+ ChromeBlobStorageContext* blob_storage_context);
+ virtual ~ShellResourceContext();
+
+ private:
+ virtual void EnsureInitialized() const OVERRIDE;
+
+ void InitializeInternal();
+
+ scoped_refptr<ShellURLRequestContextGetter> getter_;
+ scoped_refptr<ChromeBlobStorageContext> blob_storage_context_;
+
+ DISALLOW_COPY_AND_ASSIGN(ShellResourceContext);
+};
+
+} // namespace content
+
+#endif // CONTENT_SHELL_SHELL_RESOURCE_CONTEXT_H_
diff --git a/content/shell/shell_url_request_context_getter.cc b/content/shell/shell_url_request_context_getter.cc
new file mode 100644
index 0000000..96fc8f8
--- /dev/null
+++ b/content/shell/shell_url_request_context_getter.cc
@@ -0,0 +1,131 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/shell/shell_url_request_context_getter.h"
+
+#include "base/logging.h"
+#include "base/string_split.h"
+#include "content/browser/browser_thread.h"
+#include "net/base/cert_verifier.h"
+#include "net/base/cookie_monster.h"
+#include "net/base/default_origin_bound_cert_store.h"
+#include "net/base/dnsrr_resolver.h"
+#include "net/base/host_resolver.h"
+#include "net/http/http_auth_handler_factory.h"
+#include "net/http/http_cache.h"
+#include "net/base/origin_bound_cert_service.h"
+#include "net/base/ssl_config_service_defaults.h"
+#include "net/proxy/proxy_service.h"
+#include "net/url_request/url_request_context.h"
+#include "net/url_request/url_request_context_getter.h"
+#include "net/url_request/url_request_job_factory.h"
+
+namespace content {
+
+ShellURLRequestContextGetter::ShellURLRequestContextGetter(
+ const FilePath& base_path_,
+ MessageLoop* io_loop,
+ MessageLoop* file_loop)
+ : io_loop_(io_loop),
+ file_loop_(file_loop) {
+}
+
+ShellURLRequestContextGetter::~ShellURLRequestContextGetter() {
+}
+
+net::URLRequestContext* ShellURLRequestContextGetter::GetURLRequestContext() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+
+ if (!url_request_context_) {
+ FilePath cache_path = base_path_.Append(FILE_PATH_LITERAL("Cache"));
+ net::HttpCache::DefaultBackend* main_backend =
+ new net::HttpCache::DefaultBackend(
+ net::DISK_CACHE,
+ cache_path,
+ 0,
+ BrowserThread::GetMessageLoopProxyForThread(
+ BrowserThread::CACHE));
+
+ net::NetLog* net_log = NULL;
+ host_resolver_.reset(net::CreateSystemHostResolver(
+ net::HostResolver::kDefaultParallelism,
+ net::HostResolver::kDefaultRetryAttempts,
+ net_log));
+
+ cert_verifier_.reset(new net::CertVerifier());
+
+ origin_bound_cert_service_.reset(new net::OriginBoundCertService(
+ new net::DefaultOriginBoundCertStore(NULL)));
+
+ dnsrr_resolver_.reset(new net::DnsRRResolver());
+
+ net::ProxyConfigService* proxy_config_service =
+ net::ProxyService::CreateSystemProxyConfigService(
+ io_loop_,
+ file_loop_);
+
+ // TODO(jam): use v8 if possible, look at chrome code.
+ proxy_service_.reset(
+ net::ProxyService::CreateUsingSystemProxyResolver(
+ proxy_config_service,
+ 0,
+ net_log));
+
+ url_security_manager_.reset(net::URLSecurityManager::Create(NULL, NULL));
+
+ std::vector<std::string> supported_schemes;
+ base::SplitString("basic,digest,ntlm,negotiate", ',', &supported_schemes);
+ http_auth_handler_factory_.reset(
+ net::HttpAuthHandlerRegistryFactory::Create(
+ supported_schemes,
+ url_security_manager_.get(),
+ host_resolver_.get(),
+ std::string(), // gssapi_library_name
+ false, // negotiate_disable_cname_lookup
+ false)); // negotiate_enable_port
+
+ net::HttpCache* main_cache = new net::HttpCache(
+ host_resolver_.get(),
+ cert_verifier_.get(),
+ origin_bound_cert_service_.get(),
+ dnsrr_resolver_.get(),
+ NULL, //dns_cert_checker
+ proxy_service_.get(),
+ new net::SSLConfigServiceDefaults(),
+ http_auth_handler_factory_.get(),
+ NULL, // network_delegate
+ net_log,
+ main_backend);
+ main_http_factory_.reset(main_cache);
+
+ scoped_refptr<net::CookieStore> cookie_store =
+ new net::CookieMonster(NULL, NULL);
+
+ url_request_context_ = new net::URLRequestContext();
+ job_factory_.reset(new net::URLRequestJobFactory);
+ url_request_context_->set_job_factory(job_factory_.get());
+ url_request_context_->set_http_transaction_factory(main_cache);
+ url_request_context_->set_origin_bound_cert_service(
+ origin_bound_cert_service_.get());
+ url_request_context_->set_dnsrr_resolver(dnsrr_resolver_.get());
+ url_request_context_->set_proxy_service(proxy_service_.get());
+ url_request_context_->set_cookie_store(cookie_store);
+ }
+
+ return url_request_context_;
+}
+
+net::CookieStore* ShellURLRequestContextGetter::DONTUSEME_GetCookieStore() {
+ if (BrowserThread::CurrentlyOn(BrowserThread::IO))
+ return GetURLRequestContext()->cookie_store();
+ NOTIMPLEMENTED();
+ return NULL;
+}
+
+scoped_refptr<base::MessageLoopProxy>
+ ShellURLRequestContextGetter::GetIOMessageLoopProxy() const {
+ return BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO);
+}
+
+} // namespace content
diff --git a/content/shell/shell_url_request_context_getter.h b/content/shell/shell_url_request_context_getter.h
new file mode 100644
index 0000000..a4ba171
--- /dev/null
+++ b/content/shell/shell_url_request_context_getter.h
@@ -0,0 +1,69 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_
+#define CONTENT_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_
+#pragma once
+
+#include "base/compiler_specific.h"
+#include "base/file_path.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "net/url_request/url_request_context_getter.h"
+
+class MessageLoop;
+
+namespace net {
+class CertVerifier;
+class DnsRRResolver;
+class HostResolver;
+class HttpAuthHandlerFactory;
+class HttpTransactionFactory;
+class ProxyService;
+class OriginBoundCertService;
+class URLRequestJobFactory;
+class URLSecurityManager;
+}
+
+namespace content {
+
+class ShellURLRequestContextGetter : public net::URLRequestContextGetter {
+ public:
+ ShellURLRequestContextGetter(
+ const FilePath& base_path_,
+ MessageLoop* io_loop,
+ MessageLoop* file_loop);
+ virtual ~ShellURLRequestContextGetter();
+
+ // net::URLRequestContextGetter implementation.
+ virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE;
+ virtual net::CookieStore* DONTUSEME_GetCookieStore() OVERRIDE;
+ virtual scoped_refptr<base::MessageLoopProxy>
+ GetIOMessageLoopProxy() const OVERRIDE;
+
+ net::HostResolver* host_resolver() { return host_resolver_.get(); }
+
+ private:
+ FilePath base_path_;
+ MessageLoop* io_loop_;
+ MessageLoop* file_loop_;
+
+ scoped_ptr<net::URLRequestJobFactory> job_factory_;
+ scoped_refptr<net::URLRequestContext> url_request_context_;
+
+ scoped_ptr<net::HttpTransactionFactory> main_http_factory_;
+ scoped_ptr<net::HostResolver> host_resolver_;
+ scoped_ptr<net::CertVerifier> cert_verifier_;
+ scoped_ptr<net::OriginBoundCertService> origin_bound_cert_service_;
+ scoped_ptr<net::DnsRRResolver> dnsrr_resolver_;
+ scoped_ptr<net::ProxyService> proxy_service_;
+ scoped_ptr<net::HttpAuthHandlerFactory> http_auth_handler_factory_;
+ scoped_ptr<net::URLSecurityManager> url_security_manager_;
+
+ DISALLOW_COPY_AND_ASSIGN(ShellURLRequestContextGetter);
+};
+
+} // namespace content
+
+#endif // CONTENT_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_