Index: chrome/browser/profiles/profile_io_data.cc |
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc |
index de4b20563fef5216d7259e65463c93292c9de07e..7d81326c930b51ef86482aacfed82b93839a07f0 100644 |
--- a/chrome/browser/profiles/profile_io_data.cc |
+++ b/chrome/browser/profiles/profile_io_data.cc |
@@ -14,6 +14,7 @@ |
#include "chrome/browser/io_thread.h" |
#include "chrome/browser/net/chrome_cookie_notification_details.h" |
#include "chrome/browser/net/pref_proxy_config_service.h" |
+#include "chrome/browser/net/proxy_service_factory.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/extensions/user_script_master.h" |
@@ -26,12 +27,6 @@ |
#include "net/proxy/proxy_script_fetcher_impl.h" |
#include "net/proxy/proxy_service.h" |
-#if defined(OS_CHROMEOS) |
-#include "chrome/browser/chromeos/cros/cros_library.h" |
-#include "chrome/browser/chromeos/cros/libcros_service_library.h" |
-#include "chrome/browser/chromeos/proxy_config_service.h" |
-#endif // defined(OS_CHROMEOS) |
- |
namespace { |
// ---------------------------------------------------------------------------- |
@@ -172,7 +167,9 @@ void ProfileIOData::InitializeProfileParams(Profile* profile, |
params->prerender_manager = profile->GetPrerenderManager(); |
params->protocol_handler_registry = profile->GetProtocolHandlerRegistry(); |
- params->proxy_config_service.reset(CreateProxyConfigService(profile)); |
+ params->proxy_config_service.reset( |
+ ProxyServiceFactory::CreateProxyConfigService( |
+ profile->GetProxyConfigTracker())); |
params->profile_id = profile->GetRuntimeId(); |
} |
@@ -259,88 +256,3 @@ void ProfileIOData::ApplyProfileParamsToContext( |
context->set_protocol_handler_registry( |
profile_params.protocol_handler_registry); |
} |
- |
-// static |
-net::ProxyConfigService* ProfileIOData::CreateProxyConfigService( |
- Profile* profile) { |
- // The linux gconf-based proxy settings getter relies on being initialized |
- // from the UI thread. |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- |
- // Create a baseline service that provides proxy configuration in case nothing |
- // is configured through prefs (Note: prefs include command line and |
- // configuration policy). |
- net::ProxyConfigService* base_service = NULL; |
- |
- // TODO(port): the IO and FILE message loops are only used by Linux. Can |
- // that code be moved to chrome/browser instead of being in net, so that it |
- // can use BrowserThread instead of raw MessageLoop pointers? See bug 25354. |
-#if defined(OS_CHROMEOS) |
- base_service = new chromeos::ProxyConfigService( |
- profile->GetChromeOSProxyConfigServiceImpl()); |
-#else |
- base_service = net::ProxyService::CreateSystemProxyConfigService( |
- g_browser_process->io_thread()->message_loop(), |
- g_browser_process->file_thread()->message_loop()); |
-#endif // defined(OS_CHROMEOS) |
- |
- return new PrefProxyConfigService(profile->GetProxyConfigTracker(), |
- base_service); |
-} |
- |
-// static |
-net::ProxyService* ProfileIOData::CreateProxyService( |
- net::NetLog* net_log, |
- net::URLRequestContext* context, |
- net::ProxyConfigService* proxy_config_service, |
- const CommandLine& command_line) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- |
- bool use_v8 = !command_line.HasSwitch(switches::kWinHttpProxyResolver); |
- if (use_v8 && command_line.HasSwitch(switches::kSingleProcess)) { |
- // See the note about V8 multithreading in net/proxy/proxy_resolver_v8.h |
- // to understand why we have this limitation. |
- LOG(ERROR) << "Cannot use V8 Proxy resolver in single process mode."; |
- use_v8 = false; // Fallback to non-v8 implementation. |
- } |
- |
- size_t num_pac_threads = 0u; // Use default number of threads. |
- |
- // Check the command line for an override on the number of proxy resolver |
- // threads to use. |
- if (command_line.HasSwitch(switches::kNumPacThreads)) { |
- std::string s = command_line.GetSwitchValueASCII(switches::kNumPacThreads); |
- |
- // Parse the switch (it should be a positive integer formatted as decimal). |
- int n; |
- if (base::StringToInt(s, &n) && n > 0) { |
- num_pac_threads = static_cast<size_t>(n); |
- } else { |
- LOG(ERROR) << "Invalid switch for number of PAC threads: " << s; |
- } |
- } |
- |
- net::ProxyService* proxy_service; |
- if (use_v8) { |
- proxy_service = net::ProxyService::CreateUsingV8ProxyResolver( |
- proxy_config_service, |
- num_pac_threads, |
- new net::ProxyScriptFetcherImpl(context), |
- context->host_resolver(), |
- net_log); |
- } else { |
- proxy_service = net::ProxyService::CreateUsingSystemProxyResolver( |
- proxy_config_service, |
- num_pac_threads, |
- net_log); |
- } |
- |
-#if defined(OS_CHROMEOS) |
- if (chromeos::CrosLibrary::Get()->EnsureLoaded()) { |
- chromeos::CrosLibrary::Get()->GetLibCrosServiceLibrary()-> |
- RegisterNetworkProxyHandler(proxy_service); |
- } |
-#endif // defined(OS_CHROMEOS) |
- |
- return proxy_service; |
-} |