WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
16659
Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
https://bugs.webkit.org/show_bug.cgi?id=16659
Summary
Acid3 expects HTMLTableElement.rows to include a <tr> element that is an imme...
Eric Seidel (no email)
Reported
2007-12-28 22:19:32 PST
Acid3 expects table.appendChild(document.createElement('tr')) to increment row count I had expected this to work as well... but maybe I'm missing something. I was debugging this in Drosera and checking "table.rows.length" after each statement. "table.appendChild(rows[1]);" seemed to fail to cause the row count to increment, which is likely why table.rows.length == 5 instead of 6, and thus the test failed. function () { // test 66: test the ordering and creation of rows var table = document.createElement('table'); var rows = [ document.createElement('tr'), // 0: ends up first child of the tfoot document.createElement('tr'), // 1: goes at the end of the table document.createElement('tr'), // 2: becomes second child of thead document.createElement('tr'), // 3: becomes third child of the thead document.createElement('tr'), // 4: not in the table table.insertRow(0), // 5: not in the table table.createTFoot().insertRow(0) // 6: ends up second in the tfoot ]; rows[6].parentNode.appendChild(rows[0]); table.appendChild(rows[1]); table.insertBefore(document.createElement('thead'), table.firstChild); table.firstChild.appendChild(rows[2]); rows[2].parentNode.appendChild(rows[3]); rows[4].appendChild(rows[5].parentNode); table.insertRow(0); table.tFoot.appendChild(rows[6]); if (table.rows.length == 6 && table.getElementsByTagName('tr').length == 6 && table.childNodes.length == 3 && table.childNodes[0] == table.tHead && table.getElementsByTagName('tr')[0] == table.tHead.childNodes[0] && table.getElementsByTagName('tr')[1] == table.tHead.childNodes[1] && table.getElementsByTagName('tr')[1] == rows[2] && table.getElementsByTagName('tr')[2] == table.tHead.childNodes[2] && table.getElementsByTagName('tr')[2] == rows[3] && table.childNodes[1] == table.tFoot && table.getElementsByTagName('tr')[3] == table.tFoot.childNodes[0] && table.getElementsByTagName('tr')[3] == rows[0] && table.getElementsByTagName('tr')[4] == table.tFoot.childNodes[1] && table.getElementsByTagName('tr')[4] == rows[6] && table.getElementsByTagName('tr')[5] == table.childNodes[2] && table.getElementsByTagName('tr')[5] == rows[1] && table.tBodies.length == 0) return 5; },
Attachments
Add attachment
proposed patch, testcase, etc.
Darin Adler
Comment 1
2007-12-31 17:14:03 PST
I just worked on a bug where I encountered this. The changeset was <
http://trac.webkit.org/projects/webkit/changeset/28327
>. Rows that are not inside any table section are intentionally not included in the rows collection to match IE. The only rows that show up in that collection are rows that are inside a table section that in turn is inside the table. There's definitely web content that relies on this. On the other hand, rows outside table sections do show up visually and render as table rows. Does HTML 5 ask for different behavior? If so, then we might need to fix HTML 5. Someone needs to talk this one over with Hixie.
Darin Adler
Comment 2
2007-12-31 17:15:22 PST
For what it's worth, the definition of what does and does not appear in HTMLTableElement.rows in WebKit is in HTMLCollection.cpp -- look at the "case TableRows" parts of the code.
Darin Adler
Comment 3
2008-01-01 21:58:54 PST
I've got a fix for this. Hixie talked me into doing this in a way that's different from other browsers, but that matches HTML 5.
David Kilzer (:ddkilzer)
Comment 4
2008-01-02 07:40:57 PST
(In reply to
comment #3
)
> I've got a fix for this. Hixie talked me into doing this in a way that's > different from other browsers, but that matches HTML 5.
See
Bug 16657
.
Darin Adler
Comment 5
2008-01-02 17:26:24 PST
r29101
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug