[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