demo · v137
Cross-site Blob Navigation
The carve-out: top-level navigations to a blob: URL stay keyed by frame origin (not by storage partition). Subframe navigations to a foreign blob URL are blocked. This page sets two iframes loose on the same blob URL and reports who renders it.
probing…
blob URL(none yet)
top-level origin—
same-origin iframe
third-party (sandbox)
waiting…
the code
// Mint an HTML blob URL.
const html = "<h1>hello from a blob</h1>";
const url = URL.createObjectURL(new Blob([html], { type: "text/html" }));
// Top-level navigation: still keyed by frame origin → works.
window.open(url, "_blank");
// Same-origin iframe: same storage partition → works.
sameFrame.src = url;
// Sandboxed (opaque-origin) iframe: foreign partition → blocked.
crossFrame.src = url; // load fails / about:blank