blob: 9c9827ba2c22cc8a42f537bdca9eaf2581ef568b [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "url/url_features.h"
#include "polyfills/base/feature_list.h"
namespace url {
BASE_FEATURE(kUseIDNA2008NonTransitional,
"UseIDNA2008NonTransitional",
gurl_base::FEATURE_ENABLED_BY_DEFAULT);
// Kill switch for crbug.com/1362507.
BASE_FEATURE(kRecordIDNA2008Metrics,
"RecordIDNA2008Metrics",
gurl_base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kStrictIPv4EmbeddedIPv6AddressParsing,
"StrictIPv4EmbeddedIPv6AddressParsing",
gurl_base::FEATURE_ENABLED_BY_DEFAULT);
// Kill switch for crbug.com/1220361.
BASE_FEATURE(kResolveBareFragmentWithColonOnNonHierarchical,
"ResolveBareFragmentWithColonOnNonHierarchical",
gurl_base::FEATURE_ENABLED_BY_DEFAULT);
// Kill switch for crbug.com/1252531.
BASE_FEATURE(kDontDecodeAsciiPercentEncodedURLPath,
"DontDecodeAsciiPercentEncodedURLPath",
gurl_base::FEATURE_ENABLED_BY_DEFAULT);
// Kill switch for https://crbug.com/1416013.
BASE_FEATURE(kStandardCompliantHostCharacters,
"StandardCompliantHostCharacters",
gurl_base::FEATURE_ENABLED_BY_DEFAULT);
bool IsUsingIDNA2008NonTransitional() {
// If the FeatureList isn't available yet, fall back to the feature's default
// state. This may happen during early startup, see crbug.com/1441956.
if (!gurl_base::FeatureList::GetInstance()) {
return kUseIDNA2008NonTransitional.default_state ==
gurl_base::FEATURE_ENABLED_BY_DEFAULT;
}
return gurl_base::FeatureList::IsEnabled(kUseIDNA2008NonTransitional);
}
bool IsUsingDontDecodeAsciiPercentEncodedURLPath() {
// If the FeatureList isn't available yet, fall back to the feature's default
// state. This may happen during early startup, see https://crbug.com/1478960.
if (!gurl_base::FeatureList::GetInstance()) {
return kDontDecodeAsciiPercentEncodedURLPath.default_state ==
gurl_base::FEATURE_ENABLED_BY_DEFAULT;
}
return gurl_base::FeatureList::IsEnabled(kDontDecodeAsciiPercentEncodedURLPath);
}
bool IsUsingStandardCompliantHostCharacters() {
// If the FeatureList isn't available yet, fall back to the feature's default
// state. This may happen during early startup, see crbug.com/1441956.
if (!gurl_base::FeatureList::GetInstance()) {
return kStandardCompliantHostCharacters.default_state ==
gurl_base::FEATURE_ENABLED_BY_DEFAULT;
}
return gurl_base::FeatureList::IsEnabled(kStandardCompliantHostCharacters);
}
bool IsRecordingIDNA2008Metrics() {
return gurl_base::FeatureList::IsEnabled(kRecordIDNA2008Metrics);
}
} // namespace url