[html5] r4803 - [giow] (1) Handle missing foreign content end tags and SVG </font> and </a> end [...]

whatwg at whatwg.org whatwg at whatwg.org
Wed Feb 24 18:10:03 PST 2010


Author: ianh
Date: 2010-02-24 18:10:01 -0800 (Wed, 24 Feb 2010)
New Revision: 4803

Modified:
   complete.html
   index
   source
Log:
[giow] (1) Handle missing foreign content end tags and SVG </font> and </a> end tags in foreign content.
Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=8767

Modified: complete.html
===================================================================
--- complete.html	2010-02-25 01:54:32 UTC (rev 4802)
+++ complete.html	2010-02-25 02:10:01 UTC (rev 4803)
@@ -77908,6 +77908,44 @@
 
    </dd>
 
+   <dt>An end tag, if the <a href=#current-node>current node</a> is not an element in the <a href=#html-namespace-0>HTML namespace</a>.</dt>
+
+   <dd>
+
+    <p>Run these steps:</p>
+
+    <ol><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 not an element with the
+     same tag name as the token, then this is a <a href=#parse-error>parse
+     error</a>.</li>
+
+     <li><p><i>Loop</i>: If <var title="">node</var> has the same tag
+     name as the token, pop elements from the <a href=#stack-of-open-elements>stack of
+     open elements</a> until <var title="">node</var> has been
+     popped from the stack, and then abort these steps.</li>
+
+     <li><p>Set <var title="">node</var> to the previous entry in the
+     <a href=#stack-of-open-elements>stack of open elements</a>.</li>
+
+     <li>
+
+      <p>If <var title="">node</var> is an element in the <a href=#html-namespace-0>HTML
+      namespace</a>, process the token <a href=#using-the-rules-for>using the rules
+      for</a> the <a href=#secondary-insertion-mode>secondary insertion mode</a>. If, after
+      doing so, the <a href=#insertion-mode>insertion mode</a> is still "<a href=#parsing-main-inforeign title="insertion mode: in foreign content">in foreign
+      content</a>", but there is no element <a href=#has-an-element-in-scope title="has an
+      element in scope">in scope</a> that has a namespace other
+      than the <a href=#html-namespace-0>HTML namespace</a>, switch the <a href=#insertion-mode>insertion
+      mode</a> to the <a href=#secondary-insertion-mode>secondary insertion mode</a>.</p>
+
+     </li>
+
+     <li><p>Return to the step labeled <i>loop</i>.</li>
+
+    </ol></dd>
+
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href=#current-node>current node</a> is an <code title="">mi</code> element in the <a href=#mathml-namespace>MathML namespace</a>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href=#current-node>current node</a> is an <code title="">mo</code> element in the <a href=#mathml-namespace>MathML namespace</a>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href=#current-node>current node</a> is an <code title="">mn</code> element in the <a href=#mathml-namespace>MathML namespace</a>.</dt>
@@ -77918,7 +77956,7 @@
    <dt>A start tag, if the <a href=#current-node>current node</a> is a <code title="">desc</code> element in the <a href=#svg-namespace>SVG namespace</a>.</dt>
    <dt>A start tag, if the <a href=#current-node>current node</a> is a <code title="">title</code> element in the <a href=#svg-namespace>SVG namespace</a>.</dt>
    <dt>A start tag, if the <a href=#current-node>current node</a> is an element in the <a href=#html-namespace-0>HTML namespace</a>.</dt>
-   <dt>An end tag</dt>
+   <dt>Any other end tag</dt>
    <dd>
 
     <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the

Modified: index
===================================================================
--- index	2010-02-25 01:54:32 UTC (rev 4802)
+++ index	2010-02-25 02:10:01 UTC (rev 4803)
@@ -72212,6 +72212,44 @@
 
    </dd>
 
+   <dt>An end tag, if the <a href=#current-node>current node</a> is not an element in the <a href=#html-namespace-0>HTML namespace</a>.</dt>
+
+   <dd>
+
+    <p>Run these steps:</p>
+
+    <ol><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 not an element with the
+     same tag name as the token, then this is a <a href=#parse-error>parse
+     error</a>.</li>
+
+     <li><p><i>Loop</i>: If <var title="">node</var> has the same tag
+     name as the token, pop elements from the <a href=#stack-of-open-elements>stack of
+     open elements</a> until <var title="">node</var> has been
+     popped from the stack, and then abort these steps.</li>
+
+     <li><p>Set <var title="">node</var> to the previous entry in the
+     <a href=#stack-of-open-elements>stack of open elements</a>.</li>
+
+     <li>
+
+      <p>If <var title="">node</var> is an element in the <a href=#html-namespace-0>HTML
+      namespace</a>, process the token <a href=#using-the-rules-for>using the rules
+      for</a> the <a href=#secondary-insertion-mode>secondary insertion mode</a>. If, after
+      doing so, the <a href=#insertion-mode>insertion mode</a> is still "<a href=#parsing-main-inforeign title="insertion mode: in foreign content">in foreign
+      content</a>", but there is no element <a href=#has-an-element-in-scope title="has an
+      element in scope">in scope</a> that has a namespace other
+      than the <a href=#html-namespace-0>HTML namespace</a>, switch the <a href=#insertion-mode>insertion
+      mode</a> to the <a href=#secondary-insertion-mode>secondary insertion mode</a>.</p>
+
+     </li>
+
+     <li><p>Return to the step labeled <i>loop</i>.</li>
+
+    </ol></dd>
+
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href=#current-node>current node</a> is an <code title="">mi</code> element in the <a href=#mathml-namespace>MathML namespace</a>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href=#current-node>current node</a> is an <code title="">mo</code> element in the <a href=#mathml-namespace>MathML namespace</a>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href=#current-node>current node</a> is an <code title="">mn</code> element in the <a href=#mathml-namespace>MathML namespace</a>.</dt>
@@ -72222,7 +72260,7 @@
    <dt>A start tag, if the <a href=#current-node>current node</a> is a <code title="">desc</code> element in the <a href=#svg-namespace>SVG namespace</a>.</dt>
    <dt>A start tag, if the <a href=#current-node>current node</a> is a <code title="">title</code> element in the <a href=#svg-namespace>SVG namespace</a>.</dt>
    <dt>A start tag, if the <a href=#current-node>current node</a> is an element in the <a href=#html-namespace-0>HTML namespace</a>.</dt>
-   <dt>An end tag</dt>
+   <dt>Any other end tag</dt>
    <dd>
 
     <p>Process the token <a href=#using-the-rules-for>using the rules for</a> the

Modified: source
===================================================================
--- source	2010-02-25 01:54:32 UTC (rev 4802)
+++ source	2010-02-25 02:10:01 UTC (rev 4803)
@@ -88844,6 +88844,49 @@
 
    </dd>
 
+   <dt>An end tag, if the <span>current node</span> is not an element in the <span>HTML namespace</span>.</dt>
+
+   <dd>
+
+    <p>Run these steps:</p>
+
+    <ol>
+
+     <li><p>Initialize <var title="">node</var> to be the <span>current
+     node</span> (the bottommost node of the stack).</p></li>
+
+     <li><p>If <var title="">node</var> is not an element with the
+     same tag name as the token, then this is a <span>parse
+     error</span>.</p></li>
+
+     <li><p><i>Loop</i>: If <var title="">node</var> has the same tag
+     name as the token, pop elements from the <span>stack of
+     open elements</span> until <var title="">node</var> has been
+     popped from the stack, and then abort these steps.</p></li>
+
+     <li><p>Set <var title="">node</var> to the previous entry in the
+     <span>stack of open elements</span>.</p></li>
+
+     <li>
+
+      <p>If <var title="">node</var> is an element in the <span>HTML
+      namespace</span>, process the token <span>using the rules
+      for</span> the <span>secondary insertion mode</span>. If, after
+      doing so, the <span>insertion mode</span> is still "<span
+      title="insertion mode: in foreign content">in foreign
+      content</span>", but there is no element <span title="has an
+      element in scope">in scope</span> that has a namespace other
+      than the <span>HTML namespace</span>, switch the <span>insertion
+      mode</span> to the <span>secondary insertion mode</span>.</p>
+
+     </li>
+
+     <li><p>Return to the step labeled <i>loop</i>.</p></li>
+
+    </ol>    
+
+   </dd>
+
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mi</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mo</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mn</code> element in the <span>MathML namespace</span>.</dt>
@@ -88854,7 +88897,7 @@
    <dt>A start tag, if the <span>current node</span> is a <code title="">desc</code> element in the <span>SVG namespace</span>.</dt>
    <dt>A start tag, if the <span>current node</span> is a <code title="">title</code> element in the <span>SVG namespace</span>.</dt>
    <dt>A start tag, if the <span>current node</span> is an element in the <span>HTML namespace</span>.</dt>
-   <dt>An end tag</dt>
+   <dt>Any other end tag</dt>
    <dd>
 
     <p>Process the token <span>using the rules for</span> the




More information about the Commit-Watchers mailing list