← Back to release summary

IDNA ContextJ rules

Category
Network / Connectivity
Type
Chromium catches up
Status
Proposed (Chrome Proposed)
Intent stage
None

Summary

IDNA is the mechanism for non-ASCII characters in domain names, encoding a URL like http://네이버.한국/ as http://xn--950bt9s8xi.xn--3e0b707e/ (a redirect to naver.com). The processing is defined by https://www.unicode.org/reports/tr46/#Processing and is invoked by https://url.spec.whatwg.org/#idna. The URL spec sets the CheckJoiners flag, which enables the ContextJ rules in IDNA2008: https://www.rfc-editor.org/rfc/rfc5892.html#appendix-A.1 https://www.rfc-editor.org/rfc/rfc5892.html#appendix-A.2 This disallows ZWNJ (U+200C ZERO WIDTH NON-JOINER) and ZWJ (U+200D ZERO WIDTH JOINER) in most places in URLs. The implementation is to simply pass the UIDNA_CHECK_CONTEXTJ option to ICU, where this rule is implemented: https://source.chromium.org/chromium/chromium/src/+/main:third_party/icu/source/common/uts46.cpp;l=1137-1204;drc=8a1988938d4298fbe8fb499b1a59fe4b04a21b15 This would fix over 200 subtests in WPT relating to IDNA, which already pass in Firefox and Safari: https://chromium-review.googlesource.com/c/chromium/src/+/6990929 https://wpt.fyi/results/url/IdnaTestV2.window.html All of the IdnaTestV2 cases that would regress from shipping ICU 77 (https://chromestatus.com/feature/5143313833000960) would also be fixed again by this change.

Standards & signals

View on chromestatus.com