Update on Specification and Behavior of Nested iframes in Prerendering Hi blink-dev,
We would like to share an update regarding the specification and restriction model for nested iframes within this prerendering-cross-origin-iframes feature. Motivation The prerendering-cross-origin-iframes feature was designed to conditionally prerender cross-origin iframes under explicit opt-in controls. However, we’ve found that the original specification did not fully account for nested iframes (iframes embedded within another iframe) based on feedback from Origin Trial and TAG <https://github.com/w3ctag/design-reviews/issues/1207> reviews. Currently, nested iframes are prerendered without specific restriction checks regarding their parent frame's cross-origin relationship in both the spec and our implementation. We believe nested iframes should not be prerendered automatically without explicit consent. We propose updating the model so that nested iframes also require the explicit opt-in header or must be same-origin relative to their parent frame. Proposed Behavior Changes Under the updated rules, a nested iframe will only be allowed to prerender if all of its ancestor frames have been prerendered and it meets either of the following conditions: 1. Same-Origin: The nested iframe is Same-Origin with respect to its immediate parent frame. 2. Explicit Opt-In: The immediate parent frame explicitly returns the following response header: Supports-Loading-Mode: prerender-cross-origin-frames Note: This restriction model applies recursively down through the entire iframe nesting hierarchy, with no limit on depth. Summary Comparison Environment Current Behavior Proposed Behavior Same-Origin Nested iframe Prerendered Prerendered Cross-Origin Nested iframe (Default) Prerendered Deferred by default Cross-Origin Nested iframe (with Opt-in Header) Prerendered Prerendered (requires Supports-Loading-Mode: prerender-cross-origin-frames on parent frame) Technical Details & Specification Document For a comprehensive breakdown of target scenarios, frame structures with diagrams, and interactions with other Supports-Loading-Mode headers, please review the detailed technical document: Update on Specification and Behavior of Nested iframes in Prerendering <https://docs.google.com/document/d/1N77oJF7DPao5ONWuWhso9SnOnMm7h1_5Xq61P02jJSw/edit> Please feel free to share any questions, feedback, or concerns regarding this update! Best regards, Yoichi Osato 2026年7月3日(金) 4:51 Rick Byers <[email protected]>: > LGTM to extend for 3 more months. Are you anticipating that after that > you'll be ready to ship? > > Is there a spec issue <https://github.com/WICG/nav-speculation/issues> > tracking the nested frames case? I didn't see one in a quick scan, and I > notice TAG is asking about it as well. > > On Thu, Jul 2, 2026 at 1:54 AM Chromestatus < > [email protected]> wrote: > >> *Contact emails* >> [email protected] >> >> *Explainer* >> >> https://github.com/WICG/nav-speculation/blob/main/prerendering-cross-origin-iframes.md >> >> *Specification* >> https://wicg.github.io/nav-speculation/prerendering.html >> >> *Summary* >> Prerenders cross-origin iframes with an opt-in response header. Browsers >> will now prerender all cross-origin frames if the top-level frame's HTTP >> response includes the Supports-Loading-Mode: prerender-cross-origin-frames. >> >> *Blink component* >> Blink >> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%22> >> >> *Web Feature ID* >> Missing feature >> >> *TAG review* >> https://github.com/w3ctag/design-reviews/issues/1207 >> >> *TAG review status* >> Not applicable >> >> *Origin Trial Name* >> Prerendering cross-origin iframes >> >> *Goals for experimentation* >> Gather feedback from web authors who already are interested in this >> feature. >> >> *Chromium Trial Name* >> Prerender2CrossOriginIframes >> >> *Origin Trial documentation link* >> >> https://github.com/WICG/nav-speculation/blob/main/prerendering-cross-origin-iframes.md >> >> *WebFeature UseCounter name* >> kPrerender2CrossOriginIframes >> >> *Risks* >> >> >> *Interoperability and Compatibility* >> The entire speculative loading feature is a progressive enhancement, so >> in general risks are low in this area. >> >> *Gecko*: No signal ( >> https://github.com/mozilla/standards-positions/issues/1376) >> >> *WebKit*: No signal ( >> https://github.com/WebKit/standards-positions/issues/636) >> >> *Web developers*: Positive Our partners show interests in having this >> feature. >> >> *Other signals*: >> >> *WebView application risks* >> >> Does this intent deprecate or change behavior of existing APIs, such that >> it has potentially high risk for Android WebView-based applications? >> *No information provided* >> >> >> *Reason this experiment is being extended* >> Partner requires additional implementation and assessment about the >> nested frames case. >> >> *Ongoing technical constraints* >> *No information provided* >> >> *Debuggability* >> The cross-origin iframe prerendering should be debuggable as well as top >> frame's one: >> https://developer.chrome.com/docs/devtools/application/debugging-speculation-rules#prerender >> >> *Will this feature be supported on all six Blink platforms (Windows, Mac, >> Linux, ChromeOS, Android, and Android WebView)?* >> No >> >> *Is this feature fully tested by web-platform-tests >> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?* >> Yes >> >> >> *Flag name on about://flags* >> "prerender2-cross-origin-iframes" from M148 >> >> *Finch feature name* >> Prerender2CrossOriginIframes >> >> *Requires code in //chrome?* >> False >> >> *Tracking bug* >> https://issues.chromium.org/issues/440387014 >> >> *Estimated milestones* >> Origin trial desktop first 147 >> Origin trial desktop last 152 >> Origin trial extension 1 end milestone 158 >> >> *Link to entry on the Chrome Platform Status* >> https://chromestatus.com/feature/5112398709129216?gate=5151856880910336 >> >> *Links to previous Intent discussions* >> Intent to Prototype: >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68b670ba.050a0220.270bc4.0593.GAE%40google.com >> Intent to Experiment: >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAEV3p%3DzhNhfOpe8x%3DRKgxYFS9GCq_q-c8knZYRBRuijQ27o8w%40mail.gmail.com >> >> >> This intent message was generated by Chrome Platform Status >> <https://chromestatus.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/6a45fcf5.198129d7.1d0cd0.0014.GAE%40google.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a45fcf5.198129d7.1d0cd0.0014.GAE%40google.com?utm_medium=email&utm_source=footer> >> . >> > -- 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/CAAEV3pm_az5gHgRkdNoRXVk2c_VQSQn9ezWFiuUUFHNJ8V7t9Q%40mail.gmail.com.
