url_request_context.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This class represents contextual information (cookies, cache, etc.) 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// that's useful when processing resource requests. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The class is reference-counted so that it can be cleaned up after any 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// requests that are using it have been completed. 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef NET_URL_REQUEST_URL_REQUEST_CONTEXT_H_ 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NET_URL_REQUEST_URL_REQUEST_CONTEXT_H_ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <set> 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/ref_counted.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/weak_ptr.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/threading/non_thread_safe.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/net_export.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/base/net_log.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/http/http_network_session.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/http/http_server_properties.h" 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/http/transport_security_state.h" 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/ssl/ssl_config_service.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CertVerifier; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CookieStore; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FraudulentCertificateReporter; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HostResolver; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HttpAuthHandlerFactory; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HttpTransactionFactory; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HttpUserAgentSettings; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NetworkDelegate; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ServerBoundCertService; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ProxyService; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequest; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequestJobFactory; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequestThrottlerManager; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Subclass to provide application-specific context for URLRequest 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// instances. Note that URLRequestContext typically does not provide storage for 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// these member variables, since they may be shared. For the ones that aren't 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// shared, URLRequestContextStorage can be helpful in defining their storage. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NET_EXPORT URLRequestContext 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch : NON_EXPORTED_BASE(public base::NonThreadSafe) { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestContext(); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~URLRequestContext(); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Copies the state from |other| into this context. 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CopyFrom(const URLRequestContext* other); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // May return NULL if this context doesn't have an associated network session. 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const HttpNetworkSession::Params* GetNetworkSessionParams() const; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequest* CreateRequest( 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, URLRequest::Delegate* delegate) const; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetLog* net_log() const { 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return net_log_; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_net_log(NetLog* net_log) { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) net_log_ = net_log; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostResolver* host_resolver() const { 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return host_resolver_; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_host_resolver(HostResolver* host_resolver) { 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) host_resolver_ = host_resolver; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CertVerifier* cert_verifier() const { 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return cert_verifier_; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_cert_verifier(CertVerifier* cert_verifier) { 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cert_verifier_ = cert_verifier; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ServerBoundCertService* server_bound_cert_service() const { 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return server_bound_cert_service_; 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_server_bound_cert_service( 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ServerBoundCertService* server_bound_cert_service) { 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) server_bound_cert_service_ = server_bound_cert_service; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FraudulentCertificateReporter* fraudulent_certificate_reporter() const { 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return fraudulent_certificate_reporter_; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_fraudulent_certificate_reporter( 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FraudulentCertificateReporter* fraudulent_certificate_reporter) { 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fraudulent_certificate_reporter_ = fraudulent_certificate_reporter; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the proxy service for this context. 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProxyService* proxy_service() const { return proxy_service_; } 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_proxy_service(ProxyService* proxy_service) { 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) proxy_service_ = proxy_service; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the ssl config service for this context. 110868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SSLConfigService* ssl_config_service() const { 111868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return ssl_config_service_.get(); 112868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_ssl_config_service(SSLConfigService* service) { 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ssl_config_service_ = service; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the HTTP Authentication Handler Factory for this context. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The factory is only valid for the lifetime of this URLRequestContext 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpAuthHandlerFactory* http_auth_handler_factory() const { 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_auth_handler_factory_; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_auth_handler_factory(HttpAuthHandlerFactory* factory) { 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_auth_handler_factory_ = factory; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the http transaction factory for this context. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpTransactionFactory* http_transaction_factory() const { 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_transaction_factory_; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_transaction_factory(HttpTransactionFactory* factory) { 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_transaction_factory_ = factory; 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_network_delegate(NetworkDelegate* network_delegate) { 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) network_delegate_ = network_delegate; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetworkDelegate* network_delegate() const { return network_delegate_; } 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_server_properties( 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpServerProperties* http_server_properties) { 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_server_properties_ = http_server_properties; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpServerProperties* http_server_properties() const { 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_server_properties_; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the cookie store for this context (may be null, in which case 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // cookies are not stored). 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CookieStore* cookie_store() const { return cookie_store_.get(); } 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_cookie_store(CookieStore* cookie_store); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportSecurityState* transport_security_state() const { 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return transport_security_state_; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_transport_security_state( 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportSecurityState* state) { 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) transport_security_state_ = state; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Legacy accessors that delegate to http_user_agent_settings_. 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(pauljensen): Remove after all clients are updated to directly access 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // http_user_agent_settings_. 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the value of 'Accept-Language' header field. 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string GetAcceptLanguage() const; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the UA string to use for the given URL. Pass an invalid URL (such as 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // GURL()) to get the default UA string. 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string GetUserAgent(const GURL& url) const; 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const URLRequestJobFactory* job_factory() const { return job_factory_; } 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_job_factory(const URLRequestJobFactory* job_factory) { 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) job_factory_ = job_factory; 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // May be NULL. 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestThrottlerManager* throttler_manager() const { 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return throttler_manager_; 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_throttler_manager(URLRequestThrottlerManager* throttler_manager) { 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) throttler_manager_ = throttler_manager; 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the URLRequest objects that hold a reference to this 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URLRequestContext. 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<const URLRequest*>* url_requests() const { 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return url_requests_.get(); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AssertNoURLRequests() const; 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the underlying |HttpUserAgentSettings| implementation that provides 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // the HTTP Accept-Language and User-Agent header values. 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const HttpUserAgentSettings* http_user_agent_settings() const { 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_user_agent_settings_; 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_user_agent_settings( 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpUserAgentSettings* http_user_agent_settings) { 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_user_agent_settings_ = http_user_agent_settings; 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Important: When adding any new members below, consider whether they need to 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be added to CopyFrom. 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Ownership for these members are not defined here. Clients should either 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // provide storage elsewhere or have a subclass take ownership. 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetLog* net_log_; 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostResolver* host_resolver_; 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CertVerifier* cert_verifier_; 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ServerBoundCertService* server_bound_cert_service_; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FraudulentCertificateReporter* fraudulent_certificate_reporter_; 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpAuthHandlerFactory* http_auth_handler_factory_; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProxyService* proxy_service_; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<SSLConfigService> ssl_config_service_; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetworkDelegate* network_delegate_; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpServerProperties* http_server_properties_; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpUserAgentSettings* http_user_agent_settings_; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<CookieStore> cookie_store_; 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportSecurityState* transport_security_state_; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpTransactionFactory* http_transaction_factory_; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const URLRequestJobFactory* job_factory_; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestThrottlerManager* throttler_manager_; 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Important: When adding any new members below, consider whether they need to 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be added to CopyFrom. 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<std::set<const URLRequest*> > url_requests_; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(URLRequestContext); 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_H_ 240