1 // Copyright (c) 2012 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_SHELL_URL_REQUEST_CONTEXT_GETTER_H_ 6 #define CONTENT_SHELL_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 net::NetLog* net_log); 40 41 // net::URLRequestContextGetter implementation. 42 virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE; 43 virtual scoped_refptr<base::SingleThreadTaskRunner> 44 GetNetworkTaskRunner() const OVERRIDE; 45 46 net::HostResolver* host_resolver(); 47 48 protected: 49 virtual ~ShellURLRequestContextGetter(); 50 51 private: 52 bool ignore_certificate_errors_; 53 base::FilePath base_path_; 54 base::MessageLoop* io_loop_; 55 base::MessageLoop* file_loop_; 56 net::NetLog* net_log_; 57 58 scoped_ptr<net::ProxyConfigService> proxy_config_service_; 59 scoped_ptr<net::NetworkDelegate> network_delegate_; 60 scoped_ptr<net::URLRequestContextStorage> storage_; 61 scoped_ptr<net::URLRequestContext> url_request_context_; 62 ProtocolHandlerMap protocol_handlers_; 63 64 DISALLOW_COPY_AND_ASSIGN(ShellURLRequestContextGetter); 65 }; 66 67 } // namespace content 68 69 #endif // CONTENT_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_ 70