<div class="gmail_quote">On 25 August 2010 12:50, Boris Zbarsky <span dir="ltr"><<a href="mailto:bzbarsky@mit.edu">bzbarsky@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im">On 8/24/10 7:09 PM, Ben Lerner wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
  The history navigation analogy is a good one: pages presumably already<br>
have to handle the pageshow event to deal with being revived from the<br>
history, and the browser already needs to know how to fire that event.<br>
Why not reuse those mechanisms? A strawman claim: Nothing may be<br>
changing from the perspective of the iframe, but it certainly is<br>
changing from the perspective of the container or the user: detaching an<br>
iframe from a page is like navigating a browsing context away from a<br>
page, putting it into hibernation until it's reattached to an active<br>
document/browsing context. What subtle or important facet of the web am<br>
I missing that breaks this analogy? (It wouldn't surprise me if I missed<br>
something obvious, either... :)<br>
</blockquote>
<br></div>
At least in the case of Gecko, there are at least the following things to keep in mind:<br>
<br>
1) "hibernating" documents are very limited in what one can do with<br>
   them (e.g. attempting to mutate the document in any way while<br>
   hibernating will throw it away).<br>
2) Documents have security policies applied to them based on the<br>
   toplevel content window (or browser tab, if you prefer to think<br>
   about it) they're associated with.  Which means that allowing<br>
   documents not immediately associated with any toplevel window,<br>
   which would be the case right now in Gecko for an <iframe> not in<br>
   a document, leads to security problems.  This could be changed by<br>
   redoing how the association is implemented, but there's some<br>
   touchy code involved that we'd rather not get wrong.  ;)<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Another reason to consider suspending detached iframes: suppose that in<br>
the chat window example below, the iframe wasn't just a same-origin<br>
place to store global state, but also had its own UI, with callbacks and<br>
event handlers and whatnot. If, during the interim while the iframe was<br>
being detached, adopted and reattached, that frame executed a timer that<br>
popped up a modal alert or prompt to the user, how would the user<br>
reasonably know where that alert came from? And what document(s?) should<br>
be paused while the alert is shown?<br>
</blockquote>
<br></div>
And for that matter, how would the UA know where the alert came from, in terms of correctly parenting it?  This ties back to item #2 above.<div class="im"><br>
<br></div></blockquote><div><br>Couldn't the iframe be kept alive, but remain "associated" with it's parent browsing context until (if) it was re-parented / inserted into a different document. (does this match what other elements in the DOM behave in terms of event handlers when they are detached?)<br>

<br>That way, complex "hibernate" would be uneeded and it would be clear as to how to handle events, security, etc.<br></div></div>