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