Optimize RenderTable::colToEffCol() for tables without colspans
authorlvidacs.u-szeged@partner.samsung.com <lvidacs.u-szeged@partner.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Mar 2014 23:16:28 +0000 (23:16 +0000)
committerlvidacs.u-szeged@partner.samsung.com <lvidacs.u-szeged@partner.samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Mar 2014 23:16:28 +0000 (23:16 +0000)
commitf270583f37343e0fcb55ea5b2d7c3b748c8ce686
tree88f7374647cbe2f9d563225a6945641e9f06f4e0
parentf8fb9be1245828a5ab815eb4bd2ef2e831275f35
Optimize RenderTable::colToEffCol() for tables without colspans
https://bugs.webkit.org/show_bug.cgi?id=129298

Reviewed by Simon Fraser.

Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
when there is no colspan or colspan does not exceed the width of table.
Blink merge https://codereview.chromium.org/154243002 by rhogan

PerformanceTests:

* Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html: Added.
* Layout/large-table-with-collapsed-borders-and-colspans.html: Added.
* Layout/large-table-with-collapsed-borders-and-no-colspans.html: Added.
* Layout/resources/large-table-with-collapsed-borders.css: Added.
* Layout/resources/large-table-with-collapsed-borders.js: Added.

Source/WebCore:

* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::appendColumn):
(WebCore::RenderTable::recalcSections):
* rendering/RenderTable.h:
(WebCore::RenderTable::colToEffCol):
(WebCore::RenderTable::effColToCol):
(WebCore::RenderTable::hasCellColspanThatDeterminesTableWidth):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@166016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
PerformanceTests/ChangeLog
PerformanceTests/Layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html [new file with mode: 0644]
PerformanceTests/Layout/large-table-with-collapsed-borders-and-colspans.html [new file with mode: 0644]
PerformanceTests/Layout/large-table-with-collapsed-borders-and-no-colspans.html [new file with mode: 0644]
PerformanceTests/Layout/resources/large-table-with-collapsed-borders.css [new file with mode: 0644]
PerformanceTests/Layout/resources/large-table-with-collapsed-borders.js [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderTable.cpp
Source/WebCore/rendering/RenderTable.h