1*6777b538SAndroid Build Coastguard Worker // Copyright 2022 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker #include "url/url_features.h"
6*6777b538SAndroid Build Coastguard Worker #include "base/feature_list.h"
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard Worker namespace url {
9*6777b538SAndroid Build Coastguard Worker
10*6777b538SAndroid Build Coastguard Worker BASE_FEATURE(kUseIDNA2008NonTransitional,
11*6777b538SAndroid Build Coastguard Worker "UseIDNA2008NonTransitional",
12*6777b538SAndroid Build Coastguard Worker base::FEATURE_ENABLED_BY_DEFAULT);
13*6777b538SAndroid Build Coastguard Worker
14*6777b538SAndroid Build Coastguard Worker // Kill switch for crbug.com/1362507.
15*6777b538SAndroid Build Coastguard Worker BASE_FEATURE(kRecordIDNA2008Metrics,
16*6777b538SAndroid Build Coastguard Worker "RecordIDNA2008Metrics",
17*6777b538SAndroid Build Coastguard Worker base::FEATURE_ENABLED_BY_DEFAULT);
18*6777b538SAndroid Build Coastguard Worker
19*6777b538SAndroid Build Coastguard Worker // Kill switch for crbug.com/1416006.
20*6777b538SAndroid Build Coastguard Worker BASE_FEATURE(kStandardCompliantNonSpecialSchemeURLParsing,
21*6777b538SAndroid Build Coastguard Worker "StandardCompliantNonSpecialSchemeURLParsing",
22*6777b538SAndroid Build Coastguard Worker base::FEATURE_DISABLED_BY_DEFAULT);
23*6777b538SAndroid Build Coastguard Worker
IsUsingIDNA2008NonTransitional()24*6777b538SAndroid Build Coastguard Worker bool IsUsingIDNA2008NonTransitional() {
25*6777b538SAndroid Build Coastguard Worker // If the FeatureList isn't available yet, fall back to the feature's default
26*6777b538SAndroid Build Coastguard Worker // state. This may happen during early startup, see crbug.com/1441956.
27*6777b538SAndroid Build Coastguard Worker if (!base::FeatureList::GetInstance()) {
28*6777b538SAndroid Build Coastguard Worker return kUseIDNA2008NonTransitional.default_state ==
29*6777b538SAndroid Build Coastguard Worker base::FEATURE_ENABLED_BY_DEFAULT;
30*6777b538SAndroid Build Coastguard Worker }
31*6777b538SAndroid Build Coastguard Worker
32*6777b538SAndroid Build Coastguard Worker return base::FeatureList::IsEnabled(kUseIDNA2008NonTransitional);
33*6777b538SAndroid Build Coastguard Worker }
34*6777b538SAndroid Build Coastguard Worker
IsUsingStandardCompliantNonSpecialSchemeURLParsing()35*6777b538SAndroid Build Coastguard Worker bool IsUsingStandardCompliantNonSpecialSchemeURLParsing() {
36*6777b538SAndroid Build Coastguard Worker // If the FeatureList isn't available yet, fall back to the feature's default
37*6777b538SAndroid Build Coastguard Worker // state. This may happen during early startup, see crbug.com/1441956.
38*6777b538SAndroid Build Coastguard Worker if (!base::FeatureList::GetInstance()) {
39*6777b538SAndroid Build Coastguard Worker return kStandardCompliantNonSpecialSchemeURLParsing.default_state ==
40*6777b538SAndroid Build Coastguard Worker base::FEATURE_ENABLED_BY_DEFAULT;
41*6777b538SAndroid Build Coastguard Worker }
42*6777b538SAndroid Build Coastguard Worker return base::FeatureList::IsEnabled(
43*6777b538SAndroid Build Coastguard Worker kStandardCompliantNonSpecialSchemeURLParsing);
44*6777b538SAndroid Build Coastguard Worker }
45*6777b538SAndroid Build Coastguard Worker
IsRecordingIDNA2008Metrics()46*6777b538SAndroid Build Coastguard Worker bool IsRecordingIDNA2008Metrics() {
47*6777b538SAndroid Build Coastguard Worker return base::FeatureList::IsEnabled(kRecordIDNA2008Metrics);
48*6777b538SAndroid Build Coastguard Worker }
49*6777b538SAndroid Build Coastguard Worker
50*6777b538SAndroid Build Coastguard Worker } // namespace url
51