blob: 55b32344d2b1bf86802bb233277459379d79d16c [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.
#ifndef URL_URL_FEATURES_H_
#define URL_URL_FEATURES_H_
#include "polyfills/base/component_export.h"
#include "polyfills/base/feature_list.h"
namespace url {
COMPONENT_EXPORT(URL) BASE_DECLARE_FEATURE(kUseIDNA2008NonTransitional);
// Returns true if Chrome is using IDNA 2008 in Non-Transitional mode.
COMPONENT_EXPORT(URL) bool IsUsingIDNA2008NonTransitional();
// Returns true if Chrome is recording IDNA 2008 related metrics.
COMPONENT_EXPORT(URL) bool IsRecordingIDNA2008Metrics();
// Returns true if kDontDecodeAsciiPercentEncodedURLPath feature is enabled.
// See url::kDontDecodeAsciiPercentEncodedURLPath for details.
COMPONENT_EXPORT(URL) bool IsUsingDontDecodeAsciiPercentEncodedURLPath();
// Returns true if kDontDecodeAsciiPercentEncodedURLPath feature is enabled.
// See url::kStandardCompliantHostCharacters for details.
COMPONENT_EXPORT(URL) bool IsUsingStandardCompliantHostCharacters();
// Returns true if Chrome is enforcing the 4 part check for IPv4 embedded IPv6
// addresses.
COMPONENT_EXPORT(URL)
BASE_DECLARE_FEATURE(kStrictIPv4EmbeddedIPv6AddressParsing);
// When enabled, allows resolving of a bare fragment containing a colon against
// a non-hierarchical URL. (For example '#foo:bar' against 'about:blank'.)
COMPONENT_EXPORT(URL)
BASE_DECLARE_FEATURE(kResolveBareFragmentWithColonOnNonHierarchical);
// When enabled, percent-encoded ASCII characters in URL path are not decoded
// automatically. See https://crbug.com/125231.
COMPONENT_EXPORT(URL)
BASE_DECLARE_FEATURE(kDontDecodeAsciiPercentEncodedURLPath);
// When enabled, Chrome uses URL Standard compliant mode to
// handle punctuation characters in URL host part.
// https://crbug.com/1416013 for details.
COMPONENT_EXPORT(URL)
BASE_DECLARE_FEATURE(kStandardCompliantHostCharacters);
} // namespace url
#endif // URL_URL_FEATURES_H_