• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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