summaryrefslogtreecommitdiffstats
path: root/Source/WebCore
diff options
context:
space:
mode:
authorNicolas Roard <nicolasroard@google.com>2012-02-21 16:51:46 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-02-21 16:51:46 -0800
commitf0190eaac5d750c08cf97a406f4945a910262543 (patch)
tree98d6c19c8474e9f9fed1f3246ae68939cc287695 /Source/WebCore
parent489cc2648aba682fde7acdd19a71631429c5d8f8 (diff)
parent34c42dc62d0d9894b353fff39eac1862c03af931 (diff)
downloadexternal_webkit-f0190eaac5d750c08cf97a406f4945a910262543.zip
external_webkit-f0190eaac5d750c08cf97a406f4945a910262543.tar.gz
external_webkit-f0190eaac5d750c08cf97a406f4945a910262543.tar.bz2
Merge "Move Canvas elements to their own composited layer"
Diffstat (limited to 'Source/WebCore')
-rw-r--r--Source/WebCore/rendering/RenderHTMLCanvas.cpp7
-rw-r--r--Source/WebCore/rendering/RenderLayerCompositor.cpp4
2 files changed, 11 insertions, 0 deletions
diff --git a/Source/WebCore/rendering/RenderHTMLCanvas.cpp b/Source/WebCore/rendering/RenderHTMLCanvas.cpp
index de2a2c1..03b406b 100644
--- a/Source/WebCore/rendering/RenderHTMLCanvas.cpp
+++ b/Source/WebCore/rendering/RenderHTMLCanvas.cpp
@@ -47,6 +47,13 @@ RenderHTMLCanvas::RenderHTMLCanvas(HTMLCanvasElement* element)
bool RenderHTMLCanvas::requiresLayer() const
{
+#if PLATFORM(ANDROID)
+ // All Canvas are drawn on their own composited layer
+ // This improves performances a lot (as this simplify
+ // the repaint/inval chain dealing with the PictureSet)
+ return true;
+#endif
+
if (RenderReplaced::requiresLayer())
return true;
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp
index 03f1e41..25a08e7 100644
--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp
@@ -1410,6 +1410,10 @@ bool RenderLayerCompositor::requiresCompositingForAndroidLayers(const RenderLaye
if (layer->isFixed())
return true;
#endif
+
+ if (layer->renderer()->isCanvas())
+ return true;
+
return false;
}
#endif