[chromium] Layers with animating transforms should prepaint even if they are not...
[WebKit-https.git] / Source / WebCore / ChangeLog
index 3fd5935c00a36306f109d386cf9275978be14c59..22e29c5da5b97691042f9e5475734f3ac05709b4 100644 (file)
@@ -1,3 +1,36 @@
+2012-03-25  Dana Jansens  <danakj@chromium.org>
+
+        [chromium] Layers with animating transforms should prepaint even if they are not visible yet
+        https://bugs.webkit.org/show_bug.cgi?id=82117
+
+        Reviewed by Adrienne Walker.
+
+        For animating transforms, instead of early-outing when the layer's
+        visible rect is empty, let it prepaint regardless.
+
+        For now, we just only paint the outermost tiles, and only for small
+        layers, with at most 9 tiles.
+
+        This changes the behaviour of ContentLayerChromium's
+        idlePaintContentsIfDirty() so I've guarded the behaviour of the two
+        prepainting functions that it calls to ensure the old behaviour holds
+        without animations, and the new behaviour works with them.
+
+        Unit test: TiledLayerChromiumTest.idlePaintZeroSizedLayer
+                   TiledLayerChromiumTest.idlePaintZeroSizedAnimatingLayer
+                   TiledLayerChromiumTest.idlePaintNonVisibleLayers
+                   TiledLayerChromiumTest.idlePaintNonVisibleAnimatingLayers
+
+        * platform/graphics/chromium/ContentLayerChromium.cpp:
+        (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
+        * platform/graphics/chromium/TiledLayerChromium.cpp:
+        (WebCore::TiledLayerChromium::prepareToUpdateIdle):
+        (WebCore::TiledLayerChromium::needsIdlePaint):
+        (WebCore::TiledLayerChromium::idlePaintRect):
+        * platform/graphics/chromium/TiledLayerChromium.h:
+        (WebCore::TiledLayerChromium::numPaintedTiles):
+        (TiledLayerChromium):
+
 2012-03-25  Antti Koivisto  <antti@apple.com>
 
         Don't use CSSRuleList for child rule ownership