Bug 1909613 - Enable <details name=''> everywhere, r=emilio
[gecko.git] / netwerk / base / FuzzySocketControl.cpp
blob77a7ed3ac83a61216d1e4dfde37135f1c31e7620
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim:set ts=2 sw=2 sts=2 et cindent: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #include "FuzzySocketControl.h"
9 #include "FuzzySecurityInfo.h"
10 #include "ipc/IPCMessageUtils.h"
11 #include "nsITlsHandshakeListener.h"
12 #include "sslt.h"
14 namespace mozilla {
15 namespace net {
17 FuzzySocketControl::FuzzySocketControl() {}
19 FuzzySocketControl::~FuzzySocketControl() {}
21 NS_IMPL_ISUPPORTS(FuzzySocketControl, nsITLSSocketControl)
23 NS_IMETHODIMP
24 FuzzySocketControl::GetProviderFlags(uint32_t* aProviderFlags) {
25 MOZ_CRASH("Unused");
26 return NS_OK;
29 NS_IMETHODIMP
30 FuzzySocketControl::GetKEAUsed(int16_t* aKea) {
31 // Can be ssl_kea_dh or ssl_kea_ecdh for HTTP2
32 *aKea = ssl_kea_ecdh;
33 return NS_OK;
36 NS_IMETHODIMP
37 FuzzySocketControl::GetKEAKeyBits(uint32_t* aKeyBits) {
38 // Must be >= 224 for ecdh and >= 2048 for dh when using HTTP2
39 *aKeyBits = 256;
40 return NS_OK;
43 NS_IMETHODIMP
44 FuzzySocketControl::GetSSLVersionUsed(int16_t* aSSLVersionUsed) {
45 // Must be >= TLS 1.2 for HTTP2
46 *aSSLVersionUsed = nsITLSSocketControl::TLS_VERSION_1_2;
47 return NS_OK;
50 NS_IMETHODIMP
51 FuzzySocketControl::GetSSLVersionOffered(int16_t* aSSLVersionOffered) {
52 *aSSLVersionOffered = nsITLSSocketControl::TLS_VERSION_1_2;
53 return NS_OK;
56 NS_IMETHODIMP
57 FuzzySocketControl::GetMACAlgorithmUsed(int16_t* aMac) {
58 // The only valid choice for HTTP2 is SSL_MAC_AEAD
59 *aMac = nsITLSSocketControl::SSL_MAC_AEAD;
60 return NS_OK;
63 bool FuzzySocketControl::GetDenyClientCert() { return false; }
65 void FuzzySocketControl::SetDenyClientCert(bool aDenyClientCert) {
66 // Called by mozilla::net::nsHttpConnection::StartSpdy
69 NS_IMETHODIMP
70 FuzzySocketControl::GetClientCertSent(bool* arg) {
71 *arg = false;
72 return NS_OK;
75 NS_IMETHODIMP
76 FuzzySocketControl::GetFailedVerification(bool* arg) {
77 *arg = false;
78 return NS_OK;
81 NS_IMETHODIMP
82 FuzzySocketControl::GetAlpnEarlySelection(nsACString& aAlpnSelected) {
83 // TODO: For now we don't support early selection
84 return NS_ERROR_NOT_AVAILABLE;
87 NS_IMETHODIMP
88 FuzzySocketControl::GetEarlyDataAccepted(bool* aAccepted) {
89 *aAccepted = false;
90 return NS_OK;
93 NS_IMETHODIMP
94 FuzzySocketControl::DriveHandshake() { return NS_OK; }
96 NS_IMETHODIMP
97 FuzzySocketControl::IsAcceptableForHost(const nsACString& hostname,
98 bool* _retval) {
99 NS_ENSURE_ARG(_retval);
100 *_retval = true;
101 return NS_OK;
104 NS_IMETHODIMP
105 FuzzySocketControl::TestJoinConnection(const nsACString& npnProtocol,
106 const nsACString& hostname, int32_t port,
107 bool* _retval) {
108 *_retval = false;
109 return NS_OK;
112 NS_IMETHODIMP
113 FuzzySocketControl::JoinConnection(const nsACString& npnProtocol,
114 const nsACString& hostname, int32_t port,
115 bool* _retval) {
116 *_retval = false;
117 return NS_OK;
120 NS_IMETHODIMP
121 FuzzySocketControl::ProxyStartSSL() { return NS_OK; }
123 NS_IMETHODIMP
124 FuzzySocketControl::StartTLS() { return NS_OK; }
126 NS_IMETHODIMP
127 FuzzySocketControl::AsyncStartTLS(JSContext* aCx,
128 mozilla::dom::Promise** aPromise) {
129 return NS_OK;
132 NS_IMETHODIMP
133 FuzzySocketControl::SetNPNList(nsTArray<nsCString>& protocolArray) {
134 return NS_OK;
137 NS_IMETHODIMP
138 FuzzySocketControl::GetEsniTxt(nsACString& aEsniTxt) { return NS_OK; }
140 NS_IMETHODIMP
141 FuzzySocketControl::SetEsniTxt(const nsACString& aEsniTxt) {
142 MOZ_CRASH("Unused");
143 return NS_OK;
146 NS_IMETHODIMP
147 FuzzySocketControl::GetEchConfig(nsACString& aEchConfig) { return NS_OK; }
149 NS_IMETHODIMP
150 FuzzySocketControl::SetEchConfig(const nsACString& aEchConfig) {
151 MOZ_CRASH("Unused");
152 return NS_OK;
155 NS_IMETHODIMP
156 FuzzySocketControl::GetRetryEchConfig(nsACString& aEchConfig) { return NS_OK; }
158 NS_IMETHODIMP
159 FuzzySocketControl::GetPeerId(nsACString& aResult) {
160 aResult.Assign(""_ns);
161 return NS_OK;
164 NS_IMETHODIMP FuzzySocketControl::SetHandshakeCallbackListener(
165 nsITlsHandshakeCallbackListener* callback) {
166 if (callback) {
167 callback->HandshakeDone();
169 return NS_OK;
172 NS_IMETHODIMP
173 FuzzySocketControl::DisableEarlyData(void) { return NS_ERROR_NOT_IMPLEMENTED; }
175 NS_IMETHODIMP FuzzySocketControl::GetSecurityInfo(
176 nsITransportSecurityInfo** aSecurityInfo) {
177 nsCOMPtr<nsITransportSecurityInfo> securityInfo(new FuzzySecurityInfo());
178 securityInfo.forget(aSecurityInfo);
179 return NS_OK;
182 NS_IMETHODIMP
183 FuzzySocketControl::AsyncGetSecurityInfo(JSContext* aCx,
184 mozilla::dom::Promise** aPromise) {
185 return NS_ERROR_NOT_IMPLEMENTED;
188 NS_IMETHODIMP FuzzySocketControl::Claim() { return NS_OK; }
190 NS_IMETHODIMP FuzzySocketControl::SetBrowserId(uint64_t) { return NS_OK; }
192 NS_IMETHODIMP FuzzySocketControl::GetBrowserId(uint64_t*) {
193 MOZ_CRASH("Unused");
194 return NS_ERROR_NOT_IMPLEMENTED;
197 } // namespace net
198 } // namespace mozilla