1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_SHELL_BROWSER_SHELL_URL_REQUEST_CONTEXT_GETTER_H_ 6 #define CONTENT_SHELL_BROWSER_SHELL_URL_REQUEST_CONTEXT_GETTER_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/files/file_path.h" 10 #include "base/memory/ref_counted.h" 11 #include "base/memory/scoped_ptr.h" 12 #include "content/public/browser/content_browser_client.h" 13 #include "net/url_request/url_request_context_getter.h" 14 #include "net/url_request/url_request_job_factory.h" 15 16 namespace base { 17 class MessageLoop; 18 } 19 20 namespace net { 21 class HostResolver; 22 class MappedHostResolver; 23 class NetworkDelegate; 24 class NetLog; 25 class ProxyConfigService; 26 class URLRequestContextStorage; 27 } 28 29 namespace content { 30 31 class ShellURLRequestContextGetter : public net::URLRequestContextGetter { 32 public: 33 ShellURLRequestContextGetter( 34 bool ignore_certificate_errors, 35 const base::FilePath& base_path, 36 base::MessageLoop* io_loop, 37 base::MessageLoop* file_loop, 38 ProtocolHandlerMap* protocol_handlers, 39 URLRequestInterceptorScopedVector request_interceptors, 40 net::NetLog* net_log); 41 42 // net::URLRequestContextGetter implementation. 43 virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE; 44 virtual scoped_refptr<base::SingleThreadTaskRunner> 45 GetNetworkTaskRunner() const OVERRIDE; 46 47 net::HostResolver* host_resolver(); 48 49 protected: 50 virtual ~ShellURLRequestContextGetter(); 51 52 private: 53 bool ignore_certificate_errors_; 54 base::FilePath base_path_; 55 base::MessageLoop* io_loop_; 56 base::MessageLoop* file_loop_; 57 net::NetLog* net_log_; 58 59 scoped_ptr<net::ProxyConfigService> proxy_config_service_; 60 scoped_ptr<net::NetworkDelegate> network_delegate_; 61 scoped_ptr<net::URLRequestContextStorage> storage_; 62 scoped_ptr<net::URLRequestContext> url_request_context_; 63 ProtocolHandlerMap protocol_handlers_; 64 URLRequestInterceptorScopedVector request_interceptors_; 65 66 DISALLOW_COPY_AND_ASSIGN(ShellURLRequestContextGetter); 67 }; 68 69 } // namespace content 70 71 #endif // CONTENT_SHELL_BROWSER_SHELL_URL_REQUEST_CONTEXT_GETTER_H_ 72