xref: /aosp_15_r20/external/cronet/url/url_features.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2022 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 #include "url/url_features.h"
6 #include "base/feature_list.h"
7 
8 namespace url {
9 
10 BASE_FEATURE(kUseIDNA2008NonTransitional,
11              "UseIDNA2008NonTransitional",
12              base::FEATURE_ENABLED_BY_DEFAULT);
13 
14 // Kill switch for crbug.com/1362507.
15 BASE_FEATURE(kRecordIDNA2008Metrics,
16              "RecordIDNA2008Metrics",
17              base::FEATURE_ENABLED_BY_DEFAULT);
18 
19 // Kill switch for crbug.com/1416006.
20 BASE_FEATURE(kStandardCompliantNonSpecialSchemeURLParsing,
21              "StandardCompliantNonSpecialSchemeURLParsing",
22              base::FEATURE_DISABLED_BY_DEFAULT);
23 
IsUsingIDNA2008NonTransitional()24 bool IsUsingIDNA2008NonTransitional() {
25   // If the FeatureList isn't available yet, fall back to the feature's default
26   // state. This may happen during early startup, see crbug.com/1441956.
27   if (!base::FeatureList::GetInstance()) {
28     return kUseIDNA2008NonTransitional.default_state ==
29            base::FEATURE_ENABLED_BY_DEFAULT;
30   }
31 
32   return base::FeatureList::IsEnabled(kUseIDNA2008NonTransitional);
33 }
34 
IsUsingStandardCompliantNonSpecialSchemeURLParsing()35 bool IsUsingStandardCompliantNonSpecialSchemeURLParsing() {
36   // If the FeatureList isn't available yet, fall back to the feature's default
37   // state. This may happen during early startup, see crbug.com/1441956.
38   if (!base::FeatureList::GetInstance()) {
39     return kStandardCompliantNonSpecialSchemeURLParsing.default_state ==
40            base::FEATURE_ENABLED_BY_DEFAULT;
41   }
42   return base::FeatureList::IsEnabled(
43       kStandardCompliantNonSpecialSchemeURLParsing);
44 }
45 
IsRecordingIDNA2008Metrics()46 bool IsRecordingIDNA2008Metrics() {
47   return base::FeatureList::IsEnabled(kRecordIDNA2008Metrics);
48 }
49 
50 }  // namespace url
51