Make URLRequestContext setters private

Settings context's members after it is built, is a violation of a
contract, so let's make it impossible.

Bug: 1282359, 1282361
Change-Id: I3b4bf19f92ac929e1c6d6def36b231926616217d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3545978
Reviewed-by: Stefano Duo <[email protected]>
Reviewed-by: Christian Dullweber <[email protected]>
Reviewed-by: Kenichi Ishibashi <[email protected]>
Reviewed-by: Rohit Rao <[email protected]>
Commit-Queue: Yutaka Hirano <[email protected]>
Cr-Commit-Position: refs/heads/main@{#986541}
diff --git a/net/url_request/url_request_context.h b/net/url_request/url_request_context.h
index a87d328..ed96c73 100644
--- a/net/url_request/url_request_context.h
+++ b/net/url_request/url_request_context.h
@@ -41,16 +41,20 @@
 class HttpUserAgentSettings;
 class NetLog;
 class NetworkDelegate;
+class NetworkErrorLoggingService;
 class NetworkQualityEstimator;
 class ProxyDelegate;
 class ProxyResolutionService;
 class QuicContext;
+class ReportingService;
 class SCTAuditingDelegate;
 class SSLConfigService;
 class TransportSecurityState;
 class URLRequest;
 class URLRequestJobFactory;
 class URLRequestThrottlerManager;
+class URLRequestContextStorage;
+class URLRequestContextBuilder;
 
 #if BUILDFLAG(ENABLE_REPORTING)
 class NetworkErrorLoggingService;
@@ -123,73 +127,37 @@
 
   NetLog* net_log() const { return net_log_; }
 
-  void set_net_log(NetLog* net_log) {
-    net_log_ = net_log;
-  }
-
   HostResolver* host_resolver() const {
     return host_resolver_;
   }
 
-  void set_host_resolver(HostResolver* host_resolver) {
-    DCHECK(host_resolver);
-    host_resolver_ = host_resolver;
-  }
-
   CertVerifier* cert_verifier() const {
     return cert_verifier_;
   }
 
-  void set_cert_verifier(CertVerifier* cert_verifier) {
-    cert_verifier_ = cert_verifier;
-  }
-
   // Get the proxy service for this context.
   ProxyResolutionService* proxy_resolution_service() const {
     return proxy_resolution_service_;
   }
-  void set_proxy_resolution_service(
-      ProxyResolutionService* proxy_resolution_service) {
-    proxy_resolution_service_ = proxy_resolution_service;
-  }
 
   ProxyDelegate* proxy_delegate() const { return proxy_delegate_; }
-  void set_proxy_delegate(ProxyDelegate* proxy_delegate) {
-    proxy_delegate_ = proxy_delegate;
-  }
 
   // Get the ssl config service for this context.
   SSLConfigService* ssl_config_service() const { return ssl_config_service_; }
-  void set_ssl_config_service(SSLConfigService* service) {
-    ssl_config_service_ = service;
-  }
 
   // Gets the HTTP Authentication Handler Factory for this context.
   // The factory is only valid for the lifetime of this URLRequestContext
   HttpAuthHandlerFactory* http_auth_handler_factory() const {
     return http_auth_handler_factory_;
   }
-  void set_http_auth_handler_factory(HttpAuthHandlerFactory* factory) {
-    http_auth_handler_factory_ = factory;
-  }
 
   // Gets the http transaction factory for this context.
   HttpTransactionFactory* http_transaction_factory() const {
     return http_transaction_factory_;
   }
-  void set_http_transaction_factory(HttpTransactionFactory* factory) {
-    http_transaction_factory_ = factory;
-  }
 
-  void set_network_delegate(NetworkDelegate* network_delegate) {
-    network_delegate_ = network_delegate;
-  }
   NetworkDelegate* network_delegate() const { return network_delegate_; }
 
-  void set_http_server_properties(
-      HttpServerProperties* http_server_properties) {
-    http_server_properties_ = http_server_properties;
-  }
   HttpServerProperties* http_server_properties() const {
     return http_server_properties_;
   }
@@ -197,45 +165,25 @@
   // Gets the cookie store for this context (may be null, in which case
   // cookies are not stored).
   CookieStore* cookie_store() const { return cookie_store_; }
-  void set_cookie_store(CookieStore* cookie_store);
 
   TransportSecurityState* transport_security_state() const {
     return transport_security_state_;
   }
-  void set_transport_security_state(
-      TransportSecurityState* state) {
-    transport_security_state_ = state;
-  }
 
   CTPolicyEnforcer* ct_policy_enforcer() const { return ct_policy_enforcer_; }
-  void set_ct_policy_enforcer(CTPolicyEnforcer* enforcer) {
-    ct_policy_enforcer_ = enforcer;
-  }
 
   SCTAuditingDelegate* sct_auditing_delegate() const {
     return sct_auditing_delegate_;
   }
-  void set_sct_auditing_delegate(SCTAuditingDelegate* delegate) {
-    sct_auditing_delegate_ = delegate;
-  }
 
   const URLRequestJobFactory* job_factory() const { return job_factory_; }
-  void set_job_factory(const URLRequestJobFactory* job_factory) {
-    job_factory_ = job_factory;
-  }
 
   // May return nullptr.
   URLRequestThrottlerManager* throttler_manager() const {
     return throttler_manager_;
   }
-  void set_throttler_manager(URLRequestThrottlerManager* throttler_manager) {
-    throttler_manager_ = throttler_manager;
-  }
 
   QuicContext* quic_context() const { return quic_context_; }
-  void set_quic_context(QuicContext* quic_context) {
-    quic_context_ = quic_context;
-  }
 
   // Gets the URLRequest objects that hold a reference to this
   // URLRequestContext.
@@ -253,52 +201,26 @@
   const HttpUserAgentSettings* http_user_agent_settings() const {
     return http_user_agent_settings_;
   }
-  void set_http_user_agent_settings(
-      const HttpUserAgentSettings* http_user_agent_settings) {
-    http_user_agent_settings_ = http_user_agent_settings;
-  }
 
   // Gets the NetworkQualityEstimator associated with this context.
   // May return nullptr.
   NetworkQualityEstimator* network_quality_estimator() const {
     return network_quality_estimator_;
   }
-  void set_network_quality_estimator(
-      NetworkQualityEstimator* network_quality_estimator) {
-    network_quality_estimator_ = network_quality_estimator;
-  }
 
 #if BUILDFLAG(ENABLE_REPORTING)
   ReportingService* reporting_service() const { return reporting_service_; }
-  void set_reporting_service(ReportingService* reporting_service) {
-    reporting_service_ = reporting_service;
-  }
 
   NetworkErrorLoggingService* network_error_logging_service() const {
     return network_error_logging_service_;
   }
-  void set_network_error_logging_service(
-      NetworkErrorLoggingService* network_error_logging_service) {
-    network_error_logging_service_ = network_error_logging_service;
-  }
 #endif  // BUILDFLAG(ENABLE_REPORTING)
 
-  void set_enable_brotli(bool enable_brotli) { enable_brotli_ = enable_brotli; }
-
   bool enable_brotli() const { return enable_brotli_; }
 
-  // Sets the |check_cleartext_permitted| flag, which controls whether to check
-  // system policy before allowing a cleartext http or ws request.
-  void set_check_cleartext_permitted(bool check_cleartext_permitted) {
-    check_cleartext_permitted_ = check_cleartext_permitted;
-  }
-
   // Returns current value of the |check_cleartext_permitted| flag.
   bool check_cleartext_permitted() const { return check_cleartext_permitted_; }
 
-  void set_require_network_isolation_key(bool require_network_isolation_key) {
-    require_network_isolation_key_ = require_network_isolation_key;
-  }
   bool require_network_isolation_key() const {
     return require_network_isolation_key_;
   }
@@ -308,15 +230,97 @@
   NetworkChangeNotifier::NetworkHandle bound_network() const {
     return bound_network_;
   }
-  void set_bound_network(NetworkChangeNotifier::NetworkHandle network) {
-    bound_network_ = network;
-  }
 
   void AssertCalledOnValidThread() {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   }
 
+  // DEPRECATED: Do not use this even in tests. This is for a legacy use.
+  void SetJobFactoryForTesting(const URLRequestJobFactory* job_factory) {
+    job_factory_ = job_factory;
+  }
+
  private:
+  friend class URLRequestContextStorage;
+  friend class URLRequestContextBuilder;
+  void set_net_log(NetLog* net_log) { net_log_ = net_log; }
+  void set_host_resolver(HostResolver* host_resolver) {
+    DCHECK(host_resolver);
+    host_resolver_ = host_resolver;
+  }
+  void set_cert_verifier(CertVerifier* cert_verifier) {
+    cert_verifier_ = cert_verifier;
+  }
+  void set_proxy_resolution_service(
+      ProxyResolutionService* proxy_resolution_service) {
+    proxy_resolution_service_ = proxy_resolution_service;
+  }
+  void set_proxy_delegate(ProxyDelegate* proxy_delegate) {
+    proxy_delegate_ = proxy_delegate;
+  }
+  void set_ssl_config_service(SSLConfigService* service) {
+    ssl_config_service_ = service;
+  }
+  void set_http_auth_handler_factory(HttpAuthHandlerFactory* factory) {
+    http_auth_handler_factory_ = factory;
+  }
+  void set_http_transaction_factory(HttpTransactionFactory* factory) {
+    http_transaction_factory_ = factory;
+  }
+  void set_network_delegate(NetworkDelegate* network_delegate) {
+    network_delegate_ = network_delegate;
+  }
+  void set_http_server_properties(
+      HttpServerProperties* http_server_properties) {
+    http_server_properties_ = http_server_properties;
+  }
+  void set_cookie_store(CookieStore* cookie_store);
+  void set_transport_security_state(TransportSecurityState* state) {
+    transport_security_state_ = state;
+  }
+  void set_ct_policy_enforcer(CTPolicyEnforcer* enforcer) {
+    ct_policy_enforcer_ = enforcer;
+  }
+  void set_sct_auditing_delegate(SCTAuditingDelegate* delegate) {
+    sct_auditing_delegate_ = delegate;
+  }
+  void set_job_factory(const URLRequestJobFactory* job_factory) {
+    job_factory_ = job_factory;
+  }
+  void set_throttler_manager(URLRequestThrottlerManager* throttler_manager) {
+    throttler_manager_ = throttler_manager;
+  }
+  void set_quic_context(QuicContext* quic_context) {
+    quic_context_ = quic_context;
+  }
+  void set_http_user_agent_settings(
+      const HttpUserAgentSettings* http_user_agent_settings) {
+    http_user_agent_settings_ = http_user_agent_settings;
+  }
+  void set_network_quality_estimator(
+      NetworkQualityEstimator* network_quality_estimator) {
+    network_quality_estimator_ = network_quality_estimator;
+  }
+#if BUILDFLAG(ENABLE_REPORTING)
+  void set_reporting_service(ReportingService* reporting_service) {
+    reporting_service_ = reporting_service;
+  }
+  void set_network_error_logging_service(
+      NetworkErrorLoggingService* network_error_logging_service) {
+    network_error_logging_service_ = network_error_logging_service;
+  }
+#endif  // BUILDFLAG(ENABLE_REPORTING)
+  void set_enable_brotli(bool enable_brotli) { enable_brotli_ = enable_brotli; }
+  void set_check_cleartext_permitted(bool check_cleartext_permitted) {
+    check_cleartext_permitted_ = check_cleartext_permitted;
+  }
+  void set_require_network_isolation_key(bool require_network_isolation_key) {
+    require_network_isolation_key_ = require_network_isolation_key;
+  }
+  void set_bound_network(NetworkChangeNotifier::NetworkHandle network) {
+    bound_network_ = network;
+  }
+
   // Ownership for these members are not defined here. Clients should either
   // provide storage elsewhere or have a subclass take ownership.
   raw_ptr<NetLog> net_log_;