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