| Index: net/proxy/proxy_service.cc
|
| diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc
|
| index 9989b8221cdc09944ce3e14622d3d088851b6f7e..6e6d6e37e5b72545237e4cf5c604060c44817ab1 100644
|
| --- a/net/proxy/proxy_service.cc
|
| +++ b/net/proxy/proxy_service.cc
|
| @@ -1318,47 +1318,37 @@ void ProxyService::ForceReloadProxyConfig() {
|
| ApplyProxyConfigIfAvailable();
|
| }
|
|
|
| +void ProxyService::StartTearDown() {
|
| + config_service_->StartTearDown();
|
| +}
|
| +
|
| // static
|
| ProxyConfigService* ProxyService::CreateSystemProxyConfigService(
|
| - base::SingleThreadTaskRunner* io_thread_task_runner,
|
| + base::SingleThreadTaskRunner* glib_thread_task_runner,
|
| MessageLoop* file_loop) {
|
| #if defined(OS_WIN)
|
| return new ProxyConfigServiceWin();
|
| #elif defined(OS_IOS)
|
| return new ProxyConfigServiceIOS();
|
| #elif defined(OS_MACOSX)
|
| - return new ProxyConfigServiceMac(io_thread_task_runner);
|
| + return new ProxyConfigServiceMac(
|
| + MessageLoopForIO::current()->message_loop_proxy());
|
| #elif defined(OS_CHROMEOS)
|
| LOG(ERROR) << "ProxyConfigService for ChromeOS should be created in "
|
| << "profile_io_data.cc::CreateProxyConfigService and this should "
|
| << "be used only for examples.";
|
| return new UnsetProxyConfigService;
|
| #elif defined(OS_LINUX)
|
| - ProxyConfigServiceLinux* linux_config_service =
|
| - new ProxyConfigServiceLinux();
|
| -
|
| - // Assume we got called on the thread that runs the default glib
|
| - // main loop, so the current thread is where we should be running
|
| - // gconf calls from.
|
| - scoped_refptr<base::SingleThreadTaskRunner> glib_thread_task_runner =
|
| - base::ThreadTaskRunnerHandle::Get();
|
| -
|
| // The file loop should be a MessageLoopForIO on Linux.
|
| DCHECK_EQ(MessageLoop::TYPE_IO, file_loop->type());
|
| -
|
| - // Synchronously fetch the current proxy config (since we are
|
| - // running on glib_default_loop). Additionally register for
|
| - // notifications (delivered in either |glib_default_loop| or
|
| - // |file_loop|) to keep us updated when the proxy config changes.
|
| - linux_config_service->SetupAndFetchInitialConfig(
|
| - glib_thread_task_runner, io_thread_task_runner,
|
| + return new ProxyConfigServiceLinux(
|
| + glib_thread_task_runner,
|
| + MessageLoopForIO::current()->message_loop_proxy(),
|
| static_cast<MessageLoopForIO*>(file_loop));
|
| -
|
| - return linux_config_service;
|
| #elif defined(OS_ANDROID)
|
| return new ProxyConfigServiceAndroid(
|
| - io_thread_task_runner,
|
| - MessageLoopForUI::current()->message_loop_proxy());
|
| + glib_thread_task_runner,
|
| + MessageLoopForIO::current()->message_loop_proxy());
|
| #else
|
| LOG(WARNING) << "Failed to choose a system proxy settings fetcher "
|
| "for this platform.";
|
|
|