Bug 26662

Summary: hover over table rows causes the whole table to repaint
Product: WebKit Reporter: Ojan Vafai <ojan>
Component: Layout and RenderingAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal CC: aboxhall, apinheiro, cfleizach, commit-queue, dmazzoni, esprehn+autocc, glenn, hyatt, jchaffraix, jcraig, jdiggs, kondapallykalyan, mario, samuel_white, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Attachments:
Description Flags
Test case
none
Patch
none
Archive of layout-test-results from webkit-ews-02 for mac-mountainlion
none
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2
none
Patch
simon.fraser: review-
Patch simon.fraser: review+

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.