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