Home | History | Annotate | Download | only in browser
      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