[WK2] Set a limit of layer count.
authorJungJik Lee <jungjik.lee@samsung.com>
Thu, 6 Sep 2012 14:18:16 +0000 (23:18 +0900)
committerJungJik Lee <jungjik.lee@samsung.com>
Thu, 6 Sep 2012 14:24:55 +0000 (23:24 +0900)
[Title] [WK2] Set a limit of layer count.
[Issue #] N_SE-9221, N_SE-9136
[Problem] crash in gmail desktop site.
[Cause] Too many layers are created in gmail desktop site.
        Due to so many layers, it reaches to OOM situation.
[Solution] Set limit up to 150 layers.
[Developer] jungjik.lee

Source/WebCore/rendering/RenderLayerCompositor.cpp

index c3b9892..ff4e359 100644 (file)
@@ -1469,6 +1469,12 @@ bool RenderLayerCompositor::requiresCompositingLayer(const RenderLayer* layer) c
         renderer = renderer->parent(); // The RenderReplica's parent is the object being reflected.
         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)
         || requiresCompositingForVideo(renderer)