Title: [145039] trunk/Source/WebKit2
- Revision
- 145039
- Author
- [email protected]
- Date
- 2013-03-06 21:58:57 -0800 (Wed, 06 Mar 2013)
Log Message
[wk2] Page overlays shouldn't dirty the entire layer when flushing if the main frame can't scroll
https://bugs.webkit.org/show_bug.cgi?id=111662
<rdar://problem/13355808>
Reviewed by Simon Fraser.
Instead of setNeedsDisplay()ing the whole page overlay layer every time through
TCADA::flushLayers, do it at scroll time instead. Repainting on scroll is
necessary to keep things painted in the right place when we scroll (the overlay
is fixed to the size of the view), but is quite wasteful in apps that don’t scroll.
This works with threaded scrolling because overlay installation forces us
into main-thread scrolling mode.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scroll):
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (145038 => 145039)
--- trunk/Source/WebKit2/ChangeLog 2013-03-07 05:55:29 UTC (rev 145038)
+++ trunk/Source/WebKit2/ChangeLog 2013-03-07 05:58:57 UTC (rev 145039)
@@ -1,5 +1,25 @@
2013-03-06 Tim Horton <[email protected]>
+ [wk2] Page overlays shouldn't dirty the entire layer when flushing if the main frame can't scroll
+ https://bugs.webkit.org/show_bug.cgi?id=111662
+ <rdar://problem/13355808>
+
+ Reviewed by Simon Fraser.
+
+ Instead of setNeedsDisplay()ing the whole page overlay layer every time through
+ TCADA::flushLayers, do it at scroll time instead. Repainting on scroll is
+ necessary to keep things painted in the right place when we scroll (the overlay
+ is fixed to the size of the view), but is quite wasteful in apps that don’t scroll.
+
+ This works with threaded scrolling because overlay installation forces us
+ into main-thread scrolling mode.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::scroll):
+ (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
+
+2013-03-06 Tim Horton <[email protected]>
+
[wk2] Page overlays should use the accelerated drawing setting instead of hardcoding it on
https://bugs.webkit.org/show_bug.cgi?id=111654
<rdar://problem/13364085>
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (145038 => 145039)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2013-03-07 05:55:29 UTC (rev 145038)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2013-03-07 05:58:57 UTC (rev 145039)
@@ -110,6 +110,7 @@
void TiledCoreAnimationDrawingArea::scroll(const IntRect& scrollRect, const IntSize& scrollDelta)
{
+ m_pageOverlayLayer->setNeedsDisplay();
}
void TiledCoreAnimationDrawingArea::setRootCompositingLayer(GraphicsLayer* graphicsLayer)
@@ -307,7 +308,6 @@
}
if (m_pageOverlayLayer) {
- m_pageOverlayLayer->setNeedsDisplay();
if (TiledBacking* overlayTiledBacking = m_pageOverlayLayer->tiledBacking())
overlayTiledBacking->setVisibleRect(enclosingIntRect(m_rootLayer.get().frame));
m_pageOverlayLayer->flushCompositingStateForThisLayerOnly();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes