Title: [107822] trunk
Revision
107822
Author
[email protected]
Date
2012-02-15 10:44:33 -0800 (Wed, 15 Feb 2012)

Log Message

Source/WebCore: Fix for incorrect/offset image in CSS filters (non-composited path)
https://bugs.webkit.org/show_bug.cgi?id=78626

Reviewed by Darin Adler.

Test: css3/filters/multiple-filters-invalidation.html

* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::prepare):
When invalidating results, invalidate all intermediate filter
results, not just the last effect's result.

LayoutTests: New test to exercise invalidation of multiple CSS filters.
https://bugs.webkit.org/show_bug.cgi?id=78626

Reviewed by Darin Adler.

* css3/filters/multiple-filters-invalidation-expected.txt: Added.
* css3/filters/multiple-filters-invalidation.html: Added.
* platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (107821 => 107822)


--- trunk/LayoutTests/ChangeLog	2012-02-15 16:09:30 UTC (rev 107821)
+++ trunk/LayoutTests/ChangeLog	2012-02-15 18:44:33 UTC (rev 107822)
@@ -1,3 +1,14 @@
+2012-02-14  Stephen White  <[email protected]>
+
+        New test to exercise invalidation of multiple CSS filters.
+        https://bugs.webkit.org/show_bug.cgi?id=78626
+
+        Reviewed by Darin Adler.
+
+        * css3/filters/multiple-filters-invalidation-expected.txt: Added.
+        * css3/filters/multiple-filters-invalidation.html: Added.
+        * platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png: Added.
+
 2012-02-15  No'am Rosenthal  <[email protected]>
 
         [Texmap] Support filters in TextureMapperImageBuffer

Added: trunk/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt (0 => 107822)


--- trunk/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/css3/filters/multiple-filters-invalidation-expected.txt	2012-02-15 18:44:33 UTC (rev 107822)
@@ -0,0 +1 @@
+

Added: trunk/LayoutTests/css3/filters/multiple-filters-invalidation.html (0 => 107822)


--- trunk/LayoutTests/css3/filters/multiple-filters-invalidation.html	                        (rev 0)
+++ trunk/LayoutTests/css3/filters/multiple-filters-invalidation.html	2012-02-15 18:44:33 UTC (rev 107822)
@@ -0,0 +1,30 @@
+<html>
+<head>
+<style>
+html {
+  -webkit-filter: brightness(0.1) contrast(120%);
+}
+#rect {
+  background: red;
+  width:  100px;
+  height:  100px;
+}
+</style>
+</head>
+<body>
+<div id="rect"></div>
+</body>
+<script>
+function changeBackground() {
+    document.getElementById("rect").style.background = ""
+}
+
+if (window.layoutTestController) {
+    layoutTestController.dumpAsText(true);
+    layoutTestController.display();
+    changeBackground();
+} else 
+    window.setTimeout(changeBackground, 250);
+
+</script>
+</html>

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (107821 => 107822)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-02-15 16:09:30 UTC (rev 107821)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-02-15 18:44:33 UTC (rev 107822)
@@ -3890,6 +3890,7 @@
 
 BUGWK78529 LINUX DEBUG GPU : fast/canvas/canvas-text-alignment.html = IMAGE
 
+BUGWK78561 : css3/filters/multiple-filters-invalidation.html = MISSING
 BUGWK78561 WIN : css3/filters/crash-hw-sw-switch.html = MISSING
 BUGWK78561 WIN : css3/filters/filter-empty-element-crash.html = MISSING
 

Added: trunk/LayoutTests/platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/platform/mac-snowleopard/css3/filters/multiple-filters-invalidation-expected.png ___________________________________________________________________

Added: svn:mime-type

Modified: trunk/Source/WebCore/ChangeLog (107821 => 107822)


--- trunk/Source/WebCore/ChangeLog	2012-02-15 16:09:30 UTC (rev 107821)
+++ trunk/Source/WebCore/ChangeLog	2012-02-15 18:44:33 UTC (rev 107822)
@@ -1,3 +1,17 @@
+2012-02-14  Stephen White  <[email protected]>
+
+        Fix for incorrect/offset image in CSS filters (non-composited path)
+        https://bugs.webkit.org/show_bug.cgi?id=78626
+
+        Reviewed by Darin Adler.
+
+        Test: css3/filters/multiple-filters-invalidation.html
+
+        * rendering/FilterEffectRenderer.cpp:
+        (WebCore::FilterEffectRenderer::prepare):
+        When invalidating results, invalidate all intermediate filter
+        results, not just the last effect's result.
+
 2012-02-15  Alexander Pavlov  <[email protected]>
 
         Web Inspector: "Minus" (Delete) button disappears for hovered watch _expression_ in Watches pane

Modified: trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp (107821 => 107822)


--- trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp	2012-02-15 16:09:30 UTC (rev 107821)
+++ trunk/Source/WebCore/rendering/FilterEffectRenderer.cpp	2012-02-15 18:44:33 UTC (rev 107822)
@@ -326,7 +326,8 @@
         m_graphicsBufferAttached = true;
     }
     m_sourceGraphic->clearResult();
-    lastEffect()->clearResult();
+    for (size_t i = 0; i < m_effects.size(); ++i)
+        m_effects[i]->clearResult();
 }
 
 void FilterEffectRenderer::apply()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to