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 #ifndef URL_URL_FEATURES_H_ 6 #define URL_URL_FEATURES_H_ 7 8 #include "base/component_export.h" 9 #include "base/feature_list.h" 10 11 namespace url { 12 13 COMPONENT_EXPORT(URL) BASE_DECLARE_FEATURE(kUseIDNA2008NonTransitional); 14 15 // Returns true if Chrome is using IDNA 2008 in Non-Transitional mode. 16 COMPONENT_EXPORT(URL) bool IsUsingIDNA2008NonTransitional(); 17 18 // Returns true if Chrome is recording IDNA 2008 related metrics. 19 COMPONENT_EXPORT(URL) bool IsRecordingIDNA2008Metrics(); 20 21 // Returns true if IsUsingStandardCompliantHostCharacters feature is enabled. 22 // See url::kStandardCompliantHostCharacters for details. 23 COMPONENT_EXPORT(URL) bool IsUsingStandardCompliantHostCharacters(); 24 25 // Returns true if kStandardCompliantNonSpecialSchemeURLParsing feature is 26 // enabled. See url::kStandardCompliantNonSpecialSchemeURLParsing for details. 27 COMPONENT_EXPORT(URL) bool IsUsingStandardCompliantNonSpecialSchemeURLParsing(); 28 29 // When enabled, allows resolving of a bare fragment containing a colon against 30 // a non-hierarchical URL. (For example '#foo:bar' against 'about:blank'.) 31 COMPONENT_EXPORT(URL) 32 BASE_DECLARE_FEATURE(kResolveBareFragmentWithColonOnNonHierarchical); 33 34 // When enabled, Chrome uses URL Standard compliant mode to 35 // handle punctuation characters in URL host part. 36 // https://crbug.com/1416013 for details. 37 COMPONENT_EXPORT(URL) 38 BASE_DECLARE_FEATURE(kStandardCompliantHostCharacters); 39 40 // When enabled, Chrome uses standard-compliant URL parsing for non-special 41 // scheme URLs. See https://crbug.com/1416006 for details. 42 COMPONENT_EXPORT(URL) 43 BASE_DECLARE_FEATURE(kStandardCompliantNonSpecialSchemeURLParsing); 44 45 } // namespace url 46 47 #endif // URL_URL_FEATURES_H_ 48