1 // Copyright (c) 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "net/base/features.h"
6
7 #include <vector>
8
9 #include "build/build_config.h"
10
11 namespace net {
12 namespace features {
13
14 const base::Feature kAcceptLanguageHeader{"AcceptLanguageHeader",
15 base::FEATURE_ENABLED_BY_DEFAULT};
16
17 const base::Feature kCapReferrerToOriginOnCrossOrigin{
18 "CapReferrerToOriginOnCrossOrigin", base::FEATURE_DISABLED_BY_DEFAULT};
19
20 const base::Feature kDnsTransactionDynamicTimeouts{
21 "DnsTransactionDynamicTimeouts", base::FEATURE_DISABLED_BY_DEFAULT};
22
23 const base::FeatureParam<double> kDnsTransactionTimeoutMultiplier{
24 &kDnsTransactionDynamicTimeouts, "DnsTransactionTimeoutMultiplier", 7.5};
25
26 const base::FeatureParam<base::TimeDelta> kDnsMinTransactionTimeout{
27 &kDnsTransactionDynamicTimeouts, "DnsMinTransactionTimeout",
28 base::TimeDelta::FromSeconds(12)};
29
30 const base::Feature kDnsHttpssvc{"DnsHttpssvc",
31 base::FEATURE_DISABLED_BY_DEFAULT};
32
33 const base::FeatureParam<bool> kDnsHttpssvcUseHttpssvc{
34 &kDnsHttpssvc, "DnsHttpssvcUseHttpssvc", false};
35
36 const base::FeatureParam<bool> kDnsHttpssvcUseIntegrity{
37 &kDnsHttpssvc, "DnsHttpssvcUseIntegrity", false};
38
39 const base::FeatureParam<bool> kDnsHttpssvcEnableQueryOverInsecure{
40 &kDnsHttpssvc, "DnsHttpssvcEnableQueryOverInsecure", false};
41
42 const base::FeatureParam<int> kDnsHttpssvcExtraTimeMs{
43 &kDnsHttpssvc, "DnsHttpssvcExtraTimeMs", 10};
44
45 const base::FeatureParam<int> kDnsHttpssvcExtraTimePercent{
46 &kDnsHttpssvc, "DnsHttpssvcExtraTimePercent", 5};
47
48 const base::FeatureParam<std::string> kDnsHttpssvcExperimentDomains{
49 &kDnsHttpssvc, "DnsHttpssvcExperimentDomains", ""};
50
51 const base::FeatureParam<std::string> kDnsHttpssvcControlDomains{
52 &kDnsHttpssvc, "DnsHttpssvcControlDomains", ""};
53
54 const base::FeatureParam<bool> kDnsHttpssvcControlDomainWildcard{
55 &kDnsHttpssvc, "DnsHttpssvcControlDomainWildcard", false};
56
57 const base::Feature kAvoidH2Reprioritization{"AvoidH2Reprioritization",
58 base::FEATURE_DISABLED_BY_DEFAULT};
59
60 namespace dns_httpssvc_experiment {
GetExtraTimeAbsolute()61 base::TimeDelta GetExtraTimeAbsolute() {
62 DCHECK(base::FeatureList::IsEnabled(features::kDnsHttpssvc));
63 return base::TimeDelta::FromMilliseconds(kDnsHttpssvcExtraTimeMs.Get());
64 }
65 } // namespace dns_httpssvc_experiment
66
67 const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
68 base::FEATURE_DISABLED_BY_DEFAULT};
69
70 const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator",
71 base::FEATURE_DISABLED_BY_DEFAULT};
72
73 const base::Feature kSplitCacheByNetworkIsolationKey{
74 "SplitCacheByNetworkIsolationKey", base::FEATURE_DISABLED_BY_DEFAULT};
75
76 const base::Feature kSplitHostCacheByNetworkIsolationKey{
77 "SplitHostCacheByNetworkIsolationKey", base::FEATURE_DISABLED_BY_DEFAULT};
78
79 const base::Feature kPartitionConnectionsByNetworkIsolationKey{
80 "PartitionConnectionsByNetworkIsolationKey",
81 base::FEATURE_DISABLED_BY_DEFAULT};
82
83 const base::Feature kPartitionHttpServerPropertiesByNetworkIsolationKey{
84 "PartitionHttpServerPropertiesByNetworkIsolationKey",
85 base::FEATURE_DISABLED_BY_DEFAULT};
86
87 const base::Feature kPartitionSSLSessionsByNetworkIsolationKey{
88 "PartitionSSLSessionsByNetworkIsolationKey",
89 base::FEATURE_DISABLED_BY_DEFAULT};
90
91 const base::Feature kPartitionExpectCTStateByNetworkIsolationKey{
92 "PartitionExpectCTStateByNetworkIsolationKey",
93 base::FEATURE_DISABLED_BY_DEFAULT};
94
95 const base::Feature kPartitionNelAndReportingByNetworkIsolationKey{
96 "PartitionNelAndReportingByNetworkIsolationKey",
97 base::FEATURE_DISABLED_BY_DEFAULT};
98
99 const base::Feature kExpectCTPruning{"ExpectCTPruning",
100 base::FEATURE_ENABLED_BY_DEFAULT};
101
102 NET_EXPORT extern const base::FeatureParam<int>
103 kExpectCTPruneMax(&kExpectCTPruning, "ExpectCTPruneMax", 2000);
104 NET_EXPORT extern const base::FeatureParam<int>
105 kExpectCTPruneMin(&kExpectCTPruning, "ExpectCTPruneMin", 1800);
106 NET_EXPORT extern const base::FeatureParam<int> kExpectCTSafeFromPruneDays(
107 &kExpectCTPruning,
108 "ExpectCTSafeFromPruneDays",
109 40);
110 NET_EXPORT extern const base::FeatureParam<int> kExpectCTMaxEntriesPerNik(
111 &kExpectCTPruning,
112 "ExpectCTMaxEntriesPerNik",
113 20);
114 NET_EXPORT extern const base::FeatureParam<int>
115 kExpectCTPruneDelaySecs(&kExpectCTPruning, "ExpectCTPruneDelaySecs", 60);
116
117 const base::Feature kTLS13KeyUpdate{"TLS13KeyUpdate",
118 base::FEATURE_DISABLED_BY_DEFAULT};
119
120 const base::Feature kPostQuantumCECPQ2{"PostQuantumCECPQ2",
121 base::FEATURE_DISABLED_BY_DEFAULT};
122
123 const base::Feature kNetUnusedIdleSocketTimeout{
124 "NetUnusedIdleSocketTimeout", base::FEATURE_DISABLED_BY_DEFAULT};
125
126 const base::Feature kSameSiteByDefaultCookies{"SameSiteByDefaultCookies",
127 base::FEATURE_ENABLED_BY_DEFAULT};
128
129 const base::Feature kCookiesWithoutSameSiteMustBeSecure{
130 "CookiesWithoutSameSiteMustBeSecure", base::FEATURE_ENABLED_BY_DEFAULT};
131
132 const base::Feature kShortLaxAllowUnsafeThreshold{
133 "ShortLaxAllowUnsafeThreshold", base::FEATURE_DISABLED_BY_DEFAULT};
134
135 const base::Feature kSameSiteDefaultChecksMethodRigorously{
136 "SameSiteDefaultChecksMethodRigorously", base::FEATURE_DISABLED_BY_DEFAULT};
137
138 #if BUILDFLAG(BUILTIN_CERT_VERIFIER_FEATURE_SUPPORTED)
139 const base::Feature kCertVerifierBuiltinFeature{
140 "CertVerifierBuiltin", base::FEATURE_DISABLED_BY_DEFAULT};
141 #endif
142
143 const base::Feature kAppendFrameOriginToNetworkIsolationKey{
144 "AppendFrameOriginToNetworkIsolationKey", base::FEATURE_ENABLED_BY_DEFAULT};
145
146 const base::Feature kTurnOffStreamingMediaCachingOnBattery{
147 "TurnOffStreamingMediaCachingOnBattery", base::FEATURE_DISABLED_BY_DEFAULT};
148
149 const base::Feature kTurnOffStreamingMediaCachingAlways{
150 "TurnOffStreamingMediaCachingAlways", base::FEATURE_DISABLED_BY_DEFAULT};
151
152 const base::Feature kLegacyTLSEnforced{"LegacyTLSEnforced",
153 base::FEATURE_DISABLED_BY_DEFAULT};
154
155 const base::Feature kSchemefulSameSite{"SchemefulSameSite",
156 base::FEATURE_DISABLED_BY_DEFAULT};
157
158 const base::Feature kTLSLegacyCryptoFallbackForMetrics{
159 "TLSLegacyCryptoFallbackForMetrics", base::FEATURE_ENABLED_BY_DEFAULT};
160
161 const base::Feature kUseLookalikesForNavigationSuggestions{
162 "UseLookalikesForNavigationSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
163
164 const base::Feature kReportPoorConnectivity{"ReportPoorConnectivity",
165 base::FEATURE_DISABLED_BY_DEFAULT};
166
167 const base::Feature kPreemptiveMobileNetworkActivation{
168 "PreemptiveMobileNetworkActivation", base::FEATURE_DISABLED_BY_DEFAULT};
169
170 const base::Feature kLimitOpenUDPSockets{"LimitOpenUDPSockets",
171 base::FEATURE_ENABLED_BY_DEFAULT};
172
173 extern const base::FeatureParam<int> kLimitOpenUDPSocketsMax(
174 &kLimitOpenUDPSockets,
175 "LimitOpenUDPSocketsMax",
176 6000);
177
178 const base::Feature kTimeoutTcpConnectAttempt{
179 "TimeoutTcpConnectAttempt", base::FEATURE_DISABLED_BY_DEFAULT};
180
181 extern const base::FeatureParam<double> kTimeoutTcpConnectAttemptRTTMultiplier(
182 &kTimeoutTcpConnectAttempt,
183 "TimeoutTcpConnectAttemptRTTMultiplier",
184 5.0);
185
186 extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMin(
187 &kTimeoutTcpConnectAttempt,
188 "TimeoutTcpConnectAttemptMin",
189 base::TimeDelta::FromSeconds(8));
190
191 extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
192 &kTimeoutTcpConnectAttempt,
193 "TimeoutTcpConnectAttemptMax",
194 base::TimeDelta::FromSeconds(30));
195
196 } // namespace features
197 } // namespace net
198