Bug 167213

Summary: Don't generate extra scrolling tiles for non-visible pages.
Product: WebKit Reporter: Andreas Kling <kling>
Component: Layout and RenderingAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, commit-queue, kling, koivisto, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar, Performance
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
simon.fraser: review-
Proposed patch none

Description Andreas Kling 2017-01-19 14:14:02 PST
We can save both CPU and memory by reducing the tile coverage area for non-visible pages.
Comment 1 Andreas Kling 2017-01-19 14:53:44 PST
Created attachment 299270 [details]
Patch
Comment 2 Radar WebKit Bug Importer 2017-01-19 14:54:24 PST
<rdar://problem/30105774>
Comment 3 Simon Fraser (smfr) 2017-01-19 15:15:20 PST
Comment on attachment 299270 [details]
Patch

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

Please add a test. You can dump the layer tree including tile caches (LAYER_TREE_INCLUDES_TILE_CACHES). I don't know how to make something not visible (if there isn't a way, add one!).

> Source/WebCore/page/FrameView.h:583
>      void show() final;
> +    void hide() final;

Names so bad (they sounds imperative).

> Source/WebCore/rendering/RenderLayerBacking.cpp:206
> +    if (!backing->owningLayer().renderer().page().isVisible())

Is it cheaper to get to Page via frameView?
Comment 4 Andreas Kling 2017-04-10 05:10:48 PDT
Created attachment 306684 [details]
Proposed patch
Comment 5 Antti Koivisto 2017-04-10 05:31:49 PDT
r=me
Comment 6 WebKit Commit Bot 2017-04-10 06:49:22 PDT
Comment on attachment 306684 [details]
Proposed patch

Clearing flags on attachment: 306684

Committed r215181: <http://trac.webkit.org/changeset/215181>
Comment 7 WebKit Commit Bot 2017-04-10 06:49:23 PDT
All reviewed patches have been landed.  Closing bug.