Title: [178308] trunk/Source/WebCore
Revision
178308
Author
commit-qu...@webkit.org
Date
2015-01-12 16:35:24 -0800 (Mon, 12 Jan 2015)

Log Message

REGRESSION(r178029): [GTK][EFL] Caused no-backing-for-clip-overlap test failures
https://bugs.webkit.org/show_bug.cgi?id=140336

Patch by Byungseon Shin <sun.s...@lge.com> on 2015-01-12
Reviewed by Simon Fraser.

Avoid creating childClippingMaskLayer when renderer has not border radius nor clip path.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateChildClippingStrategy):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (178307 => 178308)


--- trunk/Source/WebCore/ChangeLog	2015-01-13 00:30:49 UTC (rev 178307)
+++ trunk/Source/WebCore/ChangeLog	2015-01-13 00:35:24 UTC (rev 178308)
@@ -1,3 +1,15 @@
+2015-01-12  Byungseon Shin  <sun.s...@lge.com>
+
+        REGRESSION(r178029): [GTK][EFL] Caused no-backing-for-clip-overlap test failures
+        https://bugs.webkit.org/show_bug.cgi?id=140336
+
+        Reviewed by Simon Fraser.
+
+        Avoid creating childClippingMaskLayer when renderer has not border radius nor clip path.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateChildClippingStrategy):
+
 2015-01-12  Myles C. Maxfield  <mmaxfi...@apple.com>
 
         [Apple] Squelch stderr log regarding negative stroke thickness

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (178307 => 178308)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2015-01-13 00:30:49 UTC (rev 178307)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2015-01-13 00:35:24 UTC (rev 178308)
@@ -1432,7 +1432,7 @@
 void RenderLayerBacking::updateChildClippingStrategy(bool needsDescendentsClippingLayer)
 {
     if (hasClippingLayer() && needsDescendentsClippingLayer) {
-        if (is<RenderBox>(renderer())) {
+        if (is<RenderBox>(renderer()) && (renderer().style().clipPath() || renderer().style().hasBorderRadius())) {
             LayoutRect boxRect(LayoutPoint(), downcast<RenderBox>(renderer()).size());
             FloatRoundedRect contentsClippingRect = renderer().style().getRoundedInnerBorderFor(boxRect).pixelSnappedRoundedRectForPainting(deviceScaleFactor());
             contentsClippingRect.move(contentOffsetInCompostingLayer());
@@ -1441,13 +1441,13 @@
                     m_childClippingMaskLayer = nullptr;
                 return;
             }
-        }
 
-        if (!m_childClippingMaskLayer) {
-            m_childClippingMaskLayer = createGraphicsLayer("Child Clipping Mask Layer");
-            m_childClippingMaskLayer->setDrawsContent(true);
-            m_childClippingMaskLayer->setPaintingPhase(GraphicsLayerPaintChildClippingMask);
-            clippingLayer()->setMaskLayer(m_childClippingMaskLayer.get());
+            if (!m_childClippingMaskLayer) {
+                m_childClippingMaskLayer = createGraphicsLayer("Child Clipping Mask Layer");
+                m_childClippingMaskLayer->setDrawsContent(true);
+                m_childClippingMaskLayer->setPaintingPhase(GraphicsLayerPaintChildClippingMask);
+                clippingLayer()->setMaskLayer(m_childClippingMaskLayer.get());
+            }
         }
     } else {
         if (m_childClippingMaskLayer) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to