1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42

url / url_features.h [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 "base/component_export.h"
#include "base/feature_list.h"

namespace url {

// If you add or remove a feature related to URLs, you may need to
// correspondingly update the EarlyAccess allow list in app shims
// (chrome/app_shim/app_shim_controller.mm). See https://crbug.com/1520386 for
// more details.

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 kStandardCompliantNonSpecialSchemeURLParsing feature is
// enabled. See url::kStandardCompliantNonSpecialSchemeURLParsing for details.
COMPONENT_EXPORT(URL) bool IsUsingStandardCompliantNonSpecialSchemeURLParsing();

// Returns true if space characters should be treated as invalid in URL host
// parsing.
COMPONENT_EXPORT(URL) bool IsDisallowingSpaceCharacterInURLHostParsing();

// When enabled, Chrome uses standard-compliant URL parsing for non-special
// scheme URLs. See https://crbug.com/1416006 for details.
COMPONENT_EXPORT(URL)
BASE_DECLARE_FEATURE(kStandardCompliantNonSpecialSchemeURLParsing);

// When enabled, treat space characters as invalid in URL host parsing.
COMPONENT_EXPORT(URL)
BASE_DECLARE_FEATURE(kDisallowSpaceCharacterInURLHostParsing);

}  // namespace url

#endif  // URL_URL_FEATURES_H_