Changeset 112175 in webkit


Ignore:
Timestamp:
Mar 26, 2012 4:42:17 PM (12 years ago)
Author:
andersca@apple.com
Message:

Never remove root compositing layers in the web process
https://bugs.webkit.org/show_bug.cgi?id=82255
<rdar://problem/11058521>

Reviewed by Sam Weinig.

Since we never leave accelerated compositing mode when using tiled drawing, we should
never remove root compositing layers in the web process.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r112132 r112175  
     12012-03-26  Anders Carlsson  <andersca@apple.com>
     2
     3        Never remove root compositing layers in the web process
     4        https://bugs.webkit.org/show_bug.cgi?id=82255
     5        <rdar://problem/11058521>
     6
     7        Reviewed by Sam Weinig.
     8
     9        Since we never leave accelerated compositing mode when using tiled drawing, we should
     10        never remove root compositing layers in the web process.
     11
     12        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
     13        (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
     14
    1152012-03-26  Rafael Brandao  <rafael.lobo@openbossa.org>
    216
  • trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm

    r111226 r112175  
    111111    CALayer *rootCompositingLayer = graphicsLayer ? graphicsLayer->platformLayer() : nil;
    112112
     113    // Since we'll always be in accelerated compositing mode, the only time that layer will be nil
     114    // is when the WKView is removed from its containing window. In that case, the layer will already be
     115    // removed from the layer tree hierarchy over in the UI process, so there's no reason to remove it locally.
     116    // In addition, removing the layer here will cause flashes when switching between tabs.
     117    if (!rootCompositingLayer)
     118        return;
     119
    113120    if (m_layerTreeStateIsFrozen) {
    114121        m_pendingRootCompositingLayer = rootCompositingLayer;
     
    326333void TiledCoreAnimationDrawingArea::setRootCompositingLayer(CALayer *layer)
    327334{
     335    ASSERT(layer);
    328336    ASSERT(!m_layerTreeStateIsFrozen);
    329337
     
    331339    [CATransaction setDisableActions:YES];
    332340
    333     if (!layer)
    334         m_rootLayer.get().sublayers = nil;
    335     else {
    336         m_rootLayer.get().sublayers = [NSArray arrayWithObject:layer];
    337 
    338         if (m_pageOverlayLayer)
    339             [m_rootLayer.get() addSublayer:m_pageOverlayLayer->platformLayer()];
    340     }
     341    m_rootLayer.get().sublayers = [NSArray arrayWithObject:layer];
     342
     343    if (m_pageOverlayLayer)
     344        [m_rootLayer.get() addSublayer:m_pageOverlayLayer->platformLayer()];
    341345
    342346    [CATransaction commit];
Note: See TracChangeset for help on using the changeset viewer.