Changeset 86590 in webkit


Ignore:
Timestamp:
May 16, 2011 10:55:52 AM (13 years ago)
Author:
andersca@apple.com
Message:

2011-05-16 Anders Carlsson <andersca@apple.com>

Reviewed by Dan Bernstein.

If the root compositing layer changes while we're about to exit compositing mode, make sure to enter compositing mode
https://bugs.webkit.org/show_bug.cgi?id=60905
<rdar://problem/9365574>

  • WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::setRootCompositingLayer): If we have a layer tree host, but haven't yet sent a EnterAcceleratedCompositingMode message (this can happen when quickly going in and out of compositing mode), make sure to schedule a notification when the layer tree host does it next flush. This will end up sending the EnterAcceleratedCompositingMode message.
Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r86588 r86590  
     12011-05-16  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        If the root compositing layer changes while we're about to exit compositing mode, make sure to enter compositing mode
     6        https://bugs.webkit.org/show_bug.cgi?id=60905
     7        <rdar://problem/9365574>
     8
     9        * WebProcess/WebPage/DrawingAreaImpl.cpp:
     10        (WebKit::DrawingAreaImpl::setRootCompositingLayer):
     11        If we have a layer tree host, but haven't yet sent a EnterAcceleratedCompositingMode message (this can happen
     12        when quickly going in and out of compositing mode), make sure to schedule a notification when the layer tree host
     13        does it next flush. This will end up sending the EnterAcceleratedCompositingMode message.
     14
    1152011-05-13  Jer Noble  <jer.noble@apple.com>
    216
  • trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp

    r86074 r86590  
    226226void DrawingAreaImpl::setRootCompositingLayer(GraphicsLayer* graphicsLayer)
    227227{
     228    // FIXME: Instead of using nested if statements, we should keep a compositing state
     229    // enum in the DrawingAreaImpl object and have a changeAcceleratedCompositingState function
     230    // that takes the new state.
     231
    228232    if (graphicsLayer) {
    229233        if (!m_layerTreeHost) {
     
    231235            enterAcceleratedCompositingMode(graphicsLayer);
    232236        } else {
     237            // We're already in accelerated compositing mode, but the root compositing layer changed.
     238
    233239            m_exitCompositingTimer.stop();
    234             // We're already in accelerated compositing mode, but the root compositing layer changed.
     240
     241            // If we haven't sent the EnterAcceleratedCompositingMode message, make sure that the
     242            // layer tree host calls us back after the next layer flush so we can send it then.
     243            if (!m_compositingAccordingToProxyMessages)
     244                m_layerTreeHost->setShouldNotifyAfterNextScheduledLayerFlush(true);
     245
    235246            m_layerTreeHost->setRootCompositingLayer(graphicsLayer);
    236247        }
Note: See TracChangeset for help on using the changeset viewer.