summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-18 22:02:21 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-18 22:02:21 +0000
commit6dfc67bdd9eb27a8dcf6fe74806d4d26f8534cd2 (patch)
tree661f4db41d77c732fb3a4d7798d6c9f2c399269b /net
parentb9fbf52c1f0dec4e66aed950cb40d05836fcead5 (diff)
downloadchromium_src-6dfc67bdd9eb27a8dcf6fe74806d4d26f8534cd2.zip
chromium_src-6dfc67bdd9eb27a8dcf6fe74806d4d26f8534cd2.tar.gz
chromium_src-6dfc67bdd9eb27a8dcf6fe74806d4d26f8534cd2.tar.bz2
Merge some changes from branches/mac_july_2008 to trunk.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1002 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/http/http_network_layer.cc16
-rw-r--r--net/http/http_network_layer.h4
-rw-r--r--net/proxy/proxy_service.cc13
-rw-r--r--net/proxy/proxy_service.h4
4 files changed, 36 insertions, 1 deletions
diff --git a/net/http/http_network_layer.cc b/net/http/http_network_layer.cc
index 9e13f11..cbb75ce 100644
--- a/net/http/http_network_layer.cc
+++ b/net/http/http_network_layer.cc
@@ -29,33 +29,42 @@
#include "net/http/http_network_layer.h"
+#include "base/notimplemented.h"
#include "net/base/client_socket_factory.h"
#include "net/http/http_network_session.h"
#include "net/http/http_network_transaction.h"
-#include "net/http/http_transaction_winhttp.h"
#include "net/proxy/proxy_resolver_fixed.h"
+#if defined(OS_WIN)
+#include "net/http/http_transaction_winhttp.h"
#include "net/proxy/proxy_resolver_winhttp.h"
+#endif
namespace net {
//-----------------------------------------------------------------------------
+#if defined(OS_WIN)
// static
bool HttpNetworkLayer::use_winhttp_ = true;
+#endif
// static
HttpTransactionFactory* HttpNetworkLayer::CreateFactory(
const ProxyInfo* pi) {
+#if defined(OS_WIN)
if (use_winhttp_)
return new HttpTransactionWinHttp::Factory(pi);
+#endif
return new HttpNetworkLayer(pi);
}
+#if defined(OS_WIN)
// static
void HttpNetworkLayer::UseWinHttp(bool value) {
use_winhttp_ = value;
}
+#endif
//-----------------------------------------------------------------------------
@@ -65,7 +74,12 @@ HttpNetworkLayer::HttpNetworkLayer(const ProxyInfo* pi)
if (pi) {
proxy_resolver = new ProxyResolverFixed(*pi);
} else {
+#if defined(OS_WIN)
proxy_resolver = new ProxyResolverWinHttp();
+#else
+ NOTIMPLEMENTED();
+ proxy_resolver = NULL;
+#endif
}
session_ = new HttpNetworkSession(proxy_resolver);
}
diff --git a/net/http/http_network_layer.h b/net/http/http_network_layer.h
index 2b89f79..259c89c 100644
--- a/net/http/http_network_layer.h
+++ b/net/http/http_network_layer.h
@@ -47,8 +47,10 @@ class HttpNetworkLayer : public HttpTransactionFactory {
// and allows other implementations to be substituted.
static HttpTransactionFactory* CreateFactory(const ProxyInfo* pi);
+#if defined(OS_WIN)
// If value is true, then WinHTTP will be used.
static void UseWinHttp(bool value);
+#endif
// HttpTransactionFactory methods:
virtual HttpTransaction* CreateTransaction();
@@ -57,7 +59,9 @@ class HttpNetworkLayer : public HttpTransactionFactory {
virtual void Suspend(bool suspend);
private:
+#if defined(OS_WIN)
static bool use_winhttp_;
+#endif
scoped_refptr<HttpNetworkSession> session_;
bool suspended_;
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc
index 1c6c4059..c684979 100644
--- a/net/proxy/proxy_service.cc
+++ b/net/proxy/proxy_service.cc
@@ -29,12 +29,15 @@
#include "net/proxy/proxy_service.h"
+#if defined(OS_WIN)
#include <windows.h>
#include <winhttp.h>
+#endif
#include <algorithm>
#include "base/message_loop.h"
+#include "base/notimplemented.h"
#include "base/string_tokenizer.h"
#include "base/string_util.h"
#include "googleurl/src/gurl.h"
@@ -165,6 +168,7 @@ void ProxyInfo::UseNamedProxy(const std::string& proxy_server) {
proxy_list_.Set(proxy_server);
}
+#if defined(OS_WIN)
void ProxyInfo::Apply(HINTERNET request_handle) {
WINHTTP_PROXY_INFO pi;
std::wstring proxy; // We need to declare this variable here because
@@ -182,6 +186,7 @@ void ProxyInfo::Apply(HINTERNET request_handle) {
}
WinHttpSetOption(request_handle, WINHTTP_OPTION_PROXY, &pi, sizeof(pi));
}
+#endif
// ProxyService::PacRequest ---------------------------------------------------
@@ -441,6 +446,14 @@ void ProxyService::DidCompletePacRequest(int config_id, int result_code) {
}
void ProxyService::UpdateConfig() {
+#if !defined(WIN_OS)
+ if (!resolver_) {
+ // Tied to the NOTIMPLEMENTED in HttpNetworkLayer::HttpNetworkLayer()
+ NOTIMPLEMENTED();
+ return;
+ }
+#endif
+
ProxyConfig latest;
if (resolver_->GetProxyConfig(&latest) != OK)
return;
diff --git a/net/proxy/proxy_service.h b/net/proxy/proxy_service.h
index ee2bd23..80a15d1 100644
--- a/net/proxy/proxy_service.h
+++ b/net/proxy/proxy_service.h
@@ -40,7 +40,9 @@
#include "base/time.h"
#include "net/base/completion_callback.h"
+#if defined(OS_WIN)
typedef LPVOID HINTERNET; // From winhttp.h
+#endif
class GURL;
@@ -239,8 +241,10 @@ class ProxyInfo {
// This may optionally be a semi-colon delimited list of proxy servers.
void UseNamedProxy(const std::string& proxy_server);
+#if defined(OS_WIN)
// Apply this proxy information to the given WinHTTP request handle.
void Apply(HINTERNET request_handle);
+#endif
// Returns true if this proxy info specifies a direct connection.
bool is_direct() const { return proxy_list_.Get().empty(); }