)]}'
{"id": 6295810820145152, "name": "IDNA ContextJ rules", "summary": "IDNA is the mechanism for non-ASCII characters in domain names, encoding a URL like http://\ub124\uc774\ubc84.\ud55c\uad6d/ as http://xn--950bt9s8xi.xn--3e0b707e/ (a redirect to naver.com).\n\nThe processing is defined by https://www.unicode.org/reports/tr46/#Processing and is invoked by https://url.spec.whatwg.org/#idna.\n\nThe URL spec sets the CheckJoiners flag, which enables the ContextJ rules in IDNA2008:\nhttps://www.rfc-editor.org/rfc/rfc5892.html#appendix-A.1\nhttps://www.rfc-editor.org/rfc/rfc5892.html#appendix-A.2\n\nThis disallows ZWNJ (U+200C ZERO WIDTH NON-JOINER) and ZWJ (U+200D ZERO WIDTH JOINER) in most places in URLs.\n\nThe implementation is to simply pass the UIDNA_CHECK_CONTEXTJ option to ICU, where this rule is implemented:\nhttps://source.chromium.org/chromium/chromium/src/+/main:third_party/icu/source/common/uts46.cpp;l=1137-1204;drc=8a1988938d4298fbe8fb499b1a59fe4b04a21b15\n\nThis would fix over 200 subtests in WPT relating to IDNA, which already pass in Firefox and Safari:\nhttps://chromium-review.googlesource.com/c/chromium/src/+/6990929\nhttps://wpt.fyi/results/url/IdnaTestV2.window.html\n\nAll of the IdnaTestV2 cases that would regress from shipping ICU 77 (https://chromestatus.com/feature/5143313833000960) would also be fixed again by this change.", "markdown_fields": [], "blink_components": ["Blink>Network"], "star_count": 89, "search_tags": ["idna"], "created": {"by": "foolip@chromium.org", "when": "2025-09-26 07:28:28.449879"}, "updated": {"by": "foolip@chromium.org", "when": "2026-04-29 12:04:25.753234"}, "category": "Network / Connectivity", "category_int": 11, "feature_notes": null, "web_feature": "url", "is_official_web_feature": true, "webdx_usecounter_enum": null, "enterprise_feature_categories": [], "enterprise_product_category": 0, "is_releasenotes_content_reviewed": false, "is_releasenotes_publish_ready": false, "stages": [{"id": 5129062901219328, "created": "2025-09-26 07:28:28.811407", "feature_id": 6295810820145152, "stage_type": 220, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5105828122198016, "created": "2025-09-26 07:28:28.921261", "feature_id": 6295810820145152, "stage_type": 230, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 6217349967511552, "created": "2025-09-26 07:28:28.974189", "feature_id": 6295810820145152, "stage_type": 250, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5148313481510912, "created": "2025-09-26 07:28:29.189223", "feature_id": 6295810820145152, "stage_type": 260, "display_name": null, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68d6e3ce.050a0220.1ba43a.0052.GAE%40google.com", "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": 148, "android_first": 148, "ios_first": null, "webview_first": 148, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}], "accurate_as_of": "2026-04-29 12:04:25.753234", "creator_email": "foolip@chromium.org", "updater_email": "foolip@chromium.org", "owner_emails": ["foolip@chromium.org"], "editor_emails": [], "cc_emails": ["meacer@chromium.org"], "spec_mentor_emails": [], "unlisted": false, "deleted": false, "editors": [], "cc_recipients": ["meacer@chromium.org"], "spec_mentors": [], "creator": "foolip@chromium.org", "feature_type": "Chromium catches up", "feature_type_int": 1, "intent_stage": "None", "intent_stage_int": 0, "active_stage_id": 5148313481510912, "bug_url": "https://crbug.com/40765949", "launch_bug_url": null, "new_crbug_url": "https://bugs.chromium.org/p/chromium/issues/entry?components=Blink>Network&blocking=40765949&cc=foolip@chromium.org", "screenshot_links": [], "first_enterprise_notification_milestone": null, "enterprise_impact": 1, "breaking_change": false, "confidential": false, "shipping_year": 2026, "flag_name": null, "finch_name": "UseIDNAContextJRules", "non_finch_justification": null, "ongoing_constraints": null, "rollout_plan": 0, "rollout_plan_displayname": "Will ship enabled for all users", "motivation": null, "devtrial_instructions": null, "activation_risks": null, "measurement": "Cannot be measured with use counters because the URL parser is used in many places in Chrome, and not all of them have access to an ExecutionContext or similar.\n\nUMA could be used and give a proportion of URL parses affected metric, but given how many URLs are parsed and how rare even valid IDNA URLs seem to be, the number is probably vanishingly small and not informative of risk.", "availability_expectation": null, "adoption_expectation": null, "adoption_plan": null, "initial_public_proposal_url": null, "explainer_links": [], "requires_embedder_support": false, "spec_link": "https://url.spec.whatwg.org/#idna", "api_spec": false, "automation_spec": false, "interop_compat_risks": "Interoperability is improved by bringing URL parsing closer to Firefox and Safari.\n\nThe web compat risk is most likely very low because the URLs that will be rejected don't work at all in Firefox or Safari. On the other hand, any breakage would be very severe for the same reason. To make this change safely I would suggest a gradual Finch rollout.", "all_platforms": true, "all_platforms_descr": null, "non_oss_deps": null, "anticipated_spec_changes": null, "security_risks": null, "ergonomics_risks": null, "wpt": true, "wpt_descr": "https://wpt.fyi/results/url/IdnaTestV2.window.html", "webview_risks": null, "devrel_emails": ["devrel-chromestatus-all@google.com"], "debuggability": null, "doc_links": [], "sample_links": [], "prefixed": null, "tags": ["idna"], "tag_review": null, "tag_review_status": "Not applicable", "tag_review_status_int": 4, "security_review_status": "Pending", "security_review_status_int": 1, "privacy_review_status": "Pending", "privacy_review_status_int": 1, "security_continuity_id": null, "security_launch_issue_id": null, "updated_display": null, "resources": {"samples": [], "docs": []}, "comments": null, "ff_views": 1, "safari_views": 1, "web_dev_views": 4, "browsers": {"chrome": {"bug": "https://crbug.com/40765949", "blink_components": ["Blink>Network"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["foolip@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2, "milestone_str": "Proposed"}, "announced": true, "desktop": 148, "android": 148, "webview": 148, "ios": null}, "ff": {"view": {"url": null, "notes": "Shipped for a long time, exact version not found", "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": null, "notes": "Shipped for a long time, exact version not found", "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "No signals", "val": 4, "url": null, "notes": null}}, "other": {"view": {"text": null, "val": null, "url": null, "notes": null}}}, "standards": {"spec": "https://url.spec.whatwg.org/#idna", "maturity": {"text": "Final published standard: Recommendation, Living Standard, Candidate Recommendation, or similar final form", "short_text": "Published standard", "val": 5}}, "is_released": false, "is_enterprise_feature": false, "experiment_timeline": null, "ai_test_eval_report": null, "ai_test_eval_run_status": null, "ai_test_eval_status_timestamp": null}