2010-08-17 Fady Samuel <fsamuel@chromium.org>
authorjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Aug 2010 20:57:15 +0000 (20:57 +0000)
committerjamesr@google.com <jamesr@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Aug 2010 20:57:15 +0000 (20:57 +0000)
commit564b0a75d3a5d1a19a213cf17d895c7347f56a14
treeb7e779d41ed98550bc94c49fada64b1a0c2b62b3
parent580eb7b69a3144ac2c9d78992f9061d956cdd4a7
2010-08-17  Fady Samuel  <fsamuel@chromium.org>

        Reviewed by David Hyatt.

        Updated table cell hit testing and painting to use binary search instead of linear scan.

        Improved Table Hit Testing and Painting Performance
        https://bugs.webkit.org/show_bug.cgi?id=43933

        Tests: fast/table/simple_paint.html
               tables/hittesting/filltable-emptycells.html
               tables/hittesting/filltable-levels.html
               tables/hittesting/filltable-outline.html
               tables/hittesting/filltable-rtl.html
               tables/hittesting/filltable-stress.html

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::paintObject): Dirty rect determined using binary search.
        (WebCore::RenderTableSection::nodeAtPoint): Cell hit determined using binary search
2010-08-17  Fady Samuel  <fsamuel@chromium.org>

        Reviewed by David Hyatt.

        Updated table cell hit testing and painting to use binary search instead of a linear scan.

        Layout tests check that hit testing of empty cells, overlapping cells,
        cells with outlines, right-to-left tables, and large
        tables all work as expected.

        Improved Table Hit Testing and Painting Performance
        https://bugs.webkit.org/show_bug.cgi?id=43933

        * fast/table/simple_paint.html: Added.
        * platform/chromium-linux/fast/table/simple_paint-expected.checksum: Added.
        * platform/chromium-linux/fast/table/simple_paint-expected.png: Added.
        * platform/chromium-linux/fast/table/simple_paint-expected.txt: Added.
        * platform/chromium-linux/tables/hittesting/filltable-emptycells-expected.txt: Added.
        * platform/chromium-linux/tables/hittesting/filltable-levels-expected.txt: Added.
        * platform/chromium-linux/tables/hittesting/filltable-outline-expected.txt: Added.
        * platform/chromium-linux/tables/hittesting/filltable-rtl-expected.txt: Added.
        * platform/chromium-linux/tables/hittesting/filltable-stress-expected.txt: Added.
        * platform/chromium/test_expectations.txt:
        * platform/gtk/tables/hittesting/filltable-emptycells-expected.txt: Added.
        * platform/gtk/tables/hittesting/filltable-levels-expected.txt: Added.
        * platform/gtk/tables/hittesting/filltable-outline-expected.txt: Added.
        * platform/gtk/tables/hittesting/filltable-rtl-expected.txt: Added.
        * platform/gtk/tables/hittesting/filltable-stress-expected.txt: Added.
        * tables/hittesting/filltable-emptycells.html: Added.
        * tables/hittesting/filltable-levels.html: Added.
        * tables/hittesting/filltable-outline.html: Added.
        * tables/hittesting/filltable-rtl.html: Added.
        * tables/hittesting/filltable-stress.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@65539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
26 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/table/simple_paint.html [new file with mode: 0644]
LayoutTests/platform/chromium-linux/fast/table/simple_paint-expected.checksum [new file with mode: 0644]
LayoutTests/platform/chromium-linux/fast/table/simple_paint-expected.png [new file with mode: 0644]
LayoutTests/platform/chromium-linux/fast/table/simple_paint-expected.txt [new file with mode: 0644]
LayoutTests/platform/chromium-linux/tables/hittesting/filltable-emptycells-expected.txt [new file with mode: 0644]
LayoutTests/platform/chromium-linux/tables/hittesting/filltable-levels-expected.txt [new file with mode: 0644]
LayoutTests/platform/chromium-linux/tables/hittesting/filltable-outline-expected.txt [new file with mode: 0644]
LayoutTests/platform/chromium-linux/tables/hittesting/filltable-rtl-expected.txt [new file with mode: 0644]
LayoutTests/platform/chromium-linux/tables/hittesting/filltable-stress-expected.txt [new file with mode: 0644]
LayoutTests/platform/chromium/test_expectations.txt
LayoutTests/platform/gtk/fast/table/simple_paint-expected.checksum [new file with mode: 0644]
LayoutTests/platform/gtk/fast/table/simple_paint-expected.png [new file with mode: 0644]
LayoutTests/platform/gtk/fast/table/simple_paint-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/tables/hittesting/filltable-emptycells-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/tables/hittesting/filltable-levels-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/tables/hittesting/filltable-outline-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/tables/hittesting/filltable-rtl-expected.txt [new file with mode: 0644]
LayoutTests/platform/gtk/tables/hittesting/filltable-stress-expected.txt [new file with mode: 0644]
LayoutTests/tables/hittesting/filltable-emptycells.html [new file with mode: 0644]
LayoutTests/tables/hittesting/filltable-levels.html [new file with mode: 0644]
LayoutTests/tables/hittesting/filltable-outline.html [new file with mode: 0644]
LayoutTests/tables/hittesting/filltable-rtl.html [new file with mode: 0644]
LayoutTests/tables/hittesting/filltable-stress.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderTableSection.cpp