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