html5/spec Overview.html,1.1872,1.1873

Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv14538

Modified Files:
	Overview.html 
Log Message:
Allow <frameset> to override the 'in body' mode in certain cases for compatibility with IE and pages that rely on IE's behaviour. (whatwg r2703)

Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1872
retrieving revision 1.1873
diff -u -d -r1.1872 -r1.1873
--- Overview.html	24 Jan 2009 00:32:43 -0000	1.1872
+++ Overview.html	24 Jan 2009 01:52:27 -0000	1.1873
@@ -863,7 +863,7 @@
        <li><a href=#the-stack-of-open-elements><span class=secno>8.2.3.2 </span>The stack of open elements</a></li>
        <li><a href=#the-list-of-active-formatting-elements><span class=secno>8.2.3.3 </span>The list of active formatting elements</a></li>
        <li><a href=#the-element-pointers><span class=secno>8.2.3.4 </span>The element pointers</a></li>
-       <li><a href=#the-scripting-state><span class=secno>8.2.3.5 </span>The scripting state</a></ol></li>
+       <li><a href=#other-parsing-state-flags><span class=secno>8.2.3.5 </span>Other parsing state flags</a></ol></li>
      <li><a href=#tokenization><span class=secno>8.2.4 </span>Tokenization</a>
       <ol>
        <li><a href=#data-state><span class=secno>8.2.4.1 </span>Data state</a></li>
@@ -38698,9 +38698,10 @@
   points to the last <code><a href=#the-form-element>form</a></code> element that was opened and
   whose end tag has not yet been seen. It is used to make form
   controls associate with forms in the face of dramatically bad
-  markup, for historical reasons.<h5 id=the-scripting-state><span class=secno>8.2.3.5 </span>The scripting state</h5><p>The <dfn id=scripting-flag>scripting flag</dfn> is set to "enabled" if the <a href=#concept-n-script title=concept-n-script>scripting was enabled</a> for the
+  markup, for historical reasons.<h5 id=other-parsing-state-flags><span class=secno>8.2.3.5 </span>Other parsing state flags</h5><p>The <dfn id=scripting-flag>scripting flag</dfn> is set to "enabled" if the <a href=#concept-n-script title=concept-n-script>scripting was enabled</a> for the
   <code>Document</code> with which the parser is associated when the
-  parser was created, and "disabled" otherwise.<h4 id=tokenization><span class=secno>8.2.4 </span><dfn>Tokenization</dfn></h4><p>Implementations must act as if they used the following state
+  parser was created, and "disabled" otherwise.<p>The <dfn id=frameset-ok-flag>frameset-ok flag</dfn> is set to "ok" when the parser is
+  created. It is set to "not ok" after certain tokens are seen.<h4 id=tokenization><span class=secno>8.2.4 </span><dfn>Tokenization</dfn></h4><p>Implementations must act as if they used the following state
   machine to tokenise HTML. The state machine must start in the
   <a href=#data-state>data state</a>. Most states consume a single character,
   which may have various side-effects, and either switches the state
@@ -40030,7 +40031,7 @@
   the <a href=#stack-of-open-elements>stack of open elements</a> in the <i><a href=#foster-parent-element>foster parent
   element</a></i>; otherwise, <var title="">node</var> must be
   <em>appended</em> to the <i><a href=#foster-parent-element>foster parent element</a></i>.<h5 id=the-initial-insertion-mode><span class=secno>8.2.5.4 </span>The "<dfn title="insertion mode: initial">initial</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#the-initial-insertion-mode title="insertion
-  mode: initial">initial</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: initial">initial</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -40198,7 +40199,7 @@
     data given in the comment token.</p>
    </dd>
 
-   <dt>A character token that is one of one of U+0009 CHARACTER
+   <dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -40255,7 +40256,7 @@
   <code>Document</code> object, e.g. by scripts; nothing in particular
   happens in such cases, content continues being appended to the nodes
   as described in the next section.<h5 id=the-before-head-insertion-mode><span class=secno>8.2.5.6 </span>The "<dfn title="insertion mode: before head">before head</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#the-before-head-insertion-mode title="insertion
-  mode: before head">before head</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: before head">before head</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -40322,7 +40323,7 @@
    </dd>
 
   </dl><h5 id=parsing-main-inhead><span class=secno>8.2.5.7 </span>The "<dfn title="insertion mode: in head">in head</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-inhead title="insertion
-  mode: in head">in head</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: in head">in head</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -40506,7 +40507,7 @@
 
    </dd>
 
-   <dt>A character token that is one of one of U+0009 CHARACTER
+   <dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dt>A comment token</dt>
@@ -40539,7 +40540,7 @@
    </dd>
 
   </dl><h5 id=the-after-head-insertion-mode><span class=secno>8.2.5.9 </span>The "<dfn title="insertion mode: after head">after head</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#the-after-head-insertion-mode title="insertion
-  mode: after head">after head</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: after head">after head</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -40628,6 +40629,11 @@
     <p><a href=#insert-a-character title="insert a character">Insert the token's
     character</a> into the <a href=#current-node>current node</a>.</p>
 
+    <p>If the token is not one of U+0009 CHARACTER TABULATION, U+000A
+    LINE FEED (LF), U+000C FORM FEED (FF), <!--U+000D CARRIAGE RETURN
+    (CR),--> or U+0020 SPACE, then set the <a href=#frameset-ok-flag>frameset-ok
+    flag</a> to "not ok".</p>
+
    </dd>
 
    <dt>A comment token</dt>
@@ -40676,6 +40682,35 @@
 
    </dd>
 
+   <dt>A start tag whose tag name is "frameset"</dt>
+   <dd>
+
+    <p><a href=#parse-error>Parse error</a>.</p>
+
+    <p>If the second element on the <a href=#stack-of-open-elements>stack of open
+    elements</a> is not a <code><a href=#the-body-element>body</a></code> element, or, if the
+    <a href=#stack-of-open-elements>stack of open elements</a> has only one node on it,
+    then ignore the token. (<a href=#fragment-case>fragment case</a>)</p>
+
+    <p>If the <a href=#frameset-ok-flag>frameset-ok flag</a> is set to "not ok", ignore
+    the token.</p>
+
+    <p>Otherwise, run the following steps:</p>
+
+    <ol><li><p>Remove the second element on the <a href=#stack-of-open-elements>stack of open
+     elements</a> from its parent node, if it has one.</li>
+
+     <li><p>Pop all the nodes from the bottom of the <a href=#stack-of-open-elements>stack of
+     open elements</a>, from the <a href=#current-node>current node</a> up to
+     the root <code><a href=#the-html-element>html</a></code> element.</p>
+
+     <li><p><a href=#insert-an-html-element>Insert an HTML element</a> for the
+     token.</li>
+
+     <li><p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-inframeset title="insertion mode: in frameset">in frameset</a>".</p>
+
+    </ol></dd>
+
    <dt>An end-of-file token</dt>
    <dd>
 
@@ -40790,6 +40825,8 @@
     one. (Newlines at the start of <code><a href=#the-pre-element>pre</a></code> blocks are
     ignored as an authoring convenience.)</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
    </dd>
 
    <!-- as normal, but interacts with the form element pointer -->
@@ -40819,7 +40856,9 @@
 
     <p>Run the following algorithm:</p>
 
-    <ol><li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+    <ol><li><p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</li>
+
+     <li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
      node</a> (the bottommost node of the stack).</li>
 
      <li><p>If <var title="">node</var> is an <code><a href=#the-li-element>li</a></code> element,
@@ -40865,7 +40904,9 @@
 
     <p>Run the following algorithm:</p>
 
-    <ol><li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
+    <ol><li><p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</li>
+
+     <li><p>Initialize <var title="">node</var> to be the <a href=#current-node>current
      node</a> (the bottommost node of the stack).</li>
 
      <li><p>If <var title="">node</var> is a <code><a href=#the-dd-element>dd</a></code> or
@@ -41310,6 +41351,8 @@
     <p>Insert a marker at the end of the <a href=#list-of-active-formatting-elements>list of active
     formatting elements</a>.</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
    </dd>
 
    <dt>A start tag token whose tag name is one of: "applet",
@@ -41324,6 +41367,8 @@
     <p>Insert a marker at the end of the <a href=#list-of-active-formatting-elements>list of active
     formatting elements</a>.</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
    </dd>
 
    <dt>An end tag token whose tag name is one of: "applet", "button",
@@ -41351,16 +41396,6 @@
 
     </ol></dd>
 
-   <dt>A start tag whose tag name is "xmp"</dt>
-   <dd>
-
-    <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
-    any.</p>
-
-    <p>Follow the <a href=#generic-cdata-element-parsing-algorithm>generic CDATA element parsing algorithm</a>.</p>
-
-   </dd>
-
    <dt>A start tag whose tag name is "table"</dt>
    <dd>
 
@@ -41371,6 +41406,8 @@
 
     <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
     <p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-intable title="insertion mode: in table">in table</a>".</p>
 
    </dd>
@@ -41389,6 +41426,10 @@
     <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
     token's <i>self-closing flag</i></a>, if it is set.</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p> <!--
+    shouldn't really do it for <area>, <basefont>, <bgsound>, and
+    <spacer> -->
+
    </dd>
 
    <dt>A start tag whose tag name is one of: "param", "source"</dt>
@@ -41418,6 +41459,8 @@
     <p><a href=#acknowledge-self-closing-flag title="acknowledge self-closing flag">Acknowledge the
     token's <i>self-closing flag</i></a>, if it is set.</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
    </dd>
 
    <dt>A start tag whose tag name is "image"</dt>
@@ -41519,15 +41562,41 @@
      <li><p>Let the <a href=#original-insertion-mode>original insertion mode</a> be the
      current <a href=#insertion-mode>insertion mode</a>.</p>
 
+     <li><p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not
+     ok".</li>
+
      <li><p>Switch the <a href=#insertion-mode>insertion mode</a> to "<a href=#parsing-main-incdata title="insertion mode: in CDATA/RCDATA">in
      CDATA/RCDATA</a>".</li>
 
     </ol></dd>
 
-   <dt>A start tag whose tag name is one of: "iframe", "noembed"</dt>
+   <dt>A start tag whose tag name is "xmp"</dt>
+   <dd>
+
+    <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if
+    any.</p>
+
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+    <p>Follow the <a href=#generic-cdata-element-parsing-algorithm>generic CDATA element parsing algorithm</a>.</p>
+
+   </dd>
+
+   <dt>A start tag whose tag name is "iframe"</dt>
+   <dd>
+
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
+    <p>Follow the <a href=#generic-cdata-element-parsing-algorithm>generic CDATA element parsing algorithm</a>.</p>
+
+   </dd>
+
+   <dt>A start tag whose tag name is "noembed"</dt>
    <dt>A start tag whose tag name is "noscript", if the <a href=#scripting-flag>scripting flag</a> is enabled</dt>
    <dd>
+
     <p>Follow the <a href=#generic-cdata-element-parsing-algorithm>generic CDATA element parsing algorithm</a>.</p>
+
    </dd>
 
    <dt>A start tag whose tag name is "select"</dt>
@@ -41538,6 +41607,8 @@
 
     <p><a href=#insert-an-html-element>Insert an HTML element</a> for the token.</p>
 
+    <p>Set the <a href=#frameset-ok-flag>frameset-ok flag</a> to "not ok".</p>
+
     <p>If the <a href=#insertion-mode>insertion mode</a> is one of <a href=#parsing-main-intable title="insertion mode: in table">in table</a>", "<a href=#parsing-main-incaption title="insertion mode: in caption">in caption</a>", "<a href=#parsing-main-incolgroup title="insertion mode: in column group">in column group</a>",
     "<a href=#parsing-main-intbody title="insertion mode: in table body">in table
     body</a>", "<a href=#parsing-main-intr title="insertion mode: in row">in
@@ -41662,8 +41733,8 @@
 -->
 
    <dt>A start <!--or end--> tag whose tag name is one of: "caption",
-   "col", "colgroup", "frame", "frameset", "head", "tbody", "td",
-   "tfoot", "th", "thead", "tr"</dt>
+   "col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th",
+   "thead", "tr"</dt>
    <!--<dt>An end tag whose tag name is one of: "area", "base",
    "basefont", "bgsound", "command", "embed", "eventsource", "hr",
    "iframe", "image", "img", "input", "isindex", "link", "meta",
@@ -41845,7 +41916,7 @@
    </dd>
 
   </dl><h5 id=parsing-main-intable><span class=secno>8.2.5.12 </span>The "<dfn title="insertion mode: in table">in table</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-intable title="insertion
-  mode: in table">in table</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: in table">in table</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -42076,7 +42147,7 @@
    </dd>
 
   </dl><h5 id=parsing-main-incolgroup><span class=secno>8.2.5.14 </span>The "<dfn title="insertion mode: in column group">in column group</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-incolgroup title="insertion
-  mode: in column group">in column group</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: in column group">in column group</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -42729,7 +42800,7 @@
    </dd>
 
   </dl><h5 id=parsing-main-afterbody><span class=secno>8.2.5.21 </span>The "<dfn title="insertion mode: after body">after body</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-afterbody title="insertion
-  mode: after body">after body</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: after body">after body</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -42783,7 +42854,7 @@
    </dd>
 
   </dl><h5 id=parsing-main-inframeset><span class=secno>8.2.5.22 </span>The "<dfn title="insertion mode: in frameset">in frameset</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-inframeset title="insertion
-  mode: in frameset">in frameset</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: in frameset">in frameset</a>", tokens must be handled as follows:<dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -42872,7 +42943,7 @@
    </dd>
 
   </dl><h5 id=parsing-main-afterframeset><span class=secno>8.2.5.23 </span>The "<dfn title="insertion mode: after frameset">after frameset</dfn>" insertion mode</h5><p>When the <a href=#insertion-mode>insertion mode</a> is "<a href=#parsing-main-afterframeset title="insertion
-  mode: after frameset">after frameset</a>", tokens must be handled as follows:</p><!-- due to rules in the "in frameset" mode, this can't be entered in the fragment case --><dl class=switch><dt>A character token that is one of one of U+0009 CHARACTER
+  mode: after frameset">after frameset</a>", tokens must be handled as follows:</p><!-- due to rules in the "in frameset" mode, this can't be entered in the fragment case --><dl class=switch><dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dd>
@@ -42932,7 +43003,7 @@
    </dd>
 
    <dt>A DOCTYPE token</dt>
-   <dt>A character token that is one of one of U+0009 CHARACTER
+   <dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dt>A start tag whose tag name is "html"</dt>
@@ -42962,7 +43033,7 @@
    </dd>
 
    <dt>A DOCTYPE token</dt>
-   <dt>A character token that is one of one of U+0009 CHARACTER
+   <dt>A character token that is one of U+0009 CHARACTER
    TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
    <!--U+000D CARRIAGE RETURN (CR),--> or U+0020 SPACE</dt>
    <dt>A start tag whose tag name is "html"</dt>

Received on Saturday, 24 January 2009 01:52:38 UTC