Thanks for clarifying that. LGTM to experiment in 156-159 inclusive.

On Wednesday, October 7, 2026 at 3:37:00 PM UTC-7 Giovanni Del Valle wrote:

> Only the embedded page will need to opt into the trial. So, there won't be 
> a need to try to control both sides for the origin trial.
> The base connection allowlist feature origin trial would apply to the 
> embedding page, however that origin trial has finished.
>
> On Monday, September 28, 2026 at 5:01:51 PM UTC-7 Dan Clark wrote:
>
>> Will both the embedding page and the page embedded in the <iframe> need 
>> to opt in to the trial for this to work? What happens if one opts-in but 
>> not the other?
>> I'm wondering if partners might have trouble working with the trial if 
>> they don't control both sides. Or is expected that devs opting into this 
>> experiment will control both the embedder and embedee pages and can opt in 
>> both?
>>
>> -- Dan
>>
>> On Friday, September 25, 2026 at 2:16:01 PM UTC-7 Giovanni Del Valle 
>> wrote:
>>
>>> We've gone ahead and kicked off assessments for security, privacy, and 
>>> debuggability. Debuggability has been approved, so now we just waiting on 
>>> security and privacy.
>>> ------------------------------
>>> *From:* Alex Russell <[email protected]>
>>> *Sent:* Monday, September 21, 2026 11:40 AM
>>> *To:* blink-dev <[email protected]>
>>> *Cc:* Giovanni Del Valle <[email protected]>; Brandon Maslen <
>>> [email protected]>
>>> *Subject:* Re: Intent to Experiment: Connection Allowlists Embedded 
>>> Enforcement 
>>>  
>>> You don't often get email from [email protected]. Learn why this is 
>>> important <https://aka.ms/LearnAboutSenderIdentification> 
>>> This feature looks great; I'd like to see an addition to it for 
>>> restricting resource loading to a web package that provides content for the 
>>> source document. Will let other API OWNERs digest and perhaps LGTM, but in 
>>> the mean time, perhaps we can also submit assesments for Security, Privacy, 
>>> and Debuggability in the tool? 
>>>
>>> Best,
>>>
>>> Alex
>>>
>>> On Wednesday, September 16, 2026 at 4:50:48 PM UTC-7 Giovanni Del Valle 
>>> wrote:
>>>
>>> *Intent to Experiment: Connection Allowlists - Embedded Enforcement*
>>>
>>> *Contact emails*
>>>
>>> *[email protected]*, *[email protected]*
>>>
>>> *Explainer*
>>>
>>> https://github.com/WICG/connection-allowlists (embedded enforcement: 
>>> issues/1)
>>>
>>> *Specification*
>>>
>>> *https://wicg.github.io/connection-allowlists/* 
>>> <https://wicg.github.io/connection-allowlists/>
>>>
>>> *Design doc*
>>>
>>>
>>> https://docs.google.com/document/d/1k7vcy3tPIYpD01DyuLEvEPYydOMAZRd8ASdIHX-uZi0
>>>
>>> Base feature design doc: 
>>> https://docs.google.com/document/d/1B3LERUObjVDAKBNLpdIxbk8LC96rWUn1q8vtP9pPIuA
>>>
>>> Implementation design (in-tree): 
>>> *https://chromium.googlesource.com/chromium/src/+/main/docs/connection_allowlist_design.md*
>>>  
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/connection_allowlist_design.md>
>>>
>>> *Summary*
>>>
>>> Connection Allowlists restrict the endpoints a document or worker may 
>>> connect to. This extension lets a parent document require an allowlist of 
>>> the content it embeds, via a connectionallowlist attribute on the iframe. 
>>> The embedded document either satisfies the requirement - by opting in with 
>>> Allow-Connection-Allowlist-From, by delivering an at least as strict 
>>> Connection-Allowlist of its own, or implicitly if it is a local-scheme 
>>> document such as srcdoc or data: - or it is not loaded. The requirement is 
>>> inherited by descendants and workers and re-checked on every navigation, so 
>>> embedded content cannot escape it by nesting or redirecting.
>>>
>>> *Motivation*
>>>
>>> Embedders increasingly need to run embedded content in a sandboxed 
>>> environment. The sandbox attribute already constrains what such content may 
>>> do: run script, submit forms, open popups, act with an origin. It says 
>>> nothing about where that content may connect. A fully sandboxed frame can 
>>> still reach any endpoint and send it whatever it can read, so the dimension 
>>> that matters most for exfiltration is the one the platform cannot currently 
>>> constrain.
>>>
>>> Connection Allowlists constrain exactly that, but only for the context 
>>> that delivers the header. An embedder cannot hold what it embeds to a 
>>> comparable restriction, so embedded content becomes the bypass. 
>>> Local-scheme frames cannot set response headers at all, so they cannot 
>>> participate even voluntarily. Embedded enforcement supplies the missing 
>>> network dimension of the sandbox, guaranteed to only tighten as it is 
>>> inherited, and mirrors CSP Embedded Enforcement (the csp attribute, 
>>> Sec-Required-CSP, Allow-CSP-From) so embedded policy enforcement stays a 
>>> single mechanism.
>>>
>>> *User-facing problem*
>>>
>>> A user cannot tell host content from embedded content; trust given to 
>>> the site covers the whole page. A site can promise not to send user data to 
>>> arbitrary endpoints, but cannot make that promise on behalf of what it 
>>> embeds. The only containment tool available today, sandbox, cannot restrict 
>>> connections. This means that one overly permissive widget, or one injected 
>>> snippet in a srcdoc frame, breaks the promise invisibly. Embedded 
>>> enforcement lets the site extend the promise to everything it embeds, 
>>> however deeply content nests.
>>>
>>> *Use cases*
>>>
>>>    - A privacy- or compliance-sensitive application embedding 
>>>    third-party UI that must not reach arbitrary endpoints.
>>>    - A page rendering untrusted content in a srcdoc or data: frame - 
>>>    newly possible, since local-scheme frames cannot set response headers 
>>> and 
>>>    so could not participate before.
>>>    - A constrained document needing its guarantee to extend 
>>>    transitively to embedded frames and the workers they spawn.
>>>
>>> *Accessibility, Privacy, and Security Considerations*
>>>
>>> Accessibility: no impact. The feature affects only whether connections 
>>> are permitted and whether a frame commits; it does not change rendering, 
>>> focus, or assistive technology behavior.
>>>
>>> Security: a defense-in-depth feature, fail-closed - an unsatisfied 
>>> requirement blocks the frame rather than loading it unenforced. An embedder 
>>> cannot silently impose policy on unwilling cross-origin content (the 
>>> embedded document must opt in), and the requirement can only tighten as it 
>>> is inherited.
>>>
>>> Privacy: no new cross-origin information about the user is exposed. An 
>>> embedded document can observe that it is subject to a requirement, since 
>>> that requirement is sent to it directly as 
>>> Sec-Required-Connection-Allowlist - information the embedder deliberately 
>>> discloses, analogous to Sec-Required-CSP. A blocked document never loads 
>>> and observes nothing.
>>>
>>> *Blink component*
>>>
>>> Blink>SecurityFeature>ConnectionAllowlist
>>>
>>> *Search tags*
>>>
>>> connection allowlist, iframe, embedded enforcement, CSP, security
>>>
>>> *TAG review / status*
>>>
>>> https://github.com/w3ctag/design-reviews/issues/1173
>>>
>>> Status: Resolved, satisfied (closed 9 Jul 2026).
>>>
>>> *Risks*
>>>
>>> *Interoperability and Compatibility*
>>>
>>> Still incubating in the WICG, so shape and functionality may not be 
>>> final. Enforcement can block a frame from loading, but only where an 
>>> embedder explicitly sets the attribute, so existing content is unaffected.
>>>
>>>    - Gecko: Positive - 
>>>    https://github.com/mozilla/standards-positions/issues/1322 
>>>    (position: positive, closed 7 Aug 2026).
>>>    - WebKit: No signal - 
>>>    https://github.com/WebKit/standards-positions/issues/583 (open, no 
>>>    formal reply as of this draft).
>>>    - Web developers: Positive - 
>>>    https://github.com/WICG/connection-allowlists/issues/1
>>>
>>> *Ergonomics*
>>>
>>> Follows the CSP embedded enforcement pattern developers already know. A 
>>> framed document that already ships a compatible Connection-Allowlist needs 
>>> no changes, and local-scheme documents opt in implicitly.
>>>
>>> *Activation*
>>>
>>> <iframe src="https://example.com/widget"; 
>>> connectionallowlist="(response-origin)"></iframe>
>>>
>>> The framed document then opts in via Allow-Connection-Allowlist-From, 
>>> delivers a subsuming Connection-Allowlist, or qualifies implicitly as a 
>>> local-scheme document.
>>>
>>> *WebView application risks*
>>>
>>> None. The feature is inert unless an embedder sets the attribute, so no 
>>> existing content changes behavior.
>>>
>>> *Goals for experimentation*
>>>
>>>    - Validate the implementation in real deployments and confirm it 
>>>    unblocks the motivating partner.
>>>    - Confirm the three satisfaction paths match how embedders and 
>>>    embedded parties actually coordinate, and that subsumption ("at least as 
>>>    strict as") behaves as expected for realistic allowlists.
>>>    - Measure how often each outcome occurs via the four UseCounters — 
>>>    in particular whether blocking is rare and whether one satisfaction path 
>>>    dominates.
>>>    - Evaluate inheritance ergonomics through nested documents and 
>>>    workers, and confirm the never-loosen rule causes no unexpected breakage.
>>>
>>> *Ongoing technical constraints*
>>>
>>> None
>>>
>>> *Debuggability*
>>>
>>> Blocked responses raise a DevTools issue 
>>> (ConnectionAllowlistEmbeddedEnforcementIssue); a separate issue covers an 
>>> invalid Allow-Connection-Allowlist-From header. Blocked requests appear in 
>>> the Network panel, the handshake headers are inspectable there, and the 
>>> connectionAllowlist IDL attribute is readable from the console.
>>>
>>> *Will this feature be supported on all six Blink platforms?*
>>>
>>> Yes.
>>>
>>> *Is this feature fully tested by web-platform-tests?*
>>>
>>> Yes
>>>
>>> *Flag name on about://flags*
>>>
>>> Experimental Web Platform features 
>>> (about://flags#enable-experimental-web-platform-features). There is no 
>>> dedicated about://flags entry for embedded enforcement; the separate 
>>> "Connection allowlists" entry toggles only the base network feature, which 
>>> is already enabled by default.
>>>
>>> *Finch feature name*
>>>
>>> ConnectionAllowlistEmbeddedEnforcement
>>>
>>> *Origin trial feature name*
>>>
>>> ConnectionAllowlistEmbeddedEnforcement
>>>
>>> *Requires code in //chrome?*
>>>
>>> False
>>>
>>> *Tracking bug*
>>>
>>> *https://issues.chromium.org/issues/522111613* 
>>> <https://issues.chromium.org/issues/522111613>
>>>
>>> *Estimated milestones*
>>> 
>>>
>>> Origin trial desktop first
>>>
>>> 156
>>>
>>> Origin trial desktop last
>>>
>>> 159
>>>
>>> Origin trial Android first
>>>
>>> 156
>>>
>>> Origin trial Android last
>>>
>>> 159
>>>
>>> Origin trial WebView first
>>>
>>> 156
>>>
>>> Origin trial WebView last
>>>
>>> 159
>>>
>>> *Link to entry on the Chrome Platform Status*
>>>
>>> https://chromestatus.com/feature/5657801797009408
>>>
>>> Feedback submission: 
>>> *https://github.com/WICG/connection-allowlists/issues* 
>>> <https://github.com/WICG/connection-allowlists/issues>
>>>
>>> *Links to previous Intent discussions*
>>>
>>> Intent to Prototype: 
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/QHhBWQ0oUrA
>>>
>>> Base feature ChromeStatus entry: 
>>> https://chromestatus.com/feature/5175745573945344
>>>
>>> Base feature Intent to Experiment: 
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/lRMJ8iwaKbM
>>>
>>> Base feature Intent to Ship: 
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a3d7aca.54d5f168.18adb4.00dd.GAE%40google.com
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/2ca5a60d-6c5d-4bb7-ad4d-5e599b81291bn%40chromium.org.

Reply via email to