RESOLVED FIXED76329
Unmatched transparency layer begin/end on a filtered element with an opacity ancestor
https://bugs.webkit.org/show_bug.cgi?id=76329
Summary Unmatched transparency layer begin/end on a filtered element with an opacity ...
Simon Fraser (smfr)
Reported 2012-01-13 19:10:47 PST
Created attachment 122531 [details] Testcase The attached test case hits ASSERTION FAILED: m_transparencyCount > 0 when painting, if the context has paintingDisabled() (e.g. when doing a Find in Safari).
Attachments
Testcase (561 bytes, text/html)
2012-01-13 19:10 PST, Simon Fraser (smfr)
no flags
Patch (4.08 KB, patch)
2012-01-13 19:33 PST, Simon Fraser (smfr)
mitz: review+
Simon Fraser (smfr)
Comment 1 2012-01-13 19:15:35 PST
The issue is that RenderLayer::beginTransparencyLayers() bails if context->paintingDisabled() is true, so never starting the transparency layer. However, when rendering the child, filterPainter hands back a context with painting enabled. We then hit beginTransparencyLayers() in the if (localPaintFlags & PaintLayerPaintingCompositingForegroundPhase) clause, since haveTransparency was passed in from the ancestor. We should just not apply filters if the context has painting disabled.
Simon Fraser (smfr)
Comment 2 2012-01-13 19:33:22 PST
Radar WebKit Bug Importer
Comment 3 2012-01-13 19:34:38 PST
mitz
Comment 4 2012-01-13 19:58:49 PST
Comment on attachment 122533 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=122533&action=review > Source/WebCore/ChangeLog:14 > + Manual test: > + ManualTests/filters/opacity-above-filter.html Could this be a TestWebKitAPI test instead?
Simon Fraser (smfr)
Comment 5 2012-01-14 07:52:16 PST
Alexandru Chiculita
Comment 6 2012-01-16 00:29:52 PST
Note You need to log in before you can comment on or make changes to this bug.