From 45ec314a30ab1ee522cde2fa90634b046ad92e2d Mon Sep 17 00:00:00 2001 From: Seojin Kim Date: Sun, 9 Sep 2012 19:16:21 +0900 Subject: [PATCH] [WK2] allow up to 40 graphics layers [Title] [WK2] allow up to 40 graphics layers [Issue #] N_SE-9731 [Problem] lockup when try to Reply the mail in gmail desktop site. [Cause] Too many layers are created in gmail desktop site, and moreover, contents forcely triggers relayout and paint infinitely. [Solution] Set limit up to 40 layers. [Developer] seojin.kim --- Source/WebCore/rendering/RenderLayerCompositor.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp index ff4e359..2d5384a 100644 --- a/Source/WebCore/rendering/RenderLayerCompositor.cpp +++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp @@ -1470,10 +1470,6 @@ bool RenderLayerCompositor::requiresCompositingLayer(const RenderLayer* layer) c layer = toRenderBoxModelObject(renderer)->layer(); } -#if ENABLE(TIZEN_WEBKIT2_TILED_AC) - if (m_compositedLayerCount > 100) - return false; -#endif // The root layer always has a compositing layer, but it may not have backing. return requiresCompositingForTransform(renderer) @@ -1494,6 +1490,11 @@ bool RenderLayerCompositor::requiresCompositingLayer(const RenderLayer* layer) c bool RenderLayerCompositor::canBeComposited(const RenderLayer* layer) const { +#if ENABLE(TIZEN_WEBKIT2_TILED_AC) + if (m_compositedLayerCount > 40) + return false; +#endif + // FIXME: We disable accelerated compositing for elements in a RenderFlowThread as it doesn't work properly. // See http://webkit.org/b/84900 to re-enable it. return m_hasAcceleratedCompositing && layer->isSelfPaintingLayer() && !layer->renderer()->inRenderFlowThread(); -- 2.7.4