Skip to content

Commit

Permalink
[giow] (2) Make about:blank loading async, but make <iframe> and <obj…
Browse files Browse the repository at this point in the history
…ect> not navigate to it if that's their starting point.

git-svn-id: http://svn.whatwg.org/webapps@4628 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Jan 27, 2010
1 parent 08e40d7 commit 0ee5818
Show file tree
Hide file tree
Showing 3 changed files with 187 additions and 135 deletions.
106 changes: 61 additions & 45 deletions complete.html
Expand Up @@ -5121,11 +5121,7 @@ <h3 id=fetching-resources><span class=secno>2.6 </span>Fetching resources</h3>
the following steps must be run. (When a <em>URL</em> is to be
fetched, the URL identifies a resource to be obtained.)</p>

<ol><li><p>If the resource is identified by the <a href=#url>URL</a>
<dfn id=about:blank><code>about:blank</code></dfn>, then return the empty string
and abort these steps.</li>

<li>
<ol><li>

<p>Generate the <i>address of the resource from which Request-URIs
are obtained</i> as required by HTTP for the <code title=http-referer>Referer</code> (sic) header from <a href="#the-document's-current-address">the
Expand Down Expand Up @@ -5184,6 +5180,11 @@ <h3 id=fetching-resources><span class=secno>2.6 </span>Fetching resources</h3>
explicitly initiated from an <i title="">origin</i>, then <i title="">the origin that initiated the HTTP request</i> is <i title="">origin</i>. Otherwise, this is <i title="">a request from
a "privacy-sensitive" context</i>. <a href=#refsORIGIN>[ORIGIN]</a></p>

<p>If the resource is identified by the <a href=#url>URL</a>
<dfn id=about:blank><code>about:blank</code></dfn>, then the resource is
immediately available and consists of the empty string, with no
metadata.</p>

</li>

<li>
Expand Down Expand Up @@ -19624,7 +19625,8 @@ <h4 id=the-iframe-element><span class=secno>4.8.3 </span>The <dfn><code>iframe</
<p>When an <code><a href=#the-iframe-element>iframe</a></code> element is first <a href=#insert-an-element-into-a-document title="insert
an element into a document">inserted into a document</a>, the
user agent must create a <a href=#nested-browsing-context>nested browsing context</a>, and
then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a>.</p>
then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> for the
first time.</p>

<p>Whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a <a href=#nested-browsing-context>nested
browsing context</a> has its <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute set or changed,
Expand Down Expand Up @@ -19656,12 +19658,25 @@ <h4 id=the-iframe-element><span class=secno>4.8.3 </span>The <dfn><code>iframe</

<dd>

<ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
<ol><!--
<li><p>If the value of the <code
title="attr-iframe-src">src</code> attribute is the empty string,
and the user agent is processing this <code>iframe</code>'s
attributes for the first time, then abort these steps.</p></li>
--><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute, relative
to the <code><a href=#the-iframe-element>iframe</a></code> element.</li>

<li><p>If that is successful, <a href=#navigate>navigate</a> the element's
<a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
<li><p>If that is not successful, abort these steps.</li>

<li><p>If the resulting <a href=#absolute-url>absolute URL</a> is an
<a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
"<code><a href=#about:blank>about:blank</a></code>", and the user agent is processing this
<code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first time, then abort
these steps.</li>

<li><p><a href=#navigate>Navigate</a> the element's <a href=#browsing-context>browsing
context</a> to the resulting <a href=#absolute-url>absolute
URL</a>.</li>

</ol></dd>
Expand All @@ -19673,11 +19688,12 @@ <h4 id=the-iframe-element><span class=secno>4.8.3 </span>The <dfn><code>iframe</
browsing context</a>.</p>

<p>Furthermore, if the <a href=#process-the-iframe-attributes>process the <code>iframe</code>
attributes</a> algorithm was invoked as a result of the element
being <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into
a document</a>, then any <a href=#navigate title=navigate>navigation</a>
required of the user agent in that algorithm must be completed with
<a href=#replacement-enabled>replacement enabled</a>.</p>
attributes</a> algorithm was invoked for the first time for this
element (i.e. as a result of the element being <a href=#insert-an-element-into-a-document title="insert
an element into a document">inserted into a document</a>), then
any <a href=#navigate title=navigate>navigation</a> required of the user
agent in that algorithm must be completed with <a href=#replacement-enabled>replacement
enabled</a>.</p>

</div>

Expand Down Expand Up @@ -20632,6 +20648,9 @@ <h4 id=the-object-element><span class=secno>4.8.5 </span>The <dfn><code>object</

<li>

<!-- what if it's not in the document? if that should prevent
plugin instantiation, then here just skip to the last step -->

<p>If the <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code>
attribute is present, and has a value that isn't the empty string,
then: if the user agent can find a <a href=#plugin>plugin</a> suitable
Expand Down Expand Up @@ -20672,7 +20691,7 @@ <h4 id=the-object-element><span class=secno>4.8.5 </span>The <dfn><code>object</
-->

<li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
is present, then:</p>
is present and its value is not the empty string, then:</p>

<ol><li><p>If the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
attribute is present and its value is not a type that the user
Expand All @@ -20681,23 +20700,25 @@ <h4 id=the-object-element><span class=secno>4.8.5 </span>The <dfn><code>object</
step in the overall set of steps (fallback) without fetching the
content to examine its real type.</li>

<li>
<li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
<a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
element.</li>

<p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
<a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
element.</p>
<li><p>If that failed, <a href=#fire-a-simple-event>fire a simple event</a> named
<code title=event-error>error</code> at the element, then jump
to the last step in the overall set of steps (fallback).</li>

<li>

<p>If that is successful, <a href=#fetch>fetch</a> the resulting
<a href=#absolute-url>absolute URL</a>, from the element's <a href=#browsing-context-scope-origin>browsing
context scope origin</a> if it has one<!-- potentially
http-origin privacy sensitive -->.</p>
<p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute URL</a>,
from the element's <a href=#browsing-context-scope-origin>browsing context scope origin</a> if
it has one<!-- potentially http-origin privacy sensitive
-->.</p>

<!-- similar text in various places -->
<p>Fetching the resource must <a href=#delay-the-load-event>delay the load event</a>
of the element's document until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
task">queued</a> by the <a href=#networking-task-source>networking task source</a>
once the resource has been <a href=#fetch title=fetch>fetched</a>
(defined next) has been run.</p>
<!-- similar text in various places --> <p>Fetching the resource
must <a href=#delay-the-load-event>delay the load event</a> of the element's document
until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> (defined next) has been run.</p>

</li>

Expand All @@ -20712,12 +20733,10 @@ <h4 id=the-object-element><span class=secno>4.8.5 </span>The <dfn><code>object</
to consider a resource "available" whenever enough data has been
obtained to begin processing the resource.</li>

<li><p>If the load failed (e.g. the <a href=#url>URL</a> could not be
<a href=#resolve-a-url title="resolve a url">resolved</a>, there was an HTTP
404 error, there was a DNS error), <a href=#fire-a-simple-event>fire a simple
event</a> named <code title=event-error>error</code> at the
element, then jump to the last step in the overall set of steps
(fallback).</li>
<li><p>If the load failed (e.g. there was an HTTP 404 error,
there was a DNS error), <a href=#fire-a-simple-event>fire a simple event</a> named
<code title=event-error>error</code> at the element, then jump
to the last step in the overall set of steps (fallback).</li>

<li><p>Determine the <var title="">resource type</var>, as follows:</p>

Expand Down Expand Up @@ -20857,11 +20876,12 @@ <h4 id=the-object-element><span class=secno>4.8.5 </span>The <dfn><code>object</

<p>The <code><a href=#the-object-element>object</a></code> element must be associated with a
<a href=#nested-browsing-context>nested browsing context</a>, if it does not already
have one. The element's <a href=#nested-browsing-context>nested browsing context</a>
must then be <a href=#navigate title=navigate>navigated</a> to the
given resource, with <a href=#replacement-enabled>replacement enabled</a>, and
with the <code><a href=#the-object-element>object</a></code> element's document's
<a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source browsing
have one. If the <a href=#url>URL</a> of the given resource is not
<code><a href=#about:blank>about:blank</a></code>, the element's <a href=#nested-browsing-context>nested browsing
context</a> must then be <a href=#navigate title=navigate>navigated</a> to that resource, with
<a href=#replacement-enabled>replacement enabled</a>, and with the
<code><a href=#the-object-element>object</a></code> element's document's <a href=#browsing-context>browsing
context</a> as the <a href=#source-browsing-context>source browsing
context</a>. (The <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute of the
<code><a href=#the-object-element>object</a></code> element doesn't get updated if the
browsing context gets further navigated to other
Expand Down Expand Up @@ -56658,11 +56678,7 @@ <h4 id=navigating-across-documents><span class=secno>6.11.1 </span>Navigating ac

<li>

<p>If fetching the resource is synchronous (i.e. for
<code><a href=#about:blank>about:blank</a></code>), then this must be synchronous, but if
fetching the resource depends on external resources, as it usually
does for URLs that use HTTP or other networking protocols, then at
this point the user agents must return to whatever algorithm
<p>At this point the user agents must return to whatever algorithm
invoked the navigation steps and must continue these steps
asynchronously.</p>

Expand Down

0 comments on commit 0ee5818

Please sign in to comment.