Bug 122784 - Missing content when compositing solid color combined with "paints into ancestor" layers
Summary: Missing content when compositing solid color combined with "paints into ances...
Status: RESOLVED DUPLICATE of bug 133065
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
Keywords: InRadar
Depends on:
Reported: 2013-10-14 15:50 PDT by Simon Fraser (smfr)
Modified: 2014-12-11 15:32 PST (History)
4 users (show)

See Also:

Testcase (1.04 KB, text/html)
2013-10-14 15:50 PDT, Simon Fraser (smfr)
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2013-10-14 15:50:21 PDT
Created attachment 214199 [details]

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
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 ***