diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-03 12:02:41 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-03 12:02:41 +0000 |
commit | 82a3767c45e85b77fb41d4fc92fc49fcb879e75b (patch) | |
tree | c1e8b1cc380f014a68c194929fb1abd799981cec /net/proxy/proxy_service.cc | |
parent | ef1cef9aef6034dda84cee719d2c9012bfb75a5e (diff) | |
download | chromium_src-82a3767c45e85b77fb41d4fc92fc49fcb879e75b.zip chromium_src-82a3767c45e85b77fb41d4fc92fc49fcb879e75b.tar.gz chromium_src-82a3767c45e85b77fb41d4fc92fc49fcb879e75b.tar.bz2 |
Add a method for PAC script errors to the network delegate.
Also add a wrapper class to avoid passing around raw NULL pointers, and a bridge so I can invoke the method from other than the IO thread
BUG=48930
TEST=net unittests
Review URL: http://codereview.chromium.org/6822026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83881 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/proxy_service.cc')
-rw-r--r-- | net/proxy/proxy_service.cc | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc index ca3629e..75411c3 100644 --- a/net/proxy/proxy_service.cc +++ b/net/proxy/proxy_service.cc @@ -17,6 +17,7 @@ #include "net/base/net_util.h" #include "net/proxy/init_proxy_resolver.h" #include "net/proxy/multi_threaded_proxy_resolver.h" +#include "net/proxy/network_delegate_error_observer.h" #include "net/proxy/proxy_config_service_fixed.h" #include "net/proxy/proxy_resolver.h" #include "net/proxy/proxy_resolver_js_bindings.h" @@ -168,7 +169,8 @@ class ProxyResolverFactoryForV8 : public ProxyResolverFactory { // |async_host_resolver| will only be operated on |io_loop|. ProxyResolverFactoryForV8(HostResolver* async_host_resolver, MessageLoop* io_loop, - NetLog* net_log) + NetLog* net_log, + NetworkDelegate* network_delegate) : ProxyResolverFactory(true /*expects_pac_bytes*/), async_host_resolver_(async_host_resolver), io_loop_(io_loop), @@ -181,8 +183,13 @@ class ProxyResolverFactoryForV8 : public ProxyResolverFactory { SyncHostResolverBridge* sync_host_resolver = new SyncHostResolverBridge(async_host_resolver_, io_loop_); + NetworkDelegateErrorObserver* error_observer = + new NetworkDelegateErrorObserver(network_delegate_, io_loop_); + + // ProxyResolverJSBindings takes ownership of |error_observer|. ProxyResolverJSBindings* js_bindings = - ProxyResolverJSBindings::CreateDefault(sync_host_resolver, net_log_); + ProxyResolverJSBindings::CreateDefault( + sync_host_resolver, net_log_, error_observer); // ProxyResolverV8 takes ownership of |js_bindings|. return new ProxyResolverV8(js_bindings); @@ -192,6 +199,7 @@ class ProxyResolverFactoryForV8 : public ProxyResolverFactory { HostResolver* const async_host_resolver_; MessageLoop* io_loop_; NetLog* net_log_; + NetworkDelegate* network_delegate_; }; // Creates ProxyResolvers using a platform-specific implementation. @@ -395,7 +403,8 @@ ProxyService* ProxyService::CreateUsingV8ProxyResolver( size_t num_pac_threads, ProxyScriptFetcher* proxy_script_fetcher, HostResolver* host_resolver, - NetLog* net_log) { + NetLog* net_log, + NetworkDelegate* network_delegate) { DCHECK(proxy_config_service); DCHECK(proxy_script_fetcher); DCHECK(host_resolver); @@ -407,7 +416,8 @@ ProxyService* ProxyService::CreateUsingV8ProxyResolver( new ProxyResolverFactoryForV8( host_resolver, MessageLoop::current(), - net_log); + net_log, + network_delegate); ProxyResolver* proxy_resolver = new MultiThreadedProxyResolver(sync_resolver_factory, num_pac_threads); |