- From: <bugzilla@jessica.w3.org>
- Date: Mon, 09 Aug 2010 23:25:09 +0000
- To: public-html-bugzilla@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10338
Summary: End tag of </td> or </th> in "in cell" mode wrongly
asserts current node will be "tr"
Product: HTML WG
Version: unspecified
Platform: PC
OS/Version: All
Status: NEW
Severity: critical
Priority: P1
Component: HTML5 spec (editor: Ian Hickson)
AssignedTo: ian@hixie.ch
ReportedBy: eric@webkit.org
QAContact: public-html-bugzilla@w3.org
CC: mike@w3.org, public-html@w3.org, w3c@adambarth.com
End tag of </td> or </th> in "in cell" mode wrongly asserts current node will
be "tr"
http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#parsing-main-intd
The passage:
Switch the insertion mode to "in row". (The current node will be a tr element
at this point.)
The current node will not necessarily be a tr in the fragment case.
WebKit had this as an ASSERT in our TreeBuilder:
http://trac.webkit.org/browser/trunk/WebCore/html/HTMLTreeBuilder.cpp?rev=65006#L2000
But that ASSERT is false in the case of:
<table><tr></tr></table>
<script>
rows = document.getElementsByTagName("tr");
for (i = 0; i < rows.length; ++i)
rows[i].innerHTML += "<td>foo</td>";
</script>
Assuming I"m understanding the fragment case and how innerHTML is supposed to
work correctly.
I recommend changing "(The current node will be a tr element at this point.)"
to "(The current node will be a tr element at this point, except in the
fragment case.)"
In the fragment case the "context element" must be a tr for this to be allowed
(I think).
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Monday, 9 August 2010 23:25:11 UTC