Bug 26662 - hover over table rows causes the whole table to repaint
Summary: hover over table rows causes the whole table to repaint
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Dave Hyatt
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-23 14:25 PDT by Ojan Vafai
Modified: 2014-11-14 08:53 PST (History)
15 users (show)

See Also:


Attachments
Test case (365 bytes, text/html)
2009-06-23 14:26 PDT, Ojan Vafai
no flags Details
Patch (2.82 KB, patch)
2014-11-05 15:36 PST, Dave Hyatt
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-02 for mac-mountainlion (506.86 KB, application/zip)
2014-11-05 17:13 PST, Build Bot
no flags Details
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 (654.63 KB, application/zip)
2014-11-05 17:56 PST, Build Bot
no flags Details
Patch (22.16 KB, patch)
2014-11-11 08:51 PST, Dave Hyatt
simon.fraser: review-
Details | Formatted Diff | Diff
Patch (6.53 KB, patch)
2014-11-12 09:26 PST, Dave Hyatt
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ojan Vafai 2009-06-23 14:25:31 PDT
Test case coming.
Comment 1 Ojan Vafai 2009-06-23 14:26:31 PDT
Created attachment 31737 [details]
Test case

Load this test case and hover over the rows with QuartzDebug. The whole table repaints.
Comment 2 Ojan Vafai 2009-06-23 14:28:18 PDT
dhyatt: IntRect RenderTableRow::clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer)
dhyatt: {
dhyatt:     // For now, just repaint the whole table.
dhyatt:     // FIXME: Find a better way to do this, e.g., need to repaint all the cells that we
dhyatt:     // might have propagated a background color into.
dhyatt: RenderTableRow.cpp
dhyatt: ojan: it's basically not that hard to fix... just spanning cell issue
dhyatt: ojan: can't just naively invalidate only the row
dhyatt: since the bgcolor of the row may be painted in a spanning cell
[SNIP]
dhyatt: ojan: it is lame
dhyatt: ojan: should be fixed
Comment 3 Dave Hyatt 2014-11-05 15:36:40 PST
Created attachment 241066 [details]
Patch

Patch just for EWS.
Comment 4 Build Bot 2014-11-05 17:13:43 PST
Created attachment 241072 [details]
Archive of layout-test-results from webkit-ews-02 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-02  Port: mac-mountainlion  Platform: Mac OS X 10.8.5
Comment 5 Build Bot 2014-11-05 17:56:07 PST
Created attachment 241077 [details]
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-09  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 6 Dave Hyatt 2014-11-11 08:51:36 PST
Created attachment 241353 [details]
Patch
Comment 7 Dean Jackson 2014-11-11 10:19:44 PST
Comment on attachment 241353 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=241353&action=review

> Source/WebCore/rendering/RenderTableCell.h:220
> +    virtual LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const override;

Did you mean to move this....

> Source/WebCore/rendering/RenderTableCell.h:-238
> -    virtual LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const override;

... from here?
Comment 8 Simon Fraser (smfr) 2014-11-11 10:22:02 PST
Comment on attachment 241353 [details]
Patch

Please make a test that dumps repaint rects instead.
Comment 9 Dave Hyatt 2014-11-12 09:26:17 PST
Created attachment 241429 [details]
Patch
Comment 10 Dave Hyatt 2014-11-14 08:53:09 PST
Fixed in r176124.