Changeset 175818 in webkit


Ignore:
Timestamp:
Nov 10, 2014, 12:03:44 PM (11 years ago)
Author:
Simon Fraser
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.
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r175817 r175818  
     12014-11-10  Simon Fraser  <simon.fraser@apple.com>
     2
     3        [iOS WK2] Layers with negative z position disapear behind the page tiles
     4        https://bugs.webkit.org/show_bug.cgi?id=138571
     5        rdar://problem/18873480
     6
     7        Reviewed by Dean Jackson.
     8
     9        Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
     10        to use the m_childContainmentLayer as the ancestor for descendants, so layers with
     11        negative z position would get depth-sorted behind the tiles.
     12       
     13        Fix by removing that code.
     14       
     15        This should have been detected by compositing/tile-cache-must-flatten.html, but
     16        testing infrastructure suck prevented us from doing so.
     17
     18        * rendering/RenderLayerBacking.cpp:
     19        (WebCore::RenderLayerBacking::parentForSublayers):
     20        * rendering/RenderLayerBacking.h: Just some nullptr cleanup.
     21
    1222014-11-10  Chris Dumez  <cdumez@apple.com>
    223
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r175799 r175818  
    19941994        return m_scrollingContentsLayer.get();
    19951995
    1996 #if PLATFORM(IOS)
    1997     // FIXME: Can we remove this iOS-specific code path?
    1998     if (GraphicsLayer* clippingLayer = this->clippingLayer())
    1999         return clippingLayer;
    2000     return m_graphicsLayer.get();
    2001 #else
    20021996    return m_childContainmentLayer ? m_childContainmentLayer.get() : m_graphicsLayer.get();
    2003 #endif
    20041997}
    20051998
  • trunk/Source/WebCore/rendering/RenderLayerBacking.h

    r175794 r175818  
    9090    // Layer to clip children
    9191    bool hasClippingLayer() const { return (m_childContainmentLayer && !m_usingTiledCacheLayer); }
    92     GraphicsLayer* clippingLayer() const { return !m_usingTiledCacheLayer ? m_childContainmentLayer.get() : 0; }
     92    GraphicsLayer* clippingLayer() const { return !m_usingTiledCacheLayer ? m_childContainmentLayer.get() : nullptr; }
    9393
    9494    // Layer to get clipped by ancestor
    95     bool hasAncestorClippingLayer() const { return m_ancestorClippingLayer != 0; }
     95    bool hasAncestorClippingLayer() const { return m_ancestorClippingLayer != nullptr; }
    9696    GraphicsLayer* ancestorClippingLayer() const { return m_ancestorClippingLayer.get(); }
    9797
    9898    GraphicsLayer* contentsContainmentLayer() const { return m_contentsContainmentLayer.get(); }
    9999
    100     bool hasContentsLayer() const { return m_foregroundLayer != 0; }
     100    bool hasContentsLayer() const { return m_foregroundLayer != nullptr; }
    101101    GraphicsLayer* foregroundLayer() const { return m_foregroundLayer.get(); }
    102102
Note: See TracChangeset for help on using the changeset viewer.