It seems &quot;persistent&quot; and &quot;preloading&quot; aspects of the proposal are very hard to do considering security bounds of web browsing, there are scalability issues and people sometimes don&#39;t like the cost/benefit or obscurity (Netscape 6 etc).<div>
<br></div><div>What about the &quot;shared context with DOM access&quot; idea which, even w/o persistency, seems to resolve some issues for apps like GMail? Like a shared worker, but with access to DOM.</div><div><br></div>
<div>1. It does not have security or &quot;resources&quot; issues since it&#39;s only up until the pages of the given app are up (same as shared worker)</div><div>2. It does rely on &#39;cooperative&#39; pages to be opened in the same process but this is easy to implement. I mean, you can&#39;t &#39;guarantee&#39; it (a page from another domain may have iframe pointing to the app and it will be in a diff. process) but any reasonable app can be easily structured in a way to get its views (pages) into a single process.</div>
<div>3. It would help to provide fast (meaning sub-100ms, interactively fast) UI responses necessary for the seamless operations. Persistent data storage and parsing/generating HTML (including loading all the code necessary to do that from the &#39;pure data&#39;) will always present challenge for sub-100ms UI actions - even in native apps it is a challenge today.</div>
<div><br></div><div>Here is a typical use case: You compose a message in GMial window. Halfway through you decide to peek into another mail thread for more information. You click &#39;tear-off&#39; button to &quot;disconnect&quot; the compose window so you can see other mail threads. Today, this opens a new window and starts loading XXX Kb of script into it. You see the progress indicator for a few seconds. This script is needed to be able to go to server and generate a proper UI from the response, as well as have all the &#39;controller&#39; logic when user starts to interact with such UI.</div>
<div>With shared context, you could just take the whole DOM subtree that forms a compose window UI and pass it, as is, into the new and empty window - with even handlers hooked into the shared context. It will just relayout and continue function. You have an &#39;instant&#39; tear-off.</div>
<div><br></div><div>Dmitry</div>