diff options
author | Sergey Ulanov <sergeyu@chromium.org> | 2014-09-05 18:42:54 -0700 |
---|---|---|
committer | Sergey Ulanov <sergeyu@chromium.org> | 2014-09-06 01:44:41 +0000 |
commit | 2eea434809cdc785f80a1281bea5e634a2cb474c (patch) | |
tree | 84cc7934e6099a1044dd2662a9e7dcc2c910eb13 /remoting/base | |
parent | 422789b69ca80bd858bac30d89e26a5fee47fe33 (diff) | |
download | chromium_src-2eea434809cdc785f80a1281bea5e634a2cb474c.zip chromium_src-2eea434809cdc785f80a1281bea5e634a2cb474c.tar.gz chromium_src-2eea434809cdc785f80a1281bea5e634a2cb474c.tar.bz2 |
Use ProxyConfigServiceLinux in the chromoting host to configure proxy.
Previously chromoting host wasn't using proxies on linux because
ProxyConfigServiceLinux doesn't work in NPAPI plugins. Now it's not
a problem because we no longer support NPAPI.
BUG=410521,125104
R=jamiewalch@chromium.org, mmenke@chromium.org
Review URL: https://codereview.chromium.org/542473002
Cr-Commit-Position: refs/heads/master@{#293602}
Diffstat (limited to 'remoting/base')
-rw-r--r-- | remoting/base/url_request_context_getter.cc | 68 | ||||
-rw-r--r-- | remoting/base/url_request_context_getter.h | 15 |
2 files changed, 13 insertions, 70 deletions
diff --git a/remoting/base/url_request_context_getter.cc b/remoting/base/url_request_context_getter.cc index b07ccf9..f61aa9b 100644 --- a/remoting/base/url_request_context_getter.cc +++ b/remoting/base/url_request_context_getter.cc @@ -4,76 +4,20 @@ #include "remoting/base/url_request_context_getter.h" -#include "base/message_loop/message_loop_proxy.h" +#include "base/single_thread_task_runner.h" #include "net/proxy/proxy_config_service.h" +#include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" #include "remoting/base/vlog_net_log.h" -#if defined(OS_WIN) -#include "net/proxy/proxy_config_service_win.h" -#elif defined(OS_IOS) -#include "net/proxy/proxy_config_service_ios.h" -#elif defined(OS_MACOSX) -#include "net/proxy/proxy_config_service_mac.h" -#elif defined(OS_LINUX) && !defined(OS_CHROMEOS) -#include "net/proxy/proxy_config_service_linux.h" -#endif - namespace remoting { -namespace { - -// Config getter that always returns direct settings. -class ProxyConfigServiceDirect : public net::ProxyConfigService { - public: - // ProxyConfigService implementation: - virtual void AddObserver(Observer* observer) OVERRIDE {} - virtual void RemoveObserver(Observer* observer) OVERRIDE {} - virtual ConfigAvailability GetLatestProxyConfig( - net::ProxyConfig* config) OVERRIDE { - *config = net::ProxyConfig::CreateDirect(); - return CONFIG_VALID; - } -}; - -net::ProxyConfigService* CreateSystemProxyConfigService( - base::SingleThreadTaskRunner* io_thread_task_runner) { -#if defined(OS_WIN) - return new net::ProxyConfigServiceWin(); -#elif defined(OS_IOS) - return new net::ProxyConfigServiceIOS(); -#elif defined(OS_MACOSX) - return new net::ProxyConfigServiceMac(io_thread_task_runner); -#elif defined(OS_CHROMEOS) - NOTREACHED() << "ChromeOS is not a supported target for Chromoting host"; - return NULL; -#elif defined(OS_LINUX) - // TODO(sergeyu): Currently ProxyConfigServiceLinux depends on - // base::OneShotTimer that doesn't work properly on main NPAPI - // thread. Fix that and uncomment the code below. - // - // net::ProxyConfigServiceLinux* linux_config_service = - // new net::ProxyConfigServiceLinux(); - // linux_config_service->SetupAndFetchInitialConfig( - // ui_message_loop_, io_message_loop->message_loop_proxy(), - // file_message_loop); - - // return linux_config_service; - return new ProxyConfigServiceDirect(); -#else - LOG(WARNING) << "Failed to choose a system proxy settings fetcher " - "for this platform."; - return new ProxyConfigServiceDirect(); -#endif -} - -} // namespace - URLRequestContextGetter::URLRequestContextGetter( - scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) + scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner) : network_task_runner_(network_task_runner) { - proxy_config_service_.reset(CreateSystemProxyConfigService( - network_task_runner_.get())); + proxy_config_service_.reset(net::ProxyService::CreateSystemProxyConfigService( + network_task_runner_, file_task_runner)); } net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { diff --git a/remoting/base/url_request_context_getter.h b/remoting/base/url_request_context_getter.h index 13de06a..2cdc8de 100644 --- a/remoting/base/url_request_context_getter.h +++ b/remoting/base/url_request_context_getter.h @@ -5,26 +5,25 @@ #ifndef REMOTING_BASE_URL_REQUEST_CONTEXT_GETTER_H_ #define REMOTING_BASE_URL_REQUEST_CONTEXT_GETTER_H_ -#include <string> - #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" -#include "base/message_loop/message_loop.h" -#include "net/proxy/proxy_config_service.h" -#include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h" -#include "net/url_request/url_request_context_storage.h" namespace base { -class MessageLoopProxy; +class SingleThreadTaskRunner; } // namespace base +namespace net { +class ProxyConfigService; +} // namespace net + namespace remoting { class URLRequestContextGetter : public net::URLRequestContextGetter { public: URLRequestContextGetter( - scoped_refptr<base::SingleThreadTaskRunner> network_task_runner); + scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner); // Overridden from net::URLRequestContextGetter: virtual net::URLRequestContext* GetURLRequestContext() OVERRIDE; |