Bug 90633

Summary: Start off with overlap testing enabled when recursing into a stacking context layer
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: bogdan.brinza, dino, enne, jamesr, jchaffraix, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Simon Fraser (smfr)
Reported 2012-07-05 14:26:16 PDT
In RenderLayerCompositor::computeCompositingRequirements(), childState inherits the overlap testing state from the ancestor state (the logic being that if overlap testing is off, we need to keep it off when recursing into descendants). However, I think we can turn overlap testing on for an overflow:hidden layer that is a stacking context.
Attachments
Simon Fraser (smfr)
Comment 1 2012-07-06 10:35:50 PDT
I don't think the current logic is correct. First, I think we can enable overlap testing when descending into a compositing subtree in more cases. Secondly, I think here: // We're done processing an element that clips. The container can keep testing overlap. compositingState.m_testingOverlap = true; we shouldn't be unconditionally re-enabling overlap testing; there may have been a 3d or animating layer in the context of that ancestor state. Another way to approach this might be to "taint" the Regions in the overlap map when they contain a 3d or animating element; that tainting would propagate when regions are unioned.
Note You need to log in before you can comment on or make changes to this bug.