summaryrefslogtreecommitdiffstats
path: root/remoting/base
diff options
context:
space:
mode:
authorSergey Ulanov <sergeyu@chromium.org>2014-09-05 18:42:54 -0700
committerSergey Ulanov <sergeyu@chromium.org>2014-09-06 01:44:41 +0000
commit2eea434809cdc785f80a1281bea5e634a2cb474c (patch)
tree84cc7934e6099a1044dd2662a9e7dcc2c910eb13 /remoting/base
parent422789b69ca80bd858bac30d89e26a5fee47fe33 (diff)
downloadchromium_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.cc68
-rw-r--r--remoting/base/url_request_context_getter.h15
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;