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 Rendering | Assignee: | 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)
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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Simon Fraser (smfr)
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.