Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1253)

Side by Side Diff: net/proxy/proxy_service.cc

Issue 1290243007: Shift URLRequestContextStorage over to taking scoped_ptrs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Paul_BuilderGrab
Patch Set: Sync'd to revision p349162. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/proxy/proxy_service.h ('k') | net/proxy/proxy_service_mojo.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/proxy/proxy_service.h" 5 #include "net/proxy/proxy_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 net_log_(net_log), 928 net_log_(net_log),
929 stall_proxy_auto_config_delay_( 929 stall_proxy_auto_config_delay_(
930 TimeDelta::FromMilliseconds(kDelayAfterNetworkChangesMs)), 930 TimeDelta::FromMilliseconds(kDelayAfterNetworkChangesMs)),
931 quick_check_enabled_(true) { 931 quick_check_enabled_(true) {
932 NetworkChangeNotifier::AddIPAddressObserver(this); 932 NetworkChangeNotifier::AddIPAddressObserver(this);
933 NetworkChangeNotifier::AddDNSObserver(this); 933 NetworkChangeNotifier::AddDNSObserver(this);
934 ResetConfigService(config_service); 934 ResetConfigService(config_service);
935 } 935 }
936 936
937 // static 937 // static
938 ProxyService* ProxyService::CreateUsingSystemProxyResolver( 938 scoped_ptr<ProxyService> ProxyService::CreateUsingSystemProxyResolver(
939 ProxyConfigService* proxy_config_service, 939 ProxyConfigService* proxy_config_service,
940 size_t num_pac_threads, 940 size_t num_pac_threads,
941 NetLog* net_log) { 941 NetLog* net_log) {
942 DCHECK(proxy_config_service); 942 DCHECK(proxy_config_service);
943 943
944 if (!ProxyResolverFactoryForSystem::IsSupported()) { 944 if (!ProxyResolverFactoryForSystem::IsSupported()) {
945 VLOG(1) << "PAC support disabled because there is no system implementation"; 945 VLOG(1) << "PAC support disabled because there is no system implementation";
946 return CreateWithoutProxyResolver(proxy_config_service, net_log); 946 return CreateWithoutProxyResolver(proxy_config_service, net_log);
947 } 947 }
948 948
949 if (num_pac_threads == 0) 949 if (num_pac_threads == 0)
950 num_pac_threads = kDefaultNumPacThreads; 950 num_pac_threads = kDefaultNumPacThreads;
951 951
952 return new ProxyService( 952 return make_scoped_ptr(new ProxyService(
953 proxy_config_service, 953 proxy_config_service,
954 make_scoped_ptr(new ProxyResolverFactoryForSystem(num_pac_threads)), 954 make_scoped_ptr(new ProxyResolverFactoryForSystem(num_pac_threads)),
955 net_log); 955 net_log));
956 } 956 }
957 957
958 // static 958 // static
959 ProxyService* ProxyService::CreateWithoutProxyResolver( 959 scoped_ptr<ProxyService> ProxyService::CreateWithoutProxyResolver(
960 ProxyConfigService* proxy_config_service, 960 ProxyConfigService* proxy_config_service,
961 NetLog* net_log) { 961 NetLog* net_log) {
962 return new ProxyService( 962 return make_scoped_ptr(new ProxyService(
963 proxy_config_service, 963 proxy_config_service,
964 make_scoped_ptr(new ProxyResolverFactoryForNullResolver), net_log); 964 make_scoped_ptr(new ProxyResolverFactoryForNullResolver), net_log));
965 } 965 }
966 966
967 // static 967 // static
968 ProxyService* ProxyService::CreateFixed(const ProxyConfig& pc) { 968 scoped_ptr<ProxyService> ProxyService::CreateFixed(const ProxyConfig& pc) {
969 // TODO(eroman): This isn't quite right, won't work if |pc| specifies 969 // TODO(eroman): This isn't quite right, won't work if |pc| specifies
970 // a PAC script. 970 // a PAC script.
971 return CreateUsingSystemProxyResolver(new ProxyConfigServiceFixed(pc), 971 return CreateUsingSystemProxyResolver(new ProxyConfigServiceFixed(pc),
972 0, NULL); 972 0, NULL);
973 } 973 }
974 974
975 // static 975 // static
976 ProxyService* ProxyService::CreateFixed(const std::string& proxy) { 976 scoped_ptr<ProxyService> ProxyService::CreateFixed(const std::string& proxy) {
977 ProxyConfig proxy_config; 977 ProxyConfig proxy_config;
978 proxy_config.proxy_rules().ParseFromString(proxy); 978 proxy_config.proxy_rules().ParseFromString(proxy);
979 return ProxyService::CreateFixed(proxy_config); 979 return ProxyService::CreateFixed(proxy_config);
980 } 980 }
981 981
982 // static 982 // static
983 ProxyService* ProxyService::CreateDirect() { 983 scoped_ptr<ProxyService> ProxyService::CreateDirect() {
984 return CreateDirectWithNetLog(NULL); 984 return CreateDirectWithNetLog(NULL);
985 } 985 }
986 986
987 ProxyService* ProxyService::CreateDirectWithNetLog(NetLog* net_log) { 987 scoped_ptr<ProxyService> ProxyService::CreateDirectWithNetLog(NetLog* net_log) {
988 // Use direct connections. 988 // Use direct connections.
989 return new ProxyService( 989 return make_scoped_ptr(new ProxyService(
990 new ProxyConfigServiceDirect, 990 new ProxyConfigServiceDirect,
991 make_scoped_ptr(new ProxyResolverFactoryForNullResolver), net_log); 991 make_scoped_ptr(new ProxyResolverFactoryForNullResolver), net_log));
992 } 992 }
993 993
994 // static 994 // static
995 ProxyService* ProxyService::CreateFixedFromPacResult( 995 scoped_ptr<ProxyService> ProxyService::CreateFixedFromPacResult(
996 const std::string& pac_string) { 996 const std::string& pac_string) {
997
998 // We need the settings to contain an "automatic" setting, otherwise the 997 // We need the settings to contain an "automatic" setting, otherwise the
999 // ProxyResolver dependency we give it will never be used. 998 // ProxyResolver dependency we give it will never be used.
1000 scoped_ptr<ProxyConfigService> proxy_config_service( 999 scoped_ptr<ProxyConfigService> proxy_config_service(
1001 new ProxyConfigServiceFixed(ProxyConfig::CreateAutoDetect())); 1000 new ProxyConfigServiceFixed(ProxyConfig::CreateAutoDetect()));
1002 1001
1003 return new ProxyService( 1002 return make_scoped_ptr(new ProxyService(
1004 proxy_config_service.release(), 1003 proxy_config_service.release(),
1005 make_scoped_ptr(new ProxyResolverFactoryForPacResult(pac_string)), NULL); 1004 make_scoped_ptr(new ProxyResolverFactoryForPacResult(pac_string)), NULL));
1006 } 1005 }
1007 1006
1008 int ProxyService::ResolveProxy(const GURL& raw_url, 1007 int ProxyService::ResolveProxy(const GURL& raw_url,
1009 int load_flags, 1008 int load_flags,
1010 ProxyInfo* result, 1009 ProxyInfo* result,
1011 const CompletionCallback& callback, 1010 const CompletionCallback& callback,
1012 PacRequest** pac_request, 1011 PacRequest** pac_request,
1013 NetworkDelegate* network_delegate, 1012 NetworkDelegate* network_delegate,
1014 const BoundNetLog& net_log) { 1013 const BoundNetLog& net_log) {
1015 DCHECK(!callback.is_null()); 1014 DCHECK(!callback.is_null());
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
1644 State previous_state = ResetProxyConfig(false); 1643 State previous_state = ResetProxyConfig(false);
1645 if (previous_state != STATE_NONE) 1644 if (previous_state != STATE_NONE)
1646 ApplyProxyConfigIfAvailable(); 1645 ApplyProxyConfigIfAvailable();
1647 } 1646 }
1648 1647
1649 void ProxyService::OnDNSChanged() { 1648 void ProxyService::OnDNSChanged() {
1650 OnIPAddressChanged(); 1649 OnIPAddressChanged();
1651 } 1650 }
1652 1651
1653 } // namespace net 1652 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_service.h ('k') | net/proxy/proxy_service_mojo.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698