Title: [87637] trunk/Source/WebKit2
Revision
87637
Author
[email protected]
Date
2011-05-29 11:03:30 -0700 (Sun, 29 May 2011)

Log Message

<rdar://problem/9519453>
When calling ForceRepaint on a page with accelerated compositing, we can get
a race condition where the UI process paints the old content, resulting in showing
the previous page. That happens because forceRepaint's callback waits for the next
repaint to happen, but nothing notifies UI process that the page is in accelerated
compositing mode.

Reviewed by Anders Carlsson and Simon Fraser.

* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::forceRepaint): Call layerHostDidFlushLayers instead of
just calling forceRepaint on the layer tree host.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (87636 => 87637)


--- trunk/Source/WebKit2/ChangeLog	2011-05-29 09:49:03 UTC (rev 87636)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-29 18:03:30 UTC (rev 87637)
@@ -1,3 +1,18 @@
+2011-05-29  Darin Adler  <[email protected]>
+
+        Reviewed by Anders Carlsson and Simon Fraser.
+
+        <rdar://problem/9519453>
+        When calling ForceRepaint on a page with accelerated compositing, we can get
+        a race condition where the UI process paints the old content, resulting in showing
+        the previous page. That happens because forceRepaint's callback waits for the next
+        repaint to happen, but nothing notifies UI process that the page is in accelerated
+        compositing mode.
+
+        * WebProcess/WebPage/DrawingAreaImpl.cpp:
+        (WebKit::DrawingAreaImpl::forceRepaint): Call layerHostDidFlushLayers instead of
+        just calling forceRepaint on the layer tree host.
+
 2011-05-28  Simon Fraser  <[email protected]>
 
         Reviewed by Dan Bernstein, Maciej Stachowiak.

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (87636 => 87637)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2011-05-29 09:49:03 UTC (rev 87636)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2011-05-29 18:03:30 UTC (rev 87637)
@@ -156,7 +156,10 @@
     m_webPage->layoutIfNeeded();
 
     if (m_layerTreeHost) {
-        m_layerTreeHost->forceRepaint();
+        // FIXME: We need to do the same work as the layerHostDidFlushLayers function here,
+        // but clearly it doesn't make sense to call the function with that name.
+        // Consider renaming it.
+        layerHostDidFlushLayers();
         if (!m_layerTreeHost->participatesInDisplay())
             return;
     }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to