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

Side by Side Diff: net/proxy/proxy_service.h

Issue 3646004: Add an option ProxyService::Create() to disable use of proxy auto-config.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix a typo Created 10 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome_frame/metrics_service.cc ('k') | net/proxy/proxy_service.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_PROXY_PROXY_SERVICE_H_ 5 #ifndef NET_PROXY_PROXY_SERVICE_H_
6 #define NET_PROXY_PROXY_SERVICE_H_ 6 #define NET_PROXY_PROXY_SERVICE_H_
7 #pragma once 7 #pragma once
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 proxy_retry_info_.clear(); 130 proxy_retry_info_.clear();
131 } 131 }
132 132
133 // Forces refetching the proxy configuration, and applying it. 133 // Forces refetching the proxy configuration, and applying it.
134 // This re-does everything from fetching the system configuration, 134 // This re-does everything from fetching the system configuration,
135 // to downloading and testing the PAC files. 135 // to downloading and testing the PAC files.
136 void ForceReloadProxyConfig(); 136 void ForceReloadProxyConfig();
137 137
138 // Creates a proxy service that polls |proxy_config_service| to notice when 138 // Creates a proxy service that polls |proxy_config_service| to notice when
139 // the proxy settings change. We take ownership of |proxy_config_service|. 139 // the proxy settings change. We take ownership of |proxy_config_service|.
140 // Iff |use_v8_resolver| is true, then the V8 implementation is
141 // used.
142 // 140 //
143 // |num_pac_threads| specifies the maximum number of threads to use for 141 // |num_pac_threads| specifies the maximum number of threads to use for
144 // executing PAC scripts. Threads are created lazily on demand. 142 // executing PAC scripts. Threads are created lazily on demand.
145 // If |0| is specified, then a default number of threads will be selected. 143 // If |0| is specified, then a default number of threads will be selected.
146 // 144 //
147 // Having more threads avoids stalling proxy resolve requests when the 145 // Having more threads avoids stalling proxy resolve requests when the
148 // PAC script takes a while to run. This is particularly a problem when PAC 146 // PAC script takes a while to run. This is particularly a problem when PAC
149 // scripts do synchronous DNS resolutions, since that can take on the order 147 // scripts do synchronous DNS resolutions, since that can take on the order
150 // of seconds. 148 // of seconds.
151 // 149 //
152 // However, the disadvantages of using more than 1 thread are: 150 // However, the disadvantages of using more than 1 thread are:
153 // (a) can cause compatibility issues for scripts that rely on side effects 151 // (a) can cause compatibility issues for scripts that rely on side effects
154 // between runs (such scripts should not be common though). 152 // between runs (such scripts should not be common though).
155 // (b) increases the memory used by proxy resolving, as each thread will 153 // (b) increases the memory used by proxy resolving, as each thread will
156 // duplicate its own script context. 154 // duplicate its own script context.
157 155
158 // |url_request_context| is only used when use_v8_resolver is true: 156 // |url_request_context| specifies the URL request context that will
159 // it specifies the URL request context that will be used if a PAC 157 // be used if a PAC script needs to be fetched.
160 // script needs to be fetched. 158 // |io_loop| points to the IO thread's message loop.
161 // |io_loop| points to the IO thread's message loop. It is only used
162 // when pc is NULL.
163 // ########################################################################## 159 // ##########################################################################
164 // # See the warnings in net/proxy/proxy_resolver_v8.h describing the 160 // # See the warnings in net/proxy/proxy_resolver_v8.h describing the
165 // # multi-threading model. In order for this to be safe to use, *ALL* the 161 // # multi-threading model. In order for this to be safe to use, *ALL* the
166 // # other V8's running in the process must use v8::Locker. 162 // # other V8's running in the process must use v8::Locker.
167 // ########################################################################## 163 // ##########################################################################
168 static ProxyService* Create( 164 static ProxyService* CreateUsingV8ProxyResolver(
169 ProxyConfigService* proxy_config_service, 165 ProxyConfigService* proxy_config_service,
170 bool use_v8_resolver,
171 size_t num_pac_threads, 166 size_t num_pac_threads,
172 URLRequestContext* url_request_context, 167 URLRequestContext* url_request_context,
173 NetLog* net_log, 168 NetLog* net_log,
174 MessageLoop* io_loop); 169 MessageLoop* io_loop);
175 170
171 // Same as CreateUsingV8ProxyResolver, except it uses system libraries
172 // for evaluating the PAC script if available, otherwise skips
173 // proxy autoconfig.
174 static ProxyService* CreateUsingSystemProxyResolver(
175 ProxyConfigService* proxy_config_service,
176 size_t num_pac_threads,
177 NetLog* net_log);
178
179 // Creates a ProxyService without support for proxy autoconfig.
180 static ProxyService* CreateWithoutProxyResolver(
181 ProxyConfigService* proxy_config_service,
182 NetLog* net_log);
183
176 // Convenience method that creates a proxy service using the 184 // Convenience method that creates a proxy service using the
177 // specified fixed settings. |pc| must not be NULL. 185 // specified fixed settings. |pc| must not be NULL.
178 static ProxyService* CreateFixed(const ProxyConfig& pc); 186 static ProxyService* CreateFixed(const ProxyConfig& pc);
179 187
180 // Creates a proxy service that uses a DIRECT connection for all requests. 188 // Creates a proxy service that uses a DIRECT connection for all requests.
181 static ProxyService* CreateDirect(); 189 static ProxyService* CreateDirect();
182 190
183 // This method is used by tests to create a ProxyService that returns a 191 // This method is used by tests to create a ProxyService that returns a
184 // hardcoded proxy fallback list (|pac_string|) for every URL. 192 // hardcoded proxy fallback list (|pac_string|) for every URL.
185 // 193 //
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 361
354 base::WaitableEvent event_; 362 base::WaitableEvent event_;
355 CompletionCallbackImpl<SyncProxyServiceHelper> callback_; 363 CompletionCallbackImpl<SyncProxyServiceHelper> callback_;
356 ProxyInfo proxy_info_; 364 ProxyInfo proxy_info_;
357 int result_; 365 int result_;
358 }; 366 };
359 367
360 } // namespace net 368 } // namespace net
361 369
362 #endif // NET_PROXY_PROXY_SERVICE_H_ 370 #endif // NET_PROXY_PROXY_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome_frame/metrics_service.cc ('k') | net/proxy/proxy_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698