1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "remoting/base/url_request_context_getter.h"
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/single_thread_task_runner.h"
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "net/proxy/proxy_config_service.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "net/url_request/url_request_context.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "net/url_request/url_request_context_builder.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "remoting/base/vlog_net_log.h"
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace remoting {
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
15116680a4aac90f2aa7413d9095a592090648e557Ben MurdochURLRequestContextGetter::URLRequestContextGetter(
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    scoped_refptr<base::SingleThreadTaskRunner> network_task_runner,
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    scoped_refptr<base::SingleThreadTaskRunner> file_task_runner)
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    : network_task_runner_(network_task_runner) {
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  proxy_config_service_.reset(net::ProxyService::CreateSystemProxyConfigService(
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      network_task_runner_, file_task_runner));
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnet::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() {
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (!url_request_context_.get()) {
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    net::URLRequestContextBuilder builder;
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    builder.set_net_log(new VlogNetLog());
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    builder.DisableHttpCache();
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    builder.set_proxy_config_service(proxy_config_service_.release());
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    url_request_context_.reset(builder.Build());
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return url_request_context_.get();
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdochscoped_refptr<base::SingleThreadTaskRunner>
35116680a4aac90f2aa7413d9095a592090648e557Ben MurdochURLRequestContextGetter::GetNetworkTaskRunner() const {
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return network_task_runner_;
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
39116680a4aac90f2aa7413d9095a592090648e557Ben MurdochURLRequestContextGetter::~URLRequestContextGetter() {
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace remoting
43