Currently window creation (and to some extend also cross-window
communication) on the web platform works using window.open()
are follows:
window.open() synchronously returns a reference to
the newly created window.
window.opener returns a reference to the window
that opened the window (i.e. the application main document).
However, window.open() does not address the following
requirements (for related use cases, refer to the
Application Lifecycle and Events specification):
This specification defines an API for creating windows that addresses the requirements.
There is only one class of product that can claim conformance to this specification: a user agent.
The IDL fragments in this specification must be interpreted as required for conforming IDL fragments, as described in the Web IDL specification. [[!WEBIDL]].
An ApplicationRuntime is defined in the Application Lifecycle and Events specification.
The contentWindow IDL attribute must return the
WindowProxy object of the created window.
When the show() method is invoked, the user agent must run the following steps:
When the hide() method is invoked, the user agent must run the following steps:
Some use cases are derived from Adam Barth’s execution model proposal referenced in the System Applications Working Group Charter. Thanks to the Chrome team for their experiments with Packaged Apps.