Skip to content
  • simon.fraser@apple.com's avatar
    Lots of layers get solid color but transparent contents layers now · 9f2ac722
    simon.fraser@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=123537
    
    Source/WebCore:
    
    Reviewed by Tim Horton.
    
    We call rendererBackgroundColor() to determine the layer's background color,
    but on most elements this returns the transparent color (a valid color).
    This caused us to allocate a contentsLayer, and use the transparent color as its
    backgroundColor, which was wasteful.
    
    Fix by only making a background-color layer if the color is not transparent (zero alpha).
    
    Also avoid making a new contents layer on every color change, and make sure that
    we don't do implicit animations for backgroundColor, and some other properties
    that were omitted by mistake.
    
    Layer tree dumps don't dump content layers, so no way to test easily.
    
    * platform/graphics/ca/GraphicsLayerCA.cpp:
    (WebCore::GraphicsLayerCA::setContentsToSolidColor):
    * platform/graphics/ca/mac/PlatformCALayerMac.mm:
    (nullActionsDictionary):
    
    Source/WebKit2:
    
    Reviewed by Tim Horton.
    
    Add some properties to the list of things not to implicitly animate.
    
    * Shared/mac/RemoteLayerTreePropertyApplier.mm:
    (WebKit::RemoteLayerTreePropertyApplier::disableActionsForLayer):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158889 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    9f2ac722