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 16namespace base { 17class MessageLoop; 18} 19 20namespace net { 21class HostResolver; 22class MappedHostResolver; 23class NetworkDelegate; 24class NetLog; 25class ProxyConfigService; 26class URLRequestContextStorage; 27} 28 29namespace content { 30 31class 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