@everyone Important update! We have a better fix in place now.
I owe all of you, and especially @aaron.hugaert an apology (and special thanks to Daan on Slack!). My previous fix was either insufficient, or completely wrong (Iâm not entirely sure⌠the draft specs keep changing, apparently, or I mightâve just screwed up my testing procedure previously
).
What we actually needed WAS in fact an iframe annotation in the parent frame (the CMS admin UI), the local-network-access that Aaron correctly identified at first (or rather, that param has now been separated into two, local-network and loopback-network; see https://docs.google.com/document/d/1QQkqehw8umtAgz5z0um7THx-aoU251p705FbIQjDuGs/edit?tab=t.0#heading=h.ao7p7jjargti)
Weâve now added that annotation correctly (I hope!), and as a result, Chrome users should get an explicit permission prompt if a plugin tries to load a localhost or *.local page. Once they approve the prompt, it should load:
So this fixes it at the technical level. From a UX perspective, plugin authors may wish to update their plugins to warn the user about why that permission is requested because Chrome doesnât do a good job on its own and makes it sound pretty scary.
Thankfully, that warning should not pop up unless the user explicitly tries to load a local resource (i.e., adding the annotation in and of itself does not seem to trigger the permission popup; the plugin must actually attempt to actually load a local file first).
Sorry again for my mistake, and I hope that helps. I should note that this is all a bit confusing to me because the drafts keep changing, and Chrome is moving fast on this without any of the other browsers keeping up, and if they change it again, it may break again. Please let us know if you do notice any other issues related to this!
PS This whole situation was really confusing to me because a lot of the info I found was unclear and/or outdated. Here are the technical details that helped me (current and correct, as far as I can tell, as of March 2026), in case anyone else is investigating simiilar situations:
Technical analysis of Chrome iframe local network access issues
Chrome 142 introduced mandatory permission prompts for Local Network Access (LNA), which broke the Web Previews plugin for customers pointing it at localhost for local development previews.
Our initial fix a few months ago added targetAddressSpace to fetch requests, but that turned out to be a red herring â the root cause is that our plugins run inside an iframe. Chromeâs LNA policy requires iframes to explicitly declare local network access via an allow attribute on the iframe element itself. Without that allowlist annotation, the browser blocks the request before targetAddressSpace even matters.
The fix requires adding the appropriate permissions policy (e.g. local-network-access or its updated alias) to the iframeâs allow attribute, per the Microsoft/Chromium documentation on LNA from iframes.
See also: