Bug 134248

Summary: Only flush layers when the exposed rect actually changes
Product: WebKit Reporter: Antti Koivisto <koivisto>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch andersca: review+

Description Antti Koivisto 2014-06-24 06:46:07 PDT
Currently we flush unconditionally.
Comment 1 Antti Koivisto 2014-06-24 06:56:47 PDT
Created attachment 233698 [details]
patch
Comment 2 Simon Fraser (smfr) 2014-06-24 08:56:57 PDT
Comment on attachment 233698 [details]
patch

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

> Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:206
> +    auto rect = enclosingIntRect(exposedContentRect);
> +    if (frameView->exposedContentRect() == rect)
> +        return;

This makes assumptions about how FrameView does rounding. Maybe setExposedContentRect() should instead return a bool?
Comment 3 Antti Koivisto 2014-06-24 12:10:48 PDT
http://trac.webkit.org/changeset/170377
Comment 4 Antti Koivisto 2014-06-24 12:16:12 PDT
> This makes assumptions about how FrameView does rounding. Maybe setExposedContentRect() should instead return a bool?

There is currently no rounding (these were just switched to FloatRect) and it is generally reasonable to expect getters and setters to pair. The setter should probably be renamed if it starts rounding.