SVG <use> element inside an svg-as-image fails
[WebKit-https.git] / Source / WebCore / ChangeLog
index 2b0b21b..4c83aae 100644 (file)
@@ -1,3 +1,29 @@
+2012-12-06  Stephen Chenney  <schenney@chromium.org>
+
+        SVG <use> element inside an svg-as-image fails
+        https://bugs.webkit.org/show_bug.cgi?id=104007
+
+        Reviewed by Eric Seidel.
+
+        Upon redraw, SVGImage calls layout on the document it is drawing into
+        the image if the image, provided it believes the redraw does not need
+        to be delayed. Unfortunately, when an SVG <use> element is modified
+        (by animation, say) and regenerates its shadow tree, the destructors
+        invoke redraw, causing the SVGImage to call layout on something that
+        is in the process of being deleted. That's bad.
+
+        This change causes SVGImage to always delay the redraw. It is the most robust
+        way to protect against this problem, as there may be any number of
+        ways to cause this issue (a node being deleted in an svg-as-image
+        target) and this protects against them all.
+
+        The test case crashes in Asan Chromium.
+
+        Test: svg/as-image/animated-use-as-image-crash.html
+
+        * svg/graphics/SVGImageCache.cpp:
+        (WebCore::SVGImageCache::imageContentChanged): Always redraw on the timer.
+
 2012-12-06  Antoine Quint  <graouts@apple.com>
 
         TextTrack's .cues not ordered correctly when two cues have the same .startTime