Title: [100502] trunk
- Revision
- 100502
- Author
- jsc...@chromium.org
- Date
- 2011-11-16 14:07:23 -0800 (Wed, 16 Nov 2011)
Log Message
Clear SVG filter client when its node is detached
https://bugs.webkit.org/show_bug.cgi?id=71741
Reviewed by Eric Seidel.
Source/WebCore:
Test: svg/filters/reparent-animated-filter-target.html
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::clientDestroyed):
LayoutTests:
* svg/filters/reparent-animated-filter-target-expected.txt: Added.
* svg/filters/reparent-animated-filter-target.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (100501 => 100502)
--- trunk/LayoutTests/ChangeLog 2011-11-16 22:02:37 UTC (rev 100501)
+++ trunk/LayoutTests/ChangeLog 2011-11-16 22:07:23 UTC (rev 100502)
@@ -1,3 +1,13 @@
+2011-11-16 Justin Schuh <jsc...@chromium.org>
+
+ Clear SVG filter client when its node is detached
+ https://bugs.webkit.org/show_bug.cgi?id=71741
+
+ Reviewed by Eric Seidel.
+
+ * svg/filters/reparent-animated-filter-target-expected.txt: Added.
+ * svg/filters/reparent-animated-filter-target.html: Added.
+
2011-11-16 Peter Kasting <pkast...@google.com>
[chromium] Mark some CoreAnimation plugin model tests as WONTFIX on Win/
Added: trunk/LayoutTests/svg/filters/reparent-animated-filter-target-expected.txt (0 => 100502)
--- trunk/LayoutTests/svg/filters/reparent-animated-filter-target-expected.txt (rev 0)
+++ trunk/LayoutTests/svg/filters/reparent-animated-filter-target-expected.txt 2011-11-16 22:07:23 UTC (rev 100502)
@@ -0,0 +1,3 @@
+This test moves an animated filter target. The test will display a message below if successful.
+
+PASS - Test succeeded.
Added: trunk/LayoutTests/svg/filters/reparent-animated-filter-target.html (0 => 100502)
--- trunk/LayoutTests/svg/filters/reparent-animated-filter-target.html (rev 0)
+++ trunk/LayoutTests/svg/filters/reparent-animated-filter-target.html 2011-11-16 22:07:23 UTC (rev 100502)
@@ -0,0 +1,42 @@
+<svg>
+<filter id="filter">
+ <feDiffuseLighting>
+ <feSpotLight>
+ <animate id="animate" attributeName="limitingConeAngle" from="0" to="1" dur="1s" repeatCount="indefinite">
+ </feSpotLight>
+ </feDiffuseLighting>
+</filter>
+<rect id="rect" width="1" height="1" filter="url(#filter)">
+</svg>
+<script>
+if (window.layoutTestController) {
+ layoutTestController.dumpAsText()
+ layoutTestController.waitUntilDone()
+}
+
+window._onload_ = function() {
+ animate = document.getElementById('animate')
+ retry = true
+
+ function runTest() {
+ if (retry) { // Wait for at least one animation frame before reparenting.
+ lastAnimVal = animate.parentElement.limitingConeAngle.animVal
+ if (lastAnimVal > 0) {
+ animate.appendChild(document.getElementById('rect'))
+ retry = false
+ }
+ // Wait for at least one more animation frame so we know it succeeded.
+ } else if (lastAnimVal != animate.parentElement.limitingConeAngle.animVal) {
+ document.body.appendChild(document.createTextNode('PASS - Test succeeded.'))
+ if (window.layoutTestController)
+ layoutTestController.notifyDone()
+ return
+ }
+
+ setTimeout(runTest, 0)
+ }
+
+ runTest()
+}
+</script>
+<p>This test moves an animated filter target. The test will display a message below if successful.</p>
Modified: trunk/Source/WebCore/ChangeLog (100501 => 100502)
--- trunk/Source/WebCore/ChangeLog 2011-11-16 22:02:37 UTC (rev 100501)
+++ trunk/Source/WebCore/ChangeLog 2011-11-16 22:07:23 UTC (rev 100502)
@@ -1,3 +1,15 @@
+2011-11-16 Justin Schuh <jsc...@chromium.org>
+
+ Clear SVG filter client when its node is detached
+ https://bugs.webkit.org/show_bug.cgi?id=71741
+
+ Reviewed by Eric Seidel.
+
+ Test: svg/filters/reparent-animated-filter-target.html
+
+ * rendering/svg/SVGResourcesCache.cpp:
+ (WebCore::SVGResourcesCache::clientDestroyed):
+
2011-11-16 John Bates <jba...@google.com>
Page/layer flashes after GPU-accelerated CSS transition
Modified: trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp (100501 => 100502)
--- trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp 2011-11-16 22:02:37 UTC (rev 100501)
+++ trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp 2011-11-16 22:07:23 UTC (rev 100502)
@@ -158,6 +158,11 @@
void SVGResourcesCache::clientDestroyed(RenderObject* renderer)
{
ASSERT(renderer);
+
+ SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(renderer);
+ if (resources)
+ resources->removeClientFromCache(renderer);
+
SVGResourcesCache* cache = resourcesCacheFromRenderObject(renderer);
cache->removeResourcesFromRenderObject(renderer);
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes