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.
Created attachment 138016 [details]
James/Vangelis: Can I trust the Chromium EWS to tell me if this broke compositing for position:fixed?
(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 on attachment 138016 [details]