Changeset 136341 in webkit


Ignore:
Timestamp:
Dec 2, 2012 4:49:09 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Coordinated Graphics: Images disappear randomly
https://bugs.webkit.org/show_bug.cgi?id=103522

Patch by Huang Dongsung <luxtella@company100.net> on 2012-12-02
Reviewed by Kenneth Rohde Christiansen.

Currently, we delete layers before synchronizing layer states of layers. It
causes flash. This patch deletes layers after the synchronization.

In addiation, this patch removes updateViewport() in
LayerTreeCoordinatorProxy::deleteCompositingLayer() because
LayerTreeCoordinatorProxy::didRenderFrame() is always called after
deleting layers.

  • UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:

(WebKit::LayerTreeCoordinatorProxy::deleteCompositingLayer):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:

(WebKit::LayerTreeCoordinator::flushPendingLayerChanges):

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r136336 r136341  
     12012-12-02  Huang Dongsung  <luxtella@company100.net>
     2
     3        Coordinated Graphics: Images disappear randomly
     4        https://bugs.webkit.org/show_bug.cgi?id=103522
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        Currently, we delete layers before synchronizing layer states of layers. It
     9        causes flash. This patch deletes layers after the synchronization.
     10
     11        In addiation, this patch removes updateViewport() in
     12        LayerTreeCoordinatorProxy::deleteCompositingLayer() because
     13        LayerTreeCoordinatorProxy::didRenderFrame() is always called after
     14        deleting layers.
     15
     16        * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
     17        (WebKit::LayerTreeCoordinatorProxy::deleteCompositingLayer):
     18        * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
     19        (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
     20
    1212012-12-02  Brent Fulgham  <bfulgham@webkit.org>
    222
  • trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp

    r135207 r136341  
    9595{
    9696    dispatchUpdate(bind(&LayerTreeRenderer::deleteLayer, m_renderer.get(), id));
    97     updateViewport();
    9897}
    9998
  • trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp

    r135207 r136341  
    269269        return false;
    270270
    271     for (size_t i = 0; i < m_detachedLayers.size(); ++i)
    272         m_webPage->send(Messages::LayerTreeCoordinatorProxy::DeleteCompositingLayer(m_detachedLayers[i]));
    273     m_detachedLayers.clear();
    274 
    275271    bool didSync = m_webPage->corePage()->mainFrame()->view()->flushCompositingStateIncludingSubframes();
    276272    m_nonCompositedContentLayer->flushCompositingStateForThisLayerOnly();
     
    286282        m_shouldSyncRootLayer = false;
    287283    }
     284
     285    for (size_t i = 0; i < m_detachedLayers.size(); ++i)
     286        m_webPage->send(Messages::LayerTreeCoordinatorProxy::DeleteCompositingLayer(m_detachedLayers[i]));
     287    m_detachedLayers.clear();
    288288
    289289    if (m_shouldSyncFrame) {
Note: See TracChangeset for help on using the changeset viewer.