Title: [175818] trunk/Source/WebCore
Revision
175818
Author
simon.fra...@apple.com
Date
2014-11-10 12:03:44 -0800 (Mon, 10 Nov 2014)

Log Message

[iOS WK2] Layers with negative z position disapear behind the page tiles
https://bugs.webkit.org/show_bug.cgi?id=138571
rdar://problem/18873480

Reviewed by Dean Jackson.

Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
to use the m_childContainmentLayer as the ancestor for descendants, so layers with
negative z position would get depth-sorted behind the tiles.

Fix by removing that code.

This should have been detected by compositing/tile-cache-must-flatten.html, but
testing infrastructure suck prevented us from doing so.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::parentForSublayers):
* rendering/RenderLayerBacking.h: Just some nullptr cleanup.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (175817 => 175818)


--- trunk/Source/WebCore/ChangeLog	2014-11-10 19:56:20 UTC (rev 175817)
+++ trunk/Source/WebCore/ChangeLog	2014-11-10 20:03:44 UTC (rev 175818)
@@ -1,3 +1,24 @@
+2014-11-10  Simon Fraser  <simon.fra...@apple.com>
+
+        [iOS WK2] Layers with negative z position disapear behind the page tiles
+        https://bugs.webkit.org/show_bug.cgi?id=138571
+        rdar://problem/18873480
+
+        Reviewed by Dean Jackson.
+
+        Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
+        to use the m_childContainmentLayer as the ancestor for descendants, so layers with
+        negative z position would get depth-sorted behind the tiles.
+        
+        Fix by removing that code.
+        
+        This should have been detected by compositing/tile-cache-must-flatten.html, but
+        testing infrastructure suck prevented us from doing so.
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::parentForSublayers):
+        * rendering/RenderLayerBacking.h: Just some nullptr cleanup.
+
 2014-11-10  Chris Dumez  <cdu...@apple.com>
 
         Move 'resize' CSS property to the new StyleBuilder

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (175817 => 175818)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2014-11-10 19:56:20 UTC (rev 175817)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp	2014-11-10 20:03:44 UTC (rev 175818)
@@ -1993,14 +1993,7 @@
     if (m_scrollingContentsLayer)
         return m_scrollingContentsLayer.get();
 
-#if PLATFORM(IOS)
-    // FIXME: Can we remove this iOS-specific code path?
-    if (GraphicsLayer* clippingLayer = this->clippingLayer())
-        return clippingLayer;
-    return m_graphicsLayer.get();
-#else
     return m_childContainmentLayer ? m_childContainmentLayer.get() : m_graphicsLayer.get();
-#endif
 }
 
 GraphicsLayer* RenderLayerBacking::childForSuperlayers() const

Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.h (175817 => 175818)


--- trunk/Source/WebCore/rendering/RenderLayerBacking.h	2014-11-10 19:56:20 UTC (rev 175817)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.h	2014-11-10 20:03:44 UTC (rev 175818)
@@ -89,15 +89,15 @@
 
     // Layer to clip children
     bool hasClippingLayer() const { return (m_childContainmentLayer && !m_usingTiledCacheLayer); }
-    GraphicsLayer* clippingLayer() const { return !m_usingTiledCacheLayer ? m_childContainmentLayer.get() : 0; }
+    GraphicsLayer* clippingLayer() const { return !m_usingTiledCacheLayer ? m_childContainmentLayer.get() : nullptr; }
 
     // Layer to get clipped by ancestor
-    bool hasAncestorClippingLayer() const { return m_ancestorClippingLayer != 0; }
+    bool hasAncestorClippingLayer() const { return m_ancestorClippingLayer != nullptr; }
     GraphicsLayer* ancestorClippingLayer() const { return m_ancestorClippingLayer.get(); }
 
     GraphicsLayer* contentsContainmentLayer() const { return m_contentsContainmentLayer.get(); }
 
-    bool hasContentsLayer() const { return m_foregroundLayer != 0; }
+    bool hasContentsLayer() const { return m_foregroundLayer != nullptr; }
     GraphicsLayer* foregroundLayer() const { return m_foregroundLayer.get(); }
 
     GraphicsLayer* backgroundLayer() const { return m_backgroundLayer.get(); }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to