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/1416006.
15 BASE_FEATURE(kStandardCompliantNonSpecialSchemeURLParsing,
16 "StandardCompliantNonSpecialSchemeURLParsing",
17 base::FEATURE_ENABLED_BY_DEFAULT);
18
19 BASE_FEATURE(kDisallowSpaceCharacterInURLHostParsing,
20 "DisallowSpaceCharacterInURLHostParsing",
21 base::FEATURE_DISABLED_BY_DEFAULT);
22
IsUsingIDNA2008NonTransitional()23 bool IsUsingIDNA2008NonTransitional() {
24 // If the FeatureList isn't available yet, fall back to the feature's default
25 // state. This may happen during early startup, see crbug.com/1441956.
26 if (!base::FeatureList::GetInstance()) {
27 return kUseIDNA2008NonTransitional.default_state ==
28 base::FEATURE_ENABLED_BY_DEFAULT;
29 }
30
31 return base::FeatureList::IsEnabled(kUseIDNA2008NonTransitional);
32 }
33
IsUsingStandardCompliantNonSpecialSchemeURLParsing()34 bool IsUsingStandardCompliantNonSpecialSchemeURLParsing() {
35 // If the FeatureList isn't available yet, fall back to the feature's default
36 // state. This may happen during early startup, see crbug.com/1441956.
37 if (!base::FeatureList::GetInstance()) {
38 return kStandardCompliantNonSpecialSchemeURLParsing.default_state ==
39 base::FEATURE_ENABLED_BY_DEFAULT;
40 }
41 return base::FeatureList::IsEnabled(
42 kStandardCompliantNonSpecialSchemeURLParsing);
43 }
44
IsDisallowingSpaceCharacterInURLHostParsing()45 bool IsDisallowingSpaceCharacterInURLHostParsing() {
46 // If the FeatureList isn't available yet, fall back to the feature's default
47 // state. This may happen during early startup, see crbug.com/1441956.
48 if (!base::FeatureList::GetInstance()) {
49 return kDisallowSpaceCharacterInURLHostParsing.default_state ==
50 base::FEATURE_DISABLED_BY_DEFAULT;
51 }
52 return base::FeatureList::IsEnabled(kDisallowSpaceCharacterInURLHostParsing);
53 }
54
55 } // namespace url
56