Title: [112175] trunk/Source/WebKit2
- Revision
- 112175
- Author
- [email protected]
- Date
- 2012-03-26 16:42:17 -0700 (Mon, 26 Mar 2012)
Log Message
Never remove root compositing layers in the web process
https://bugs.webkit.org/show_bug.cgi?id=82255
<rdar://problem/11058521>
Reviewed by Sam Weinig.
Since we never leave accelerated compositing mode when using tiled drawing, we should
never remove root compositing layers in the web process.
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (112174 => 112175)
--- trunk/Source/WebKit2/ChangeLog 2012-03-26 23:39:27 UTC (rev 112174)
+++ trunk/Source/WebKit2/ChangeLog 2012-03-26 23:42:17 UTC (rev 112175)
@@ -1,3 +1,17 @@
+2012-03-26 Anders Carlsson <[email protected]>
+
+ Never remove root compositing layers in the web process
+ https://bugs.webkit.org/show_bug.cgi?id=82255
+ <rdar://problem/11058521>
+
+ Reviewed by Sam Weinig.
+
+ Since we never leave accelerated compositing mode when using tiled drawing, we should
+ never remove root compositing layers in the web process.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
+
2012-03-26 Rafael Brandao <[email protected]>
[Qt][WK2] default families are not set in QWebPreferences
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (112174 => 112175)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2012-03-26 23:39:27 UTC (rev 112174)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm 2012-03-26 23:42:17 UTC (rev 112175)
@@ -110,6 +110,13 @@
{
CALayer *rootCompositingLayer = graphicsLayer ? graphicsLayer->platformLayer() : nil;
+ // Since we'll always be in accelerated compositing mode, the only time that layer will be nil
+ // is when the WKView is removed from its containing window. In that case, the layer will already be
+ // removed from the layer tree hierarchy over in the UI process, so there's no reason to remove it locally.
+ // In addition, removing the layer here will cause flashes when switching between tabs.
+ if (!rootCompositingLayer)
+ return;
+
if (m_layerTreeStateIsFrozen) {
m_pendingRootCompositingLayer = rootCompositingLayer;
return;
@@ -325,19 +332,16 @@
void TiledCoreAnimationDrawingArea::setRootCompositingLayer(CALayer *layer)
{
+ ASSERT(layer);
ASSERT(!m_layerTreeStateIsFrozen);
[CATransaction begin];
[CATransaction setDisableActions:YES];
- if (!layer)
- m_rootLayer.get().sublayers = nil;
- else {
- m_rootLayer.get().sublayers = [NSArray arrayWithObject:layer];
+ m_rootLayer.get().sublayers = [NSArray arrayWithObject:layer];
- if (m_pageOverlayLayer)
- [m_rootLayer.get() addSublayer:m_pageOverlayLayer->platformLayer()];
- }
+ if (m_pageOverlayLayer)
+ [m_rootLayer.get() addSublayer:m_pageOverlayLayer->platformLayer()];
[CATransaction commit];
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes