From ae7d572f7d58208b6b2f7d078e6e40276156dc8e Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Thu, 25 Jun 2026 15:16:35 +0200 Subject: [PATCH] Rename domain to ASCII to domain parser This hopefully clarifies the relationship between this algorithm and domain to Unicode. We also remove the beStrict parameter from domain to Unicode as it served no real purpose. --- url.bs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/url.bs b/url.bs index b2834297..5058807d 100644 --- a/url.bs +++ b/url.bs @@ -902,8 +902,9 @@ concepts.

IDNA

-

The domain to ASCII algorithm, given a string -domain and a boolean beStrict, runs these steps: +

The domain parser algorithm, given a +scalar value string domain and a boolean beStrict, runs these +steps. They return failure or a domain.

  1. @@ -980,21 +981,21 @@ concepts.

    The domain to Unicode algorithm, given a domain -domain and a boolean beStrict, runs these steps: +domain, runs these steps:

    1. Let result be the result of running Unicode ToUnicode with domain_name set to domain, - CheckHyphens set to beStrict, CheckBidi set to true, CheckJoiners - set to true, UseSTD3ASCIIRules set to beStrict, Transitional_Processing - set to false, and IgnoreInvalidPunycode set to false. [[!UTS46]] + CheckHyphens set to false, CheckBidi set to true, CheckJoiners set to true, + UseSTD3ASCIIRules set to false, Transitional_Processing set to false, and + IgnoreInvalidPunycode set to false. [[!UTS46]]

    2. If an error was recorded, then return domain.

      Because domain can only result from the host parser, any recorded errors will already have been signified as validation errors. Returning domain - ensures domain to ASCII and domain to Unicode roundtrip on input such as + ensures the domain parser and domain to Unicode roundtrip on input such as xn--8i7caa.

    3. Return result. @@ -1011,7 +1012,7 @@ concepts.

      A string input is a valid domain if these steps return true:

        -
      1. Let domain be the result of running domain to ASCII with input +

      2. Let domain be the result of running domain parser with input and true.

      3. Return false if domain is failure; otherwise true. @@ -1076,9 +1077,9 @@ false), and then runs these steps. They return failure or a host. percent-decoding of input.

        Alternatively UTF-8 decode without BOM or fail can be used, coupled with an - early return for failure, as domain to ASCII fails on U+FFFD (�). + early return for failure, as the domain parser fails on U+FFFD (�). -

      4. Let asciiDomain be the result of running domain to ASCII with +

      5. Let asciiDomain be the result of running domain parser with domain and false.

      6. If asciiDomain is failure, then return failure. @@ -3305,8 +3306,8 @@ handled with care to prevent spoofing:

        • -

          Browsers should render a URL's host by running - domain to Unicode with the URL's host and false. +

          If URL's host is a domain, browsers should render it + by running domain to Unicode with the URL's host.

          Various characters can be used in homograph spoofing attacks. Consider detecting confusable characters and warning when they are in use. [[IDNFAQ]] [[UTS39]]