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

Side by Side Diff: net/url_request/url_request_context_builder.h

Issue 2986623002: Revert of Make ProfileIOData use URLRequestContextBuilder (Closed)
Patch Set: Created 3 years, 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This class is useful for building a simple URLRequestContext. Most creators 5 // This class is useful for building a simple URLRequestContext. Most creators
6 // of new URLRequestContexts should use this helper class to construct it. Call 6 // of new URLRequestContexts should use this helper class to construct it. Call
7 // any configuration params, and when done, invoke Build() to construct the 7 // any configuration params, and when done, invoke Build() to construct the
8 // URLRequestContext. This URLRequestContext will own all its own storage. 8 // URLRequestContext. This URLRequestContext will own all its own storage.
9 // 9 //
10 // URLRequestContextBuilder and its associated params classes are initially 10 // URLRequestContextBuilder and its associated params classes are initially
11 // populated with "sane" default values. Read through the comments to figure out 11 // populated with "sane" default values. Read through the comments to figure out
12 // what these are. 12 // what these are.
13 13
14 #ifndef NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ 14 #ifndef NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_
15 #define NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ 15 #define NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_
16 16
17 #include <stdint.h> 17 #include <stdint.h>
18 18
19 #include <map> 19 #include <map>
20 #include <memory> 20 #include <memory>
21 #include <string> 21 #include <string>
22 #include <unordered_map> 22 #include <unordered_map>
23 #include <utility> 23 #include <utility>
24 #include <vector> 24 #include <vector>
25 25
26 #include "base/callback.h"
27 #include "base/files/file_path.h" 26 #include "base/files/file_path.h"
28 #include "base/macros.h" 27 #include "base/macros.h"
29 #include "base/memory/ref_counted.h" 28 #include "base/memory/ref_counted.h"
30 #include "base/task_scheduler/task_traits.h" 29 #include "base/task_scheduler/task_traits.h"
31 #include "build/build_config.h" 30 #include "build/build_config.h"
32 #include "build/buildflag.h" 31 #include "build/buildflag.h"
33 #include "net/base/net_export.h" 32 #include "net/base/net_export.h"
34 #include "net/base/network_delegate.h" 33 #include "net/base/network_delegate.h"
35 #include "net/base/proxy_delegate.h" 34 #include "net/base/proxy_delegate.h"
36 #include "net/dns/host_resolver.h" 35 #include "net/dns/host_resolver.h"
(...skipping 11 matching lines...) Expand all
48 } 47 }
49 48
50 namespace net { 49 namespace net {
51 50
52 class CertVerifier; 51 class CertVerifier;
53 class ChannelIDService; 52 class ChannelIDService;
54 class CookieStore; 53 class CookieStore;
55 class CTPolicyEnforcer; 54 class CTPolicyEnforcer;
56 class CTVerifier; 55 class CTVerifier;
57 class HttpAuthHandlerFactory; 56 class HttpAuthHandlerFactory;
58 class HttpUserAgentSettings;
59 class HttpServerProperties; 57 class HttpServerProperties;
60 class NetworkQualityEstimator; 58 class NetworkQualityEstimator;
61 class ProxyConfigService; 59 class ProxyConfigService;
62 struct ReportingPolicy; 60 struct ReportingPolicy;
63 class URLRequestContext; 61 class URLRequestContext;
64 class URLRequestInterceptor; 62 class URLRequestInterceptor;
65 63
66 // A URLRequestContextBuilder creates a single URLRequestContext. It provides 64 // A URLRequestContextBuilder creates a single URLRequestContext. It provides
67 // methods to manage various URLRequestContext components which should be called 65 // methods to manage various URLRequestContext components which should be called
68 // before creating the Context. Once configuration is complete, calling Build() 66 // before creating the Context. Once configuration is complete, calling Build()
69 // will create a URLRequestContext with the specified configuration. Components 67 // will create a URLRequestContext with the specified configuration. Components
70 // that are not explicitly configured will use reasonable in-memory defaults. 68 // that are not explicitly configured will use reasonable in-memory defaults.
71 // 69 //
72 // The returned URLRequestContext is self-contained: Deleting it will safely 70 // The returned URLRequestContext is self-contained: Deleting it will safely
73 // shut down all of the URLRequests owned by its internal components, and then 71 // shut down all of the URLRequests owned by its internal components, and then
74 // tear down those components. The only exception to this are objects not owned 72 // tear down those components. The only exception to this are objects not owned
75 // by URLRequestContext. This includes components passed in to the methods that 73 // by URLRequestContext. This includes components passed in to the methods that
76 // take raw pointers, and objects that components passed in to the Builder have 74 // take raw pointers, and objects that components passed in to the Builder have
77 // raw pointers to. 75 // raw pointers to.
78 // 76 //
79 // A Builder should be destroyed after calling Build, and there is no need to 77 // A Builder should be destroyed after calling Build, and there is no need to
80 // keep it around for the lifetime of the created URLRequestContext. Each 78 // keep it around for the lifetime of the created URLRequestContext. Each
81 // Builder may be used to create only a single URLRequestContext. 79 // Builder may be used to create only a single URLRequestContext.
82 class NET_EXPORT URLRequestContextBuilder { 80 class NET_EXPORT URLRequestContextBuilder {
83 public: 81 public:
84 using CreateInterceptingJobFactory =
85 base::OnceCallback<std::unique_ptr<net::URLRequestJobFactory>(
86 std::unique_ptr<net::URLRequestJobFactory> inner_job_factory)>;
87
88 struct NET_EXPORT HttpCacheParams { 82 struct NET_EXPORT HttpCacheParams {
89 enum Type { 83 enum Type {
90 // In-memory cache. 84 // In-memory cache.
91 IN_MEMORY, 85 IN_MEMORY,
92 // Disk cache using "default" backend. 86 // Disk cache using "default" backend.
93 DISK, 87 DISK,
94 // Disk cache using "blockfile" backend (BackendImpl).
95 DISK_BLOCKFILE,
96 // Disk cache using "simple" backend (SimpleBackendImpl). 88 // Disk cache using "simple" backend (SimpleBackendImpl).
97 DISK_SIMPLE, 89 DISK_SIMPLE,
98 }; 90 };
99 91
100 HttpCacheParams(); 92 HttpCacheParams();
101 ~HttpCacheParams(); 93 ~HttpCacheParams();
102 94
103 // The type of HTTP cache. Default is IN_MEMORY. 95 // The type of HTTP cache. Default is IN_MEMORY.
104 Type type; 96 Type type;
105 97
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 } 159 }
168 160
169 void set_ssl_config_service( 161 void set_ssl_config_service(
170 scoped_refptr<net::SSLConfigService> ssl_config_service) { 162 scoped_refptr<net::SSLConfigService> ssl_config_service) {
171 ssl_config_service_ = std::move(ssl_config_service); 163 ssl_config_service_ = std::move(ssl_config_service);
172 } 164 }
173 165
174 // Call these functions to specify hard-coded Accept-Language 166 // Call these functions to specify hard-coded Accept-Language
175 // or User-Agent header values for all requests that don't 167 // or User-Agent header values for all requests that don't
176 // have the headers already set. 168 // have the headers already set.
177 void set_accept_language(const std::string& accept_language); 169 void set_accept_language(const std::string& accept_language) {
178 void set_user_agent(const std::string& user_agent); 170 accept_language_ = accept_language;
179 // Makes the created URLRequestContext use a shared HttpUserAgentSettings 171 }
180 // object. Not compatible with set_accept_language() / set_user_agent(). The 172 void set_user_agent(const std::string& user_agent) {
181 // consumer must ensure the HttpUserAgentSettings outlives the 173 user_agent_ = user_agent;
182 // URLRequestContext returned by the builder. 174 }
183 //
184 // TODO(mmenke): Take ownership of the object instead. See:
185 // https://crbug.com/743251
186 void set_shared_http_user_agent_settings(
187 HttpUserAgentSettings* shared_http_user_agent_settings);
188 175
189 // Control support for data:// requests. By default it's disabled. 176 // Control support for data:// requests. By default it's disabled.
190 void set_data_enabled(bool enable) { 177 void set_data_enabled(bool enable) {
191 data_enabled_ = enable; 178 data_enabled_ = enable;
192 } 179 }
193 180
194 #if !BUILDFLAG(DISABLE_FILE_SUPPORT) 181 #if !BUILDFLAG(DISABLE_FILE_SUPPORT)
195 // Control support for file:// requests. By default it's disabled. 182 // Control support for file:// requests. By default it's disabled.
196 void set_file_enabled(bool enable) { 183 void set_file_enabled(bool enable) {
197 file_enabled_ = enable; 184 file_enabled_ = enable;
(...skipping 13 matching lines...) Expand all
211 const std::string& scheme, 198 const std::string& scheme,
212 std::unique_ptr<URLRequestJobFactory::ProtocolHandler> protocol_handler); 199 std::unique_ptr<URLRequestJobFactory::ProtocolHandler> protocol_handler);
213 200
214 // Unlike the other setters, the builder does not take ownership of the 201 // Unlike the other setters, the builder does not take ownership of the
215 // NetLog. 202 // NetLog.
216 // TODO(mmenke): Probably makes sense to get rid of this, and have consumers 203 // TODO(mmenke): Probably makes sense to get rid of this, and have consumers
217 // set their own NetLog::Observers instead. 204 // set their own NetLog::Observers instead.
218 void set_net_log(NetLog* net_log) { net_log_ = net_log; } 205 void set_net_log(NetLog* net_log) { net_log_ = net_log; }
219 206
220 // By default host_resolver is constructed with CreateDefaultResolver. 207 // By default host_resolver is constructed with CreateDefaultResolver.
221 void set_host_resolver(std::unique_ptr<HostResolver> host_resolver); 208 void set_host_resolver(std::unique_ptr<HostResolver> host_resolver) {
222 // Allows sharing the HostResolver with other URLRequestContexts. Should not 209 host_resolver_ = std::move(host_resolver);
223 // be used if set_host_resolver() is used. The consumer must ensure the 210 }
224 // HostResolver outlives the URLRequestContext returned by the builder.
225 //
226 // TODO(mmenke): Figure out the cost/benefits of not supporting sharing
227 // HostResolvers between URLRequestContexts. See: https://crbug.com/743251.
228 void set_shared_host_resolver(HostResolver* host_resolver);
229 211
230 // Uses BasicNetworkDelegate by default. Note that calling Build will unset 212 // Uses BasicNetworkDelegate by default. Note that calling Build will unset
231 // any custom delegate in builder, so this must be called each time before 213 // any custom delegate in builder, so this must be called each time before
232 // Build is called. 214 // Build is called.
233 void set_network_delegate(std::unique_ptr<NetworkDelegate> delegate) { 215 void set_network_delegate(std::unique_ptr<NetworkDelegate> delegate) {
234 network_delegate_ = std::move(delegate); 216 network_delegate_ = std::move(delegate);
235 } 217 }
236 218
237 // Sets the ProxyDelegate. 219 // Temporarily stores a ProxyDelegate. Ownership is transferred to
238 void set_proxy_delegate(std::unique_ptr<ProxyDelegate> proxy_delegate); 220 // UrlRequestContextStorage during Build.
239 // Allows sharing the PreoxyDelegates with other URLRequestContexts. Should 221 void set_proxy_delegate(std::unique_ptr<ProxyDelegate> delegate) {
240 // not be used if set_proxy_delegate() is used. The consumer must ensure the 222 proxy_delegate_ = std::move(delegate);
241 // ProxyDelegate outlives the URLRequestContext returned by the builder. 223 }
242 //
243 // TODO(mmenke): Remove this (And update consumers). See:
244 // https://crbug.com/743251.
245 void set_shared_proxy_delegate(ProxyDelegate* shared_proxy_delegate);
246 224
247 // Sets a specific HttpAuthHandlerFactory to be used by the URLRequestContext 225 // Sets a specific HttpAuthHandlerFactory to be used by the URLRequestContext
248 // rather than the default |HttpAuthHandlerRegistryFactory|. The builder 226 // rather than the default |HttpAuthHandlerRegistryFactory|. The builder
249 // takes ownership of the factory and will eventually transfer it to the new 227 // takes ownership of the factory and will eventually transfer it to the new
250 // URLRequestContext. 228 // URLRequestContext. Note that since Build will transfer ownership, the
229 // custom factory will be unset and this must be called before the next Build
230 // to set another custom one.
251 void SetHttpAuthHandlerFactory( 231 void SetHttpAuthHandlerFactory(
252 std::unique_ptr<HttpAuthHandlerFactory> factory); 232 std::unique_ptr<HttpAuthHandlerFactory> factory);
253 // Makes the created URLRequestContext use a shared HttpAuthHandlerFactory
254 // object. Not compatible with SetHttpAuthHandlerFactory(). The consumer must
255 // ensure the HttpAuthHandlerFactory outlives the URLRequestContext returned
256 // by the builder.
257 //
258 // TODO(mmenke): Evaluate if sharing is really needed. See:
259 // https://crbug.com/743251.
260 void set_shared_http_auth_handler_factory(
261 HttpAuthHandlerFactory* shared_http_auth_handler_factory);
262 233
263 // By default HttpCache is enabled with a default constructed HttpCacheParams. 234 // By default HttpCache is enabled with a default constructed HttpCacheParams.
264 void EnableHttpCache(const HttpCacheParams& params); 235 void EnableHttpCache(const HttpCacheParams& params);
265 void DisableHttpCache(); 236 void DisableHttpCache();
266 237
267 // Override default HttpNetworkSession::Params settings. 238 // Override default HttpNetworkSession::Params settings.
268 void set_http_network_session_params( 239 void set_http_network_session_params(
269 const HttpNetworkSession::Params& http_network_session_params) { 240 const HttpNetworkSession::Params& http_network_session_params) {
270 http_network_session_params_ = http_network_session_params; 241 http_network_session_params_ = http_network_session_params;
271 } 242 }
272 243
273 void set_transport_security_persister_path( 244 void set_transport_security_persister_path(
274 const base::FilePath& transport_security_persister_path) { 245 const base::FilePath& transport_security_persister_path) {
275 transport_security_persister_path_ = transport_security_persister_path; 246 transport_security_persister_path_ = transport_security_persister_path;
276 } 247 }
277 248
278 // Sets whether the TransportSecurityPersister only reads persisted
279 // information, or also writes it. By default, it both reads and writes.
280 //
281 // TODO(mmenke): Consider removing this in favor of the above method. See:
282 // https://crbug.com/743251.
283 void set_transport_security_persister_readonly(
284 bool transport_security_persister_readonly) {
285 transport_security_persister_readonly_ =
286 transport_security_persister_readonly;
287 }
288
289 void SetSpdyAndQuicEnabled(bool spdy_enabled, 249 void SetSpdyAndQuicEnabled(bool spdy_enabled,
290 bool quic_enabled); 250 bool quic_enabled);
291 251
292 void set_throttling_enabled(bool throttling_enabled) { 252 void set_throttling_enabled(bool throttling_enabled) {
293 throttling_enabled_ = throttling_enabled; 253 throttling_enabled_ = throttling_enabled;
294 } 254 }
295 255
296 void set_ct_verifier(std::unique_ptr<CTVerifier> ct_verifier); 256 void set_ct_verifier(std::unique_ptr<CTVerifier> ct_verifier);
297 void set_ct_policy_enforcer( 257 void set_ct_policy_enforcer(
298 std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer); 258 std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer);
299 259
300 void SetCertVerifier(std::unique_ptr<CertVerifier> cert_verifier); 260 void SetCertVerifier(std::unique_ptr<CertVerifier> cert_verifier);
301 261
302 // Makes the created URLRequestContext use a shared CertVerifier object.
303 // Should not be used it SetCertVerifier() is used. The consumer must ensure
304 // the CertVerifier outlives the URLRequestContext returned by the builder.
305 //
306 // TODO(mmenke): Figure out if consumers can use SetCertVerifier instead. See:
307 // https://crbug.com/743251.
308 void set_shared_cert_verifier(CertVerifier* shared_cert_verifier);
309
310 #if BUILDFLAG(ENABLE_REPORTING) 262 #if BUILDFLAG(ENABLE_REPORTING)
311 void set_reporting_policy( 263 void set_reporting_policy(
312 std::unique_ptr<net::ReportingPolicy> reporting_policy); 264 std::unique_ptr<net::ReportingPolicy> reporting_policy);
313 #endif // BUILDFLAG(ENABLE_REPORTING) 265 #endif // BUILDFLAG(ENABLE_REPORTING)
314 266
315 void SetInterceptors(std::vector<std::unique_ptr<URLRequestInterceptor>> 267 void SetInterceptors(std::vector<std::unique_ptr<URLRequestInterceptor>>
316 url_request_interceptors); 268 url_request_interceptors);
317 269
318 // Sets a callback that is passed ownership of the URLRequestJobFactory, and
319 // can wrap it in another URLRequestJobFactory. URLRequestInterceptors can't
320 // handle intercepting unsupported protocols, while this case.
321 // TODO(mmenke): Remove this, once it's no longer needed.
322 void set_create_intercepting_job_factory(
323 CreateInterceptingJobFactory create_intercepting_job_factory);
324
325 // Override the default in-memory cookie store and channel id service. 270 // Override the default in-memory cookie store and channel id service.
326 // If both |cookie_store| and |channel_id_service| are NULL, CookieStore and 271 // If both |cookie_store| and |channel_id_service| are NULL, CookieStore and
327 // ChannelIDService will be disabled for this context. 272 // ChannelIDService will be disabled for this context.
328 // If |cookie_store| is not NULL and |channel_id_service| is NULL, 273 // If |cookie_store| is not NULL and |channel_id_service| is NULL,
329 // only ChannelIdService is disabled for this context. 274 // only ChannelIdService is disabled for this context.
330 // Note that a persistent cookie store should not be used with an in-memory 275 // Note that a persistent cookie store should not be used with an in-memory
331 // channel id service, and one cookie store should not be shared between 276 // channel id service, and one cookie store should not be shared between
332 // multiple channel-id stores (or used both with and without a channel id 277 // multiple channel-id stores (or used both with and without a channel id
333 // store). 278 // store).
334 void SetCookieAndChannelIdStores( 279 void SetCookieAndChannelIdStores(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 NetworkDelegate* network_delegate, 315 NetworkDelegate* network_delegate,
371 NetLog* net_log); 316 NetLog* net_log);
372 317
373 private: 318 private:
374 const char* name_; 319 const char* name_;
375 bool enable_brotli_; 320 bool enable_brotli_;
376 NetworkQualityEstimator* network_quality_estimator_; 321 NetworkQualityEstimator* network_quality_estimator_;
377 322
378 std::string accept_language_; 323 std::string accept_language_;
379 std::string user_agent_; 324 std::string user_agent_;
380 HttpUserAgentSettings* shared_http_user_agent_settings_;
381
382 // Include support for data:// requests. 325 // Include support for data:// requests.
383 bool data_enabled_; 326 bool data_enabled_;
384 #if !BUILDFLAG(DISABLE_FILE_SUPPORT) 327 #if !BUILDFLAG(DISABLE_FILE_SUPPORT)
385 // Include support for file:// requests. 328 // Include support for file:// requests.
386 bool file_enabled_; 329 bool file_enabled_;
387 #endif 330 #endif
388 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) 331 #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
389 // Include support for ftp:// requests. 332 // Include support for ftp:// requests.
390 bool ftp_enabled_; 333 bool ftp_enabled_;
391 #endif 334 #endif
392 bool http_cache_enabled_; 335 bool http_cache_enabled_;
393 bool throttling_enabled_; 336 bool throttling_enabled_;
394 bool sdch_enabled_; 337 bool sdch_enabled_;
395 bool cookie_store_set_by_client_; 338 bool cookie_store_set_by_client_;
396 339
397 scoped_refptr<base::SingleThreadTaskRunner> cache_thread_task_runner_; 340 scoped_refptr<base::SingleThreadTaskRunner> cache_thread_task_runner_;
398 HttpCacheParams http_cache_params_; 341 HttpCacheParams http_cache_params_;
399 HttpNetworkSession::Params http_network_session_params_; 342 HttpNetworkSession::Params http_network_session_params_;
400 base::FilePath transport_security_persister_path_; 343 base::FilePath transport_security_persister_path_;
401 bool transport_security_persister_readonly_;
402 NetLog* net_log_; 344 NetLog* net_log_;
403 std::unique_ptr<HostResolver> host_resolver_; 345 std::unique_ptr<HostResolver> host_resolver_;
404 net::HostResolver* shared_host_resolver_;
405 std::unique_ptr<ChannelIDService> channel_id_service_; 346 std::unique_ptr<ChannelIDService> channel_id_service_;
406 std::unique_ptr<ProxyConfigService> proxy_config_service_; 347 std::unique_ptr<ProxyConfigService> proxy_config_service_;
407 bool pac_quick_check_enabled_; 348 bool pac_quick_check_enabled_;
408 ProxyService::SanitizeUrlPolicy pac_sanitize_url_policy_; 349 ProxyService::SanitizeUrlPolicy pac_sanitize_url_policy_;
409 std::unique_ptr<ProxyService> proxy_service_; 350 std::unique_ptr<ProxyService> proxy_service_;
410 scoped_refptr<net::SSLConfigService> ssl_config_service_; 351 scoped_refptr<net::SSLConfigService> ssl_config_service_;
411 std::unique_ptr<NetworkDelegate> network_delegate_; 352 std::unique_ptr<NetworkDelegate> network_delegate_;
412 std::unique_ptr<ProxyDelegate> proxy_delegate_; 353 std::unique_ptr<ProxyDelegate> proxy_delegate_;
413 ProxyDelegate* shared_proxy_delegate_;
414 std::unique_ptr<CookieStore> cookie_store_; 354 std::unique_ptr<CookieStore> cookie_store_;
415 std::unique_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_; 355 std::unique_ptr<HttpAuthHandlerFactory> http_auth_handler_factory_;
416 HttpAuthHandlerFactory* shared_http_auth_handler_factory_;
417 std::unique_ptr<CertVerifier> cert_verifier_; 356 std::unique_ptr<CertVerifier> cert_verifier_;
418 CertVerifier* shared_cert_verifier_;
419 std::unique_ptr<CTVerifier> ct_verifier_; 357 std::unique_ptr<CTVerifier> ct_verifier_;
420 std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer_; 358 std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer_;
421 #if BUILDFLAG(ENABLE_REPORTING) 359 #if BUILDFLAG(ENABLE_REPORTING)
422 std::unique_ptr<net::ReportingPolicy> reporting_policy_; 360 std::unique_ptr<net::ReportingPolicy> reporting_policy_;
423 #endif // BUILDFLAG(ENABLE_REPORTING) 361 #endif // BUILDFLAG(ENABLE_REPORTING)
424 std::vector<std::unique_ptr<URLRequestInterceptor>> url_request_interceptors_; 362 std::vector<std::unique_ptr<URLRequestInterceptor>> url_request_interceptors_;
425 CreateInterceptingJobFactory create_intercepting_job_factory_;
426 std::unique_ptr<HttpServerProperties> http_server_properties_; 363 std::unique_ptr<HttpServerProperties> http_server_properties_;
427 std::map<std::string, std::unique_ptr<URLRequestJobFactory::ProtocolHandler>> 364 std::map<std::string, std::unique_ptr<URLRequestJobFactory::ProtocolHandler>>
428 protocol_handlers_; 365 protocol_handlers_;
429 366
430 DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder); 367 DISALLOW_COPY_AND_ASSIGN(URLRequestContextBuilder);
431 }; 368 };
432 369
433 } // namespace net 370 } // namespace net
434 371
435 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_ 372 #endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_BUILDER_H_
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_io_data.cc ('k') | net/url_request/url_request_context_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698