Bug 84391

Summary: Set m_compositingDependsOnGeometry to false if possible
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: enne, simon.fraser, vangelis
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch jamesr: review+

Description Simon Fraser (smfr) 2012-04-19 15:34:17 PDT
RenderLayerCompositor sets the m_compositingDependsOnGeometry flag if it needs to wait until after layout is done before making compositing decisions. This is used for iframes and plugins.

m_compositingNeedsUpdate was added for fixed position, but I think plays a similar role.

Also, m_compositingDependsOnGeometry is never set to 'false' after being set, so we end up doing expensive computeCompositingRequirements() checks every time.
Comment 1 Simon Fraser (smfr) 2012-04-19 17:59:46 PDT
Created attachment 138016 [details]
Patch
Comment 2 Simon Fraser (smfr) 2012-04-19 18:00:33 PDT
James/Vangelis: Can I trust the Chromium EWS to tell me if this broke compositing for position:fixed?
Comment 3 Vangelis Kokkevis 2012-04-20 12:58:35 PDT
(In reply to comment #2)
> James/Vangelis: Can I trust the Chromium EWS to tell me if this broke compositing for position:fixed?

I'm not sure if fixed-position-composited-switch.html (the test that was added to test fixedpos compositing) tests the case where we don't quite have enough information to decide on whether to composite or not and we have to repeat after layout.  In any case, the basic functionality seems to work fine after your change so we should be ok.
Comment 4 James Robinson 2012-04-20 14:45:30 PDT
Comment on attachment 138016 [details]
Patch

Awesome! R=me
Comment 5 Simon Fraser (smfr) 2012-04-20 14:55:01 PDT
http://trac.webkit.org/changeset/114785