)]}'
{"id": 5175745573945344, "name": "Connection Allowlists", "summary": "Connection Allowlists is a feature designed to provide explicit control over external endpoints by restricting connections initiated via the Fetch API or other web platform APIs from a document or worker.\n\nThe proposed implementation involves the distribution of an authorized endpoint list from the server through an HTTP response header. Prior to the establishment of any connection by the user agent on behalf of a page, the agent will evaluate the destination against this allowlist; connections to verified endpoints will be permitted, while those failing to match the entries in the list will be blocked.\n\nMore details on the proposal can be found here: https://github.com/WICG/connection-allowlists \n\nDesign doc: https://docs.google.com/document/d/1B3LERUObjVDAKBNLpdIxbk8LC96rWUn1q8vtP9pPIuA/edit?usp=sharing\n\nImplementation Design:\nhttps://source.chromium.org/chromium/chromium/src/+/main:docs/connection_allowlist_design.md\n", "markdown_fields": [], "blink_components": ["Blink>SecurityFeature>ConnectionAllowlist"], "star_count": 83, "search_tags": ["Connection Allowlists"], "created": {"by": "skmanickam@google.com", "when": "2026-02-02 19:33:07.455795"}, "updated": {"by": "shivanisha@chromium.org", "when": "2026-09-01 14:04:19.959300"}, "category": "Miscellaneous", "category_int": 2, "feature_notes": null, "web_feature": "Missing feature", "is_official_web_feature": false, "webdx_usecounter_enum": null, "enterprise_feature_categories": [], "enterprise_product_category": 0, "is_releasenotes_content_reviewed": false, "is_releasenotes_publish_ready": false, "stages": [{"id": 5200110889861120, "created": "2026-02-02 19:33:07.945658", "feature_id": 5175745573945344, "stage_type": 110, "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": 5143791923232768, "created": "2026-02-02 19:33:08.008437", "feature_id": 5175745573945344, "stage_type": 120, "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": 5178951364378624, "created": "2026-02-02 19:33:08.142307", "feature_id": 5175745573945344, "stage_type": 130, "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": 6251842315091968, "created": "2026-02-02 19:33:08.199543", "feature_id": 5175745573945344, "stage_type": 140, "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": 6253648415948800, "created": "2026-02-02 19:33:08.257864", "feature_id": 5175745573945344, "stage_type": 150, "display_name": "Connection Allowlists", "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/69a779c1.050a0220.1426e8.0068.GAE%40google.com", "announcement_url": null, "experiment_goals": "Origin Trial's goal was to gain insights on websites' usage of Connection Allowlist header and receive feedback from developers on whether there are any updates that would be useful.\n\nAs was mentioned in the I2E, at the start of OT, the following network endpoints were implemented: \nSubresources fetch, Navigations, Redirects, fetches from local scheme navigations (via connection allowlists inherited from the navigation's initiator), history.back/forward navigations, rel=prefetch, rel=preconnect, rel=preload, rel=modulepreload, , rel=dns-prefetch, and their link header equivalents.\n\nAs OT progressed, support was added for remaining known network endpoints including webRTC, WebTransport, WebSocket and others. Connection allowlists support documents, dedicated workers, shared workers and service workers.\n\n\n", "experiment_risks": "Since this is a defense in depth measure and also because we are continuing to add more network endpoints mitigation as the OT continues, it is strongly recommended that websites use this in conjunction with their current security mechanisms including content security policy. Since this feature increases the data exfiltration protections of a site, if this experiment comes to an end, the site will lose those mitigations. Continuing to use their existing security measures will ensure those sites will be back to their current security level if the experiment ended.", "origin_trial_id": "2487675844168777729", "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": "ConnectionAllowlist", "ot_description": "Connection Allowlists is a feature designed to provide explicit control over external endpoints by restricting connections initiated via the Fetch API or other web platform APIs from a document or worker. The proposed implementation involves the distribution of an authorized endpoint list from the server through an HTTP response header. Prior to the establishment of any connection by the user agent on behalf of a page, the agent will evaluate the destination against this allowlist; connections to verified endpoints will be permitted, while those failing to match the entries in the list will be blocked. More details on the proposal can be found here: https://github.com/WICG/connection-allowlists ", "ot_display_name": "Connection Allowlists", "ot_documentation_url": "https://developer.chrome.com/blog/connection-allowlists-origin-trial", "ot_emails": ["mkwst@google.com", "averge@google.com", "xiaochenzh@google.com", "skmanickam@google.com"], "ot_feedback_submission_url": "https://github.com/WICG/connection-allowlists/issues", "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": "shivanisha@google.com", "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": 5867, "ot_webfeature_use_counter": "kConnectionAllowlist", "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": 151, "android_last": 151, "ios_last": null, "webview_last": 151, "ot_setup_status": 6}, {"id": 5105304788402176, "created": "2026-02-02 19:33:08.371215", "feature_id": 5175745573945344, "stage_type": 160, "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/6a3d7aca.54d5f168.18adb4.00dd.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": 152, "android_first": 152, "ios_first": null, "webview_first": 152, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}], "accurate_as_of": "2026-09-01 14:04:19.959300", "creator_email": "skmanickam@google.com", "updater_email": "shivanisha@chromium.org", "owner_emails": ["shivanisha@chromium.org", "mkwst@chromium.org", "skmanickam@chromium.org"], "editor_emails": ["averge@chromium.org", "xiaochenzh@chromium.org", "skmanickam@google.com", "nrosenthal@google.com"], "cc_emails": ["nrosenthal@google.com"], "spec_mentor_emails": [], "unlisted": false, "deleted": false, "editors": ["averge@chromium.org", "xiaochenzh@chromium.org", "skmanickam@google.com", "nrosenthal@google.com"], "cc_recipients": ["nrosenthal@google.com"], "spec_mentors": [], "creator": "skmanickam@google.com", "feature_type": "New or changed feature", "feature_type_int": 0, "intent_stage": "None", "intent_stage_int": 0, "active_stage_id": 5105304788402176, "bug_url": "https://issues.chromium.org/issues/447954811", "launch_bug_url": null, "new_crbug_url": "https://bugs.chromium.org/p/chromium/issues/entry?components=Blink>SecurityFeature>ConnectionAllowlist&blocking=447954811&cc=shivanisha@chromium.org,mkwst@chromium.org,skmanickam@chromium.org", "screenshot_links": [], "first_enterprise_notification_milestone": 146, "enterprise_impact": 1, "breaking_change": false, "confidential": false, "shipping_year": 2026, "flag_name": "connection-allowlists", "finch_name": "ConnectionAllowlists", "non_finch_justification": null, "ongoing_constraints": "None", "rollout_plan": 0, "rollout_plan_displayname": "Will ship enabled for all users", "motivation": "Developers wish to have control over the resources loaded into their pages' contexts and the endpoints to which their pages can make requests. This control is necessary for several purposes, including limiting the ways in which users' data can flow through the user agent (mitigating exfiltration attacks) and ensuring control over a site\u2019s architecture and dependencies.\n\nContent Security Policy addresses some of this need, but does so in a way that is more granular than necessary for the most critical use cases, and with a syntax and grammar that\u2019s complicated by the other protections CSP is used to deploy.\n\n`Connection-Allowlist` steps back from CSP, and focuses on the single use case of controlling the explicit requests a page may initiate through Fetch and other web platform APIs (Navigations, preload, DNS Prefetch, WebRTC, Web Transport, etc) in a way that aims to be straightforward and comprehensive.\n\nExample:\nConnection-Allowlist: (response-origin \"https://cdn.example\" \"https://*.example.:tld\" \\\n                       \"https://api.example:*\"); report-to=ReportingAPIEndpoint\n", "devtrial_instructions": null, "activation_risks": "No challenges for developers to take advantage of this feature immediately.", "measurement": "UseCounter has been added for measuring the usage of the feature", "availability_expectation": "Feature is available only in Chromium browsers for the foreseeable future.", "adoption_expectation": "Feature is used by specific partner(s) to provide functionality within 12 months of launch in Chrome.", "adoption_plan": "Some of the partners are already participating in the Origin Trial and they are expected to adopt the feature as it ships in Chrome.\nThe use counter can be seen here: https://chromestatus.com/metrics/feature/timeline/popularity/5867", "initial_public_proposal_url": "https://github.com/WICG/proposals/issues/235", "explainer_links": ["https://github.com/WICG/connection-allowlists"], "requires_embedder_support": true, "spec_link": "https://wicg.github.io/connection-allowlists", "api_spec": false, "automation_spec": false, "interop_compat_risks": "This is a new feature. We are interacting with other browsers via discussions on GitHub and in the Community Group. However, there is no  official signal yet from any other browser vendors about their implementation plans.", "all_platforms": true, "all_platforms_descr": null, "non_oss_deps": "None", "anticipated_spec_changes": "https://github.com/WICG/connection-allowlists/issues\n \nNote that issues marked as enhancement, like https://github.com/WICG/connection-allowlists/issues/1, https://github.com/WICG/connection-allowlists/issues/28 are not included in this entry and will be launched via a separate I2S, but are additive and backward-compatible.", "security_risks": "This feature should be beneficial for security because it allows documents and workers to restrict network communication that could exfiltrate sensitive data. \n\n", "ergonomics_risks": "This feature will be frequently used in tandem with existing Web Platform Security mechanisms like Content Security Policy, Sandbox etc.\nWe expect no impact on Chrome's performance.", "wpt": true, "wpt_descr": "https://github.com/web-platform-tests/wpt/tree/master/connection-allowlist/tentative", "webview_risks": "No. This is a new feature.", "devrel_emails": ["devrel-chromestatus-all@google.com"], "debuggability": "To assist developers in debugging malformed headers, parsing errors are reported directly to the DevTools Issues tab. \n\nAdditionally, the reporting infrastructure for Connection-Allowlist was introduced to support both enforced violation reporting and a \"report-only\" mode, allowing developers to monitor potential breakages without interrupting service.\n", "doc_links": [], "sample_links": [], "prefixed": true, "tags": ["Connection Allowlists"], "tag_review": "https://github.com/w3ctag/design-reviews/issues/1173", "tag_review_status": "Pending", "tag_review_status_int": 1, "security_review_status": "Not applicable", "security_review_status_int": 4, "privacy_review_status": "Not applicable", "privacy_review_status_int": 4, "security_continuity_id": null, "security_launch_issue_id": null, "updated_display": null, "resources": {"samples": [], "docs": []}, "comments": null, "ff_views": 5, "safari_views": 5, "web_dev_views": 2, "browsers": {"chrome": {"bug": "https://issues.chromium.org/issues/447954811", "blink_components": ["Blink>SecurityFeature>ConnectionAllowlist"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["shivanisha@chromium.org", "mkwst@chromium.org", "skmanickam@chromium.org"], "origintrial": false, "prefixed": true, "flag": false, "status": {"text": "Proposed", "val": 2, "milestone_str": "Proposed"}, "announced": true, "desktop": 152, "android": 152, "webview": 152, "ios": null}, "ff": {"view": {"url": "https://github.com/mozilla/standards-positions/issues/1322", "notes": "We think there's agreement on the value of this functionality, but differences of opinion on what the header looks like. There has been good interaction on some of the issues in the repo and in the WebAppSec meetings.", "text": "Positive", "val": 3}}, "safari": {"view": {"url": "https://github.com/WebKit/standards-positions/issues/583", "notes": "No official position, but there has been good interaction on some of the issues in the repo and in the WebAppSec meetings.", "text": "No signal", "val": 5}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/WICG/proposals/issues/235#issuecomment-3463775783", "notes": "We have had multiple developers using Connection Allowlists through the Origin Trial and are planning to continue to use it.\nMicrosoft is also collaborating on enhancements like https://github.com/WICG/connection-allowlists/issues/1"}}, "other": {"view": {"text": null, "val": null, "url": null, "notes": "Edge: Positive (https://github.com/WICG/proposals/issues/235#issuecomment-3463775783)"}}}, "standards": {"spec": "https://wicg.github.io/connection-allowlists", "maturity": {"text": "Specification being incubated in a Community Group", "short_text": "Incubation", "val": 3}}, "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}