Bug 122784

Summary: Missing content when compositing solid color combined with "paints into ancestor" layers
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: dino, noam, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Testcase none

Description Simon Fraser (smfr) 2013-10-14 15:50:21 PDT
Created attachment 214199 [details]
Testcase

The testcase shows a bug (missing background image on the middle div) which I think happens because when we determine that an element can use the solid color optimization, we omit to check to see if any descendants render into it.
Comment 1 Simon Fraser (smfr) 2013-10-14 15:50:34 PDT
<rdar://problem/15224559>
Comment 2 Simon Fraser (smfr) 2013-10-14 16:25:35 PDT
A couple of things here:
1. I think this boolean logic in RenderLayerCompositor::requiresOwnBackingStore() is wrong:

    if (compositingAncestorLayer
        && (!compositingAncestorLayer->backing()->graphicsLayer()->drawsContent()
            || compositingAncestorLayer->backing()->paintsIntoWindow()
            || compositingAncestorLayer->backing()->paintsIntoCompositedAncestor()))
        return true;

but fixing that would prevent having nested "paintsIntoCompositedAncestor()" layers.

2. isSimpleContainerCompositingLayer() gives the wrong answer if descendant compositing layers are "paints into ancestor" layers.
Comment 3 Simon Fraser (smfr) 2014-12-11 15:32:13 PST
Fixed via bug 133065.

*** This bug has been marked as a duplicate of bug 133065 ***