RESOLVED FIXED Bug 130337
[CSS Blending] Blend mode property is propagated to multiple GraphicLayers
https://bugs.webkit.org/show_bug.cgi?id=130337
Summary [CSS Blending] Blend mode property is propagated to multiple GraphicLayers
Ion Rosca
Reported 2014-03-17 07:47:34 PDT
If a blending GraphicsLayer has an ancestorClippingLayer, the blend mode property is propagated to the ancestorClippingLayer. The main graphicsLayer should reset its own blend mode to "normal", otherwise both ancestorClippingLayer and main graphicsLayer will have blend modes.
Attachments
path v1 (4.54 KB, patch)
2014-03-17 08:04 PDT, Ion Rosca
no flags
fixing style (4.53 KB, patch)
2014-03-18 05:17 PDT, Ion Rosca
no flags
patch v3 (4.48 KB, patch)
2014-03-19 12:37 PDT, Ion Rosca
no flags
removing RenderLayerBacking::setBlendMode (6.64 KB, patch)
2014-03-24 13:22 PDT, Ion Rosca
no flags
Ion Rosca
Comment 1 2014-03-17 08:04:49 PDT
Ion Rosca
Comment 2 2014-03-17 08:06:56 PDT
The test will pass after submitting https://bugs.webkit.org/show_bug.cgi?id=130331, which brings in blend mode dumping in GraphicsLayers.
WebKit Commit Bot
Comment 3 2014-03-18 02:01:50 PDT
Attachment 226920 [details] did not pass style-queue: ERROR: Source/WebCore/rendering/RenderLayerBacking.cpp:2063: One line control clauses should not use braces. [whitespace/braces] [4] Total errors found: 1 in 5 files If any of these errors are false positives, please file a bug against check-webkit-style.
Ion Rosca
Comment 4 2014-03-18 05:17:23 PDT
Created attachment 227039 [details] fixing style
Simon Fraser (smfr)
Comment 5 2014-03-18 13:59:25 PDT
Comment on attachment 227039 [details] fixing style View in context: https://bugs.webkit.org/attachment.cgi?id=227039&action=review > LayoutTests/css3/compositing/blend-mode-ancestor-clipping-layer.html:31 > + text.innerHTML = window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); Why does this test care about repaint rects?
Ion Rosca
Comment 6 2014-03-19 11:59:06 PDT
Comment on attachment 227039 [details] fixing style View in context: https://bugs.webkit.org/attachment.cgi?id=227039&action=review >> LayoutTests/css3/compositing/blend-mode-ancestor-clipping-layer.html:31 >> + text.innerHTML = window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); > > Why does this test care about repaint rects? It doesn't care about repaint rects. I will remove this flag. Thanks.
Ion Rosca
Comment 7 2014-03-19 12:37:12 PDT
Created attachment 227209 [details] patch v3
Simon Fraser (smfr)
Comment 8 2014-03-24 10:55:14 PDT
Comment on attachment 227209 [details] patch v3 Not sure why RenderLayerBacking::setBlendMode() has to exist. RenderLayer::updateBlendMode() is called from RenderLayer::styleChanged() it calls backing()->setBlendMode() but doesn't need to because RenderLayer::styleChanged() always calls either backing()->updateGraphicsLayerGeometry() or triggers a full compositing layer rebuild.
Ion Rosca
Comment 9 2014-03-24 13:22:30 PDT
Created attachment 227685 [details] removing RenderLayerBacking::setBlendMode
Ion Rosca
Comment 10 2014-03-24 13:26:12 PDT
Yes, it seems like it's useless as RenderLayerBacking::updateBlendMode used to be called each time after RenderLayerBacking::setBlendMode. I removed it with the last patch. Thanks.
WebKit Commit Bot
Comment 11 2014-03-31 14:08:08 PDT
Comment on attachment 227685 [details] removing RenderLayerBacking::setBlendMode Clearing flags on attachment: 227685 Committed r166526: <http://trac.webkit.org/changeset/166526>
WebKit Commit Bot
Comment 12 2014-03-31 14:08:13 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.