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

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

Issue 2259823002: Re-write many calls to WrapUnique() with MakeUnique() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 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_script_fetcher_impl_unittest.cc ('k') | net/proxy/proxy_service_mojo.cc » ('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 #include <cmath> 8 #include <cmath>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 229
230 // Creates ProxyResolvers using a platform-specific implementation. 230 // Creates ProxyResolvers using a platform-specific implementation.
231 class ProxyResolverFactoryForSystem : public MultiThreadedProxyResolverFactory { 231 class ProxyResolverFactoryForSystem : public MultiThreadedProxyResolverFactory {
232 public: 232 public:
233 explicit ProxyResolverFactoryForSystem(size_t max_num_threads) 233 explicit ProxyResolverFactoryForSystem(size_t max_num_threads)
234 : MultiThreadedProxyResolverFactory(max_num_threads, 234 : MultiThreadedProxyResolverFactory(max_num_threads,
235 false /*expects_pac_bytes*/) {} 235 false /*expects_pac_bytes*/) {}
236 236
237 std::unique_ptr<ProxyResolverFactory> CreateProxyResolverFactory() override { 237 std::unique_ptr<ProxyResolverFactory> CreateProxyResolverFactory() override {
238 #if defined(OS_WIN) 238 #if defined(OS_WIN)
239 return base::WrapUnique(new ProxyResolverFactoryWinHttp()); 239 return base::MakeUnique<ProxyResolverFactoryWinHttp>();
240 #elif defined(OS_MACOSX) 240 #elif defined(OS_MACOSX)
241 return base::WrapUnique(new ProxyResolverFactoryMac()); 241 return base::MakeUnique<ProxyResolverFactoryMac>();
242 #else 242 #else
243 NOTREACHED(); 243 NOTREACHED();
244 return NULL; 244 return NULL;
245 #endif 245 #endif
246 } 246 }
247 247
248 static bool IsSupported() { 248 static bool IsSupported() {
249 #if defined(OS_WIN) || defined(OS_MACOSX) 249 #if defined(OS_WIN) || defined(OS_MACOSX)
250 return true; 250 return true;
251 #else 251 #else
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 if (!ProxyResolverFactoryForSystem::IsSupported()) { 971 if (!ProxyResolverFactoryForSystem::IsSupported()) {
972 VLOG(1) << "PAC support disabled because there is no system implementation"; 972 VLOG(1) << "PAC support disabled because there is no system implementation";
973 return CreateWithoutProxyResolver(std::move(proxy_config_service), net_log); 973 return CreateWithoutProxyResolver(std::move(proxy_config_service), net_log);
974 } 974 }
975 975
976 if (num_pac_threads == 0) 976 if (num_pac_threads == 0)
977 num_pac_threads = kDefaultNumPacThreads; 977 num_pac_threads = kDefaultNumPacThreads;
978 978
979 return base::WrapUnique(new ProxyService( 979 return base::WrapUnique(new ProxyService(
980 std::move(proxy_config_service), 980 std::move(proxy_config_service),
981 base::WrapUnique(new ProxyResolverFactoryForSystem(num_pac_threads)), 981 base::MakeUnique<ProxyResolverFactoryForSystem>(num_pac_threads),
982 net_log)); 982 net_log));
983 } 983 }
984 984
985 // static 985 // static
986 std::unique_ptr<ProxyService> ProxyService::CreateWithoutProxyResolver( 986 std::unique_ptr<ProxyService> ProxyService::CreateWithoutProxyResolver(
987 std::unique_ptr<ProxyConfigService> proxy_config_service, 987 std::unique_ptr<ProxyConfigService> proxy_config_service,
988 NetLog* net_log) { 988 NetLog* net_log) {
989 return base::WrapUnique(new ProxyService( 989 return base::WrapUnique(new ProxyService(
990 std::move(proxy_config_service), 990 std::move(proxy_config_service),
991 base::WrapUnique(new ProxyResolverFactoryForNullResolver), net_log)); 991 base::WrapUnique(new ProxyResolverFactoryForNullResolver), net_log));
992 } 992 }
993 993
994 // static 994 // static
995 std::unique_ptr<ProxyService> ProxyService::CreateFixed(const ProxyConfig& pc) { 995 std::unique_ptr<ProxyService> ProxyService::CreateFixed(const ProxyConfig& pc) {
996 // TODO(eroman): This isn't quite right, won't work if |pc| specifies 996 // TODO(eroman): This isn't quite right, won't work if |pc| specifies
997 // a PAC script. 997 // a PAC script.
998 return CreateUsingSystemProxyResolver( 998 return CreateUsingSystemProxyResolver(
999 base::WrapUnique(new ProxyConfigServiceFixed(pc)), 0, NULL); 999 base::MakeUnique<ProxyConfigServiceFixed>(pc), 0, NULL);
1000 } 1000 }
1001 1001
1002 // static 1002 // static
1003 std::unique_ptr<ProxyService> ProxyService::CreateFixed( 1003 std::unique_ptr<ProxyService> ProxyService::CreateFixed(
1004 const std::string& proxy) { 1004 const std::string& proxy) {
1005 ProxyConfig proxy_config; 1005 ProxyConfig proxy_config;
1006 proxy_config.proxy_rules().ParseFromString(proxy); 1006 proxy_config.proxy_rules().ParseFromString(proxy);
1007 return ProxyService::CreateFixed(proxy_config); 1007 return ProxyService::CreateFixed(proxy_config);
1008 } 1008 }
1009 1009
(...skipping 13 matching lines...) Expand all
1023 // static 1023 // static
1024 std::unique_ptr<ProxyService> ProxyService::CreateFixedFromPacResult( 1024 std::unique_ptr<ProxyService> ProxyService::CreateFixedFromPacResult(
1025 const std::string& pac_string) { 1025 const std::string& pac_string) {
1026 // We need the settings to contain an "automatic" setting, otherwise the 1026 // We need the settings to contain an "automatic" setting, otherwise the
1027 // ProxyResolver dependency we give it will never be used. 1027 // ProxyResolver dependency we give it will never be used.
1028 std::unique_ptr<ProxyConfigService> proxy_config_service( 1028 std::unique_ptr<ProxyConfigService> proxy_config_service(
1029 new ProxyConfigServiceFixed(ProxyConfig::CreateAutoDetect())); 1029 new ProxyConfigServiceFixed(ProxyConfig::CreateAutoDetect()));
1030 1030
1031 return base::WrapUnique(new ProxyService( 1031 return base::WrapUnique(new ProxyService(
1032 std::move(proxy_config_service), 1032 std::move(proxy_config_service),
1033 base::WrapUnique(new ProxyResolverFactoryForPacResult(pac_string)), 1033 base::MakeUnique<ProxyResolverFactoryForPacResult>(pac_string), NULL));
1034 NULL));
1035 } 1034 }
1036 1035
1037 int ProxyService::ResolveProxy(const GURL& raw_url, 1036 int ProxyService::ResolveProxy(const GURL& raw_url,
1038 const std::string& method, 1037 const std::string& method,
1039 ProxyInfo* result, 1038 ProxyInfo* result,
1040 const CompletionCallback& callback, 1039 const CompletionCallback& callback,
1041 PacRequest** pac_request, 1040 PacRequest** pac_request,
1042 ProxyDelegate* proxy_delegate, 1041 ProxyDelegate* proxy_delegate,
1043 const BoundNetLog& net_log) { 1042 const BoundNetLog& net_log) {
1044 DCHECK(!callback.is_null()); 1043 DCHECK(!callback.is_null());
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
1517 ResetProxyConfig(false); 1516 ResetProxyConfig(false);
1518 ApplyProxyConfigIfAvailable(); 1517 ApplyProxyConfigIfAvailable();
1519 } 1518 }
1520 1519
1521 // static 1520 // static
1522 std::unique_ptr<ProxyConfigService> 1521 std::unique_ptr<ProxyConfigService>
1523 ProxyService::CreateSystemProxyConfigService( 1522 ProxyService::CreateSystemProxyConfigService(
1524 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner, 1523 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
1525 const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner) { 1524 const scoped_refptr<base::SingleThreadTaskRunner>& file_task_runner) {
1526 #if defined(OS_WIN) 1525 #if defined(OS_WIN)
1527 return base::WrapUnique(new ProxyConfigServiceWin()); 1526 return base::MakeUnique<ProxyConfigServiceWin>();
1528 #elif defined(OS_IOS) 1527 #elif defined(OS_IOS)
1529 return base::WrapUnique(new ProxyConfigServiceIOS()); 1528 return base::MakeUnique<ProxyConfigServiceIOS>();
1530 #elif defined(OS_MACOSX) 1529 #elif defined(OS_MACOSX)
1531 return base::WrapUnique(new ProxyConfigServiceMac(io_task_runner)); 1530 return base::MakeUnique<ProxyConfigServiceMac>(io_task_runner);
1532 #elif defined(OS_CHROMEOS) 1531 #elif defined(OS_CHROMEOS)
1533 LOG(ERROR) << "ProxyConfigService for ChromeOS should be created in " 1532 LOG(ERROR) << "ProxyConfigService for ChromeOS should be created in "
1534 << "profile_io_data.cc::CreateProxyConfigService and this should " 1533 << "profile_io_data.cc::CreateProxyConfigService and this should "
1535 << "be used only for examples."; 1534 << "be used only for examples.";
1536 return base::WrapUnique(new UnsetProxyConfigService); 1535 return base::WrapUnique(new UnsetProxyConfigService);
1537 #elif defined(OS_LINUX) 1536 #elif defined(OS_LINUX)
1538 std::unique_ptr<ProxyConfigServiceLinux> linux_config_service( 1537 std::unique_ptr<ProxyConfigServiceLinux> linux_config_service(
1539 new ProxyConfigServiceLinux()); 1538 new ProxyConfigServiceLinux());
1540 1539
1541 // Assume we got called on the thread that runs the default glib 1540 // Assume we got called on the thread that runs the default glib
1542 // main loop, so the current thread is where we should be running 1541 // main loop, so the current thread is where we should be running
1543 // gconf calls from. 1542 // gconf calls from.
1544 scoped_refptr<base::SingleThreadTaskRunner> glib_thread_task_runner = 1543 scoped_refptr<base::SingleThreadTaskRunner> glib_thread_task_runner =
1545 base::ThreadTaskRunnerHandle::Get(); 1544 base::ThreadTaskRunnerHandle::Get();
1546 1545
1547 // Synchronously fetch the current proxy config (since we are running on 1546 // Synchronously fetch the current proxy config (since we are running on
1548 // glib_default_loop). Additionally register for notifications (delivered in 1547 // glib_default_loop). Additionally register for notifications (delivered in
1549 // either |glib_default_loop| or |file_task_runner|) to keep us updated when 1548 // either |glib_default_loop| or |file_task_runner|) to keep us updated when
1550 // the proxy config changes. 1549 // the proxy config changes.
1551 linux_config_service->SetupAndFetchInitialConfig( 1550 linux_config_service->SetupAndFetchInitialConfig(
1552 glib_thread_task_runner, io_task_runner, file_task_runner); 1551 glib_thread_task_runner, io_task_runner, file_task_runner);
1553 1552
1554 return std::move(linux_config_service); 1553 return std::move(linux_config_service);
1555 #elif defined(OS_ANDROID) 1554 #elif defined(OS_ANDROID)
1556 return base::WrapUnique(new ProxyConfigServiceAndroid( 1555 return base::MakeUnique<ProxyConfigServiceAndroid>(
1557 io_task_runner, base::ThreadTaskRunnerHandle::Get())); 1556 io_task_runner, base::ThreadTaskRunnerHandle::Get());
1558 #else 1557 #else
1559 LOG(WARNING) << "Failed to choose a system proxy settings fetcher " 1558 LOG(WARNING) << "Failed to choose a system proxy settings fetcher "
1560 "for this platform."; 1559 "for this platform.";
1561 return base::WrapUnique(new ProxyConfigServiceDirect()); 1560 return base::MakeUnique<ProxyConfigServiceDirect>();
1562 #endif 1561 #endif
1563 } 1562 }
1564 1563
1565 // static 1564 // static
1566 const ProxyService::PacPollPolicy* ProxyService::set_pac_script_poll_policy( 1565 const ProxyService::PacPollPolicy* ProxyService::set_pac_script_poll_policy(
1567 const PacPollPolicy* policy) { 1566 const PacPollPolicy* policy) {
1568 return ProxyScriptDeciderPoller::set_policy(policy); 1567 return ProxyScriptDeciderPoller::set_policy(policy);
1569 } 1568 }
1570 1569
1571 // static 1570 // static
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
1670 State previous_state = ResetProxyConfig(false); 1669 State previous_state = ResetProxyConfig(false);
1671 if (previous_state != STATE_NONE) 1670 if (previous_state != STATE_NONE)
1672 ApplyProxyConfigIfAvailable(); 1671 ApplyProxyConfigIfAvailable();
1673 } 1672 }
1674 1673
1675 void ProxyService::OnDNSChanged() { 1674 void ProxyService::OnDNSChanged() {
1676 OnIPAddressChanged(); 1675 OnIPAddressChanged();
1677 } 1676 }
1678 1677
1679 } // namespace net 1678 } // namespace net
OLDNEW
« no previous file with comments | « net/proxy/proxy_script_fetcher_impl_unittest.cc ('k') | net/proxy/proxy_service_mojo.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698