diff options
author | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-18 22:02:21 +0000 |
---|---|---|
committer | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-18 22:02:21 +0000 |
commit | 6dfc67bdd9eb27a8dcf6fe74806d4d26f8534cd2 (patch) | |
tree | 661f4db41d77c732fb3a4d7798d6c9f2c399269b | |
parent | b9fbf52c1f0dec4e66aed950cb40d05836fcead5 (diff) | |
download | chromium_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
-rw-r--r-- | net/http/http_network_layer.cc | 16 | ||||
-rw-r--r-- | net/http/http_network_layer.h | 4 | ||||
-rw-r--r-- | net/proxy/proxy_service.cc | 13 | ||||
-rw-r--r-- | net/proxy/proxy_service.h | 4 |
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(); } |