Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(544)

Unified Diff: net/proxy/proxy_service.cc

Issue 6831025: Adds support for the DHCP portion of the WPAD (proxy auto-discovery) protocol. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Isolate worker thread to separate object. Refcount context. Fix mandatory PAC. Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/proxy/proxy_service.cc
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc
index a134133de4f089c5d3300661adf89d34d2af7a34..a9f6048f3fa52f9b1f0f66b02fd4c13a8d533796 100644
--- a/net/proxy/proxy_service.cc
+++ b/net/proxy/proxy_service.cc
@@ -16,6 +16,7 @@
#include "net/base/net_errors.h"
#include "net/base/net_log.h"
#include "net/base/net_util.h"
+#include "net/proxy/dhcp_proxy_script_fetcher.h"
#include "net/proxy/init_proxy_resolver.h"
#include "net/proxy/multi_threaded_proxy_resolver.h"
#include "net/proxy/network_delegate_error_observer.h"
@@ -409,11 +410,13 @@ ProxyService* ProxyService::CreateUsingV8ProxyResolver(
ProxyConfigService* proxy_config_service,
size_t num_pac_threads,
ProxyScriptFetcher* proxy_script_fetcher,
+ DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher,
HostResolver* host_resolver,
NetLog* net_log,
NetworkDelegate* network_delegate) {
DCHECK(proxy_config_service);
DCHECK(proxy_script_fetcher);
+ DCHECK(dhcp_proxy_script_fetcher);
DCHECK(host_resolver);
if (num_pac_threads == 0)
@@ -433,8 +436,9 @@ ProxyService* ProxyService::CreateUsingV8ProxyResolver(
ProxyService* proxy_service =
new ProxyService(proxy_config_service, proxy_resolver, net_log);
- // Configure PAC script downloads to be issued using |proxy_script_fetcher|.
- proxy_service->SetProxyScriptFetcher(proxy_script_fetcher);
+ // Configure fetchers to use for PAC script downloads and auto-detect.
+ proxy_service->SetProxyScriptFetchers(proxy_script_fetcher,
+ dhcp_proxy_script_fetcher);
return proxy_service;
}
@@ -774,11 +778,13 @@ int ProxyService::DidFinishResolvingProxy(ProxyInfo* result,
return result_code;
}
-void ProxyService::SetProxyScriptFetcher(
- ProxyScriptFetcher* proxy_script_fetcher) {
+void ProxyService::SetProxyScriptFetchers(
+ ProxyScriptFetcher* proxy_script_fetcher,
+ DhcpProxyScriptFetcher* dhcp_proxy_script_fetcher) {
DCHECK(CalledOnValidThread());
State previous_state = ResetProxyConfig(false);
proxy_script_fetcher_.reset(proxy_script_fetcher);
+ dhcp_proxy_script_fetcher_.reset(dhcp_proxy_script_fetcher);
if (previous_state != STATE_NONE)
ApplyProxyConfigIfAvailable();
}
@@ -788,6 +794,11 @@ ProxyScriptFetcher* ProxyService::GetProxyScriptFetcher() const {
return proxy_script_fetcher_.get();
}
+DhcpProxyScriptFetcher* ProxyService::GetDhcpProxyScriptFetcher() const {
eroman 2011/05/17 04:39:39 Is this used somewhere? (I wander if we can get ri
Jói 2011/05/17 15:38:35 Removed.
+ DCHECK(CalledOnValidThread());
+ return dhcp_proxy_script_fetcher_.get();
+}
+
ProxyService::State ProxyService::ResetProxyConfig(bool reset_fetched_config) {
DCHECK(CalledOnValidThread());
State previous_state = current_state_;
@@ -927,7 +938,9 @@ void ProxyService::InitializeUsingLastFetchedConfig() {
current_state_ = STATE_WAITING_FOR_INIT_PROXY_RESOLVER;
init_proxy_resolver_.reset(
- new InitProxyResolver(resolver_.get(), proxy_script_fetcher_.get(),
+ new InitProxyResolver(resolver_.get(),
+ proxy_script_fetcher_.get(),
+ dhcp_proxy_script_fetcher_.get(),
net_log_));
// If we changed networks recently, we should delay running proxy auto-config.

Powered by Google App Engine
This is Rietveld 408576698