url_request_context.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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" 220f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "net/base/request_priority.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/http/http_network_session.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/http/http_server_properties.h" 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/http/transport_security_state.h" 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/ssl/ssl_config_service.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "net/url_request/url_request.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CertVerifier; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CookieStore; 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)class CTVerifier; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class FraudulentCertificateReporter; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HostResolver; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HttpAuthHandlerFactory; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HttpTransactionFactory; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HttpUserAgentSettings; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NetworkDelegate; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ServerBoundCertService; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ProxyService; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequest; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequestJobFactory; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class URLRequestThrottlerManager; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Subclass to provide application-specific context for URLRequest 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// instances. Note that URLRequestContext typically does not provide storage for 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// these member variables, since they may be shared. For the ones that aren't 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// shared, URLRequestContextStorage can be helpful in defining their storage. 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NET_EXPORT URLRequestContext 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch : NON_EXPORTED_BASE(public base::NonThreadSafe) { 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestContext(); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~URLRequestContext(); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Copies the state from |other| into this context. 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CopyFrom(const URLRequestContext* other); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // May return NULL if this context doesn't have an associated network session. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const HttpNetworkSession::Params* GetNetworkSessionParams() const; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Creates a URLRequest. |cookie_store| optionally specifies a cookie store 62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // to be used rather than the one represented by the context, or NULL 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // otherwise. 640f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) scoped_ptr<URLRequest> CreateRequest(const GURL& url, 650f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) RequestPriority priority, 66a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) URLRequest::Delegate* delegate, 67a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) CookieStore* cookie_store) const; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetLog* net_log() const { 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return net_log_; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_net_log(NetLog* net_log) { 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) net_log_ = net_log; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostResolver* host_resolver() const { 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return host_resolver_; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_host_resolver(HostResolver* host_resolver) { 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) host_resolver_ = host_resolver; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CertVerifier* cert_verifier() const { 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return cert_verifier_; 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_cert_verifier(CertVerifier* cert_verifier) { 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cert_verifier_ = cert_verifier; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ServerBoundCertService* server_bound_cert_service() const { 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return server_bound_cert_service_; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_server_bound_cert_service( 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ServerBoundCertService* server_bound_cert_service) { 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) server_bound_cert_service_ = server_bound_cert_service; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FraudulentCertificateReporter* fraudulent_certificate_reporter() const { 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return fraudulent_certificate_reporter_; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_fraudulent_certificate_reporter( 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FraudulentCertificateReporter* fraudulent_certificate_reporter) { 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fraudulent_certificate_reporter_ = fraudulent_certificate_reporter; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the proxy service for this context. 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProxyService* proxy_service() const { return proxy_service_; } 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_proxy_service(ProxyService* proxy_service) { 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) proxy_service_ = proxy_service; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the ssl config service for this context. 117868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) SSLConfigService* ssl_config_service() const { 118868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return ssl_config_service_.get(); 119868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_ssl_config_service(SSLConfigService* service) { 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ssl_config_service_ = service; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the HTTP Authentication Handler Factory for this context. 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The factory is only valid for the lifetime of this URLRequestContext 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpAuthHandlerFactory* http_auth_handler_factory() const { 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_auth_handler_factory_; 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_auth_handler_factory(HttpAuthHandlerFactory* factory) { 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_auth_handler_factory_ = factory; 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the http transaction factory for this context. 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpTransactionFactory* http_transaction_factory() const { 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_transaction_factory_; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_transaction_factory(HttpTransactionFactory* factory) { 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_transaction_factory_ = factory; 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_network_delegate(NetworkDelegate* network_delegate) { 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) network_delegate_ = network_delegate; 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetworkDelegate* network_delegate() const { return network_delegate_; } 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_server_properties( 147ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const base::WeakPtr<HttpServerProperties>& http_server_properties) { 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_server_properties_ = http_server_properties; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 150ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch base::WeakPtr<HttpServerProperties> http_server_properties() const { 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_server_properties_; 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the cookie store for this context (may be null, in which case 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // cookies are not stored). 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CookieStore* cookie_store() const { return cookie_store_.get(); } 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_cookie_store(CookieStore* cookie_store); 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportSecurityState* transport_security_state() const { 160a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return transport_security_state_; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_transport_security_state( 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportSecurityState* state) { 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) transport_security_state_ = state; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 167a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) CTVerifier* cert_transparency_verifier() const { 168a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return cert_transparency_verifier_; 169a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 170a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void set_cert_transparency_verifier(CTVerifier* verifier) { 171a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) cert_transparency_verifier_ = verifier; 172a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 173a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const URLRequestJobFactory* job_factory() const { return job_factory_; } 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_job_factory(const URLRequestJobFactory* job_factory) { 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) job_factory_ = job_factory; 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // May be NULL. 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestThrottlerManager* throttler_manager() const { 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return throttler_manager_; 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_throttler_manager(URLRequestThrottlerManager* throttler_manager) { 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) throttler_manager_ = throttler_manager; 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Gets the URLRequest objects that hold a reference to this 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URLRequestContext. 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::set<const URLRequest*>* url_requests() const { 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return url_requests_.get(); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AssertNoURLRequests() const; 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get the underlying |HttpUserAgentSettings| implementation that provides 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // the HTTP Accept-Language and User-Agent header values. 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const HttpUserAgentSettings* http_user_agent_settings() const { 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return http_user_agent_settings_; 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_http_user_agent_settings( 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpUserAgentSettings* http_user_agent_settings) { 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) http_user_agent_settings_ = http_user_agent_settings; 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Important: When adding any new members below, consider whether they need to 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be added to CopyFrom. 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Ownership for these members are not defined here. Clients should either 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // provide storage elsewhere or have a subclass take ownership. 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetLog* net_log_; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostResolver* host_resolver_; 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CertVerifier* cert_verifier_; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ServerBoundCertService* server_bound_cert_service_; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FraudulentCertificateReporter* fraudulent_certificate_reporter_; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpAuthHandlerFactory* http_auth_handler_factory_; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProxyService* proxy_service_; 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<SSLConfigService> ssl_config_service_; 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NetworkDelegate* network_delegate_; 222ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch base::WeakPtr<HttpServerProperties> http_server_properties_; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpUserAgentSettings* http_user_agent_settings_; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<CookieStore> cookie_store_; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportSecurityState* transport_security_state_; 226a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) CTVerifier* cert_transparency_verifier_; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HttpTransactionFactory* http_transaction_factory_; 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const URLRequestJobFactory* job_factory_; 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) URLRequestThrottlerManager* throttler_manager_; 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Important: When adding any new members below, consider whether they need to 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be added to CopyFrom. 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<std::set<const URLRequest*> > url_requests_; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(URLRequestContext); 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // NET_URL_REQUEST_URL_REQUEST_CONTEXT_H_ 244