[html5] r1637 - /

whatwg at whatwg.org whatwg at whatwg.org
Mon May 19 16:26:10 PDT 2008


Author: ianh
Date: 2008-05-19 16:26:09 -0700 (Mon, 19 May 2008)
New Revision: 1637

Modified:
   index
   source
Log:
[] (0) <iframe seamless> -- clientside inclusion of HTML documents. People have been asking for this for at least ten years.

Modified: index
===================================================================
--- index	2008-05-16 23:31:17 UTC (rev 1636)
+++ index	2008-05-19 23:26:09 UTC (rev 1637)
@@ -25,7 +25,7 @@
 
    <h1 id=html-5>HTML 5</h1>
 
-   <h2 class="no-num no-toc" id=draft>Draft Recommendation — 16 May
+   <h2 class="no-num no-toc" id=draft>Draft Recommendation — 19 May
     2008</h2>
 
    <p>You can take part in this work. <a
@@ -14137,13 +14137,17 @@
 
    <dd><code title=attr-iframe-name><a href="#name1">name</a></code>
 
+   <dd><code title=attr-iframe-seamless><a
+    href="#seamlesscode">seamless</a></code>
+
    <dt>DOM interface:
 
    <dd>
     <pre
      class=idl>interface <dfn id=htmliframeelement>HTMLIFrameElement</dfn> : <a href="#htmlelement">HTMLElement</a> {
            attribute DOMString <a href="#src2" title=dom-iframe-src>src</a>;
-           attribute DOMString <span title=dom-iframe-name>name</span>;<!--
+           attribute DOMString <span title=dom-iframe-name>name</span>;
+           attribute DOMString <span title=dom-iframe-seamless>seamless</span>;<!--
   readonly attribute Document <span title="dom-iframe-contentDocument">contentDocument</span>;
   readonly attribute <span>Window</span> <span title="dom-iframe-contentWindow">contentWindow</span>;-->
 };</pre>
@@ -14222,6 +14226,89 @@
    href="#navigate" title=navigate>navigated</a>, that will further <a
    href="#delays">delay the <code title=event-load>load</code> event</a>.
 
+  <p>The <dfn id=seamlesscode
+   title=attr-iframe-seamless><code>seamless/code></code></dfn> attribute is
+   a boolean attribute. When specified, it indicates that the <code><a
+   href="#iframe">iframe</a></code> element's <a href="#browsing1">browsing
+   context</a> is to be rendered in a manner that makes it appear to be part
+   of the containing document (seamlessly included in the parent document).
+   Specifically, when the attribute is set on an element and while the <a
+   href="#browsing1">browsing context</a>'s <a href="#active">active
+   document</a> has the <a href="#same-origin">same origin</a> as the
+   <code><a href="#iframe">iframe</a></code> element's document, or the <a
+   href="#browsing1">browsing context</a>'s <a href="#active">active
+   document</a>'s <em>URI</em> has the <a href="#same-origin">same origin</a>
+   as the <code><a href="#iframe">iframe</a></code> element's document, the
+   following requirements apply:
+
+  <ul>
+   <li>
+    <p>The user agent must set the <span>seamless browsing context</span>
+     flag to true for that <a href="#browsing1">browsing context</a>. This
+     will <a href="#seamlessLinks">cause links to open in the parent browsing
+     context</a>.
+
+   <li>
+    <p>In a CSS-supporting user agent: the user agent must add all the style
+     sheets that apply to the <code><a href="#iframe">iframe</a></code>
+     element to the cascade of the <a href="#active">active document</a> of
+     the <code><a href="#iframe">iframe</a></code> element's <a
+     href="#nested0">nested browsing context</a>, at the appropriate cascade
+     levels, before any style sheets specified by the document itself.
+
+   <li>
+    <p>In a CSS-supporting user agent: the user agent must, for the purpose
+     of CSS property inheritance only, treat the root element of the <a
+     href="#active">active document</a> of the <code><a
+     href="#iframe">iframe</a></code> element's <a href="#nested0">nested
+     browsing context</a> as being a child of the <code><a
+     href="#iframe">iframe</a></code> element. (Thus inherited properties on
+     the root element of the document in the <code><a
+     href="#iframe">iframe</a></code> will inherit the computed values of
+     those properties on the <code><a href="#iframe">iframe</a></code>
+     element instead of taking their initial values.)
+
+   <li>
+    <p>In visual media, in a CSS-supporting user agent: the user agent should
+     set the intrinsic width of the <code><a href="#iframe">iframe</a></code>
+     to the width that the element would have if it was a non-replaced
+     block-level element with 'width: auto'.
+
+   <li>
+    <p>In visual media, in a CSS-supporting user agent: the user agent should
+     set the intrinsic height of the <code><a
+     href="#iframe">iframe</a></code> to the height of the bounding box
+     around the content rendered in the <code><a
+     href="#iframe">iframe</a></code> at its current width.
+
+   <li>
+    <p>In speech media, the user agent should render the <a
+     href="#nested0">nested browsing context</a> without announcing that it
+     is a separate document.
+
+   <li>
+    <p>User agents should, in general, act as if the <a href="#active">active
+     document</a> of the <code><a href="#iframe">iframe</a></code>'s <a
+     href="#nested0">nested browsing context</a> was part of the document
+     that the <code><a href="#iframe">iframe</a></code> is in.</p>
+
+    <p class=example>For example if the user agent supports listing all the
+     links in a document, links in "seamlessly" nested documents would be
+     included in that list without being significantly distinguished from
+     links in the document itself.</p>
+  </ul>
+
+  <p class=big-issue>Parts of the above might get moved into the rendering
+   section at some point.
+
+  <p>If the attribute is not specified, or if the <a
+   href="#origin0">origin</a> conditions listed above are not met, then the
+   user agent should render the <a href="#nested0">nested browsing
+   context</a> in a manner that is clearly distinguishable as a separate <a
+   href="#browsing1">browsing context</a>, and the <span>seamless browsing
+   context</span> flag must be set to false for that <a
+   href="#browsing1">browsing context</a>.
+
   <p>An <code><a href="#iframe">iframe</a></code> element never has <a
    href="#fallback">fallback content</a>, as it will always create a nested
    <a href="#browsing1">browsing context</a>, regardless of whether the
@@ -31836,6 +31923,16 @@
    following steps:
 
   <ol>
+   <li id=seamlessLinks>
+    <p>If the <a href="#source0">source browsing context</a> is the same as
+     the <a href="#browsing1">browsing context</a> being navigated, and this
+     browsing context has its <span>seamless browsing context</span> flag
+     set, then find the nearest <span>ancestor browsing context</span> that
+     does not have its <span>seamless browsing context</span> flag set, and
+     continue these steps as if <em>that</em> <a href="#browsing1">browsing
+     context</a> was the one that was going to be <a href="#navigate"
+     title=navigate>navigated</a> instead.
+
    <li>
     <p>Cancel any preexisting attempt to navigate the browsing context.
 

Modified: source
===================================================================
--- source	2008-05-16 23:31:17 UTC (rev 1636)
+++ source	2008-05-19 23:26:09 UTC (rev 1637)
@@ -12161,11 +12161,13 @@
    <dt>Element-specific attributes:</dt>
    <dd><code title="attr-iframe-src">src</code></dd>
    <dd><code title="attr-iframe-name">name</code></dd>
+   <dd><code title="attr-iframe-seamless">seamless</code></dd>
    <dt>DOM interface:</dt>
    <dd>
 <pre class="idl">interface <dfn>HTMLIFrameElement</dfn> : <span>HTMLElement</span> {
            attribute DOMString <span title="dom-iframe-src">src</span>;
-           attribute DOMString <span title="dom-iframe-name">name</span>;<!--
+           attribute DOMString <span title="dom-iframe-name">name</span>;
+           attribute DOMString <span title="dom-iframe-seamless">seamless</span>;<!--
   readonly attribute Document <span title="dom-iframe-contentDocument">contentDocument</span>;
   readonly attribute <span>Window</span> <span title="dom-iframe-contentWindow">contentWindow</span>;-->
 };</pre>
@@ -12237,6 +12239,85 @@
   title="navigate">navigated</span>, that will further <span>delay the
   <code title="event-load">load</code> event</span>.</p>
 
+
+  <p>The <dfn title="attr-iframe-seamless"><code>seamless/code></dfn>
+  attribute is a boolean attribute. When specified, it indicates that
+  the <code>iframe</code> element's <span>browsing context</span> is
+  to be rendered in a manner that makes it appear to be part of the
+  containing document (seamlessly included in the parent
+  document). Specifically, when the attribute is set on an element and
+  while the <span>browsing context</span>'s <span>active
+  document</span> has the <span>same origin</span> as the
+  <code>iframe</code> element's document, or the <span>browsing
+  context</span>'s <span>active document</span>'s <em>URI</em> has the
+  <span>same origin</span> as the <code>iframe</code> element's
+  document, the following requirements apply:</p>
+
+  <ul>
+
+   <li><p>The user agent must set the <span>seamless browsing
+   context</span> flag to true for that <span>browsing
+   context</span>. This will <a href="#seamlessLinks">cause links to
+   open in the parent browsing context</a>.</p></li>
+
+   <li><p>In a CSS-supporting user agent: the user agent must add all
+   the style sheets that apply to the <code>iframe</code> element to
+   the cascade of the <span>active document</span> of the
+   <code>iframe</code> element's <span>nested browsing context</span>,
+   at the appropriate cascade levels, before any style sheets
+   specified by the document itself.</p></li>
+
+   <li><p>In a CSS-supporting user agent: the user agent must, for the
+   purpose of CSS property inheritance only, treat the root element of
+   the <span>active document</span> of the <code>iframe</code>
+   element's <span>nested browsing context</span> as being a child of
+   the <code>iframe</code> element. (Thus inherited properties on the
+   root element of the document in the <code>iframe</code> will
+   inherit the computed values of those properties on the
+   <code>iframe</code> element instead of taking their initial
+   values.)</p></li>
+
+   <li><p>In visual media, in a CSS-supporting user agent: the user agent
+   should set the intrinsic width of the <code>iframe</code> to the
+   width that the element would have if it was a non-replaced
+   block-level element with 'width: auto'.</p></li>
+
+   <li><p>In visual media, in a CSS-supporting user agent: the user agent
+   should set the intrinsic height of the <code>iframe</code> to the
+   height of the bounding box around the content rendered in the
+   <code>iframe</code> at its current width.</p></li>
+
+   <li><p>In speech media, the user agent should render the <span>nested
+   browsing context</span> without announcing that it is a separate
+   document.</p></li>
+
+   <li>
+
+    <p>User agents should, in general, act as if the <span>active
+    document</span> of the <code>iframe</code>'s <span>nested browsing
+    context</span> was part of the document that the
+    <code>iframe</code> is in.</p>
+
+    <p class="example">For example if the user agent supports listing
+    all the links in a document, links in "seamlessly" nested
+    documents would be included in that list without being
+    significantly distinguished from links in the document itself.</p>
+
+   </li>
+
+  </ul>
+
+  <p class="big-issue">Parts of the above might get moved into the
+  rendering section at some point.</p>
+
+  <p>If the attribute is not specified, or if the <span>origin</span>
+  conditions listed above are not met, then the user agent should
+  render the <span>nested browsing context</span> in a manner that is
+  clearly distinguishable as a separate <span>browsing context</span>,
+  and the <span>seamless browsing context</span> flag must be set to
+  false for that <span>browsing context</span>.</p>
+
+
   <p>An <code>iframe</code> element never has <span>fallback
   content</span>, as it will always create a nested <span>browsing
   context</span>, regardless of whether the specified initial contents
@@ -29678,6 +29759,16 @@
 
   <ol>
 
+   <li id="seamlessLinks"><p>If the <span>source browsing
+   context</span> is the same as the <span>browsing context</span>
+   being navigated, and this browsing context has its <span>seamless
+   browsing context</span> flag set, then find the nearest
+   <span>ancestor browsing context</span> that does not have its
+   <span>seamless browsing context</span> flag set, and continue these
+   steps as if <em>that</em> <span>browsing context</span> was the one
+   that was going to be <span title="navigate">navigated</span>
+   instead.</p></li>
+
    <li><p>Cancel any preexisting attempt to navigate the browsing
    context.</p></li>
 




More information about the Commit-Watchers mailing list