v148 · Security · IDN
Homograph Detector
Chrome 148 turns on IDNA's CheckJoiners processing for URL hosts. This detector compares the current browser's new URL() result with a ContextJ rule trace for ZWJ (U+200D), ZWNJ (U+200C), and visually deceptive mixed-script labels.
Domain homograph analyser
https://
Chrome 148 ContextJ verdict
Waiting
Run the analyser to evaluate ZWJ and ZWNJ contexts.
Current browser parser
Waiting
The page calls new URL() locally; older browsers may not reject the same hosts.
Visual homograph risk
Waiting
Mixed-script confusables are separate from ContextJ and can pass IDNA.
| label | char | code point | script / joining type | ContextJ rule | homograph note |
|---|
what the rule checks
// URL hosts run Unicode ToASCII with CheckJoiners enabled.
// RFC 5892 Appendix A.1: ZWNJ is valid after Virama, or between joining letters.
// RFC 5892 Appendix A.2: ZWJ is valid only after Virama.
new URL("https://exam\u200Dple.com/")
// Chrome 148: throws because ZWJ is not after Virama.
new URL("https://क्\u200Dष.com/")
// ContextJ pass: Devanagari Virama immediately precedes ZWJ.
see also
- ContextJ Demo — accepted and rejected URL parser examples
- Rule Reference — ContextJ joining categories
- Domain Validator — full per-character breakdown
- Domain Security Auditor — wider IDN security analysis
references
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗