Title: [136341] trunk/Source/WebKit2
Revision
136341
Author
[email protected]
Date
2012-12-02 04:49:09 -0800 (Sun, 02 Dec 2012)

Log Message

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

Patch by Huang Dongsung <[email protected]> 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):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (136340 => 136341)


--- trunk/Source/WebKit2/ChangeLog	2012-12-02 12:43:24 UTC (rev 136340)
+++ trunk/Source/WebKit2/ChangeLog	2012-12-02 12:49:09 UTC (rev 136341)
@@ -1,3 +1,23 @@
+2012-12-02  Huang Dongsung  <[email protected]>
+
+        Coordinated Graphics: Images disappear randomly
+        https://bugs.webkit.org/show_bug.cgi?id=103522
+
+        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):
+
 2012-12-02  Brent Fulgham  <[email protected]>
 
         [Windows, WinCairo] Revise export definitions to match mac.

Modified: trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp (136340 => 136341)


--- trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp	2012-12-02 12:43:24 UTC (rev 136340)
+++ trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp	2012-12-02 12:49:09 UTC (rev 136341)
@@ -94,7 +94,6 @@
 void LayerTreeCoordinatorProxy::deleteCompositingLayer(WebLayerID id)
 {
     dispatchUpdate(bind(&LayerTreeRenderer::deleteLayer, m_renderer.get(), id));
-    updateViewport();
 }
 
 void LayerTreeCoordinatorProxy::setRootCompositingLayer(WebLayerID id)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp (136340 => 136341)


--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp	2012-12-02 12:43:24 UTC (rev 136340)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp	2012-12-02 12:49:09 UTC (rev 136341)
@@ -268,10 +268,6 @@
     if (m_waitingForUIProcess)
         return false;
 
-    for (size_t i = 0; i < m_detachedLayers.size(); ++i)
-        m_webPage->send(Messages::LayerTreeCoordinatorProxy::DeleteCompositingLayer(m_detachedLayers[i]));
-    m_detachedLayers.clear();
-
     bool didSync = m_webPage->corePage()->mainFrame()->view()->flushCompositingStateIncludingSubframes();
     m_nonCompositedContentLayer->flushCompositingStateForThisLayerOnly();
     if (m_pageOverlayLayer)
@@ -286,6 +282,10 @@
         m_shouldSyncRootLayer = false;
     }
 
+    for (size_t i = 0; i < m_detachedLayers.size(); ++i)
+        m_webPage->send(Messages::LayerTreeCoordinatorProxy::DeleteCompositingLayer(m_detachedLayers[i]));
+    m_detachedLayers.clear();
+
     if (m_shouldSyncFrame) {
         didSync = true;
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to