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/url_request/url_request_context_builder.cc

Issue 2986733002: Reland 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
« no previous file with comments | « net/url_request/url_request_context_builder.h ('k') | no next file » | 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) 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 #include "net/url_request/url_request_context_builder.h" 5 #include "net/url_request/url_request_context_builder.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 185
186 URLRequestContextBuilder::HttpCacheParams::HttpCacheParams() 186 URLRequestContextBuilder::HttpCacheParams::HttpCacheParams()
187 : type(IN_MEMORY), 187 : type(IN_MEMORY),
188 max_size(0) {} 188 max_size(0) {}
189 URLRequestContextBuilder::HttpCacheParams::~HttpCacheParams() {} 189 URLRequestContextBuilder::HttpCacheParams::~HttpCacheParams() {}
190 190
191 URLRequestContextBuilder::URLRequestContextBuilder() 191 URLRequestContextBuilder::URLRequestContextBuilder()
192 : name_(nullptr), 192 : name_(nullptr),
193 enable_brotli_(false), 193 enable_brotli_(false),
194 network_quality_estimator_(nullptr), 194 network_quality_estimator_(nullptr),
195 shared_http_user_agent_settings_(nullptr),
195 data_enabled_(false), 196 data_enabled_(false),
196 #if !BUILDFLAG(DISABLE_FILE_SUPPORT) 197 #if !BUILDFLAG(DISABLE_FILE_SUPPORT)
197 file_enabled_(false), 198 file_enabled_(false),
198 #endif 199 #endif
199 #if !BUILDFLAG(DISABLE_FTP_SUPPORT) 200 #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
200 ftp_enabled_(false), 201 ftp_enabled_(false),
201 #endif 202 #endif
202 http_cache_enabled_(true), 203 http_cache_enabled_(true),
203 throttling_enabled_(false), 204 throttling_enabled_(false),
204 sdch_enabled_(false), 205 sdch_enabled_(false),
205 cookie_store_set_by_client_(false), 206 cookie_store_set_by_client_(false),
207 transport_security_persister_readonly_(false),
206 net_log_(nullptr), 208 net_log_(nullptr),
209 shared_host_resolver_(nullptr),
207 pac_quick_check_enabled_(true), 210 pac_quick_check_enabled_(true),
208 pac_sanitize_url_policy_(ProxyService::SanitizeUrlPolicy::SAFE) { 211 pac_sanitize_url_policy_(ProxyService::SanitizeUrlPolicy::SAFE),
212 shared_proxy_delegate_(nullptr),
213 shared_http_auth_handler_factory_(nullptr),
214 shared_cert_verifier_(nullptr) {
209 } 215 }
210 216
211 URLRequestContextBuilder::~URLRequestContextBuilder() {} 217 URLRequestContextBuilder::~URLRequestContextBuilder() {}
212 218
213 void URLRequestContextBuilder::SetHttpNetworkSessionComponents( 219 void URLRequestContextBuilder::SetHttpNetworkSessionComponents(
214 const URLRequestContext* request_context, 220 const URLRequestContext* request_context,
215 HttpNetworkSession::Context* session_context) { 221 HttpNetworkSession::Context* session_context) {
216 session_context->host_resolver = request_context->host_resolver(); 222 session_context->host_resolver = request_context->host_resolver();
217 session_context->cert_verifier = request_context->cert_verifier(); 223 session_context->cert_verifier = request_context->cert_verifier();
218 session_context->transport_security_state = 224 session_context->transport_security_state =
(...skipping 11 matching lines...) Expand all
230 session_context->channel_id_service = request_context->channel_id_service(); 236 session_context->channel_id_service = request_context->channel_id_service();
231 session_context->network_quality_provider = 237 session_context->network_quality_provider =
232 request_context->network_quality_estimator(); 238 request_context->network_quality_estimator();
233 if (request_context->network_quality_estimator()) { 239 if (request_context->network_quality_estimator()) {
234 session_context->socket_performance_watcher_factory = 240 session_context->socket_performance_watcher_factory =
235 request_context->network_quality_estimator() 241 request_context->network_quality_estimator()
236 ->GetSocketPerformanceWatcherFactory(); 242 ->GetSocketPerformanceWatcherFactory();
237 } 243 }
238 } 244 }
239 245
246 void URLRequestContextBuilder::set_accept_language(
247 const std::string& accept_language) {
248 DCHECK(!shared_http_user_agent_settings_);
249 accept_language_ = accept_language;
250 }
251 void URLRequestContextBuilder::set_user_agent(const std::string& user_agent) {
252 DCHECK(!shared_http_user_agent_settings_);
253 user_agent_ = user_agent;
254 }
255 void URLRequestContextBuilder::set_shared_http_user_agent_settings(
256 HttpUserAgentSettings* shared_http_user_agent_settings) {
257 DCHECK(accept_language_.empty());
258 DCHECK(user_agent_.empty());
259 shared_http_user_agent_settings_ = shared_http_user_agent_settings;
260 }
261
240 void URLRequestContextBuilder::EnableHttpCache(const HttpCacheParams& params) { 262 void URLRequestContextBuilder::EnableHttpCache(const HttpCacheParams& params) {
241 http_cache_enabled_ = true; 263 http_cache_enabled_ = true;
242 http_cache_params_ = params; 264 http_cache_params_ = params;
243 } 265 }
244 266
245 void URLRequestContextBuilder::DisableHttpCache() { 267 void URLRequestContextBuilder::DisableHttpCache() {
246 http_cache_enabled_ = false; 268 http_cache_enabled_ = false;
247 http_cache_params_ = HttpCacheParams(); 269 http_cache_params_ = HttpCacheParams();
248 } 270 }
249 271
250 void URLRequestContextBuilder::SetSpdyAndQuicEnabled(bool spdy_enabled, 272 void URLRequestContextBuilder::SetSpdyAndQuicEnabled(bool spdy_enabled,
251 bool quic_enabled) { 273 bool quic_enabled) {
252 http_network_session_params_.enable_http2 = spdy_enabled; 274 http_network_session_params_.enable_http2 = spdy_enabled;
253 http_network_session_params_.enable_quic = quic_enabled; 275 http_network_session_params_.enable_quic = quic_enabled;
254 } 276 }
255 277
256 void URLRequestContextBuilder::set_ct_verifier( 278 void URLRequestContextBuilder::set_ct_verifier(
257 std::unique_ptr<CTVerifier> ct_verifier) { 279 std::unique_ptr<CTVerifier> ct_verifier) {
258 ct_verifier_ = std::move(ct_verifier); 280 ct_verifier_ = std::move(ct_verifier);
259 } 281 }
260 282
261 void URLRequestContextBuilder::set_ct_policy_enforcer( 283 void URLRequestContextBuilder::set_ct_policy_enforcer(
262 std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer) { 284 std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer) {
263 ct_policy_enforcer_ = std::move(ct_policy_enforcer); 285 ct_policy_enforcer_ = std::move(ct_policy_enforcer);
264 } 286 }
265 287
266 void URLRequestContextBuilder::SetCertVerifier( 288 void URLRequestContextBuilder::SetCertVerifier(
267 std::unique_ptr<CertVerifier> cert_verifier) { 289 std::unique_ptr<CertVerifier> cert_verifier) {
290 DCHECK(!shared_cert_verifier_);
268 cert_verifier_ = std::move(cert_verifier); 291 cert_verifier_ = std::move(cert_verifier);
269 } 292 }
270 293
294 void URLRequestContextBuilder::set_shared_cert_verifier(
295 CertVerifier* shared_cert_verifier) {
296 DCHECK(!cert_verifier_);
297 shared_cert_verifier_ = shared_cert_verifier;
298 }
299
271 #if BUILDFLAG(ENABLE_REPORTING) 300 #if BUILDFLAG(ENABLE_REPORTING)
272 void URLRequestContextBuilder::set_reporting_policy( 301 void URLRequestContextBuilder::set_reporting_policy(
273 std::unique_ptr<net::ReportingPolicy> reporting_policy) { 302 std::unique_ptr<net::ReportingPolicy> reporting_policy) {
274 reporting_policy_ = std::move(reporting_policy); 303 reporting_policy_ = std::move(reporting_policy);
275 } 304 }
276 #endif // BUILDFLAG(ENABLE_REPORTING) 305 #endif // BUILDFLAG(ENABLE_REPORTING)
277 306
278 void URLRequestContextBuilder::SetInterceptors( 307 void URLRequestContextBuilder::SetInterceptors(
279 std::vector<std::unique_ptr<URLRequestInterceptor>> 308 std::vector<std::unique_ptr<URLRequestInterceptor>>
280 url_request_interceptors) { 309 url_request_interceptors) {
281 url_request_interceptors_ = std::move(url_request_interceptors); 310 url_request_interceptors_ = std::move(url_request_interceptors);
282 } 311 }
283 312
313 void URLRequestContextBuilder::set_create_intercepting_job_factory(
314 CreateInterceptingJobFactory create_intercepting_job_factory) {
315 DCHECK(!create_intercepting_job_factory_);
316 create_intercepting_job_factory_ = std::move(create_intercepting_job_factory);
317 }
318
284 void URLRequestContextBuilder::SetCookieAndChannelIdStores( 319 void URLRequestContextBuilder::SetCookieAndChannelIdStores(
285 std::unique_ptr<CookieStore> cookie_store, 320 std::unique_ptr<CookieStore> cookie_store,
286 std::unique_ptr<ChannelIDService> channel_id_service) { 321 std::unique_ptr<ChannelIDService> channel_id_service) {
287 cookie_store_set_by_client_ = true; 322 cookie_store_set_by_client_ = true;
288 // If |cookie_store| is NULL, |channel_id_service| must be NULL too. 323 // If |cookie_store| is NULL, |channel_id_service| must be NULL too.
289 DCHECK(cookie_store || !channel_id_service); 324 DCHECK(cookie_store || !channel_id_service);
290 cookie_store_ = std::move(cookie_store); 325 cookie_store_ = std::move(cookie_store);
291 channel_id_service_ = std::move(channel_id_service); 326 channel_id_service_ = std::move(channel_id_service);
292 } 327 }
293 328
294 void URLRequestContextBuilder::SetCacheThreadTaskRunner( 329 void URLRequestContextBuilder::SetCacheThreadTaskRunner(
295 scoped_refptr<base::SingleThreadTaskRunner> cache_thread_task_runner) { 330 scoped_refptr<base::SingleThreadTaskRunner> cache_thread_task_runner) {
296 cache_thread_task_runner_ = std::move(cache_thread_task_runner); 331 cache_thread_task_runner_ = std::move(cache_thread_task_runner);
297 } 332 }
298 333
299 void URLRequestContextBuilder::SetProtocolHandler( 334 void URLRequestContextBuilder::SetProtocolHandler(
300 const std::string& scheme, 335 const std::string& scheme,
301 std::unique_ptr<URLRequestJobFactory::ProtocolHandler> protocol_handler) { 336 std::unique_ptr<URLRequestJobFactory::ProtocolHandler> protocol_handler) {
302 DCHECK(protocol_handler); 337 DCHECK(protocol_handler);
338 // If a consumer sets a ProtocolHandler and then overwrites it with another,
339 // it's probably a bug.
340 DCHECK_EQ(0u, protocol_handlers_.count(scheme));
303 protocol_handlers_[scheme] = std::move(protocol_handler); 341 protocol_handlers_[scheme] = std::move(protocol_handler);
304 } 342 }
305 343
344 void URLRequestContextBuilder::set_host_resolver(
345 std::unique_ptr<HostResolver> host_resolver) {
346 DCHECK(!shared_host_resolver_);
347 host_resolver_ = std::move(host_resolver);
348 }
349
350 void URLRequestContextBuilder::set_shared_host_resolver(
351 HostResolver* shared_host_resolver) {
352 DCHECK(!host_resolver_);
353 shared_host_resolver_ = shared_host_resolver;
354 }
355
356 void URLRequestContextBuilder::set_proxy_delegate(
357 std::unique_ptr<ProxyDelegate> proxy_delegate) {
358 DCHECK(!shared_proxy_delegate_);
359 proxy_delegate_ = std::move(proxy_delegate);
360 }
361
362 void URLRequestContextBuilder::set_shared_proxy_delegate(
363 ProxyDelegate* shared_proxy_delegate) {
364 DCHECK(!proxy_delegate_);
365 shared_proxy_delegate_ = shared_proxy_delegate;
366 }
367
306 void URLRequestContextBuilder::SetHttpAuthHandlerFactory( 368 void URLRequestContextBuilder::SetHttpAuthHandlerFactory(
307 std::unique_ptr<HttpAuthHandlerFactory> factory) { 369 std::unique_ptr<HttpAuthHandlerFactory> factory) {
370 DCHECK(!shared_http_auth_handler_factory_);
308 http_auth_handler_factory_ = std::move(factory); 371 http_auth_handler_factory_ = std::move(factory);
309 } 372 }
310 373
374 void URLRequestContextBuilder::set_shared_http_auth_handler_factory(
375 HttpAuthHandlerFactory* shared_http_auth_handler_factory) {
376 DCHECK(!http_auth_handler_factory_);
377 shared_http_auth_handler_factory_ = shared_http_auth_handler_factory;
378 }
379
311 void URLRequestContextBuilder::SetHttpServerProperties( 380 void URLRequestContextBuilder::SetHttpServerProperties(
312 std::unique_ptr<HttpServerProperties> http_server_properties) { 381 std::unique_ptr<HttpServerProperties> http_server_properties) {
313 http_server_properties_ = std::move(http_server_properties); 382 http_server_properties_ = std::move(http_server_properties);
314 } 383 }
315 384
316 std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() { 385 std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
317 std::unique_ptr<ContainerURLRequestContext> context( 386 std::unique_ptr<ContainerURLRequestContext> context(
318 new ContainerURLRequestContext()); 387 new ContainerURLRequestContext());
319 URLRequestContextStorage* storage = context->storage(); 388 URLRequestContextStorage* storage = context->storage();
320 389
321 context->set_name(name_); 390 context->set_name(name_);
322 context->set_enable_brotli(enable_brotli_); 391 context->set_enable_brotli(enable_brotli_);
323 context->set_network_quality_estimator(network_quality_estimator_); 392 context->set_network_quality_estimator(network_quality_estimator_);
324 393
325 storage->set_http_user_agent_settings( 394 if (shared_http_user_agent_settings_) {
326 base::MakeUnique<StaticHttpUserAgentSettings>(accept_language_, 395 context->set_http_user_agent_settings(shared_http_user_agent_settings_);
327 user_agent_)); 396 } else {
397 storage->set_http_user_agent_settings(
398 base::MakeUnique<StaticHttpUserAgentSettings>(accept_language_,
399 user_agent_));
400 }
328 401
329 if (!network_delegate_) 402 if (!network_delegate_)
330 network_delegate_.reset(new BasicNetworkDelegate); 403 network_delegate_.reset(new BasicNetworkDelegate);
331 storage->set_network_delegate(std::move(network_delegate_)); 404 storage->set_network_delegate(std::move(network_delegate_));
332 405
333 if (net_log_) { 406 if (net_log_) {
334 // Unlike the other builder parameters, |net_log_| is not owned by the 407 // Unlike the other builder parameters, |net_log_| is not owned by the
335 // builder or resulting context. 408 // builder or resulting context.
336 context->set_net_log(net_log_); 409 context->set_net_log(net_log_);
337 } else { 410 } else {
338 storage->set_net_log(base::WrapUnique(new NetLog)); 411 storage->set_net_log(base::WrapUnique(new NetLog));
339 } 412 }
340 413
341 if (!host_resolver_) { 414 if (host_resolver_) {
342 host_resolver_ = HostResolver::CreateDefaultResolver(context->net_log()); 415 DCHECK(!shared_host_resolver_);
416 storage->set_host_resolver(std::move(host_resolver_));
417 } else if (shared_host_resolver_) {
418 context->set_host_resolver(shared_host_resolver_);
419 } else {
420 storage->set_host_resolver(
421 HostResolver::CreateDefaultResolver(context->net_log()));
343 } 422 }
344 storage->set_host_resolver(std::move(host_resolver_));
345 423
346 if (ssl_config_service_) { 424 if (ssl_config_service_) {
347 // This takes a raw pointer, but |storage| will hold onto a reference to the 425 // This takes a raw pointer, but |storage| will hold onto a reference to the
348 // service. 426 // service.
349 storage->set_ssl_config_service(ssl_config_service_.get()); 427 storage->set_ssl_config_service(ssl_config_service_.get());
350 } else { 428 } else {
351 storage->set_ssl_config_service(new SSLConfigServiceDefaults); 429 storage->set_ssl_config_service(new SSLConfigServiceDefaults);
352 } 430 }
353 431
354 if (!http_auth_handler_factory_) { 432 if (http_auth_handler_factory_) {
355 http_auth_handler_factory_ = 433 DCHECK(!shared_http_auth_handler_factory_);
356 HttpAuthHandlerRegistryFactory::CreateDefault(context->host_resolver()); 434 storage->set_http_auth_handler_factory(
435 std::move(http_auth_handler_factory_));
436 } else if (shared_http_auth_handler_factory_) {
437 context->set_http_auth_handler_factory(shared_http_auth_handler_factory_);
438 } else {
439 storage->set_http_auth_handler_factory(
440 HttpAuthHandlerRegistryFactory::CreateDefault(
441 context->host_resolver()));
357 } 442 }
358 443
359 storage->set_http_auth_handler_factory(std::move(http_auth_handler_factory_));
360
361 if (cookie_store_set_by_client_) { 444 if (cookie_store_set_by_client_) {
362 storage->set_cookie_store(std::move(cookie_store_)); 445 storage->set_cookie_store(std::move(cookie_store_));
363 storage->set_channel_id_service(std::move(channel_id_service_)); 446 storage->set_channel_id_service(std::move(channel_id_service_));
364 } else { 447 } else {
365 std::unique_ptr<CookieStore> cookie_store( 448 std::unique_ptr<CookieStore> cookie_store(
366 new CookieMonster(nullptr, nullptr)); 449 new CookieMonster(nullptr, nullptr));
367 std::unique_ptr<ChannelIDService> channel_id_service( 450 std::unique_ptr<ChannelIDService> channel_id_service(
368 new ChannelIDService(new DefaultChannelIDStore(NULL))); 451 new ChannelIDService(new DefaultChannelIDStore(NULL)));
369 cookie_store->SetChannelIDServiceID(channel_id_service->GetUniqueID()); 452 cookie_store->SetChannelIDServiceID(channel_id_service->GetUniqueID());
370 storage->set_cookie_store(std::move(cookie_store)); 453 storage->set_cookie_store(std::move(cookie_store));
(...skipping 11 matching lines...) Expand all
382 // Use a low priority because saving this should not block anything 465 // Use a low priority because saving this should not block anything
383 // user-visible. Block shutdown to ensure it does get persisted to disk, 466 // user-visible. Block shutdown to ensure it does get persisted to disk,
384 // since it contains security-relevant information. 467 // since it contains security-relevant information.
385 scoped_refptr<base::SequencedTaskRunner> task_runner( 468 scoped_refptr<base::SequencedTaskRunner> task_runner(
386 base::CreateSequencedTaskRunnerWithTraits( 469 base::CreateSequencedTaskRunnerWithTraits(
387 {base::MayBlock(), base::TaskPriority::BACKGROUND, 470 {base::MayBlock(), base::TaskPriority::BACKGROUND,
388 base::TaskShutdownBehavior::BLOCK_SHUTDOWN})); 471 base::TaskShutdownBehavior::BLOCK_SHUTDOWN}));
389 472
390 context->set_transport_security_persister( 473 context->set_transport_security_persister(
391 base::WrapUnique<TransportSecurityPersister>( 474 base::WrapUnique<TransportSecurityPersister>(
392 new TransportSecurityPersister(context->transport_security_state(), 475 new TransportSecurityPersister(
393 transport_security_persister_path_, 476 context->transport_security_state(),
394 task_runner, false))); 477 transport_security_persister_path_, task_runner,
478 transport_security_persister_readonly_)));
395 } 479 }
396 480
397 if (http_server_properties_) { 481 if (http_server_properties_) {
398 storage->set_http_server_properties(std::move(http_server_properties_)); 482 storage->set_http_server_properties(std::move(http_server_properties_));
399 } else { 483 } else {
400 storage->set_http_server_properties( 484 storage->set_http_server_properties(
401 std::unique_ptr<HttpServerProperties>(new HttpServerPropertiesImpl())); 485 std::unique_ptr<HttpServerProperties>(new HttpServerPropertiesImpl()));
402 } 486 }
403 487
404 if (cert_verifier_) { 488 if (cert_verifier_) {
489 DCHECK(!shared_cert_verifier_);
405 storage->set_cert_verifier(std::move(cert_verifier_)); 490 storage->set_cert_verifier(std::move(cert_verifier_));
491 } else if (shared_cert_verifier_) {
492 context->set_cert_verifier(shared_cert_verifier_);
406 } else { 493 } else {
407 storage->set_cert_verifier(CertVerifier::CreateDefault()); 494 storage->set_cert_verifier(CertVerifier::CreateDefault());
408 } 495 }
409 496
410 if (ct_verifier_) { 497 if (ct_verifier_) {
411 storage->set_cert_transparency_verifier(std::move(ct_verifier_)); 498 storage->set_cert_transparency_verifier(std::move(ct_verifier_));
412 } else { 499 } else {
413 std::unique_ptr<MultiLogCTVerifier> ct_verifier = 500 std::unique_ptr<MultiLogCTVerifier> ct_verifier =
414 base::MakeUnique<MultiLogCTVerifier>(); 501 base::MakeUnique<MultiLogCTVerifier>();
415 ct_verifier->AddLogs(ct::CreateLogVerifiersForKnownLogs()); 502 ct_verifier->AddLogs(ct::CreateLogVerifiersForKnownLogs());
(...skipping 25 matching lines...) Expand all
441 context->network_delegate(), context->net_log()); 528 context->network_delegate(), context->net_log());
442 proxy_service_->set_quick_check_enabled(pac_quick_check_enabled_); 529 proxy_service_->set_quick_check_enabled(pac_quick_check_enabled_);
443 proxy_service_->set_sanitize_url_policy(pac_sanitize_url_policy_); 530 proxy_service_->set_sanitize_url_policy(pac_sanitize_url_policy_);
444 } 531 }
445 storage->set_proxy_service(std::move(proxy_service_)); 532 storage->set_proxy_service(std::move(proxy_service_));
446 533
447 HttpNetworkSession::Context network_session_context; 534 HttpNetworkSession::Context network_session_context;
448 SetHttpNetworkSessionComponents(context.get(), &network_session_context); 535 SetHttpNetworkSessionComponents(context.get(), &network_session_context);
449 536
450 if (proxy_delegate_) { 537 if (proxy_delegate_) {
538 DCHECK(!shared_proxy_delegate_);
451 network_session_context.proxy_delegate = proxy_delegate_.get(); 539 network_session_context.proxy_delegate = proxy_delegate_.get();
452 storage->set_proxy_delegate(std::move(proxy_delegate_)); 540 storage->set_proxy_delegate(std::move(proxy_delegate_));
541 } else if (shared_proxy_delegate_) {
542 network_session_context.proxy_delegate = shared_proxy_delegate_;
453 } 543 }
454 544
455 storage->set_http_network_session(base::MakeUnique<HttpNetworkSession>( 545 storage->set_http_network_session(base::MakeUnique<HttpNetworkSession>(
456 http_network_session_params_, network_session_context)); 546 http_network_session_params_, network_session_context));
457 547
458 std::unique_ptr<HttpTransactionFactory> http_transaction_factory; 548 std::unique_ptr<HttpTransactionFactory> http_transaction_factory;
459 if (http_cache_enabled_) { 549 if (http_cache_enabled_) {
460 std::unique_ptr<HttpCache::BackendFactory> http_cache_backend; 550 std::unique_ptr<HttpCache::BackendFactory> http_cache_backend;
461 if (http_cache_params_.type != HttpCacheParams::IN_MEMORY) { 551 if (http_cache_params_.type != HttpCacheParams::IN_MEMORY) {
462 if (!cache_thread_task_runner_) { 552 if (!cache_thread_task_runner_) {
463 cache_thread_task_runner_ = 553 cache_thread_task_runner_ =
464 base::CreateSingleThreadTaskRunnerWithTraits( 554 base::CreateSingleThreadTaskRunnerWithTraits(
465 {base::MayBlock(), base::TaskPriority::USER_BLOCKING, 555 {base::MayBlock(), base::TaskPriority::USER_BLOCKING,
466 base::TaskShutdownBehavior::BLOCK_SHUTDOWN}); 556 base::TaskShutdownBehavior::BLOCK_SHUTDOWN});
467 } 557 }
468 BackendType backend_type = 558 // TODO(mmenke): Maybe merge BackendType and HttpCacheParams::Type? The
469 http_cache_params_.type == HttpCacheParams::DISK 559 // first doesn't include in memory, so may require some work.
470 ? CACHE_BACKEND_DEFAULT 560 BackendType backend_type = CACHE_BACKEND_DEFAULT;
471 : CACHE_BACKEND_SIMPLE; 561 switch (http_cache_params_.type) {
562 case HttpCacheParams::DISK:
563 backend_type = CACHE_BACKEND_DEFAULT;
564 break;
565 case HttpCacheParams::DISK_BLOCKFILE:
566 backend_type = CACHE_BACKEND_BLOCKFILE;
567 break;
568 case HttpCacheParams::DISK_SIMPLE:
569 backend_type = CACHE_BACKEND_SIMPLE;
570 break;
571 case HttpCacheParams::IN_MEMORY:
572 NOTREACHED();
573 break;
574 }
472 http_cache_backend.reset(new HttpCache::DefaultBackend( 575 http_cache_backend.reset(new HttpCache::DefaultBackend(
473 DISK_CACHE, backend_type, http_cache_params_.path, 576 DISK_CACHE, backend_type, http_cache_params_.path,
474 http_cache_params_.max_size, cache_thread_task_runner_)); 577 http_cache_params_.max_size, cache_thread_task_runner_));
475 } else { 578 } else {
476 http_cache_backend = 579 http_cache_backend =
477 HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size); 580 HttpCache::DefaultBackend::InMemory(http_cache_params_.max_size);
478 } 581 }
479 582
480 http_transaction_factory.reset(new HttpCache( 583 http_transaction_factory.reset(new HttpCache(
481 storage->http_network_session(), std::move(http_cache_backend), true)); 584 storage->http_network_session(), std::move(http_cache_backend), true));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 if (!url_request_interceptors_.empty()) { 622 if (!url_request_interceptors_.empty()) {
520 // Set up interceptors in the reverse order. 623 // Set up interceptors in the reverse order.
521 624
522 for (auto i = url_request_interceptors_.rbegin(); 625 for (auto i = url_request_interceptors_.rbegin();
523 i != url_request_interceptors_.rend(); ++i) { 626 i != url_request_interceptors_.rend(); ++i) {
524 top_job_factory.reset(new net::URLRequestInterceptingJobFactory( 627 top_job_factory.reset(new net::URLRequestInterceptingJobFactory(
525 std::move(top_job_factory), std::move(*i))); 628 std::move(top_job_factory), std::move(*i)));
526 } 629 }
527 url_request_interceptors_.clear(); 630 url_request_interceptors_.clear();
528 } 631 }
632 if (create_intercepting_job_factory_) {
633 top_job_factory = std::move(create_intercepting_job_factory_)
634 .Run(std::move(top_job_factory));
635 }
529 storage->set_job_factory(std::move(top_job_factory)); 636 storage->set_job_factory(std::move(top_job_factory));
530 637
531 #if BUILDFLAG(ENABLE_REPORTING) 638 #if BUILDFLAG(ENABLE_REPORTING)
532 if (reporting_policy_) { 639 if (reporting_policy_) {
533 storage->set_reporting_service( 640 storage->set_reporting_service(
534 ReportingService::Create(*reporting_policy_, context.get())); 641 ReportingService::Create(*reporting_policy_, context.get()));
535 } 642 }
536 #endif // BUILDFLAG(ENABLE_REPORTING) 643 #endif // BUILDFLAG(ENABLE_REPORTING)
537 644
538 return std::move(context); 645 return std::move(context);
539 } 646 }
540 647
541 std::unique_ptr<ProxyService> URLRequestContextBuilder::CreateProxyService( 648 std::unique_ptr<ProxyService> URLRequestContextBuilder::CreateProxyService(
542 std::unique_ptr<ProxyConfigService> proxy_config_service, 649 std::unique_ptr<ProxyConfigService> proxy_config_service,
543 URLRequestContext* url_request_context, 650 URLRequestContext* url_request_context,
544 HostResolver* host_resolver, 651 HostResolver* host_resolver,
545 NetworkDelegate* network_delegate, 652 NetworkDelegate* network_delegate,
546 NetLog* net_log) { 653 NetLog* net_log) {
547 return ProxyService::CreateUsingSystemProxyResolver( 654 return ProxyService::CreateUsingSystemProxyResolver(
548 std::move(proxy_config_service), net_log); 655 std::move(proxy_config_service), net_log);
549 } 656 }
550 657
551 } // namespace net 658 } // namespace net
OLDNEW
« no previous file with comments | « net/url_request/url_request_context_builder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698