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.
4
5#ifndef REMOTING_BASE_URL_REQUEST_CONTEXT_GETTER_H_
6#define REMOTING_BASE_URL_REQUEST_CONTEXT_GETTER_H_
7
8#include "base/basictypes.h"
9#include "base/memory/scoped_ptr.h"
10#include "net/url_request/url_request_context_getter.h"
11
12namespace base {
13class SingleThreadTaskRunner;
14}  // namespace base
15
16namespace net {
17class ProxyConfigService;
18}  // namespace net
19
20namespace remoting {
21
22class URLRequestContextGetter : public net::URLRequestContextGetter {
23 public:
24  URLRequestContextGetter(
25      scoped_refptr<base::SingleThreadTaskRunner> network_task_runner,
26      scoped_refptr<base::SingleThreadTaskRunner> file_task_runner);
27
28  // Overridden from net::URLRequestContextGetter:
29  virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE;
30  virtual scoped_refptr<base::SingleThreadTaskRunner>
31      GetNetworkTaskRunner() const OVERRIDE;
32
33 protected:
34  virtual ~URLRequestContextGetter();
35
36 private:
37  scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_;
38  scoped_ptr<net::ProxyConfigService> proxy_config_service_;
39  scoped_ptr<net::URLRequestContext> url_request_context_;
40
41  DISALLOW_COPY_AND_ASSIGN(URLRequestContextGetter);
42};
43
44}  // namespace remoting
45
46#endif  // REMOTING_BASE_URL_REQUEST_CONTEXT_GETTER_H_
47