Title: [132665] trunk
Revision
132665
Author
fmal...@chromium.org
Date
2012-10-26 08:57:08 -0700 (Fri, 26 Oct 2012)

Log Message

Crash on loading SVG filter resource on HTML element
https://bugs.webkit.org/show_bug.cgi?id=100491

Reviewed by Dirk Schulze.

Source/WebCore:

Skip non-filter elements referenced via -webkit-filter.

Test: svg/filters/filter-reference-crash.html

* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):

LayoutTests:

* svg/filters/filter-reference-crash-expected.txt: Added.
* svg/filters/filter-reference-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (132664 => 132665)


--- trunk/LayoutTests/ChangeLog	2012-10-26 15:49:30 UTC (rev 132664)
+++ trunk/LayoutTests/ChangeLog	2012-10-26 15:57:08 UTC (rev 132665)
@@ -1,3 +1,13 @@
+2012-10-26  Florin Malita  <fmal...@chromium.org>
+
+        Crash on loading SVG filter resource on HTML element
+        https://bugs.webkit.org/show_bug.cgi?id=100491
+
+        Reviewed by Dirk Schulze.
+
+        * svg/filters/filter-reference-crash-expected.txt: Added.
+        * svg/filters/filter-reference-crash.html: Added.
+
 2012-10-26  Jussi Kukkonen  <jussi.kukko...@intel.com>
 
         [WK2] should enable two postredirect tests

Added: trunk/LayoutTests/svg/filters/filter-reference-crash-expected.txt (0 => 132665)


--- trunk/LayoutTests/svg/filters/filter-reference-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/svg/filters/filter-reference-crash-expected.txt	2012-10-26 15:57:08 UTC (rev 132665)
@@ -0,0 +1,2 @@
+PASS: did not crash.
+

Added: trunk/LayoutTests/svg/filters/filter-reference-crash.html (0 => 132665)


--- trunk/LayoutTests/svg/filters/filter-reference-crash.html	                        (rev 0)
+++ trunk/LayoutTests/svg/filters/filter-reference-crash.html	2012-10-26 15:57:08 UTC (rev 132665)
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+  <!-- Test for https://bugs.webkit.org/show_bug.cgi?id=100491 -->
+  <body>
+    <div id="fake_filter">PASS: did not crash.</div>
+    <div style="width: 100px; height: 100px; background-color: green; -webkit-filter: url(#fake_filter);"></div>
+
+  <script>
+    if(window.testRunner)
+      testRunner.dumpAsText();
+  </script>
+  </body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (132664 => 132665)


--- trunk/Source/WebCore/ChangeLog	2012-10-26 15:49:30 UTC (rev 132664)
+++ trunk/Source/WebCore/ChangeLog	2012-10-26 15:57:08 UTC (rev 132665)
@@ -1,3 +1,17 @@
+2012-10-26  Florin Malita  <fmal...@chromium.org>
+
+        Crash on loading SVG filter resource on HTML element
+        https://bugs.webkit.org/show_bug.cgi?id=100491
+
+        Reviewed by Dirk Schulze.
+
+        Skip non-filter elements referenced via -webkit-filter.
+
+        Test: svg/filters/filter-reference-crash.html
+
+        * rendering/RenderLayerFilterInfo.cpp:
+        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
+
 2012-10-26  Antti Koivisto  <an...@apple.com>
 
         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences

Modified: trunk/Source/WebCore/rendering/RenderLayerFilterInfo.cpp (132664 => 132665)


--- trunk/Source/WebCore/rendering/RenderLayerFilterInfo.cpp	2012-10-26 15:49:30 UTC (rev 132664)
+++ trunk/Source/WebCore/rendering/RenderLayerFilterInfo.cpp	2012-10-26 15:57:08 UTC (rev 132665)
@@ -141,9 +141,8 @@
             // Reference is internal; add layer as a client so we can trigger
             // filter repaint on SVG attribute change.
             Element* filter = m_layer->renderer()->node()->document()->getElementById(referenceFilterOperation->fragment());
-            if (!filter || !filter->renderer())
+            if (!filter || !filter->renderer() || !filter->renderer()->isSVGResourceFilter())
                 continue;
-            ASSERT(filter->renderer()->isSVGResourceContainer());
             filter->renderer()->toRenderSVGResourceContainer()->addClientRenderLayer(m_layer);
             m_internalSVGReferences.append(filter);
         }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to