// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ios/chrome/browser/net/proxy_service_factory.h" #include #include "components/proxy_config/pref_proxy_config_tracker_impl.h" #include "ios/web/public/web_thread.h" #include "net/proxy/proxy_config_service.h" #include "net/proxy/proxy_service.h" namespace ios { // static scoped_ptr ProxyServiceFactory::CreateProxyConfigService(PrefProxyConfigTracker* tracker) { scoped_ptr base_service( net::ProxyService::CreateSystemProxyConfigService( web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), web::WebThread::GetTaskRunnerForThread(web::WebThread::FILE))); return tracker->CreateTrackingProxyConfigService(std::move(base_service)); } // static scoped_ptr ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile( PrefService* browser_state_prefs, PrefService* local_state_prefs) { return make_scoped_ptr(new PrefProxyConfigTrackerImpl( browser_state_prefs, web::WebThread::GetTaskRunnerForThread(web::WebThread::IO))); } // static scoped_ptr ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState( PrefService* local_state_prefs) { return make_scoped_ptr(new PrefProxyConfigTrackerImpl( local_state_prefs, web::WebThread::GetTaskRunnerForThread(web::WebThread::IO))); } // static scoped_ptr ProxyServiceFactory::CreateProxyService( net::NetLog* net_log, net::URLRequestContext* context, net::NetworkDelegate* network_delegate, scoped_ptr proxy_config_service, bool quick_check_enabled) { DCHECK_CURRENTLY_ON(web::WebThread::IO); scoped_ptr proxy_service( net::ProxyService::CreateUsingSystemProxyResolver( std::move(proxy_config_service), 0, net_log)); proxy_service->set_quick_check_enabled(quick_check_enabled); return proxy_service; } } // namespace ios