RESOLVED FIXED 110430
Non-painting fixed elements should not cause repaints on scroll
https://bugs.webkit.org/show_bug.cgi?id=110430
Summary Non-painting fixed elements should not cause repaints on scroll
Simon Fraser (smfr)
Reported 2013-02-20 22:04:01 PST
In bug 108112 I made empty position:fixed elements not composited. However, that now makes us repaint those (empty) layers on every scroll.
Attachments
Testcase (339 bytes, text/html)
2013-02-20 22:04 PST, Simon Fraser (smfr)
no flags
For EWS to generate layout test baseline (4.98 KB, patch)
2013-03-26 17:23 PDT, Xianzhu Wang
no flags
Patch (6.29 KB, patch)
2013-03-26 17:34 PDT, Xianzhu Wang
no flags
Add out-of-view case (9.00 KB, patch)
2013-03-27 11:50 PDT, Xianzhu Wang
no flags
New style repaint tests (8.01 KB, patch)
2013-03-27 13:20 PDT, Xianzhu Wang
no flags
For landing (8.15 KB, patch)
2013-03-28 08:25 PDT, Xianzhu Wang
no flags
Simon Fraser (smfr)
Comment 1 2013-02-20 22:04:18 PST
Created attachment 189460 [details] Testcase
Radar WebKit Bug Importer
Comment 2 2013-02-20 22:04:50 PST
Xianzhu Wang
Comment 3 2013-03-26 16:09:43 PDT
In bug 113238, sfmr wrote: Where is NotCompositedForNoVisibleContent actually consulted? I would expect to see a test for it in FrameView::scrollContentsFastPath(), but do not. wangxianzhu wrote: Seems that we need the same test in FrameView::scrollContentsFastPath() (as in ScrollingCoordinator)... Will work on this.
Xianzhu Wang
Comment 4 2013-03-26 17:23:09 PDT
Created attachment 195196 [details] For EWS to generate layout test baseline
Xianzhu Wang
Comment 5 2013-03-26 17:23:45 PDT
Comment on attachment 195196 [details] For EWS to generate layout test baseline Not for formal review yet.
Xianzhu Wang
Comment 6 2013-03-26 17:34:28 PDT
Xianzhu Wang
Comment 7 2013-03-27 10:21:14 PDT
Comment on attachment 195198 [details] Patch Passed most EWS. The expectations seem ok.
Simon Fraser (smfr)
Comment 8 2013-03-27 10:50:50 PDT
Comment on attachment 195198 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=195198&action=review > Source/WebCore/page/FrameView.cpp:1624 > + if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForNoVisibleContent) { > + // Don't invalidate for fixed layers that don't have visible contents. > + continue; I think we should also skip if the reason is NotCompositedForBoundsOutOfView.
Xianzhu Wang
Comment 9 2013-03-27 11:50:13 PDT
Created attachment 195371 [details] Add out-of-view case
Simon Fraser (smfr)
Comment 10 2013-03-27 11:53:14 PDT
Comment on attachment 195371 [details] Add out-of-view case View in context: https://bugs.webkit.org/attachment.cgi?id=195371&action=review Code changes look good, but the tests should be proper repaint tests. > LayoutTests/ChangeLog:13 > + * compositing/repaint/scroll-fixed-layer-no-content.html: Added. > + * compositing/repaint/scroll-fixed-layer-no-content-expected.png: Added. > + * compositing/repaint/scroll-fixed-layer-no-content-expected.txt: Added. > + * compositing/repaint/scroll-fixed-layer-out-of-view.html: Added. > + * compositing/repaint/scroll-fixed-layer-out-of-view-expected.png: Added. > + * compositing/repaint/scroll-fixed-layer-out-of-view-expected.txt: Added. These tests should be text tests that dump repaint rects.
Xianzhu Wang
Comment 11 2013-03-27 13:20:45 PDT
Created attachment 195385 [details] New style repaint tests
Simon Fraser (smfr)
Comment 12 2013-03-27 13:46:44 PDT
Comment on attachment 195385 [details] New style repaint tests View in context: https://bugs.webkit.org/attachment.cgi?id=195385&action=review > LayoutTests/compositing/repaint/scroll-fixed-layer-no-content-expected.txt:1 > + It would be nice if the output looked like: "There should be no repaints here."
Build Bot
Comment 13 2013-03-27 21:08:42 PDT
Comment on attachment 195385 [details] New style repaint tests Attachment 195385 [details] did not pass win-ews (win): Output: http://webkit-commit-queue.appspot.com/results/17230761
Xianzhu Wang
Comment 14 2013-03-28 08:25:48 PDT
Created attachment 195571 [details] For landing
WebKit Review Bot
Comment 15 2013-03-28 08:46:43 PDT
Comment on attachment 195571 [details] For landing Clearing flags on attachment: 195571 Committed r147120: <http://trac.webkit.org/changeset/147120>
WebKit Review Bot
Comment 16 2013-03-28 08:46:47 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.