1 // Copyright 2014 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.
5 #ifndef IOS_WEB_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_
6 #define IOS_WEB_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_
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 "base/message_loop/message_loop_proxy.h"
13 #include "base/single_thread_task_runner.h"
14 #include "net/url_request/url_request_context_getter.h"
18 class MappedHostResolver
;
19 class NetworkDelegate
;
21 class ProxyConfigService
;
22 class TransportSecurityPersister
;
23 class URLRequestContext
;
24 class URLRequestContextStorage
;
29 class ShellURLRequestContextGetter
: public net::URLRequestContextGetter
{
31 ShellURLRequestContextGetter(
32 const base::FilePath
& base_path
,
33 const scoped_refptr
<base::SingleThreadTaskRunner
>& network_task_runner
,
34 const scoped_refptr
<base::SingleThreadTaskRunner
>& file_task_runner
,
35 const scoped_refptr
<base::MessageLoopProxy
>& cache_task_runner
);
37 // net::URLRequestContextGetter implementation.
38 net::URLRequestContext
* GetURLRequestContext() override
;
39 scoped_refptr
<base::SingleThreadTaskRunner
> GetNetworkTaskRunner()
43 ~ShellURLRequestContextGetter() override
;
46 base::FilePath base_path_
;
47 scoped_refptr
<base::SingleThreadTaskRunner
> file_task_runner_
;
48 scoped_refptr
<base::SingleThreadTaskRunner
> network_task_runner_
;
49 scoped_refptr
<base::MessageLoopProxy
> cache_task_runner_
;
50 scoped_ptr
<net::ProxyConfigService
> proxy_config_service_
;
51 scoped_ptr
<net::NetworkDelegate
> network_delegate_
;
52 scoped_ptr
<net::URLRequestContextStorage
> storage_
;
53 scoped_ptr
<net::URLRequestContext
> url_request_context_
;
54 scoped_ptr
<net::NetLog
> net_log_
;
55 scoped_ptr
<net::TransportSecurityPersister
> transport_security_persister_
;
57 DISALLOW_COPY_AND_ASSIGN(ShellURLRequestContextGetter
);
62 #endif // IOS_WEB_SHELL_SHELL_URL_REQUEST_CONTEXT_GETTER_H_