1 // Copyright 2024 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef NET_SOCKET_CONNECT_JOB_PARAMS_FACTORY_H_ 6 #define NET_SOCKET_CONNECT_JOB_PARAMS_FACTORY_H_ 7 8 #include <memory> 9 #include <optional> 10 #include <vector> 11 12 #include "net/base/host_port_pair.h" 13 #include "net/base/network_anonymization_key.h" 14 #include "net/base/privacy_mode.h" 15 #include "net/base/request_priority.h" 16 #include "net/dns/public/secure_dns_policy.h" 17 #include "net/http/http_proxy_connect_job.h" 18 #include "net/socket/connect_job.h" 19 #include "net/socket/connect_job_factory.h" 20 #include "net/socket/connect_job_params.h" 21 #include "net/socket/socks_connect_job.h" 22 #include "net/socket/ssl_connect_job.h" 23 #include "net/socket/transport_connect_job.h" 24 #include "third_party/abseil-cpp/absl/types/variant.h" 25 26 namespace net { 27 28 class NetworkAnonymizationKey; 29 struct NetworkTrafficAnnotationTag; 30 class ProxyChain; 31 struct SSLConfig; 32 33 NET_EXPORT_PRIVATE ConnectJobParams ConstructConnectJobParams( 34 const ConnectJobFactory::Endpoint& endpoint, 35 const ProxyChain& proxy_chain, 36 const std::optional<NetworkTrafficAnnotationTag>& proxy_annotation_tag, 37 const std::vector<SSLConfig::CertAndStatus>& allowed_bad_certs, 38 ConnectJobFactory::AlpnMode alpn_mode, 39 bool force_tunnel, 40 PrivacyMode privacy_mode, 41 const OnHostResolutionCallback& resolution_callback, 42 const NetworkAnonymizationKey& network_anonymization_key, 43 SecureDnsPolicy secure_dns_policy, 44 bool disable_cert_network_fetches, 45 const CommonConnectJobParams* common_connect_job_params, 46 const NetworkAnonymizationKey& proxy_dns_network_anonymization_key); 47 48 } // namespace net 49 50 #endif // NET_SOCKET_CONNECT_JOB_PARAMS_FACTORY_H_ 51