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.
5 #ifndef MOJO_SHELL_URL_REQUEST_CONTEXT_GETTER_H_
6 #define MOJO_SHELL_URL_REQUEST_CONTEXT_GETTER_H_
8 #include "base/files/file_path.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop_proxy.h"
11 #include "net/base/network_delegate.h"
12 #include "net/url_request/url_request_context_getter.h"
13 #include "net/url_request/url_request_context_storage.h"
18 class URLRequestContextGetter : public net::URLRequestContextGetter {
20 URLRequestContextGetter(
21 base::FilePath base_path,
22 base::SingleThreadTaskRunner* network_task_runner,
23 base::SingleThreadTaskRunner* file_task_runner,
24 base::MessageLoopProxy* cache_task_runner,
25 scoped_ptr<net::NetworkDelegate> network_delegate);
27 virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE;
28 virtual scoped_refptr<base::SingleThreadTaskRunner>
29 GetNetworkTaskRunner() const OVERRIDE;
32 virtual ~URLRequestContextGetter();
35 base::FilePath base_path_;
36 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
37 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_;
38 scoped_refptr<base::MessageLoopProxy> cache_task_runner_;
39 scoped_ptr<net::NetworkDelegate> network_delegate_;
40 scoped_ptr<net::NetLog> net_log_;
41 scoped_ptr<net::URLRequestContextStorage> storage_;
42 scoped_ptr<net::URLRequestContext> url_request_context_;
44 DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetter);
50 #endif // MOJO_SHELL_URL_REQUEST_CONTEXT_GETTER_H_